Turtlebot3 rosserial

I am learning ROS using Turtlebot3. I have installed the ROS FOXY version and I came to know that the communication with the open CR is through rosserial.

Isnt rosserial for ROS 1 or will it work for ROS2 as well?

if the communication between openCR and Rasbpi is through something different, kindly inform.


Hi @Sarwan
OpenCR ROS2 firmware does not use rosserial, but uses DYNAMIXEL Protocol 2.0 to communicate with Raspberry Pi by creating a virtual control table on OpenCR as a slave module like DYNAMIXEL.
Thank you.

Hi Will,
Thanks for the info. Is there any documentation on how it can be done?

But still, the turtlebot core publishes the odometry, joint states tf and much more information. It is also subscribed to cmd vel topic. All these are done using the virtual control table in OpenCR?

I am building a mars rover using Jetson xavier , opencr and dynamixels. I would like to run ros in opencr to get information similar to turtlebot3.

Any information for above questions will help me a lot.


Sorry about the belated response.
In ROS2, TB3 SBC and OpenCR communicates with DYNAMIXEL Protocol 2.0 to access the control table created in the OpenCR as below.

The main loop of the OpenCR updates the control table values such as IMU, Odometry, or parses updated value by the SBC such as cmd_vel to create another DYNAMIXEL Protocol 2.0 to control the DYNAMIXEL that is attached to the wheels.

In the TB3 node, for example, cmd_vel_callback() subscribes cmd_vel and writes the cmd_vel value to OpenCR using dxl_sdk_wrapper which helps to assemble DYNAMIXEL Protocol 2.0

You might also want to check out the DYNAMIXEL Protocol 2.0 for better understanding.
Between SBC and OpenCR communication, Read and Write instructions are mainly used while OpenCR and DYNAMIXEL mainly uses Sync Read and Sync Write.


Hi Will,
Thanks a lot for the information. I have gone through it and implemented the dynamixel wrapper for my project.

I am trying to use micro ros to communicate with openCr and I am having trouble with that.

There is no information I could find related to the micro ros implementation in the turtlebot3. When I checked the header files and learnt that fastrtps is installed. But could not understatnd how it is done.

Could you please infom me how ros2 communication is done and If I am right , please tell me how the fastrtps implementation is done.