Python ROS Bridge library
.. image:: https://readthedocs.org/projects/roslibpy/badge/?style=flat :target: https://roslibpy.readthedocs.io/en/latest/ :alt: Documentation Status
.. image:: https://img.shields.io/badge/docs-%E4%B8%AD%E6%96%87-brightgreen.svg :target: https://roslibpy-docs-zh.readthedocs.io :alt: Documentation: Chinese translation
.. image:: https://github.com/gramaziokohler/roslibpy/workflows/build/badge.svg :target: https://github.com/gramaziokohler/roslibpy/actions :alt: Github Actions CI Build Status
.. image:: https://img.shields.io/github/license/gramaziokohler/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: License
.. image:: https://img.shields.io/pypi/v/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: PyPI Package latest release
.. image:: https://anaconda.org/conda-forge/roslibpy/badges/version.svg :target: https://anaconda.org/conda-forge/roslibpy
.. image:: https://img.shields.io/pypi/implementation/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: Supported implementations
Python ROS Bridge library allows to use Python and IronPython to interact with
ROS, the open-source robotic middleware. It uses WebSockets to connect to `rosbridge 2.0 <http://wiki.ros.org/rosbridgesuite>`_ and provides publishing, subscribing, service calls, actionlib, TF, and other essential ROS functionality.
rospy_ library, this does not require a local ROS environment, allowing usage from platforms other than Linux.
The API of roslibpy is modeled to closely match that of
Roslibpy runs on Python 3.x and IronPython 2.7.
To install roslibpy, simply use
pip install roslibpy
For IronPython, the
pipcommand is slightly different::
ipy -X:Frames -m pip install --user roslibpy
Remember that you will need a working ROS setup including the rosbridge server and TF2 web republisher accessible within your network.
The full documentation, including examples and API reference is available on
Make sure you setup your local development environment correctly:
pip install -r requirements-dev.txt
You're ready to start coding!
During development, use
pyinvoke_ tasks on the command prompt to ease recurring operations:
invoke clean: Clean all generated artifacts.
invoke check: Run various code and documentation style checks.
invoke docs: Generate documentation.
invoke test: Run all tests and checks in one swift command.
invoke: Show available tasks.
For more details, check the Contributor's Guide available as part of
The default branch was recently renamed to
main. If you've already cloned this repository, you'll need to update your local repository structure with the following lines:
git branch -m master main git fetch origin git branch -u origin/main main
Ready to release a new version roslibpy? Here's how to do it:
semver_, i.e. we bump versions as follows:
minor: backwards-compatible features added.
major: backwards-incompatible changes.
CHANGELOG.rstwith all novelty!
Ready? Release everything in one command:
invoke release [patch|minor|major]
This library is based on
roslibjs_ and to a large extent, it is a line-by-line port to Python, changing only where a more idiomatic form makes sense, so a huge part of the credit goes to the
.. _roslibjs: http://wiki.ros.org/roslibjs