The edit → build → restart loop
This is your core workflow. Every change follows the same cycle:1
Edit code
Modify any file in
~/innate-os/. ROS2 packages live in ~/innate-os/ros2_ws/src/.2
Build
Build and restart in one command:Or build just the package you changed:
3
Verify
Attach to the tmux session and check your node is running:
Reading the tmux windows
Every ROS node runs inside a tmux session calledros_nodes. Each window has two panes running related nodes side by side.
Ctrl+Bthen0-6— switch windowsCtrl+Bthen←/→— switch panesCtrl+BthenD— detach (nodes keep running)
If a node crashes, its pane shows the error. Fix the code and build the package.
What you can modify
Agents and skills (no build needed)
Files in~/agents/ and ~/skills/ are pure Python. Edit, save, restart — no compilation.
ROS2 packages (build required)
Everything in~/innate-os/ros2_ws/src/ is a ROS2 package. After editing, build:
Launch files
Launch files configure how nodes start. They live inside each package’slaunch/ directory. Edit them to change parameters, remap topics, or add new nodes.
Observability
You need to see what the robot sees. Two options.RViz (Linux)
If you’re on a Linux machine on the same network, RViz plugs directly into the ROS2 topics and gives you the full visualization stack: TF frames, point clouds, camera feeds, navigation costmaps, arm trajectories. Make sure Zenoh DDS discovery is configured so your machine can see the robot’s topics.Foxglove (all platforms)
Not on Linux? Use Foxglove. It connects over WebSocket to a Foxglove Bridge running on MARS and lets you visualize all the same data from any browser. See the dedicated Foxglove Setup guide.Diagnostics
Run hardware diagnostics to check system health:Boot sequence
Understanding what happens at power-on helps with debugging:- systemd starts
zenoh-router.service(DDS discovery layer) - systemd starts
ros-app.servicewhich runslaunch_ros_in_tmux.sh - The script creates a tmux session with 7 windows (14 ROS nodes)
- After 20 seconds, the startup chime plays
Tips
- Build only what changed.
innate build mars_armis faster thaninnate build. - Check logs in tmux. Each pane scrolls.
Ctrl+Bthen[enters scroll mode,qexits. - Use
ros2 topic echoto inspect live data:ros2 topic echo /cmd_vel. - Use
ros2 node listto verify nodes are alive after a restart.
Reference
Innate CLI
Every command, one page.
Foxglove Setup
Browser-based ROS visualization.
ROS2 Topics
All published topics on MARS.
ROS2 Debugging
Debugging workflows.

