Communication RaspberryPi<->OpenCr Turtlebot3 ROS2

I am a french student at an engineering school, and we use TurtleBot3 in our classes to learn ROS2. I have a project that involves creating a tutorial for operating the TurtleBot3 with ROS2, and I would like to understand in depth how communication works between the Raspberry Pi and the OpenCR board of a TurtleBot3 with ROS2.

In this forum, I read that the Dynamixel 2.0 protocol is used. However, my issue is that during the firmware installation on the OpenCR, I noticed that the Arduino code is the same for both ROS1 and ROS2 (TurtleBot3). With ROS1, a serial communication is established using the rosserial package. This package no longer exists in ROS2!

I am therefore unable to understand how the Dynamixel 2.0 protocol works with ROS2. Can you provide some clarification?


The OpenCR code actually does differ between ROS1 and ROS2, as the interface did need to be changed to account for differences between ROS1 and 2.