Hello ROS community,
I’d like to share that I’ve been working on making ROS 2 packages pip-installable with a project called ros-python-wheels! Furthermore, a select number of ROS packages are made available on a Python package index which I’ve hosted at Cloudsmith.io
Getting started with ROS 2 in Python is as simple as running:
pip install --extra-index-url https://dl.cloudsmith.io/public/ros-python-wheels/kilted/python/simple ros-rclpy[fastrtps]
Key Benefits
This enable a first-class developer experience when working with ROS in Python projects:
-
Easy Project Integration: To include the ROS Python Client (rclpy) in a Python project, simply add
ros-rclpy[fastrtps]with its package repository to yourpyproject.tomlfile. -
Enable Modern Python Tooling: Easily manage Python ROS dependencies using modern Python tools like uv and Poetry.
-
Lightweight: The wheels of rclpy all of its dependencies have a total size of around 15MB.
-
Portable: Allows ROS to be run on different Linux distributions.
Comparison
This approach provides a distinct alternative to existing solutions:
- In comparison to RoboStack, wheels are more lightweight and flexible than conda packages.
- rospypi is a similar approach for ROS 1, whereas ros-python-wheels targets ROS 2.
I’d love to hear your thoughts on this project. I’d also appreciate a star on my project if you find this useful or if you think this is a good direction for ROS!