Tutorial Summary
This tutorial track teaches the SDK in the order a robotics developer actually needs it.
Use the tutorial track to learn the model
The tutorial pages explain how to assemble a registration from first principles. The example catalog is for the later moment when you already understand the contract and want a known-good file to copy from.
The goal is not to walk line by line through the example scripts. The goal is to teach the contract layers that make a registration work in HORUS MR.
What you build by the end
By the end of the track, you should be able to build a clean registration for a new robot by composing these layers in order:
- robot identity and body bounds
- operator-facing Robot Manager availability
- camera streams and view behavior
- teleop and task contracts
- robot-scoped DataViz layers
- URDF-backed robot description
- workspace-level map layers
- live-robot topic and frame substitution
How to use this track
- finish the Quickstart once
- read the tutorial page before opening any example script
- copy only the contract fragment you actually need
- use the paired fake runtime as validation, not as the main teaching source
- verify the result in HORUS MR before moving to the next layer
Tutorial order
| Tutorial | What you learn | Validate with |
|---|---|---|
| Tutorial 1: First ground robot | the smallest useful Robot registration | python/examples/ops_registration.py |
| Tutorial 2: Cameras and views | how one camera definition becomes projected, minimap, and teleop-facing views | python/examples/ops_registration.py |
| Tutorial 3: Teleop and tasks | how Robot Manager controls are declared from topic contracts | python/examples/ops_registration.py, drone_registration.py, legged_registration.py |
| Tutorial 4: DataViz layers | how to add paths, odometry, safety, and semantic layers | python/examples/ops_registration.py, semantic_perception_registration.py |
| Tutorial 5: Robot description | how to move from primitive bounds to URDF-backed bodies | python/examples/robot_description_registration.py |
| Tutorial 6: Global maps | how occupancy, pointcloud, dense mesh, and octomap layers are declared | python/examples/occupancy_map_registration.py and related map registrations |
| Tutorial 7: Live robot checklist | how to substitute real topics and frames without changing the SDK model | python/examples/carter_registration.py, python/examples/unitree_go1_registration.py |
What this track assumes
- you can source ROS 2 and the
horus_ros2workspace - you can run the Python examples from the repository root
- you have access to the HORUS MR app or at least the ROS runtime needed to receive registration ACKs
What this track is not
- it is not a full API reference
- it is not the legacy fake-runtime catalog
- it is not a line-by-line commentary on the example scripts
If you already know the SDK model and only need a runnable reference, use the example catalog.