Tutorials
A ten-part series that builds up from one sensor node to a driver you wrote yourself. Every part exists in Rust, Python and C++ with the same numbering, so you can follow one language end to end or compare the same step across all three.
/tutorials had no page of its own until now: the individual parts were reachable from
the sidebar, but the directory itself returned a 404, which is what anyone following a
/tutorials link from outside the site got.
ℹ️Start with Getting Started, not here
These assume you have run something already. If you have not, do Quick Start first — it is the page that introduces the three concepts (node, topic, scheduler) the tutorials use without re-explaining.
The series
| # | Part | Rust | Python | C++ |
|---|---|---|---|---|
| 1 | Sensor node — publish at a fixed rate | Rust | Python | C++ |
| 2 | Motor controller — subscribe and act | Rust | Python | C++ |
| 3 | Full robot — several nodes, one scheduler | Rust | Python | C++ |
| 4 | Custom messages — your own wire types | Rust | Python | C++ |
| 5 | Hardware and real-time — rates, budgets, deadlines | Rust | Python | C++ |
| 6 | Services and actions — request/response and long jobs | Rust | Python | C++ |
| 7 | Parameters deep dive — tuning without recompiling | Rust | Python | C++ |
| 8 | Multi-process — one robot, several executables | Rust | Python | C++ |
| 9 | Record and replay — capture a run, replay it | Rust | Python | C++ |
| 10 | Write a driver — wrap real hardware | Rust | Python | C++ |
Standalone tutorials
Two more that do not belong to the numbered sequence:
| Tutorial | Rust | Python | C++ |
|---|---|---|---|
| Real-time control — a hard-RT loop, start to finish | Rust | Python | C++ |
| Migrating from ROS 2 — the API mapping | Rust | Python | C++ |
Where to go next
- Example Projects — ten complete applications in the repository, if you would rather read a finished robot than build one up
- Recipes — task-shaped answers, such as bridging to an existing ROS 2 system
- CLI Reference — every command the tutorials use