-
Notifications
You must be signed in to change notification settings - Fork 0
Joining the arena
For MQTT entities, it is necessary to publish an ArenaHeartbeat message directly to the MQTT broker.
To "see" the arena, simply subscribe to all units' heartbeats using + wildcards: conceptio/unit/+/+/+/heartbeat. To see the position, subscribe to conceptio/unit/+/+/+/data/kinematics
If you are integrating entities into the same local network as the arena, simply publish to ROS2 topics. Mqtt_mirror will listen to ROS2 topics and broadcast them to the MQTT broker, and vice-versa.
As ROS2 does discovery with UDP multicasting, communicating with ROS2 entities across the internet is troublesome. Instead of using a VPN (which may require extra permissions to run/setup), remote ROS2 entities can use the mqtt_mirror node.
The node allows ROS2 topics to be mapped to MQTT topics at the broker and vice-versa. The Concept.IO arena topics are automatically mirrored between the two, and the node continuously tries to find new topics every 5s.
To sum it up, here is how to join using a remote ROS2 environment:
- Clone the conceptio_bridges package.
- Move and Build the
conceptio_bridgespackage (remember to source ROS2 first!):
cd conceptio_bridges && colcon build
- Source the conceptio_bridges package:
source install/setup.bash
- Launch the package (which automatically runs mqtt_mirror):
ros2 launch conceptio_bridges conceptio_bridges_launch.py mqtt_host:=BROKER_IP mqtt_port:=BROKER_PORT
Developed by Conceptio Lab for the Virtual Demonstrator project. For more information contact cogo@ita.br