ros-industrial / ros2_canopen

CANopen driver framework for ROS2
https://ros-industrial.github.io/ros2_canopen/manual/rolling/
143 stars 62 forks source link

Synchronized halt across multiple 402_drivers #258

Open gsalinas opened 7 months ago

gsalinas commented 7 months ago

I'm using several canopen_402_drivers controlled by a single forward_command_controller. Each individual driver exposes a ~/halt service. Is there any already-existing way to call the halt service of multiple nodes in a way that guarantees all those nodes receive it within the same CAN SYNC period?

More generally, when I send any commands to a forward command controller governing several nodes in this way, is there anything that ensures those commands are synchronized to within a CAN sync period, or is this a race condition that might sometimes send the target to some nodes on frame N and to others on frame N+1, if I get unlucky with the timing of the sync period?

Thank you!