Skip to main content

Agent ROS Bridge - Universal ROS1/ROS2 bridge for AI agents to control robots and embodied intelligence systems

Project description

Agent ROS Bridge

Universal ROS1/ROS2 bridge for AI agents to control robots and embodied intelligence systems.

CI PyPI License


Quick Start

Production (requires ROS1 or ROS2)

pip install agent-ros-bridge
python run_bridge.py  # Auto-detects ROS1 Noetic or ROS2 Humble/Jazzy

Demo/Testing (no ROS required)

pip install agent-ros-bridge
python examples/quickstart/mock_bridge.py  # Simulated robot

Native ROS (Recommended for Development)

Single ROS Version (auto-detect):

# One-line installer
curl -sSL https://raw.githubusercontent.com/webthree549-bot/agent-ros-bridge/main/scripts/install-native.sh | bash

# Run with native ROS
source /opt/ros/humble/setup.bash  # or noetic, jazzy
python run_bridge.py

Dual ROS1 + ROS2 (simultaneous):

# Source both ROS environments
source /opt/ros/noetic/setup.bash
source /opt/ros/humble/setup.bash

# Run dual bridge
python run_bridge_dual_ros.py

See docs/NATIVE_ROS.md for detailed native installation.

Web Dashboard

# Start bridge (in another terminal)
cd examples/quickstart && ./run.sh

# Start dashboard
python dashboard/server.py
# Open http://localhost:8080 in browser

Fleet Orchestration (Multi-Robot)

# Start fleet orchestrator with 4 simulated robots
cd examples/fleet && ./run.sh

# Query fleet status
wscat -c ws://localhost:8771
> {"command": {"action": "fleet.status"}}
> {"command": {"action": "fleet.metrics"}}
> {"command": {"action": "fleet.submit_task", "parameters": {"type": "navigate", "target": "zone_a"}}}

Arm Robot Control (Manipulation)

# Control UR5 arm
cd examples/arm && ./run.sh --arm-type ur --demo pick_place

# Control xArm
cd examples/arm && ./run.sh --arm-type xarm

# Interactive control
cd examples/arm && ./run.sh --arm-type ur --demo interactive
# Then: wscat -c ws://localhost:8772

ROS Actions (Navigation, Planning)

# Navigation action demo
cd examples/actions && ./run.sh --action navigate

# Manipulation trajectory demo
cd examples/actions && ./run.sh --action manipulate

# Interactive action control
cd examples/actions && ./run.sh --action interactive
# Then: wscat -c ws://localhost:8773
# Send: {"command": {"action": "actions.navigate", "parameters": {"x": 5.0, "y": 3.0}}}

Prometheus Metrics (Monitoring)

# Start metrics server
cd examples/metrics && ./run.sh

# View metrics
curl http://localhost:9090/metrics

# For Grafana:
# 1. Import dashboards/grafana-dashboard.json
# 2. Add Prometheus data source: http://localhost:9090

Project Structure

agent-ros-bridge/                 # Repository root
├── agent_ros_bridge/            # ⭐ Core source package
│   ├── gateway_v2/              # Main gateway implementation
│   │   ├── core.py              # Bridge class
│   │   ├── auth.py              # Authentication
│   │   ├── transports/          # Communication protocols
│   │   └── connectors/          # ROS connectors
│   ├── fleet/                   # Fleet orchestration
│   ├── plugins/                 # Robot plugins (arm, etc.)
│   ├── actions/                 # ROS actions support
│   └── metrics/                 # Prometheus metrics
├── tests/                       # Test suite
├── examples/                    # ⭐ Runnable examples (7 demos)
│   ├── quickstart/              #   Basic bridge usage
│   ├── fleet/                   #   Multi-robot coordination
│   ├── auth/                    #   JWT authentication
│   ├── mqtt_iot/                #   IoT sensor integration
│   ├── actions/                 #   ROS navigation/actions
│   ├── arm/                     #   Robotic arm control
│   └── metrics/                 #   Prometheus monitoring
├── docs/                        # Documentation (40,000+ words)
├── scripts/                     # Utility scripts
├── config/                      # Configuration templates
├── docker/                      # Docker containers
├── dashboard/                   # Web dashboard
├── Makefile                     # Build automation
└── pyproject.toml              # Package configuration

