horus  by softmata

Robotics framework enabling real-time AI and deterministic control

Created 5 months ago
294 stars

Top 90.0% on SourcePulse

GitHubView on GitHub
Project Summary

HORUS is a high-performance robotics middleware designed as a modern alternative to ROS2, targeting AI/ML engineers and robotics developers. It significantly accelerates inter-process communication (IPC) and enables deterministic real-time control alongside AI inference within a unified Rust and Python environment, offering substantial performance gains and a simplified development workflow.

How It Works

HORUS replaces traditional DDS with mmap-backed ring buffers and lock-free synchronization, achieving zero-copy shared memory for data transfer. This architecture allows sub-microsecond IPC latency, drastically outperforming ROS2's typical 50–500 µs. It facilitates running real-time motor controllers in Rust and AI inference (like PyTorch or JAX) in Python within the same process, using DLPack for direct GPU tensor handoffs without CPU serialization. The system features a deterministic scheduler with five execution classes, enabling fine-grained control over task priorities and timing constraints.

Quick Start & Requirements

  • Installation: Requires Linux and Rust 1.92+. Python 3.9+ is optional for bindings. Installation involves cloning the repository and running ./install.sh. Python bindings are available via pip install horus-robotics.
  • Primary Commands: horus new <project_name> to scaffold a project, and horus run to build and execute.
  • Prerequisites: build-essential, pkg-config, libudev-dev, libssl-dev, libasound2-dev.
  • Links: Docs, Install, Benchmarks, Discord.

Highlighted Details

  • Performance: Claims 575x faster IPC than ROS2, with cross-process latency as low as 198 ns.
  • Zero-Copy AI/RT: Enables zero-copy transfer of large data like images and GPU tensors between Rust and Python nodes, crucial for AI perception pipelines.
  • Deterministic Real-Time Scheduling: Offers five execution classes (RT, Compute, Event, AsyncIo, BestEffort) with automatic timing constraint derivation for deadline enforcement.
  • Unified Rust/Python: Allows seamless communication and shared memory access between Rust and Python components in the same process.
  • Extensive Message Types: Includes over 40 built-in, fixed-size message types for common robotics data (e.g., Detection, Image, Pose3D, MotorCommand).

Maintenance & Community

The project is under active development (v0.1.9) with the core API stabilizing. Community discussion and updates are available via Discord. Contribution guidelines are provided in CONTRIBUTING.md.

Licensing & Compatibility

Licensed under the Apache-2.0 license, which is permissive for commercial use and integration into closed-source projects.

Limitations & Caveats

The core API is still stabilizing, indicating potential for breaking changes. The system currently requires a Linux environment.

Health Check
Last Commit

22 hours ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
1
Star History
17 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.