[TB3] Introducing ROS2 Tutorials

Hi :slight_smile:

Today, we are introducing new packages about TurtleBot3 for ROS2 !!!

Anyone who has TurtleBot3 can download revised Raspbian OS for Raspberry Pi 3, turtlebot3_core.ino for OpenCR and related packages(https://github.com/ROBOTIS-GIT/turtlebot3/tree/ros2)

TB3%20ROS2%20concept%20(2)

TurtleBot3 ROS2 packages includes bringup package, tele-operation package and cartographer package.

If you want to use TurtleBot3 in ROS2, please visit our e-manual :turtle:

http://emanual.robotis.com/docs/en/platform/turtlebot3/applications/#ros2

We specially thanks to OpenRobotics Memeber , ROS2 developer and ROS community and
eProsima developer julianbermudez, richiware, MiguelCompany, lemunozm

https://youtu.be/wzz54a8ppxI

8 Likes

We are releasing the software we used. Please refer if necessary.

ROS2 source code for TurtleBot3

3 Likes

One of the main points of ROS2 is MacOS and Windows support.
I am able to build and run ROS2 on my Mac, but I’m having trouble getting the turtlebot3 metapackages installed and running. I’m obviously unable to do apt install commands, so I skipped them, but python crashes (segmentation fault 11) when trying to run colcon build, unfortunately. Is it possible to use turtlebot3 with MacOS at this moment? if so, could you create a tutorial for that as well? :slight_smile:

Thanks a bunch for all your hard work!

Okay, so I got a little further along. I’m not sure what exactly fixed it, but I did install PCL, Ceres-solver and boost using brew. Right now I’m having a problem building sensor_msgs and geometry_msgs because nddscpp and RTIConnextCpp are throwing erros. Probably due to RTI Connext 5.3 not being installed. I’ll update if and when I get further along.

Hi @nilswesthoff :slight_smile:

Thank you for inquiry about turtlebot3.
We have plan to support MacOS and Windows near future.

And this tutorial don’t require dependency about RTI Connext 5.3. We used to Free-RTPS.
How did you install ROS2 in your laptop? I tested ROS2 is installed through source not binary in Linux.

I installed ROS2 using the official ROS2 wiki. The ROS2 build is complaining about connext_cmake_module not working, but other than that, the talker/listener example seems to work fine.

When trying to install the Turtlebot 3 dependencies, it’s not finding the ament_package module, which I had fixed before, but is back after installing RTI Connext.

Full logs after source local_setup.bash and colcon build:

Starting >>> cartographer
Starting >>> cartographer_ros_msgs
Starting >>> pcl_conversions
Starting >>> turtlebot3_description
Starting >>> turtlebot3_msgs                                                                                                                    
Starting >>> turtlebot3_teleop
--- stderr: cartographer_ros_msgs                                                                                                                   
CMake Error at CMakeLists.txt:32 (find_package):
  By not providing "Findgeometry_msgs.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "geometry_msgs", but CMake did not find one.

  Could not find a package configuration file provided by "geometry_msgs"
  with any of the following names:

    geometry_msgsConfig.cmake
    geometry_msgs-config.cmake

  Add the installation prefix of "geometry_msgs" to CMAKE_PREFIX_PATH or set
  "geometry_msgs_DIR" to a directory containing one of the above files.  If
  "geometry_msgs" provides a separate development package or SDK, be sure it
  has been installed.


---
Failed   <<< cartographer_ros_msgs	[ Exited with code 1 ]
--- stderr: cartographer                                                                                                                          
CMake Error at /usr/local/Cellar/cmake/3.12.2/share/cmake/Modules/FindPkgConfig.cmake:659 (message):
  None of the required 'cairo>=1.12.16' found
Call Stack (most recent call first):
  CMakeLists.txt:36 (PKG_SEARCH_MODULE)


---
Aborted  <<< cartographer
Aborted  <<< turtlebot3_teleop
--- stderr: turtlebot3_description                                                                                                               
Traceback (most recent call last):
  File "/Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py", line 21, in <module>
    from catkin_pkg.package import parse_package_string
ModuleNotFoundError: No module named 'catkin_pkg'
CMake Error at /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:94 (message):
  execute_process(/usr/local/bin/python3
  /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py
  /Users/intern/turtlebot3_ws/src/turtlebot3/turtlebot3_description/package.xml
  /Users/intern/turtlebot3_ws/build/turtlebot3_description/ament_cmake_core/package.cmake)
  returned error code 1
Call Stack (most recent call first):
  /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:49 (_ament_package_xml)
  /Users/intern/ros2_ws/install/share/ament_lint_auto/cmake/ament_lint_auto_find_test_dependencies.cmake:30 (ament_package_xml)
  CMakeLists.txt:54 (ament_lint_auto_find_test_dependencies)


---
Aborted  <<< turtlebot3_description
--- stderr: turtlebot3_msgs                                                                                
Traceback (most recent call last):
  File "/Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py", line 21, in <module>
    from catkin_pkg.package import parse_package_string
ModuleNotFoundError: No module named 'catkin_pkg'
CMake Error at /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:94 (message):
  execute_process(/usr/local/bin/python3
  /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py
  /Users/intern/turtlebot3_ws/src/turtlebot3_msgs/package.xml
  /Users/intern/turtlebot3_ws/build/turtlebot3_msgs/ament_cmake_core/package.cmake)
  returned error code 1
Call Stack (most recent call first):
  /Users/intern/ros2_ws/install/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:49 (_ament_package_xml)
  /Users/intern/ros2_ws/install/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:126 (ament_package_xml)
  CMakeLists.txt:36 (rosidl_generate_interfaces)


---
Aborted  <<< turtlebot3_msgs
--- stderr: pcl_conversions                                     
CMake Error at CMakeLists.txt:21 (find_package):
  By not providing "Findsensor_msgs.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "sensor_msgs", but CMake did not find one.

  Could not find a package configuration file provided by "sensor_msgs" with
  any of the following names:

    sensor_msgsConfig.cmake
    sensor_msgs-config.cmake

  Add the installation prefix of "sensor_msgs" to CMAKE_PREFIX_PATH or set
  "sensor_msgs_DIR" to a directory containing one of the above files.  If
  "sensor_msgs" provides a separate development package or SDK, be sure it
  has been installed.


---
Aborted  <<< pcl_conversions

Summary: 0 packages finished [9.27s]
  1 package failed: cartographer_ros_msgs
  5 packages aborted: cartographer pcl_conversions turtlebot3_description turtlebot3_msgs turtlebot3_teleop
  5 packages had stderr output: cartographer cartographer_ros_msgs pcl_conversions turtlebot3_description turtlebot3_msgs
  4 packages not processed
The file /Users/intern/turtlebot3_ws/None does not exist.

Sorry, I think your case is not proper to discuss in this thread.
If you get a ticket in turtlebot3 issue page, you are going to get a comment.
Or you can use ROS Answers

1 Like

It’s great to see Turtlebot3 support for ROS2. Out of curiosity, why did you move to using a micro-rtps client for the LIDAR data instead of using roscpp directly? Additionally, it would be nice to see the source code for the new LIDAR node checked in directly instead of bundled in a tar file.

1 Like

Hi @nburek

Of course, using roscpp to publish LIDAR data is more suitable. But we had some problem to publish it in Raspberry Pi 3 (https://github.com/ros2/ros2/issues/568). We are going to debug what is problem.

And code for LIDAR node will be uploaded in github. Thank you for your suggestions :slight_smile:

Wondering about support for the Waffle instead of the burger?
That is the instructions for downloading the opencr_update shows in the instructions to

export OPENCR_MODEL=burger

I was assuming I could also choose waffle, but noticed the update file only appears to have burger. files…

I am assuming that for the OpenCr, I can probably simply build on my Windows machine using my fork/branch of OpenCR where I need to choose the ROS2 branch?

Thanks

Hello @KurtE

We have not provide firmware for Waffle yet.
But we are ready for new firmware and ros2 packages for TB3 including Waffle.
We will notice when new version is updated :slight_smile:

Thanks you for your interest.

This question might be weird but what is the major difference between catkin_make and colcon make? Thanks in advance. This is just out of curiosity:)

@shivaang12 This is off topic for this thread. Please ask questions on https://answers.ros.org And before you do, please search there for similar questions that someone may have already asked and gotten an answer.

Hi,

I’m having trouble following the Bringup tutorial. I don’t seem to have MicroRTPSAgent installed, there doesn’t seem to be any docs on it. The two links (https://github.com/ROBOTIS-GIT/OpenCR/tree/feature-ros2-micrortps) and (https://micro-rtps.readthedocs.io/en/latest/installation.html) are broken. Trying to install it from this tutorial (https://github.com/ROBOTIS-GIT/emanual/blob/8ecf59ec30f6d61f44172cfe9f431b5d880a000d/docs/en/popup/turtlebot3_ros2_sbc_setting.md) fails to build both for FastRTPS and Agent. Can you please help me out on this one.

Thank you

Hi, @GNREX

Please refer to turtlebot3 issue.
In this regard, we will make an official announcement.

Hi @GNREX

MicroRTSAgent lately suffers a renaming to Micro XRCE-DDS Agent. With such renaming links to documentation changed accordingly, in this case, you could find the official Micro XRCE-DDS documentation here: https://micro-xrce-dds.readthedocs.io/en/latest/index.html

Hi, @Kei .
I do not quite understand how ros2arduino comes here, I have TB3 Burger and struggling to follow the new ROS2 bringup emanual. I have a couple of errors with the lidar startup example,namely during ./turtlebot3_lidar:

" Error at create entities: participant 132 topic: 132 publisher: 132 darawriter:132 "
The lidar then stops spinning.
(Also is that a typo for datawriter?)

And when I just want to teleop key the wheels do not move, Is it a firmware issue as 1.0.0 has a bug with wheels?

@BorjaOuterelo Thank you, I believe ROBOTIS just recently updated their tutorials to fit the name changes. It is just my luck that I got a TB3 when all of these changes are happening.

Thank You

@GNREX,

The reason I described ros2arduino in the link I mentioned is that I applied ros2arduino with Micro-XRCE-DDS support to the TB3 firmware.
The existing firmware used MicroRTPS, but Micro-XRCE-DDS has not only changed its name, but also many internal codes. Therefore, we developed the ros2arduino library to support this and applied it to the TB3 firmware. So ros2arduino is very closely related to TB3.

Anyway, we modified e-manual because Micro-XRCE-DDS and new firmware were released.

Have you run Micro-XRCE-DDS-Agent properly?
This error occurs because Agent and client cannot communicate and XRCE-DDS entity cannot be created.

Please follow the installation instructions of the e-manual to make sure that your SBC is properly set up.

1 Like

Hi Robotis,

I am trying to get my turtlebot3 running with ROS2. As I understand from the emanual http://emanual.robotis.com/docs/en/platform/turtlebot3/applications/#ros2 there is no revised Raspbian image available. Is that correctly understood?

I have then tried to follow the guide “How to set sbc for turtlebot3 with ros2” with the Ubuntu Mate that I installed when I got the Turtlebot3. When I do this I get an error on an too old version of boost when doing the build of the lidar client. I only get boost version 1.58, but the CMakeLists require Boost 1.62.

What is currently the recommended way to get ROS2 on the turtlebot3 with Raspberry Pi3?

Thanks Tommy