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

Tech-Parivartan/r2r-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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.

Watch the R2R Protocol Overview

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 :

Abstract architecture of the R2R protocol, showcasing the components and their interactions R2R Protocol Architecture

Detailed architecture of the R2R protocol, showcasing the components and their interactions. R2R Protocol Architecture

πŸ“˜ 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)