Skip to main content

Python ROS Bridge library.

Project description

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 and provides publishing, subscribing, service calls, actionlib, TF, and other essential ROS functionality.

Unlike the 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 roslibjs.

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 tf2_web_republisher.

Roslibpy runs on Python 2.7 and 3.x and IronPython 2.7.


To install roslibpy, simply use pip:

pip install roslibpy

For IronPython, the pip 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 readthedocs.


Make sure you setup your local development environment correctly:

  • Clone the roslibpy repository.
  • Create a virtual environment.
  • Install development dependencies:
pip install -r requirements-dev.txt

You’re ready to start coding!

During development, use pyinvoke tasks on the command line 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.

Releasing this project

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

  • We use semver, i.e. we bump versions as follows:
    • patch: bugfixes.
    • minor: backwards-compatible features added.
    • major: backwards-incompatible changes.
  • Update the CHANGELOG.rst with all novelty!
  • Ready? Release everything in one command:
invoke release [patch|minor|major]
  • Profit!


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.



  • Unsubscribing from a listener no longer requires the original callback to be passed.



  • Fix JSON serialization error on TF Client (on Python 3.x)



  • Add support for IronPython 2.7


  • Handler on_ready now defaults to run the callback in thread


  • Rename run_event_loop to the more fitting run_forever



  • Minimal documentation fixes



  • Initial version

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for roslibpy, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size roslibpy-0.3.0-py2.py3-none-any.whl (29.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size roslibpy-0.3.0.tar.gz (32.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page