My imagination only got so far as a Micro-ROS node forwarding everything to an agent, but I suspect it needs to be more like ros1_bridge.
Most of the existing Micro-ROS targets have native canbus hardware, so that’s probably how most people will get started with a hypothetical rmw_uavcan.
Industrial users would want to use SocketCAN on native canbus hardware in embedded Linux devices.
I’d want to write it such that the system integrator can choose whether the bridge is in ROS or Micro-ROS.
I have no idea how you’d tell an agent that a topic should be forwarded from DDS to UAVCAN, and I don’t know how you’d de-duplicate UAVCAN messages that got to the DDS via multiple agents.
I would expect some proper networking nightmare fuel behind the scenes; a simple benchtop case is likely to have two can-busses, two Linux machines, the dds, two agents, and a dozen micro-ros devices.
At the risk of a combinatorial explosion of this-rmw-to-that-rmw bridges, is it possible to implement something like ros1_bridge in rclc behind a Micro-ROS agent?
Do bad things happen when you run two instances of ros1_bridge?
1 Like