Universal robotics infrastructure - control any robot from servo to rocket
Project description
robo-infra
Universal robotics infrastructure for any hardware, any project.
Overview
robo-infra is a hardware-agnostic robotics infrastructure library designed to work with any robotics projectโfrom hobby servos to industrial robots, from quadcopters to autonomous vehicles.
Key Features
- ๐ Universal Hardware Abstraction - Works with any servo, motor, sensor, or controller
- ๐ฎ Simulation-First - Everything works without hardware by default
- ๐ค AI-Native - Built-in integration with
ai-infrafor LLM-controlled robots - ๐ API-Ready - Seamless integration with
svc-infrafor REST/WebSocket APIs - ๐ก๏ธ Safety-First - Comprehensive limits, emergency stops, and collision detection
- ๐ Observable - Full telemetry, logging, and monitoring built-in
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Your Application โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Controllers โ Motion Planning โ Safety Systems โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Actuators (Servos, Motors) โ Sensors (IMU, Distance) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Hardware Drivers โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Buses (I2C, SPI, UART) โ Pins (GPIO, PWM, ADC) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Platforms: Raspberry Pi โ Arduino โ Jetson โ Simulation โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Installation
# Core package (simulation only)
pip install robo-infra
# With Raspberry Pi support
pip install robo-infra[raspberry-pi]
# With all hardware support
pip install robo-infra[hardware]
# With AI integration
pip install robo-infra[ai]
# With API integration
pip install robo-infra[api]
# Everything
pip install robo-infra[all]
Quick Start
from robo_infra.actuators import Servo
from robo_infra.core.types import Limits
# Create a servo (works in simulation by default)
servo = Servo(
name="gripper",
channel=0,
limits=Limits(min_value=0, max_value=180),
)
# Move to position
await servo.move_to(90)
# Get current position
print(f"Position: {servo.position}ยฐ")
With Real Hardware
from robo_infra.drivers import PCA9685Driver
from robo_infra.actuators import Servo
# Initialize hardware driver
driver = PCA9685Driver(i2c_address=0x40)
# Attach servo to driver
servo = Servo(
name="gripper",
driver=driver,
channel=0,
)
await servo.move_to(90)
AI Integration
from ai_infra import Agent
from robo_infra.actuators import Servo
from robo_infra.integrations import RobotTools
# Create robot components
servo = Servo(name="arm", channel=0)
# Export as AI tools
tools = RobotTools([servo])
# Use with AI agent
agent = Agent(tools=tools.as_tools())
await agent.run("Move the arm to 45 degrees")
API Integration
from svc_infra import create_app
from robo_infra.actuators import Servo
from robo_infra.integrations import RobotRouter
# Create robot components
servo = Servo(name="arm", channel=0)
# Export as API router
router = RobotRouter([servo])
# Add to app
app = create_app()
app.include_router(router.as_router(), prefix="/robot")
Core Concepts
Actuators
Physical components that create movement:
- Servo - Position-controlled rotational actuators
- Motor - Speed-controlled rotational actuators
- Stepper - Precise step-based motors
- LinearActuator - Linear motion actuators
Sensors
Components that measure the environment:
- IMU - Inertial measurement (accelerometer, gyroscope)
- Distance - Distance measurement (ultrasonic, ToF, IR)
- Temperature - Temperature sensors
- Current - Current sensing for motor feedback
Drivers
Hardware interfaces:
- PCA9685 - 16-channel PWM driver
- ADS1115 - 4-channel ADC
- MCP23017 - 16-bit I/O expander
Controllers
High-level control systems:
- ArmController - Robotic arm coordination
- DriveController - Differential/holonomic drive
- FlightController - Quadcopter/drone control
Documentation
Part of the nfrax Ecosystem
robo-infra is designed to work seamlessly with:
- svc-infra - Backend infrastructure (API, auth, database)
- ai-infra - AI/LLM infrastructure (agents, tools, embeddings)
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robo_infra-0.1.9.tar.gz.
File metadata
- Download URL: robo_infra-0.1.9.tar.gz
- Upload date:
- Size: 132.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85a7de174b25aa0f3991a4bec35eca4829c749506f54499da22f098c80de4c19
|
|
| MD5 |
74543586cfabecfb7bc94645ee9dac12
|
|
| BLAKE2b-256 |
d827e26c9aebdaff16659200a8a5489baf0b8bc017d464999bcc9e4f4d4863e1
|
Provenance
The following attestation bundles were made for robo_infra-0.1.9.tar.gz:
Publisher:
publish-pypi.yml on nfraxlab/robo-infra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
robo_infra-0.1.9.tar.gz -
Subject digest:
85a7de174b25aa0f3991a4bec35eca4829c749506f54499da22f098c80de4c19 - Sigstore transparency entry: 770684681
- Sigstore integration time:
-
Permalink:
nfraxlab/robo-infra@9584d0736a2db8889ba460adc9c65df02db33126 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/nfraxlab
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@9584d0736a2db8889ba460adc9c65df02db33126 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file robo_infra-0.1.9-py3-none-any.whl.
File metadata
- Download URL: robo_infra-0.1.9-py3-none-any.whl
- Upload date:
- Size: 161.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f405b02d623f26c6815471fb4892f775205ebb7a43b67cb5bdb9e699f8a77a6c
|
|
| MD5 |
8b8c89ae6791787dc670caea00a81e59
|
|
| BLAKE2b-256 |
6dba822325a120de4876d43bb7ef593936ec28f06c4fedcc6f981d469bc1c48a
|
Provenance
The following attestation bundles were made for robo_infra-0.1.9-py3-none-any.whl:
Publisher:
publish-pypi.yml on nfraxlab/robo-infra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
robo_infra-0.1.9-py3-none-any.whl -
Subject digest:
f405b02d623f26c6815471fb4892f775205ebb7a43b67cb5bdb9e699f8a77a6c - Sigstore transparency entry: 770684682
- Sigstore integration time:
-
Permalink:
nfraxlab/robo-infra@9584d0736a2db8889ba460adc9c65df02db33126 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/nfraxlab
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@9584d0736a2db8889ba460adc9c65df02db33126 -
Trigger Event:
workflow_run
-
Statement type: