Skip to content

personalrobotics/rosbridge_suite

 
 

Repository files navigation

NOTE (April 2023): This PRL fork of rosbridge_suite, and the corresponding PRL fork of roslibjs, is to account for the fact that the official rosbridge_suite and official roslibjs do not currently work with ROS2 actions. This is a PR to address that, and it formed the basis for these two PRL forks. If ROS2 action support is added to both rosbridge_suite and roslibjs, then these two PRL forks can be removed (and any code that uses them, like the PRL feeding_web_interface, updated).

rosbridge_suite

ROS Foxy version ROS Galactic version ROS Humble version ROS Rolling version

Server Implementations of the rosbridge v2 Protocol

rosbridge provides a JSON interface to ROS, allowing any client to send JSON to publish or subscribe to ROS topics, call ROS services, and more. rosbridge supports a variety of transport layers, including WebSockets and TCP. For information on the protocol itself, see the rosbridge protocol specification.

For full documentation, see the ROS wiki.

This project is released as part of the Robot Web Tools effort.

Packages

  • rosbridge_suite is a ROS meta-package including all the rosbridge packages.

  • rosbridge_library contains the Python API that receives JSON-formatted strings as input and controls ROS publishers/subscribers/service calls according to the content of the JSON strings.

  • rosbridge_server contains a WebSocket server implementation that exposes the rosbridge_library.

  • rosapi provides service calls for getting meta-information related to ROS like topic lists as well as interacting with the Parameter Server.

Clients

A rosbridge client is a program that communicates with rosbridge using its JSON API. rosbridge clients include:

  • roslibjs - A JavaScript API, which communicates with rosbridge over WebSockets.
  • jrosbridge - A Java API, which communicates with rosbridge over WebSockets.
  • roslibpy - A Python API, which communicates with rosbridge over WebSockets.
  • roslibrust - A Rust API, which communicates with rosbridge over WebSockets.

License

rosbridge_suite is released with a BSD license. For full terms and conditions, see the LICENSE file.

Authors

See the AUTHORS file for a full list of contributors.

Quality Declaration

This package claims to be in the Quality Level 3 category, see the Quality Declaration for more details.

Troubleshooting

See the TROUBLESHOOTING doc for common problems and solutions.

Release process

Releasing requires push access to RobotWebTools/rosbridge_suite as well as ros2-gbp/rosbridge_suite-release. For more details on how the release process works, see the bloom tutorial.

  1. Run catkin_generate_changelog to update CHANGELOG.rst files.
  2. Manually edit and clean up the changelogs. Commit the changes.
  3. Run catkin_prepare_release --bump [major/minor/patch] to bump versions in package.xml and push changes to origin.
  4. Run bloom-release commands to create PRs to update rosdistro:
    • bloom-release --rosdistro foxy --track foxy rosbridge_suite
    • bloom-release --rosdistro galactic --track galactic rosbridge_suite
    • bloom-release --rosdistro rolling --track rolling rosbridge_suite

Once the PRs are merged, packages will be available for each distro after the next sync. Build/sync status can be viewed at: foxy, galactic, rolling.

About

PRL copy of rosbridge_suite to enable ROS2 actions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.8%
  • CMake 1.2%