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

gramaziokohler
143 Stars 29 Forks MIT License 261 Commits 11 Opened issues

Description

Python ROS Bridge library

Services available

!
?

Need anything else?

Contributors list

============================

roslibpy: ROS Bridge library

.. start-badges

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

.. end-badges

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.

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 3.x and IronPython 2.7.

Installation

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.

Documentation

The full documentation, including examples and API reference is available on

readthedocs 
_.

Contributing

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

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

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!

Credits

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

.. _roslibjs: http://wiki.ros.org/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.