Skip to main content

robo-infra

Robotics infrastructure SDK for prototyping and development.

Beta Software: This library is under active development. APIs may change. Not yet validated on real hardware in production environments.

PyPI CI Python License Status

Overview

robo-infra is a hardware-agnostic robotics SDK designed for prototyping, development, and educational projects. It provides simulation-first development with optional real hardware support.

Key Features

  • Hardware Abstraction - Common interface for servos, motors, sensors, and controllers
  • Simulation-First - Everything works without hardware by default
  • AI-Native - Built-in integration with ai-infra for LLM-controlled robots
  • API-Ready - Seamless integration with svc-infra for 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 Only (Minimal)

For embedded systems or when you just need robotics abstractions:

pip install robo-infra

With AI Integration

For LLM-controlled robots using ai-infra:

pip install robo-infra[ai]

With API Integration

For REST/WebSocket APIs using svc-infra:

pip install robo-infra[api]

With Hardware Support

For real hardware buses (I2C, SPI, Serial, CAN):

pip install robo-infra[hardware]

Full Installation

Install everything:

pip install robo-infra[full]

Platform-Specific Bundles

Platform Command
Raspberry Pi pip install robo-infra[raspberry-pi]
NVIDIA Jetson pip install robo-infra[jetson]
Generic Linux pip install robo-infra[hardware]

Granular Hardware Extras

Feature Extra Command
I2C sensors [i2c] pip install robo-infra[i2c]
SPI devices [spi] pip install robo-infra[spi]
Serial/UART [serial] pip install robo-infra[serial]
CAN bus [can] pip install robo-infra[can]
GPIO [gpio] pip install robo-infra[gpio]

Vision & Camera Extras

Feature Extra Command
OpenCV [vision] pip install robo-infra[vision]
Intel RealSense [realsense] pip install robo-infra[realsense]
Luxonis OAK [oak] pip install robo-infra[oak]
Raspberry Pi Camera [picamera] pip install robo-infra[picamera]
All cameras [cameras] pip install robo-infra[cameras]

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.

Metadata

Release files for robo-infra 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robo-infra 0.5.3
File Size Uploaded Provenance
robo_infra-0.5.3.tar.gz 505.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for robo-infra 0.5.3
File Interpreter ABI Platform
robo_infra-0.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / robo_infra-0.5.3.tar.gz

Download URL robo_infra-0.5.3.tar.gz
Size 505.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c897a556ceb000332e35f24242c2ec96821083b08af67e24c95704f96b96e66a
BLAKE2b-256 checksum
How to use checksums
64490bc2cbd0b92970a61455ba20507bd1b5eb3bbba3ba720da2af2afbf7f783
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / robo_infra-0.5.3-py3-none-any.whl

Download URL robo_infra-0.5.3-py3-none-any.whl
Size 587.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93117780d47c03a1fdf04c22fbfd1f5870d4609765ccf6b796463344302221f9
BLAKE2b-256 checksum
How to use checksums
a1db8dfca97cb89ca1f921afc457a6fafcc9aa4b6482f418df93bd6736455fd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Security for robo-infra 0.5.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page