ExoStack / ROS 2 interfaces

ESA hubs

The micro-ROS nodes on the boards: one publisher per sensing hub, one subscription per actuator.

ESA hubs are micro-ROS nodes on ESP32 boards. Their topics are named in the sketch, by the calls shown under each topic.

Sensing hub

Node namesetupNode(name), default microROS_Node
Runs onESP32, through the micro-ROS agent (Wi-Fi UDP or USB serial)
Instances×N, one per board

Published topics

TopicDescriptionMessage type
/<hub topic>
setupPublisher(topic, rate)
every channel of the board, at rate Hzsensor_msgs/LaserScanhub layout

Subscribed topics

TopicDescriptionMessage type
/sync_triggerre-zeroes the hub clock used for the stampsstd_msgs/Int32sync trigger layout

Actuation hub

Node namesetupNode(name)
Instances×M boards, up to 5 actuators each

Subscribed topics

TopicDescriptionMessage type
/<command topic>
setupActuation(topic, type, out, x1, x2)
set-point of one actuator; one topic per actuatorstd_msgs/Float32set-point layout
ONE EXECUTOR PER BOARDpublish() and actuate() spin the micro-ROS executor with a 10-ms timeout. It runs the publication timer and the sync and command callbacks; publish(true) also restores the agent link after a restart. A board may both sense and actuate. All hub entities are best-effort.