Can Not Ready Error [closed]

asked 2020-01-13 13:22:57 -0600

JadTawil gravatar image


I am using the SV2D10-C-CE canopen controller from Applied Motion:

After performing the configuration of the motor parameters with their supplied software, i am attempting to control it through ros-canopen. I made sure to provide the EDS that reflects the parameters in the controller; namely, the PDO mappings (communication and mapping params). The following is the error i am getting from the terminal, when the init service is called.

[ INFO] [1578942089.030965037]: Using fixed control period: 0.010000000
[ INFO] [1578942098.869938415]: Initializing XXX
FAILED system:100
[ERROR] [1578942098.905976794]: CAN not ready
Did not receive a response message
state is 255
[ERROR] [1578942109.890241883]: CAN not ready; not operational; CAN not ready

And on the service client side, i receive:

success: False
message: "could not reset node '1'"

The part that says "state is 255", i am printing myself by adding the following to line 153 in node.cpp

std::cout << "state is " << state_ << std::endl;

I see that state 255 corresponds to "unknown", which is concerning, and suggests that the communication between the controller and the ros-canopen is somehow going wrong. A few details about the controller i am using:

SV200 servo drivesare compliant to CiA 301 and CiA 402 and uses the CAN 2.0B passive physical layer.

Is the ros-canopen driver programmed to support CAN 2.0B physical layer? I am aware that 2.0B protocol uses 29 bit CAN-ids, as opposed to the 11 bit CAN-ids that protocol 2.0A uses.

Can this be the problem?

Id like to add, i have been using this driver for years with CanOpen controllers that use the 2.0A protocol, which is leading to suspect that this may be the issue here

edit retag flag offensive reopen merge delete

Closed for the following reason duplicate question by JadTawil
close date 2020-01-14 10:43:27.586270


gvdhoorn gravatar imagegvdhoorn ( 2020-01-13 15:13:12 -0600 )edit