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.
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 Guide
- Docker vs Native Decision Matrix
- Repository Structure
- WebSocket Protocol
- Fleet Management
- Troubleshooting
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
Made with ❤️ by the Agent ROS Bridge Team
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8ff0de7360426442f045ce9eb8951867959a3ba7716c9c7ba8995eb5335ae2c
|
|
| MD5 |
59ddcbd613bd5de2cb2d325628c38ccb
|
|
| BLAKE2b-256 |
5ae6d3fe9b5da16af793ce11f534c6ceeb62922f42183603675a5ca6850363a0
|
File details
Details for the file agent_ros_bridge-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agent_ros_bridge-0.2.0-py3-none-any.whl
- Upload date:
- Size: 55.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d5c0aae1c251774f0df7fcd2a8fc384fa0852881392d3cdc2ca9785929349c4
|
|
| MD5 |
bf84ccecc48061079ed02c52fcc8bf04
|
|
| BLAKE2b-256 |
a301e9ed93e32f3287b496e9729d0489f619707c2dbb42d3e79e27a950c04b29
|