Skip to content

An world first open standardized protocol enabling communication for autonomous robots to exchange data, coordinate tasks, and collaborate in real-time environments in the age of AI.

License

Notifications You must be signed in to change notification settings

rawalraj022/r2r-protocol

 
 

Repository files navigation

Build Status PyPI version PyPI - Downloads

🤖 Robot-to-Robot (R2R) 🤖 Communication Protocol

R2R Protocol Banner

A standardized communication protocol for autonomous robots to exchange data, coordinate tasks, and collaborate in real-time environments.

License

The R2R Protocol enables seamless robot-to-robot interaction across industrial automation, swarm robotics, logistics, and multi-agent systems. It defines structured message formats, negotiation logic, discovery mechanisms, and extensible APIs.

R2R Protocol DifferentRobots

🧩 Features

✅ Structured JSON/Protobuf messaging

✅ Supports TCP/IP, UDP, MQTT, WebSocket

✅ Task negotiation (auction, consensus)

✅ Status & telemetry updates

✅ Optional authentication

✅ Extensible via plugins/modules

✅ Docker-ready

✅ GitHub Actions CI/CD integration

✅ Python SDK published on PyPI

📦 SDKs

Language Status Directory
🐍 Python ✅ Stable sdk/python
🦀 Rust ⏳ Coming Soon
🖥️ C++ ⏳ Coming Soon
🐹 Go ⏳ Coming Soon
🌐 JavaScript ⏳ Coming Soon

Want to contribute an SDK in your favorite language? Check out the contributing guide.

r2r-protocol System Architecture :

+-------------------+ | Monitoring UI | | (Optional Web App)| +--------+----------+ | | (HTTP/WebSocket) v +--------+----------+ +----------------------+ | Coordinator Server |<--->| Authentication Module| | - Task Assignment | | - Token/Cert Support | | - Robot Discovery | | - TLS Encryption | | - Negotiation Hub | +-----------+----------+ +--------+----------+ | | | | (WebSocket/TCP/MQTT) | v v +--------+----------+ +-----------+----------+ | Robot A | | Robot B | | - robot_id: bot_01 | | - robot_id: bot_02 | | - Capabilities | | - Capabilities | | - Status Updates | | - Task Execution | +--------+------------+ +----------+-----------+ | | | Send/Receive Messages | v v +--------+----------------------------+----------+ | Transport Layer | | - TCP/IP, UDP, WebSocket, MQTT, ROS2 (future) | +------------------+------------------------------+ | v +------------------+------------------------------+ | Message Processing Layer | | - Validate JSON/Protobuf | | - Route messages by type | | - Handle negotiation, commands, status updates | +-------------------------------------------------+ | v +------------------+------------------------------+ | SDK / Client Library | | - Python SDK (r2r-protocol package) | | - Easy-to-use APIs for sending/receiving | | - Docker-ready image for testing/deployment | +-------------------------------------------------+

📘 Documentation

See the full Protocol Specification.

🚀 Quick Start (Python SDK)

🔧 Install from PyPI

pip install r2r-protocol
from r2r_protocol import RobotClient

# Connect to R2R server
client = RobotClient(robot_id="bot_01", host="192.168.1.10")

# Send status update
client.send_status({
    "battery": 85,
    "position": {"x": 10.2, "y": 5.1},
    "task_progress": 0.75
})

🐳 Run with Docker

You can run the R2R SDK in a Docker container:

docker build -t r2r-sdk .
docker run -it r2r-sdk

This will start a sample client instance and verify that the SDK works.

⚙️ Development Setup

To contribute or extend the protocol:

  1. Clone the repo
git clone https://github.com/Tech-Parivartan/r2r-protocol.git 
cd r2r-protocol
  1. Set up Python environment
cd sdk/python
pip install -e .
  1. Install test dependencies
pip install pytest

🧪 Running Tests

Run unit tests using:

cd tests
python -m pytest test_messages.py

🛠️ Contributing

We welcome contributions! Please read our here to get started.

Ways to Help

  • Report bugs and suggest features
  • Write more comprehensive tests
  • Improve documentation and architecture diagrams
  • Build example applications and integrations

Please open an issue before submitting a PR so we can align on scope.

📜 License

The r2r-protocol is an open-source project by Tech Parivartan, under the Apache License 2.0. See the LICENSE file for details.

📬 Feedback & Support

Have questions, feature requests, or want to share how you're using R2R-Protocol?

Upcoming Features

  • Enhanced security features
  • Visualization tools for monitoring robot interactions
  • Support for more programming languages
  • Improved error handling and logging
  • Integration with popular robotics frameworks (ROS, OpenRAVE)

About

An world first open standardized protocol enabling communication for autonomous robots to exchange data, coordinate tasks, and collaborate in real-time environments in the age of AI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.6%
  • Dockerfile 4.4%