Skip to content

Python ROS Engine - A pure Python implementation of ROS2 functionality with bridging capabilities to interact with native ROS nodes. Features include Node lifecycle management, Publisher/Subscriber patterns, Service/Client communication, parameter handling, discovery mechanisms, and ROS1 bridging.

License

Notifications You must be signed in to change notification settings

yhbcode000/python-ros-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Python ROS2 Engine

A pure Python implementation of ROS2 core functionality with bridging capabilities to interact with native ROS nodes.

PyPI version PyPI version License Python Versions GitHub Pages

📁 Project Structure

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]
Loading

✨ Features

  • 🔄 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

💻 Installation

📦 From PyPI

pip install python-ros-engine

📂 From Source

git clone https://github.com/yhbcode000/python-ros-engine.git
cd python-ros-engine
pip install -e .

📚 Documentation

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.

🧪 Examples

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.

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details on how to contribute to this project.

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

Python ROS Engine - A pure Python implementation of ROS2 functionality with bridging capabilities to interact with native ROS nodes. Features include Node lifecycle management, Publisher/Subscriber patterns, Service/Client communication, parameter handling, discovery mechanisms, and ROS1 bridging.

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages