Set Up the ROS 2 Bridge
Goal: Integrate a ROS 2 robot with Rover Nexus by running
rover_ros2_bridge, which
translates ROS 2 (DDS) to and from the Cap'n Proto messages the agent consumes
over a Unix domain socket.
Before you begin
- The agent is installed via its bootstrap command (which also enrolls the robot).
- A working ROS 2 Jazzy robot on Ubuntu 24.04, publishing its motion/status topics over DDS, on the same host as the agent.
- A ROS 2 workspace to clone
rover_ros2_bridgeinto.
Why a bridge is needed
The agent does not speak ROS 2 / DDS directly. It consumes Cap'n Proto messages over a local hop. The bridge is a separate process that sits between your ROS 2 graph and the agent:
ROS 2 nodes <--(DDS)--> rover_ros2_bridge <--(Unix domain socket, Cap'n Proto)--> rover-agent --> cloud
The bridge subscribes to your ROS 2 telemetry topics and republishes them as Cap'n Proto to the agent. It also relays commands the agent emits back into ROS 2.
Steps
Follow the install, build, and run instructions in
rover_ros2_bridge. The
overall flow is:
-
Enable the agent's Unix domain socket hop in
robot.toml([local_transport] kind = "uds") and restart the agent so it listens on the socket (default/run/rover-agent/agent.sock). -
Clone the repository into your ROS 2 workspace as
src/rover_ros2_bridgeand run that repository's install and build scripts (do not use a barecolcon build; the package documents why).
bash
cd /path/to/your_ws/src
git clone https://gitlab.com/rover-nexus/rover_ros2_bridge.git rover_ros2_bridge
cd rover_ros2_bridge
./scripts/install.sh
-
Configure the topic mapping so the bridge knows which ROS 2 topics carry motion and status telemetry, and how they map to the Cap'n Proto messages the agent expects. Edit the YAML configuration or use the bridge's built-in web UI (default
http://<robot-ip>:8765). Those message definitions are available via the client libraries. -
Start the bridge with the repository's run script or
ros2 launch rover_ros2_bridge bridge.launch.py(or the packaged systemd unit, after editing it for your host). -
Verify telemetry flows end to end: the agent logs show incoming messages and the robot's live data appears in the web app. See Verify Agent Connectivity.
Notes
- The agent's ingest path is the same Cap'n Proto contract whether or not the robot is ROS 2 based; the bridge produces those messages on the ROS 2 robot's behalf over the socket hop.
- Commands from the cloud (for example mode, navigate-to, velocity, pause) are emitted by the agent onto the local hop; the bridge relays them into ROS 2.
- The socket hop is same-host only. Run the bridge on the robot that runs the agent.
Next steps