Python ROS Engine¶
A pure Python implementation of ROS2 core functionality with bridging capabilities to interact with native ROS nodes.
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
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]
Message Types¶
The Python ROS Engine supports a wide range of message types:
Primitive Types¶
Bool
: Boolean valuesString
: String valuesInt8
,Int16
,Int32
,Int64
: Signed integer valuesUInt8
,UInt16
,UInt32
,UInt64
: Unsigned integer valuesFloat32
,Float64
: Floating point valuesEmpty
: Empty messagesTime
: Time valuesDuration
: Duration values
Multi-dimensional Array Types¶
ByteMultiArray
: Multi-array of bytesInt8MultiArray
,Int16MultiArray
,Int32MultiArray
,Int64MultiArray
: Multi-arrays of integer valuesUInt8MultiArray
,UInt16MultiArray
,UInt32MultiArray
,UInt64MultiArray
: Multi-arrays of unsigned integer valuesFloat32MultiArray
,Float64MultiArray
: Multi-arrays of floating point values
Getting Started¶
To get started with the Python ROS Engine, check out our Installation Guide and Usage Guide.
Documentation¶
- API Documentation - Detailed information about all classes and methods
- Bridging with Native ROS - Information about interacting with native ROS systems
- Launch System - Information about the launch system for managing multiple nodes
- Usage Guide - Comprehensive guide on how to use the engine
Examples¶
See our Examples page for complete working examples demonstrating various features of the Python ROS Engine.
We've also included a Complete Example Project that shows how to build a robot system with multiple interconnected nodes using best practices.
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.