Since the wonderful announcement that the microros API has support for custom transport, there’s been some talk about integration with CANbus, including a well-polished document (which I can’t find) outlining some of the layers required to move ros2 data over a canbus.
On the other side of the fence, people at UAVCAN have put some thought into how ROS can communicate over a CANbus:
I don’t see this becoming a primary middleware for rclcpp, but it could be very effective as a microros-microros middleware, or as a distributed and robust microros agent.
At very least, there are some great suggestions for mappings between ros2 topic names and (uavcan) CAN IDs, and it offers a ready-made solution for packetising messages.
I’d be interested to see what colcon layer requirements this approach would have, and what complexity would be introduced for non-collision with can-open and other established standards