Skip to main content

Universal robotics infrastructure - control any robot from servo to rocket

Project description

robo-infra

Universal robotics infrastructure for any hardware, any project.

PyPI CI Python License

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-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 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robo_infra-0.1.11.tar.gz (146.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robo_infra-0.1.11-py3-none-any.whl (178.9 kB view details)

Uploaded Python 3

File details

Details for the file robo_infra-0.1.11.tar.gz.

File metadata

  • Download URL: robo_infra-0.1.11.tar.gz
  • Upload date:
  • Size: 146.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for robo_infra-0.1.11.tar.gz
Algorithm Hash digest
SHA256 07ab7a33dcdb925ed9b9a4949234dd7cf96af9971a6ee699de792f534c43dd90
MD5 db8a63f2a0dd65989297f77fd64dd9d4
BLAKE2b-256 2519de63622965fb9f3dc1f71ddd8eb4bc519a04becff349c5a50cae7d092107

See more details on using hashes here.

Provenance

The following attestation bundles were made for robo_infra-0.1.11.tar.gz:

Publisher: publish-pypi.yml on nfraxlab/robo-infra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file robo_infra-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: robo_infra-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 178.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for robo_infra-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 6cb6938e924f1611d964d8bf3a540c51cefb16d7b0e3a8d89f8363567f8ad09c
MD5 42d93ce25a010c7bee47091960cfc430
BLAKE2b-256 2b392a4db59f127c9cf486019d4fcf6adb292e8a973a036e029d1bbd7e79b63c

See more details on using hashes here.

Provenance

The following attestation bundles were made for robo_infra-0.1.11-py3-none-any.whl:

Publisher: publish-pypi.yml on nfraxlab/robo-infra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page