I’m developing a ROS2 package for Luos modules there (that should be compatible with ROS1 later too).
Here’s my design:
brokernode runs the interface between Luos modules and the ROS ecosystem
- Each module is isolated into its own alias prefix, e.g.
/Imu_mod/for the Imu
- Every module publishes its read variables into topics in the form of
- Every module subscribes to topics in the form of
/alias/variable/writein order to write its variables
- Every module publishes its events into topics in the form of
An example setup running a Gate and an Imu nodes is available there.
Some design questions remain:
- How do you expect the broker to work if several gates are connected to several USB ports?
- How do you expect the broker to work if 2 nodes have the same alias and thus will publish under the same namespace?
- How would you like to set the USB port e.g.
/dev/ttyUSB0(ROS param? Or autodetect?)
- How would you like to activate/deactivate features e.g.
Imu_mod.quaternion = True(ROS Param? Service? Topic?)
- Are there other Luos-node-specific useful data to publish that are not in the variables/events list in the Luos doc you would like to access to from ROS? (e.g. embedded LED, L0_temperature, …)