Cartographer and Navigation workable in beta2?

I can reproduce follower function in turtlebot_demo with latest code. Actually I am also very interested in the progress of Cartographer and navigation in ROS2, I’d like to know, is it ready to show demo of them in beta2? thanks a lot.

Yes, in beta2 we will have demos for cartographer, follower, and localization, all running on the Turtlebot2. We are still moving around some of the pieces, and we need to update the documentation, so stay tuned.

look forward to these demos

1 Like

I am trying to reproduce cartographer demo following the instructions in https://github.com/ros2/turtlebot2_demo. And I use ros1_bridge and rviz to visualize the slam. However, I can’t see anything in rivz, and in ros1_bridge, I can see a lot of error:

failed to create 2to1 bridge for topic ‘/tf’ with ROS 2 type ‘tf2_msgs/TFMessage’ and ROS 1 type ‘’: No template specialization for the pair
check the list of supported pairs with the --print-pairs option
failed to create 2to1 bridge for topic ‘/tf_static’ with ROS 2 type ‘tf2_msgs/TFMessage’ and ROS 1 type ‘’: No template specialization for the pair

I have also tried talker/listener sample using ros1_bridge, both direction work fine.

what release version of ROS 2 are you using? did you build the bridge yourself or are you using pre-built binaries? the bridge error messages you see suggest you’re either using an outdated version of ros1_bridge or that you have custom-built the ros1_bridge yourself and are missing support for TF2 messages.

I build from latest source code, https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos
src/ament/ament_tools/scripts/ament.py build --build-tests --symlink-install

I suspect that your bridge has only been built with minimal message support (you can verify this with the --print-pairs option as suggested). It needs to be built in a particular way to get tf2_msgs and nav_msgs etc support.

Please either switch to using the bridge from binaries, or follow these instructions to build the bridge from source: https://github.com/ros2/ros1_bridge/blob/master/README.md#build-the-bridge-from-source

This is mentioned in the demo instructions but I’ll update it to highlight that this step requires particular attention.

With beta2 release binary code, it is really workable. However, beta2 binary doesn’t include turtulebot_demo, so I can’t try cartographer and navigation. So, I’d suggest you release a full version for beta2, so user can easily evaluate the capabilities of ROS2. thanks a lot.

beta2 binaries for the turtlebot2 demo can be installed from debian packages if you don’t want to build the demo from source: https://github.com/ros2/turtlebot2_demo#installation-from-binaries

hope this helps

It looks like the bridge is not listed in the turtlebot instructions.
please run sudo apt install ros-r2b2-ros1-bridge to install the bridge

After resolve the ros1_bridge issue, ros1_bridge output looks ok now. In rviz, I can see /depth image, however I can’t see any map established? /map and /scan topic have noting to show. do I miss something?

I follow below steps

launch ros2 pkg prefix turtlebot2_cartographer/share/turtlebot2_cartographer/launch/turtlebot_carto_2d.py

Terminal A:

. /opt/ros/kinetic/setup.bash
roscore

Terminal B:

. /opt/ros/kinetic/setup.bash
. <YOUR_ROS2_WORKSPACE>
ros2 run ros1_bridge dynamic_bridge

Terminal C:

. /opt/ros/kinetic/setup.bash
rosrun rviz rviz

Finally, I can see /map now. cartographer and AMCL are workable. However, I don’t see the instruction how to specify a goal and navigate Robot to it with collision avoidance. is it supported by current ROS2?