This package provides functionality to expose CAN frames from SocketCAN to ROS2 topics.
This is a from-scratch re-implementation of socketcan_bridge from ROS1. There is a different ROS2 package ros2_socketcan which is similar to this package. The differences between this package and ros2_socketcan are:
- No loopback, i.e. CAN frames that are send are not received by the same node
- No lifecycle management, just run it
- Less CPU usage
The main node (socketcan_bridge
) is also available as dynamically loadable component.
The node socketcan_bridge_ee
is also provided that uses the EventsExecutor
that runs a bit more efficient.
~/tx
(can_msgs/Frame) Messages received here will be sent to the SocketCAN device.
~/rx
(can_msgs/Frame) Frames received on the SocketCAN device are published on this topic.
interface
(default=can0
) Name of the SocketCAN device, by default these devices are named can0 and upwards.read_timeout
(default=1.0
) Maximum duration in seconds to wait for data on the file descriptorreconnect_timeout
(default=5.0
) Sleep duration in seconds before reconnecting to the SocketCAN device