ROS 2 Guides
Practical, end-to-end guides for connecting ROS 2 robots to RosFit. Each guide walks through a real-world scenario from hardware setup to production deployment.
Build a warehouse AMR fleet
Connect a fleet of autonomous mobile robots to RosFit for centralized monitoring, task dispatch, and telemetry analysis.
What you'll build:
- Register 5+ TurtleBot 3 (or custom AMR) devices with RosFit
- Configure bridge YAML to stream
/odom,/scan,/battery_state, and/map - Set up fleet groups (
warehouse-east/floor-1,warehouse-east/floor-2) - Use the dashboard fleet map to visualize live robot positions
- Send
navigate_tocommands from the command console - Configure battery alerts to trigger return-to-charger commands
Prerequisites: ROS 2 Jazzy or Humble, Nav2 stack, TurtleBot 3 or Gazebo simulation.
Key topics covered: device registration, topic bridging, fleet grouping, navigation commands, threshold alerts.
bridge:
publish:
- ros_topic: /odom
mqtt_suffix: telemetry/odom
msg_type: nav_msgs/Odometry
qos: 1
throttle_hz: 10
- ros_topic: /battery_state
mqtt_suffix: telemetry/battery
msg_type: sensor_msgs/BatteryState
qos: 1
throttle_hz: 0.5
- ros_topic: /scan
mqtt_suffix: telemetry/scan
msg_type: sensor_msgs/LaserScan
qos: 0
throttle_hz: 5
subscribe:
- mqtt_suffix: cmd/navigate
ros_topic: /navigate_to_pose
msg_type: geometry_msgs/PoseStamped
qos: 1
Remote-control a robot arm
Teleoperate a robotic arm over the internet using RosFit commands and the dashboard joystick widget.
What you'll build:
- Connect a UR5e (or MoveIt 2 simulated arm) to RosFit
- Bridge joint state telemetry and joint trajectory commands
- Configure the 3D viewer widget with the arm's URDF model
- Send joint trajectory goals from the command console
- Stream joint positions to the dashboard in real-time
- Implement safety limits via shadow desired state
Prerequisites: ROS 2, MoveIt 2, URDF model of your arm.
Key topics covered: service bridging, joint trajectory commands, URDF visualization, safety parameters via device shadow.
# Send a joint trajectory command via the CLI
rosfit send dev_arm_01 joint_trajectory '{
"joint_names": ["shoulder_pan", "shoulder_lift", "elbow", "wrist_1", "wrist_2", "wrist_3"],
"points": [{
"positions": [0.0, -1.57, 1.57, -1.57, -1.57, 0.0],
"time_from_start": {"sec": 5, "nanosec": 0}
}]
}' --wait
SLAM mapping from dashboard
Trigger and monitor a SLAM mapping session remotely through the RosFit dashboard.
What you'll build:
- Configure the bridge to stream
/mapoccupancy grids to the cloud - Use the SLAM map widget to view the map as it builds in real-time
- Send commands to start/stop mapping sessions
- Download completed maps from the dashboard
- Compare map versions over time
Prerequisites: ROS 2, slam_toolbox or cartographer_ros, a LiDAR-equipped robot.
Key topics covered: occupancy grid streaming, large message handling, command workflows, data export.
The bridge supports large messages like occupancy grids by chunking them over MQTT. Configure a lower throttle_hz to avoid bandwidth saturation:
bridge:
publish:
- ros_topic: /map
mqtt_suffix: telemetry/map
msg_type: nav_msgs/OccupancyGrid
qos: 1
throttle_hz: 0.1
- ros_topic: /scan
mqtt_suffix: telemetry/scan
msg_type: sensor_msgs/LaserScan
qos: 0
throttle_hz: 5
Multi-site fleet management
Manage robots across multiple physical sites from a single RosFit deployment.
What you'll build:
- Deploy one RosFit cloud stack serving robots at 3+ sites
- Use groups to segment devices by site (
site-nyc,site-berlin,site-tokyo) - Configure per-site MQTT broker connections with TLS
- Set up operator RBAC so each site team only sees their robots
- Build a unified dashboard with per-site fleet health KPIs
- Broadcast commands scoped to specific sites
Prerequisites: Multiple ROS 2 robots (physical or simulated), stable internet at each site.
Key topics covered: multi-site architecture, group-based RBAC, broadcast commands, global fleet KPIs.
Recommended architecture for multi-site deployments:
Site NYC Site Berlin Site Tokyo
│ │ │
│ MQTT/TLS │ MQTT/TLS │ MQTT/TLS
│ │ │
└──────────────────┼──────────────────┘
│
┌──────┴──────┐
│ RosFit │
│ Cloud │
│ (Central) │
└─────────────┘
Gazebo simulation to production
Develop and test your RosFit integration in Gazebo, then deploy the same configuration to physical hardware with zero changes.
What you'll build:
- Set up a Gazebo Classic or Ignition simulation with a TurtleBot 3
- Register the simulated robot as a
simulatordevice type - Use the exact same
rosfit-bridge.yamlfor simulation and production - Validate navigation commands, telemetry streaming, and alerts in simulation
- Promote the configuration to a physical robot by changing only
device_id - Run automated integration tests in CI with Gazebo + RosFit
Prerequisites: ROS 2, Gazebo, Docker (for CI).
Key topics covered: simulation device type, config portability, CI/CD testing, staging-to-production workflow.
# Register a simulator device
rosfit devices add --name "sim-turtlebot" --type simulator --group lab/simulation --tag ci --tag testing
The bridge auto-detects whether it is running in a simulated or physical environment and tags telemetry accordingly, so dashboard widgets can distinguish between real and simulated data.