# RosieOS

> Documentation for RosieOS, the open-source software that runs a Rosie welding cell, from the real-time controller to offline programming and the teach pendant.

URL: https://advancedmetalresearch.com/docs/
Section: RosieOS docs / Overview
Last updated: 2026-10-10

RosieOS runs one Rosie welding cell. Every client drives the robot through one public control API, `rt-control`, which admits one controller at a time. That includes the teach pendant, the offline programming app, the motion servers and your own code. Behind it, a 1 kHz real-time core owns the EtherCAT drives. The same core also runs against a simulated bus, so you can run a whole cell on a laptop.

## What is in RosieOS

| Part | What it does |
|---|---|
| **Real-time core** (`rosie-rt-core`) | 1 kHz C++ controller. It runs the CiA402 drives over EtherCAT, and decides every cycle whether motion is permitted. |
| **Control API** (`rt-control`) | The only public interface: HTTP/JSON on a Unix socket, or mutual TLS for remote clients, with a lease, a fence and a dedicated jog lane. Go, C++ and TypeScript clients, plus the `rtctl` CLI. |
| **Motion servers** | A Cartesian jog and position server, and a daemon that plays dense precomputed trajectories. |
| **Weld planner** | GPU planner that turns CAD and a weld program into joint trajectories. It verifies each one against the cell model before it will emit it. |
| **Offline programming** | Go server and browser app to import STEP parts, define welds, plan, simulate, and run on a cell. |
| **Teach pendant** | Native Steam Deck app, v5, plus a browser copy of the earlier pendant for simulation. |
| **Robot descriptions** | URDF, meshes, planning limits and frames for the Rosie 1400 and Rosie 1420, each with a hashed identity. |

Production code covers the core, the control API and its clients, the motion servers, the weld planner, offline programming and the robot descriptions. The v5 pendant is current but not yet qualified on physical input or real motion. See [Architecture](https://advancedmetalresearch.com/docs/concepts/architecture#maturity).

## Safety first

RosieOS has no software E-stop. The cell's hardware E-stop is the only emergency stop, and every software stop, interlock and check sits on top of it.

Planned weld programs are verified against the cell model, collision and joint limits before they can be loaded, and you can replay them in simulation first. Jog, moves and Home are checked against joint limits only. The [safety model](https://advancedmetalresearch.com/docs/get-started/safety-model) sets out exactly what is enforced, and where.

## For AI agents

These docs are also published for machines. [`/docs/llms.txt`](/docs/llms.txt) indexes every page, and [`/docs/llms-full.txt`](/docs/llms-full.txt) holds them all in one file. Any page is available as Markdown at its URL plus `.md`. The APIs come as [OpenAPI 3.1](https://advancedmetalresearch.com/docs/openapi/rt-control.json) documents, and the search index is at [`/assets/docs/search.json`](/assets/docs/search.json). [For AI agents](https://advancedmetalresearch.com/docs/get-started/for-ai-agents) lists them all, with the rules an agent must follow.

## Where to start

- **Try it.** [Install the toolchain](https://advancedmetalresearch.com/docs/get-started/installation), then run the [Quickstart](https://advancedmetalresearch.com/docs/get-started/quickstart) to bring up a simulated cell and jog it from your browser. It takes no hardware.
- **Program a cell.** Read the [safety model](https://advancedmetalresearch.com/docs/get-started/safety-model) before you move hardware. Then read [Run everything in simulation](https://advancedmetalresearch.com/docs/guides/run-in-simulation) and the Guides section.
- **Integrate RosieOS.** Start with [Your first motion](https://advancedmetalresearch.com/docs/get-started/first-motion), which drives the simulated core from a short Go program. Then read [Architecture](https://advancedmetalresearch.com/docs/concepts/architecture) and the [APIs](https://advancedmetalresearch.com/docs/apis/rt-control-http).
- **Contribute.** The [Contributing](https://advancedmetalresearch.com/docs/contributing/repo-layout) section covers the repository layout, building and testing.

## Sources

Written from these files in the RosieOS repository (https://github.com/advanced-metal-research/RosieOS):

- `rt-core/cmd/rt-control/main.go:24-66`
- `rt-core/engine/cycle_machine.hpp:3168,3514`
- `rt-core/include/motion_readiness.hpp:97-130`
- `rt-core/protocol/application-v1.schema.json (rules.external_enable)`
- `weld_planner/v1/python/weldplan/native_admission.py:204-250`
- `offline-programming/v1/main.go:35,80-96,257-300`
- `motion-server/v1/src/robot_v4_cartesian_cli.hpp:232-414`
- `motion-server/joint-trajectory/v1/src/joint_trajectory_daemon.cpp:99-128`
- `steamdeck/real/v5/src/main.cpp:18-24`
- `steamdeck/virtual/bridge/cli.go:20-45`
- `robot_description/robots/rosie_1400_v3/config.json`
- `robot_description/robots/rosie_1420_v1/config.json`
- `dev-stack.sh:1-20`
