Need help with roslibpy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

159 Stars 34 Forks MIT License 269 Commits 10 Opened issues


Python ROS Bridge library

Services available


Need anything else?

Contributors list


roslibpy: ROS Bridge library

.. start-badges

.. image:: :target: :alt: Documentation Status

.. image:: :target: :alt: Documentation: Chinese translation

.. image:: :target: :alt: Github Actions CI Build Status

.. image:: :target: :alt: License

.. image:: :target: :alt: PyPI Package latest release

.. image:: :target:

.. image:: :target: :alt: Supported implementations

.. end-badges

Python ROS Bridge library allows to use Python and IronPython to interact with

, the open-source robotic middleware. It uses WebSockets to connect to `rosbridge 2.0 <>`_ and provides publishing, subscribing, service calls, actionlib, TF, and other essential ROS functionality.

Unlike the

_ 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


Main features

  • Topic publishing and subscribing.
  • Service calls (client).
  • Service advertisement (server).
  • ROS parameter management (get/set/delete).
  • ROS API services for getting ROS meta-information.
  • Actionlib support for interfacing with preemptable tasks.
  • TF Client via the

Roslibpy runs on Python 3.x and IronPython 2.7.


To install roslibpy, simply use

pip install roslibpy

For IronPython, the

command 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:

  • Clone the
    _ repository.
  • Create a virtual environment.
  • Install development dependencies:


pip install -r requirements-dev.txt

You're ready to start coding!

During development, use

_ 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 documentation 

The default branch was recently renamed to

. 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

Releasing this project

Ready to release a new version roslibpy? Here's how to do it:

  • We use

    _, i.e. we bump versions as follows:
    • patch
      : bugfixes.
    • minor
      : backwards-compatible features added.
    • major
      : backwards-incompatible changes.
  • Update the

    with all novelty!
  • Ready? Release everything in one command:


invoke release [patch|minor|major]
  • Profit!


This library is based on

_ 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 authors 

.. _roslibjs:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.