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 name
setupNode(name), default microROS_NodeRuns onESP32, through the micro-ROS agent (Wi-Fi UDP or USB serial)
Instances×N, one per board
Published topics
| Topic | Description | Message type |
|---|---|---|
/<hub topic>setupPublisher(topic, rate) | every channel of the board, at rate Hz | sensor_msgs/LaserScanhub layout |
Subscribed topics
| Topic | Description | Message type |
|---|---|---|
/sync_trigger | re-zeroes the hub clock used for the stamps | std_msgs/Int32sync trigger layout |
Actuation hub
Node name
setupNode(name)Instances×M boards, up to 5 actuators each
Subscribed topics
| Topic | Description | Message type |
|---|---|---|
/<command topic>setupActuation(topic, type, out, x1, x2) | set-point of one actuator; one topic per actuator | std_msgs/Float32set-point layout |
ONE EXECUTOR PER BOARD
publish() 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.