ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

ROS 2 Collaboration Bulletin Board

I’m working on rviz for ROS 2 by refactoring rviz from ROS 1 into parts and replacing ROS 1 specific parts only with ROS 2 ones. Here’s my plan:

I know some other people have already been working on this, so if you are let me know and hopefully we can work together on it!


I have been working on porting many packages which I will organize into various groups. All of the following packages are linked with more detail here. Some of the packages were ported merely to a compiling state and have not been properly tested.

As recommended by @allenh1 and OSRF, I plan to submit upstream PRs for each of these packages in the coming days.

Sensor packages:

SLAM packages:

I am in process of combining my own changes with those of @allenh1 so these link to the (soon to be) combined repos.

rqt (and other) packages:

I was looking to see the level of difficulty of getting rqt tools working and ported all the packages necessary to get rqt_dep to an initial working state.

I’ve also been porting rviz. My approach is not as thoughtful as @wjwwood’s approach: I removed all plugins and am adding them back in one at a time. So far I have: tf, map, and laser scan to some level of functionality.

One of my main motivation in doing this was to avoid needing to publish OccupancyGrid’s through the ros1_bridge.


How well has actionlib been ported? I’m interested on working on that, but in a more improving-not-just-porting way. Specifically, I want to make actions a first-class citizen (like messages and services) and write up a REP that specifies how they should be defined and used, so that tools can be more certain about what they are dealing with. It would be great to have an “official” rosaction tool, for example, and to not see 5 topics when I list the currently in use topics.

It’s on the near term roadmap, but we haven’t started it yet.

We will likely release an overview (maybe as detailed as a design document?) in the near future describing how we expect actions to look like in ROS2. Regarding a rosaction tool (for ROS1), there is an actionlib ticket discussing what the feature set of such a tool would be. We could use the ideas in that ticket as a base for a ros2 action tool in the future. Feel free to pitch ideas there!

Do you have a draft of that overview available yet? If not, would you like me to start working on one?

I think if all the guys work on ROS2 github, everyone can contribute to the community and easy to know the progress and synchronize the patch. If everyone fork one branch to develop , someone don’t know this web page. It will result in many duplicated work.
Contributing to ROS 2 github, it would also make developer feel the ROS2 community very active and open.
All the above , just my suggesiton:slight_smile:

We try to keep things on the ros2 github repository (at least for now), but not everyone has the permissions to create things there, and not everything belongs there. Since all administration of the organization has to go through the owners of the org, sometimes it is easier and more appropriate to have them on a different organization.

I consider this an alternative way to notify people of what your working on, not mutually exclusive with pushing things to the ros2 org.

This is great. How close is this to us being able to bag and playback data without needing the bridge anymore?

I haven’t done any work on rosbag or playback, so that is entirely unimplemented and not working.

As for not using the bridge, you can run rviz using ROS 2 and make use of several of the plugins to avoid having to pass data through the bridge. Some of the interesting working plugins are: tf, laser scan, map, and robot model. Others (odom, path, point) may work but I have not tested them.

Note that to use the robot model plugin it requires a change to the robot state publisher to publish the robot model (see this branch). I just created a PR for these changes.

You said you got tf working to some level of functionality. We have been running into issues when querying for transforms with lookupTransform. We query for a transform at a given time, and we always get a transform back that does not match the time stamp that was asked for. It is anywhere from a few milliseconds behind to 4 seconds ahead of the timestamp that was asked for. The error actually cycles through from being a bit behind to far in the future. Did you run into this when you were getting tf to work? I would give more detail (code, etc.) but did not think this thread was the right place. We can continue this discussion elsewhere if you have any thoughts that could help.

@vsherrod If you can reproduce it and believe that it’s a bug please open a ticket and we can dig into it there.

Edit: Actually you’re ahead of me, I see the ticket at

What is the status of this work? Did you submit this PR? I am mostly interested in diagnostics.

Haven’t had time to work on any of this recently. @karsten created a PR a couple weeks back to update diagnostic updater to work with ros2 ardent (and updated the urg packages as well). The other diagnostic packages have not yet been updated.

I just created this PR to make the ros2 changes more visible and eventually get them merged into a single repo.

Hope this answers your question.



I have been working on ROS2 nodes for the Raspberry Pi camera (a.k.a. raspicam) and the AprilTag detector. Both are implemented as components and are therefore composable for intraprocess communication.

I am open for all contributions and also don’t mind if the packages get moved to official ros2 groups like ros2-drivers or ros2-perception.

Raspberry Pi Camera (raspicam2)

This is a port of the original raspicam_node from ROS1.

AprilTag2 detector (apriltag2_node)

The implementation uses the original apriltag2 library from For integration with ament workspaces, I am using a CMake version of this library:

Given the camera parameters, apriltag2_node computes the pose of the marker in the camera frame. It also publishes the raw detections (including the quality of the detection for filtering) and therefore depends on apriltag_msgs definitions from

Hi, I have already ported the ROS2 cv_bridge which is necessary for ROS2 image processing in the perception applications with OpenCV, and I am trying to upstream it to hopefully benefit more ROS2 users, please let me know if you find any problems, thanks !

Here is some update to the ros2 cv_bridge, now ros2_cv_bridge has been officially upstream to the original ros-perception vision_opencv with a dedicated ros2 branch, please submit/fix issues there when you find to make it benefit more community users from now on, thanks a lot !

Can anyone update me regarding the porting of message_filters to ros 2 environment ? I will be happy to take up this task.

Actually, we have been porting the message_filters to ROS2, however, you know, it has some dependency to C++ Boost in ROS. now it works except for keeping its Boost dependency in ROS2, next to clean its dependency of Boost with the way in C++11/14, I think it’s good if you would like to help, maybe @jwang11 can update you for more details.

1 Like

For message_filters, I have completed functional porting from ROS to ROS2, and pass the unit test. Currently, I am working on drop boost dependency, which can expect done in 2 weeks. Then I’ll open source code ASAP.

@jwang11 I just started to take a look at message_filters for ROS2 yesterday, and it sounds like you may have made more progress. If you could open your code sooner, I have some time available to help collaborate and get this effort done sooner.