See Repository Structure for complete details.

Features

  • Multi-Protocol: WebSocket, gRPC, MQTT, TCP
  • Multi-Robot: Manage fleets of robots
  • Fleet Orchestration: Task allocation, load balancing, coordination
  • Arm Robot Control: UR, xArm, Franka manipulation support
  • ROS Actions: Navigation, motion planning, long-running tasks
  • Prometheus Metrics: Production monitoring with Grafana dashboards
  • Multi-ROS: Connect to multiple ROS1/ROS2 endpoints simultaneously
  • Dual ROS: Run ROS1 + ROS2 in the same bridge instance
  • Remote ROS: Connect to robots over the network
  • Plugin System: Build custom applications
  • ROS Support: ROS1 Noetic, ROS2 Humble/Jazzy/Iron
  • Cloud-Native: Docker, Kubernetes ready

Development

The repository maintains strict separation between source code and build artifacts:

# Clone and setup
git clone https://github.com/webthree549-bot/agent-ros-bridge.git
cd agent-ros-bridge

# Install in development mode
make install-dev

# Development workflow
make format      # Format code
make test        # Run tests
make check       # Lint + test

# Clean build artifacts
make clean       # Remove all generated files
make build       # Create wheel and sdist

See CONTRIBUTING.md and Repository Structure for details.

Documentation

Document Description
User Manual Complete guide (23,000+ words) - Installation, tutorials, troubleshooting
API Reference Full API docs - Classes, methods, examples
Native ROS Ubuntu/ROS installation and setup
Multi-ROS Fleet management and coordination
Docker vs Native Deployment strategy comparison
DDS Architecture ROS2/DDS relationship explained
Repository Structure Clean source/build separation

Quick Links:

Installation

Via PyPI

pip install agent-ros-bridge

Via ClawHub

openclaw skills add agent-ros-bridge

From Source

git clone https://github.com/webthree549-bot/agent-ros-bridge.git
cd agent-ros-bridge
pip install -e ".[dev]"

Usage

Python API

from agent_ros_bridge import Bridge
from agent_ros_bridge.transports.websocket import WebSocketTransport

bridge = Bridge()
bridge.transport_manager.register(WebSocketTransport({"port": 8765}))
await bridge.start()

CLI

agent-ros-bridge --demo
agent-ros-bridge --config ./config.yaml

License

MIT License


Made with ❤️ by the Agent ROS Bridge Team

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

agent_ros_bridge-0.2.0.tar.gz (106.2 kB view details)

Uploaded Source

Built Distribution

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

agent_ros_bridge-0.2.0-py3-none-any.whl (55.3 kB view details)

Uploaded Python 3

File details

Details for the file agent_ros_bridge-0.2.0.tar.gz.

File metadata

  • Download URL: agent_ros_bridge-0.2.0.tar.gz
  • Upload date:
  • Size: 106.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for agent_ros_bridge-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b8ff0de7360426442f045ce9eb8951867959a3ba7716c9c7ba8995eb5335ae2c
MD5 59ddcbd613bd5de2cb2d325628c38ccb
BLAKE2b-256 5ae6d3fe9b5da16af793ce11f534c6ceeb62922f42183603675a5ca6850363a0

See more details on using hashes here.

File details

Details for the file agent_ros_bridge-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_ros_bridge-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d5c0aae1c251774f0df7fcd2a8fc384fa0852881392d3cdc2ca9785929349c4
MD5 bf84ccecc48061079ed02c52fcc8bf04
BLAKE2b-256 a301e9ed93e32f3287b496e9729d0489f619707c2dbb42d3e79e27a950c04b29

See more details on using hashes here.

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