Getting Started with Python
Python is the fast path to building with HORUS. You get the same shared-memory IPC, the same message types, and the same scheduler — with Python's ecosystem of ML frameworks, data tools, and rapid prototyping.
Your Learning Path
Step 1: Install HORUS
curl -fsSL https://raw.githubusercontent.com/softmata/horus/release/install.sh | bash
The installer sets up both the CLI and the Python bindings. See Installation for details.
Step 2: Build Your First App
Follow the Quick Start (Python) — build a publisher and subscriber in 10 minutes.
Step 3: Learn the Concepts
- Nodes: The Building Blocks — how nodes work
- Topics: How Nodes Talk — pub/sub communication
- Scheduler: Running Your Nodes — execution model
- Choosing Your Configuration — progressive complexity guide
Step 4: Tutorials
- Tutorial 1: IMU Sensor Node — read sensor data and publish it
- Tutorial 2: Motor Controller — subscribe to commands, simulate physics
- Tutorial 3: Full Robot System — combine sensors, controller, and estimator
- Tutorial 4: Custom Messages — send typed data between nodes
- Tutorial 5: Hardware & Real-Time — drivers and scheduling
Step 5: Go Deeper
- Python API Reference — complete Node, Scheduler, Topic API
- Python Message Library — 55+ standard robotics types
- Recipes — copy-paste patterns for common tasks
Why Python for HORUS?
- ML/AI integration — use PyTorch, ONNX, TensorFlow, OpenCV directly in your nodes
- Rapid prototyping — iterate on behavior logic without compile cycles
- Same IPC — Python nodes share the same zero-copy topics as Rust nodes
- NumPy interop — Image, PointCloud, and Tensor types expose data as NumPy arrays
- One-liner setup —
horus.Node(name, tick, rate)+horus.run(node)and you're running
Python-Specific Guides
- Python Bindings Architecture — how the two-layer Python API works
- ML Integration — PyTorch, ONNX, HuggingFace in HORUS nodes
- Python CV Node Recipe — OpenCV computer vision pipeline
- Async Nodes — async/await support for non-blocking I/O
Need Help?
- Troubleshooting — fix installation and runtime errors
- Choosing a Language — comparing Rust and Python for your project