Observed since 20 Oct, 23:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Universal interface for AI agents to control ROS robots via natural language
The Safety-First Production Gateway for AI-to-Robot Integration
When robots matter, safety comes first.
Why Us? • Quick Start • Safety First • Comparison • Docs
Unlike diagnostic tools (NASA ROSA) or research platforms (ROS-LLM), Agent ROS Bridge is the only production-ready gateway with built-in safety validation.
Deploying LLM-controlled robots in production is dangerous:
🛡️ Safety-First Architecture:
├── Human-in-the-Loop (enforced by default)
├── Shadow Mode Validation (200+ hours required)
├── Simulation Testing (10K scenarios, 95.93% success)
├── Gradual Rollout (0% → 100% autonomy)
└── Emergency Stop (always available)
| Feature | Agent ROS Bridge | NASA ROSA | ROS-LLM |
|---|---|---|---|
| Safety Validation | ✅ Shadow mode | ❌ None | ❌ None |
| Human-in-the-Loop | ✅ Enforced | ⚠️ Optional | ❌ No |
| Production Tests | ✅ 2,021 tests | ❓ Unknown | ❓ Unknown |
| Simulation | ✅ 10K scenarios | ⚠️ Basic | ❌ No |
| Multi-Protocol | ✅ 4 protocols | ❌ CLI only | ❌ ROS2 only |
| Fleet Support | ✅ Multi-robot | ❌ Single | ❌ Single |
| Published Research | 📝 Whitepaper in progress | ✅ arXiv | ✅ Nature |
pip install agent-ros-bridge
from agent_ros_bridge import RobotAgent
# Create agent with SAFETY enforced
agent = RobotAgent(
device_id='bot1',
llm_provider='moonshot',
require_confirmation=True, # Human approval required
)
# AI proposes, human approves, robot executes
result = agent.execute("Go to the kitchen")
print(f"Success: {result.success}")
print(f"AI confidence: {result.ai_confidence:.2f}")
print(f"Human approvals: {result.human_approvals}")
Output:
============================================================
🛡️ SAFETY STATUS
============================================================
Device: bot1 (mobile_robot)
Autonomous Mode: False ✅
Human-in-the-Loop: True ✅
Shadow Mode: True ✅
Validation Status: simulation_only
============================================================
🤖 AI Proposal: navigate_to(kitchen)
👤 Human: Approve? (y/n): y
✅ Executed successfully
# config/global_config.yaml
safety:
autonomous_mode: false # Human approval required
human_in_the_loop: true # All AI proposals need approval
shadow_mode_enabled: true # Collect validation data
min_confidence_for_auto: 0.95 # High confidence threshold
gradual_rollout_stage: 0 # Start at 0% autonomy
safety_validation_status: "simulation_only"
required_shadow_hours: 200.0 # Target for validation
min_agreement_rate: 0.95 # Required agreement %
Stage 0: Simulation-Only (Current)
├── ✅ 10K scenarios tested
├── ✅ 95.93% success rate
└── ⚠️ No real-world validation yet
Stage 1: Supervised Operation
├── Human approves all actions
├── Shadow mode collects data
└── Target: 200+ hours, >95% agreement
Stage 2: Gradual Rollout
├── 10% → 25% → 50% → 75% → 100%
├── High confidence only
└── Monitor at each stage
Stage 3: Full Autonomy
├── After validation complete
├── Emergency stop always available
└── Continuous monitoring
AI Agents ─┬─ WebSocket ─┐
├─ gRPC ──────┼──► ┌─────────────┐
├─ MQTT ──────┤ │ Gateway │
└─ TCP ───────┘ └──────┬──────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────┐
│Safety Layer │ │ Shadow Mode │ │ ROS1/ │
│(Validation) │ │ (Data Coll.) │ │ ROS2 │
└──────────────┘ └──────────────┘ └──────────┘
| Component | Purpose | Status |
|---|---|---|
| Gateway | Multi-protocol support | ✅ Stable |
| Safety Layer | Validation & enforcement | ✅ Implemented |
| Shadow Mode | AI-human decision logging | ✅ Active |
| Simulation | 10K scenario testing | ✅ Complete |
| Fleet | Multi-robot orchestration | ✅ Beta |
Agent ROS Bridge includes a modern web dashboard for robot control and monitoring.
# Start bridge + web dashboard
docker-compose --profile web up -d
# Access dashboard
open http://localhost:8081
# Start bridge
agent-ros-bridge --websocket-port 8765
# In another terminal, serve dashboard
cd agent_ros_bridge/web
python3 -m http.server 8081
# Access dashboard
open http://localhost:8081
| Dashboard | URL | Purpose |
|---|---|---|
| Control Dashboard | http://localhost:8081 | Robot control + shadow metrics |
| 3D Visualization | http://localhost:8080 | Gazebo/3D view (in ros2_jazzy) |
| Grafana | http://localhost:3000 | System monitoring |
The dashboard connects to the bridge via WebSocket:
ws://localhost:8765pip install agent-ros-bridge
docker pull agent-ros-bridge:jazzy-with-nav2
docker run -it agent-ros-bridge:jazzy-with-nav2
git clone https://github.com/webthree549-bot/agent-ros-bridge.git
cd agent-ros-bridge
pip install -e ".[dev]"
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=agent_ros_bridge --cov-report=html
# Run safety-critical tests only
pytest tests/unit/safety/ -v
# Run simulation tests (requires Docker)
pytest tests/e2e/ -v
Current Status:
| Milestone | Target | Status |
|---|---|---|
| Shadow Mode Data | 200 hours | 🟡 In Progress (0 hrs) |
| Agreement Rate | >95% | 🟡 In Progress (0%) |
| Simulation Validation | 10K scenarios | ✅ PASSED (95.93%) |
| ISO 10218 Review | Q3 2026 | ⏳ Planned |
| Insurance Review | Q4 2026 | ⏳ Planned |
If you use Agent ROS Bridge in research, please cite:
@software{agent_ros_bridge,
title = {Agent ROS Bridge: Safety-First Production Gateway for AI-to-Robot Integration},
author = {Agent ROS Bridge Contributors},
year = {2026},
url = {https://github.com/webthree549-bot/agent-ros-bridge}
}
MIT License - See LICENSE for details.
Built with safety in mind for production robotics deployments.
When robots matter, safety comes first.
pypistats · 59 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-20 – 2026-10-20 | 3 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-18 – 2026-10-18 | 5 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-17 – 2026-10-17 | 11 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-16 – 2026-10-16 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-15 – 2026-10-15 | 6 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-14 – 2026-10-14 | 7 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-13 – 2026-10-13 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-12 – 2026-10-12 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-11 – 2026-10-11 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-10 – 2026-10-10 | 18 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-09 – 2026-10-09 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-08 – 2026-10-08 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-06 – 2026-10-06 | 13 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-05 – 2026-10-05 | 4 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-04 – 2026-10-04 | 22 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-02 – 2026-10-02 | 6 | 2026-10-21T12:29:40.4275323Z |
| 2026-10-01 – 2026-10-01 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-30 – 2026-09-30 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-28 – 2026-09-28 | 8 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-27 – 2026-09-27 | 21 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-26 – 2026-09-26 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-23 – 2026-09-23 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-22 – 2026-09-22 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-21 – 2026-09-21 | 43 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-20 – 2026-09-20 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-16 – 2026-09-16 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-15 – 2026-09-15 | 12 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-14 – 2026-09-14 | 7 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-10 – 2026-09-10 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-08 – 2026-09-08 | 3 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-07 – 2026-09-07 | 42 | 2026-10-21T12:29:40.4275323Z |
| 2026-09-01 – 2026-09-01 | 4 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-31 – 2026-08-31 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-29 – 2026-08-29 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-28 – 2026-08-28 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-26 – 2026-08-26 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-25 – 2026-08-25 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-24 – 2026-08-24 | 5 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-23 – 2026-08-23 | 3 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-21 – 2026-08-21 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-17 – 2026-08-17 | 3 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-16 – 2026-08-16 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-15 – 2026-08-15 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-14 – 2026-08-14 | 6 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-13 – 2026-08-13 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-12 – 2026-08-12 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-11 – 2026-08-11 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-10 – 2026-08-10 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-09 – 2026-08-09 | 12 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-08 – 2026-08-08 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-07 – 2026-08-07 | 7 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-05 – 2026-08-05 | 4 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-04 – 2026-08-04 | 3 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-03 – 2026-08-03 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-08-02 – 2026-08-02 | 1 | 2026-10-21T12:29:40.4275323Z |
| 2026-07-29 – 2026-07-29 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-07-27 – 2026-07-27 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-07-24 – 2026-07-24 | 2 | 2026-10-21T12:29:40.4275323Z |
| 2026-07-23 – 2026-07-23 | 1 | 2026-10-21T12:29:40.4275323Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.6.8 | 13 Apr 2026 | 19 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 23:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:295843f965d0dba0f7be56ba9782048e05f6365bfb42d694febb9939ada7e657