ros-industrial / ros_canopen

CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
GNU Lesser General Public License v3.0
342 stars 273 forks source link

Can I use this package for the device without "Consumer Heartbeat Time" support? #367

Closed bxc237 closed 4 years ago

bxc237 commented 4 years ago

Hi, I saw these lines in every example:

heartbeat: # simple heartbeat producer
  rate: 20 # heartbeat rate
  msg: "77f#05" # message to send, cansend format: heartbeat of node 127 with status 5=Started
defaults:
  dcf_overlay: # "ObjectID": "ParameterValue" (both as strings)
    "1016sub1" : "0x7F0064" # heartbeat timeout of 100 ms for master at 127
    "1017": "100" # heartbeat producer

My device supports both heartbeat and node guarding (ros_canopen does not support). However, according to the eds file, the device does not have the [1016] Consumer Heartbeat Time entry. Then can I still use this package for canopen control? THX!

mathias-luedtke commented 4 years ago

My device supports both heartbeat and node guarding (ros_canopen does not support)

Node guarding is not supported from slave to master. It got superseded by the heartbeat protocol, which does not use RTR frames (to be avoided) and works in both directions and even between slaves.

However, according to the eds file, the device does not have the [1016] Consumer Heartbeat Time entry. Then can I still use this package for canopen control?

Of course, just remove these lines..

I saw these lines in every example

Yes, because it is recommended. It makes motors halt in case the master stopped working for any reason. Without this, a motor in velocity mode would just go on in an uncontrolled manner (true story..).


I will close this issue now, because this issue tracker is meant for bug reports and feature requests only. If you need further support, please try https://answers.ros.org/