A pure Python implementation of ROS2 core functionality with bridging capabilities to interact with native ROS nodes.
graph TD
A[Python ROS Engine] --> B[Core Functionality]
A --> C[Bridging Capabilities]
A --> D[Launch System]
B --> B1[Node Management]
B --> B2[Publishers/Subscribers]
B --> B3[Services/Clients]
B --> B4[Parameters]
B --> B5[Timers]
C --> C1[ROS1 Bridge]
C --> C2[Message Translation]
D --> D1[Launch Description]
D --> D2[System Status]
- 🔄 Node creation and lifecycle management
- 📢 Publisher and subscriber patterns with Quality of Service (QoS) profiles
- 🤝 Service and client communication
- ⚙️ Parameter handling with callbacks
- 🔍 Topic and service discovery
- ⏱️ Timer functionality
- 🌉 ROS1 bridging capabilities for node/topic/service discovery
- 📨 Message translation between Python ROS engine and native ROS
- 🛠️ Configuration with Hydra best practices
- 🚦 Launch system for managing multiple nodes
- 📊 System status reporting for nodes, topics, and services
pip install python-ros-engine
git clone https://github.com/yhbcode000/python-ros-engine.git
cd python-ros-engine
pip install -e .
Comprehensive documentation is available at: https://yhbcode000.github.io/python-ros-engine/
For information about building and serving the documentation locally, see the project structure document which describes the build_docs.py
script that can be used for this purpose.
See the examples directory for complete working examples:
- 📢 Publisher/Subscriber examples
- 🤝 Service/Client examples
- 🌉 Bridge examples
- 🚦 Launch system examples
We've also included a complete example project that demonstrates how to build a robot system with multiple interconnected nodes.
We welcome contributions! Please see our Contributing Guide for details on how to contribute to this project.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.