How innate-inc/innate-os works
Purpose and Runtime Entry Points
Innate OS is a ROS 2 Humble-based operating system for MARS robots, combining physical control, autonomous multimodal agents, skills, training, cloud integration, a browser control surface, and a MuJoCo digital twin. Primary operator entry points are the robot web interface, innate CLI, ROS launch files, and simulator CLI:
• innate-sim
• sim/launcher/main.py
• scripts/launch_ros_in_tmux.sh
• ros2_ws/src/mars_bot/mars_bringup/launch/mars_bringup.launch.py
ROS Workspace and Shared Contracts
ros2_ws is the runtime boundary: independently built ROS packages communicate through topics, services, and actions. Message packages define the control contracts between brain, manipulation, cloud, and robot components, isolating callers from implementation details.
• ros2_ws/src/brain/brain_messages/action/ExecuteSkill.action
• ros2_ws/src/brain/brain_messages/srv/ReloadSkillsAgents.srv
• ros2_ws/src/cloud/innate_cloud_msgs/action/NavigateInstruction.action
• ros2_ws/src/mars_bot/mars_msgs/srv/GotoJSTrajectory.srv
Robot Hardware, Perception, and Motion
The MARS platform layer brings up motors, base, IMU, LiDAR, battery, cameras, arm/head servos, and TF. Control accepts teleoperation or navigation velocity commands; arm services and KDL-style IK provide manipulation primitives. Camera pipelines publish stereo/depth data and can stream WebRTC remotely.
• ros2_ws/src/mars_bot/mars_bringup/mars_bringup/bringup.py
• ros2_ws/src/mars_bot/mars_control/mars_control/app.cpp
• ros2_ws/src/mars_bot/mars_arm/mars_arm/arm_node.cpp
• ros2_ws/src/mars_bot/mars_cam/mars_cam/stereo_depth_estimator.cpp
• ros2_ws/src/mars_bot/mars_cam/mars_cam/webrtc_streamer.cpp
Navigation and Manipulation Execution
Navigation wraps Nav2, mapping/localization modes, costmaps, behavior trees, command multiplexing, and custom goal/footprint behavior. Manipulation records demonstrations, manages tasks, replays episodes, and runs learned ACT/TensorRT policies. These are the primary physical-action backends invoked by skills and agents.
• ros2_ws/src/mars_bot/mars_nav/mars_nav/mode_manager.py
• ros2_ws/src/mars_bot/mars_nav/mars_nav/navigate_to_pose_router.py
• ros2_ws/src/brain/manipulation/manipulation/manipulation_server.py
• ros2_ws/src/brain/manipulation/src/recorder_node.cpp
• ros2_ws/src/brain/manipulation/manipulation/act_trt.py
Brain, Agents, Skills, Inputs, and Memory
brain_client is the autonomy orchestrator. It loads workspace-defined agents, skill packs, and input devices; gathers robot/perception state and memory; runs a model-facing agent loop; and invokes or interrupts skills through ROS-facing servers. Skills are Python extensions with injected mobility/manipulation/perception interfaces, while agents constrain allowed skills, inputs, and prompts.
• ros2_ws/src/brain/brain_client/brain_client/nodes/brain_client_node.py
• ros2_ws/src/brain/brain_client/brain_client/brain/loop.py
• ros2_ws/src/brain/brain_client/brain_client/skills/runner.py
• ros2_ws/src/brain/brain_client/brain_client/inputs/manager.py
• workspace/innate_agents/basic_agent.py
• workspace/innate_skills/navigate_to_position.py
Cloud, Training, and Observability Boundaries
Cloud packages authenticate and proxy external model/TTS services, upload logs, transfer episodes, manage training jobs, and deploy resulting skills. The brain includes Gemini and vision integration; proxy adapters expose OpenAI and Cartesia. These integrations remain clients around ROS nodes rather than replacing local robot control.
• ros2_ws/src/cloud/clients/proxy-client/innate_proxy/client.py
• ros2_ws/src/cloud/innate_training_node/innate_training_node/node.py
• ros2_ws/src/cloud/innate_logger/innate_logger/logger_node.py
• ros2_ws/src/brain/brain_client/innate/gemini.py
User Interfaces, Simulation, and Deployment
The static webapp uses rosbridge, WebRTC, and HTTPS proxy routes to operate the same ROS services/actions as mobile clients. The simulator runs the real ROS stack with simulated hardware adapters, Dockerized provisioning, a Python launcher, and a TypeScript 3D viewer connected through rosbridge. Physical deployment is systemd-managed with DDS/Zenoh, Bluetooth, networking, and device configuration.
• webapp/js/rosClient.js
• webapp/proxy/https_server.py
• sim/launcher/runtime.py
• ros2_ws/src/mars_bot/mars_sim_driver/mars_sim_driver/node.py
• sim/viewer/src/physics/rosbridgeController.ts
• config/systemd/ros-app.service
• config/systemd/zenoh-router.service
Main entry points: ros2_ws ROS 2 workspace · brain_client_node.py Brain client · runner.py Skill runner · bringup.py Hardware bringup
Components 21
Operator & Runtime Entry Points
- Browser control surface · Operates ROS through rosbridge, WebRTC, and proxy routes.
webapp/js/rosClient.js - HTTPS proxy
webapp/proxy/https_server.py - MARS ROS launch
ros2_ws/src/mars_bot/mars_bringup/launch/mars_bringup.launch.py
ROS Runtime & Contracts
- ROS 2 workspace · Independently built packages communicate via topics, services, and actions.
ros2_ws - ExecuteSkill action · Contract for brain-directed skill execution.
ros2_ws/src/brain/brain_messages/action/ExecuteSkill.action
Brain & Skills
- Brain client · Loads agents and skills, collects state and memory, and drives the agent loop.
ros2_ws/src/brain/brain_client/brain_client/nodes/brain_client_node.py - Model-facing agent loop
ros2_ws/src/brain/brain_client/brain_client/brain/loop.py - Skill runner · Invokes and interrupts ROS-facing skills.
ros2_ws/src/brain/brain_client/brain_client/skills/runner.py - Workspace agents · Define prompts and permitted skills and inputs.
workspace/innate_agents/basic_agent.py - Workspace skills · Python skills receive mobility, manipulation, and perception interfaces.
workspace/innate_skills/navigate_to_position.py
Robot Action Backends
- Hardware bringup · Brings up motors, sensors, cameras, TF, and robot devices.
ros2_ws/src/mars_bot/mars_bringup/mars_bringup/bringup.py - Base motion control · Accepts teleoperation and navigation velocity commands.
ros2_ws/src/mars_bot/mars_control/mars_control/app.cpp - Stereo depth & WebRTC
ros2_ws/src/mars_bot/mars_cam/mars_cam/stereo_depth_estimator.cpp - Navigation backend · Coordinates mapping, localization, costmaps, behavior trees, and goal routing.
ros2_ws/src/mars_bot/mars_nav/mars_nav/navigate_to_pose_router.py - Manipulation backend · Executes demonstrations, replay, and learned ACT/TensorRT policies.
ros2_ws/src/brain/manipulation/manipulation/manipulation_server.py
Cloud Services
- Gemini integration
ros2_ws/src/brain/brain_client/innate/gemini.py - Training & deployment · Transfers episodes, manages training jobs, and deploys resulting skills.
ros2_ws/src/cloud/innate_training_node/innate_training_node/node.py
Simulation & Deployment
- Simulator runtime · Runs the real ROS stack with simulated hardware adapters.
sim/launcher/runtime.py - Simulated hardware driver
ros2_ws/src/mars_bot/mars_sim_driver/mars_sim_driver/node.py - 3D simulator viewer · Connects to ROS through rosbridge.
sim/viewer/src/physics/rosbridgeController.ts - Physical deployment service · Manages the ROS application on deployed robots.
config/systemd/ros-app.service
Connections 24
- Browser control surface → HTTPS proxy: HTTPS routes
- Browser control surface → ROS 2 workspace: rosbridge
- Browser control surface → Stereo depth & WebRTC: WebRTC video
- MARS ROS launch → ROS 2 workspace: starts
- ROS 2 workspace → ExecuteSkill action: defines
- ROS 2 workspace → Hardware bringup: runs
- Hardware bringup → Base motion control: hardware interfaces
- Hardware bringup → Stereo depth & WebRTC: camera devices
- Brain client → Model-facing agent loop: runs
- Brain client → Workspace agents: loads
- Brain client → Workspace skills: loads
- Brain client → Skill runner: dispatches
- Model-facing agent loop → Gemini integration: model requests
- Skill runner → ExecuteSkill action: executes
- Skill runner → Navigation backend: mobility skills
- Skill runner → Manipulation backend: manipulation skills
- Navigation backend → Base motion control: velocity commands
- Stereo depth & WebRTC → Brain client: perception state
- Manipulation backend → Training & deployment: episodes & policies
- Simulator runtime → ROS 2 workspace: runs real stack
- Simulator runtime → Simulated hardware driver: starts
- Simulated hardware driver → Hardware bringup: simulated devices
- 3D simulator viewer → ROS 2 workspace: rosbridge
- Physical deployment service → MARS ROS launch: manages