Setting up the ROS Drivers for the Robotino

Done as from 16/04/2026 08:36 . Revert the repository to get the working version that was quoted in the documentation.

The driver port used is https://github.com/Rahul-K-A/robotino-ros2.git, a ROS2 wrapper for the Robotino developed by Rahul. Since there are no install instructions, given that you are setting up his work from a fresh install, there are some dependencies that you have to fix before the code will build properly in ROS2.

cd /path/to/ROS2/src/file
git clone https://github.com/Rahul-K-A/robotino-ros2.git
cd ..
colcon build --symlink-install

Note

The IP Address of the LIDAR is: 172.27.1.1, remember to configure it in the computer.

As you may have realised, there will be errors during the building process. Here are the steps to fix them one by one:

ERROR 2 – Missing Dependency Declaration in rto_msgs (FATAL)

--- stderr: rto_msgs

In file included from /home/robotino/ros_ws/build/rto_msgs/rosidl_generator_c/rto_msgs/msg/detail/north_star_readings__functions.h:19,
from /home/robotino/ros_ws/build/rto_msgs/rosidl_generator_c/rto_msgs/msg/detail/north_star_readings__functions.c:4:

/home/robotino/ros_ws/build/rto_msgs/rosidl_generator_c/rto_msgs/msg/detail/north_star_readings__struct.h:24:10:
fatal error: geometry_msgs/msg/detail/pose__struct.h: No such file or directory

24 | #include "geometry_msgs/msg/detail/pose__struct.h"
   | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

gmake[2]: *** [CMakeFiles/rto_msgs__rosidl_generator_c.dir/build.make:457:
CMakeFiles/rto_msgs__rosidl_generator_c.dir/rosidl_generator_c/rto_msgs/msg/detail/north_star_readings__functions.c.o] Error 1

gmake[1]: *** [CMakeFiles/Makefile2:213: CMakeFiles/rto_msgs__rosidl_generator_c.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

In file included from /home/robotino/ros_ws/build/rto_msgs/rosidl_typesupport_cpp/rto_msgs/msg/north_star_readings__type_support.cpp:7:

/home/robotino/ros_ws/build/rto_msgs/rosidl_generator_cpp/rto_msgs/msg/detail/north_star_readings__struct.hpp:22:10:
fatal error: geometry_msgs/msg/detail/pose__struct.hpp: No such file or directory

22 | #include "geometry_msgs/msg/detail/pose__struct.hpp"
   | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

gmake[2]: *** [CMakeFiles/rto_msgs__rosidl_typesupport_cpp.dir/build.make:270:
CMakeFiles/rto_msgs__rosidl_typesupport_cpp.dir/rosidl_typesupport_cpp/rto_msgs/msg/north_star_readings__type_support.cpp.o] Error 1

gmake[2]: *** Waiting for unfinished jobs....

...

Failed <<< rto_msgs [4.68s, exited with code 2]

FIX – Add back the geometry_msgs dependency in CMakeLists.txt:

  • cd into the rto_msgs folder within src

  • Open rto_msgs/CMakeLists.txt

  • Add find_package(geometry_msgs REQUIRED) underneath find_package(ament_lint_auto REQUIRED)

  • Add DEPENDENCIES geometry_msgs underneath DEPENDENCIES builtin_interfaces (near the end of the file)

ERROR 3 – Missing Dependency Declaration in rto_node (FATAL)

--- stderr: rto_node

/home/robotino/ros_ws/src/robotino-ros2/rto_node/src/OdometryROS.cpp:11:10:
fatal error: tf2_geometry_msgs/tf2_geometry_msgs.h: No such file or directory

11 | #include "tf2_geometry_msgs/tf2_geometry_msgs.h"
   | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

gmake[2]: *** [CMakeFiles/rto_node.dir/build.make:230:
CMakeFiles/rto_node.dir/src/OdometryROS.cpp.o] Error 1

gmake[2]: *** Waiting for unfinished jobs....

gmake[1]: *** [CMakeFiles/Makefile2:141: CMakeFiles/rto_node.dir/all] Error 2

gmake: *** [Makefile:146: all] Error 2

---

Failed <<< rto_node [6.11s, exited with code 2]

FIX – Add back the tf2 dependency in CMakeLists.txt:

  • cd into the rto_node folder within src

  • Open rto_node/CMakeLists.txt

  • Add find_package(tf2_geometry_msgs REQUIRED) underneath # find dependencies alongside the other dependencies

  • Add tf2_ros::tf2_ros into target_link_libraries:

target_link_libraries(
  rto_node
  ${REC_ROBOTINO_API2_LIBRARY}
  tf2_ros::tf2_ros  # Something like this
)
  • Right under target_link_libraries, add the tf2 library to the dependency list:

ament_target_dependencies(rto_node rclcpp rto_msgs std_msgs geometry_msgs sensor_msgs tf2 tf2_ros tf2_geometry_msgs nav_msgs builtin_interfaces)

That should be all the errors. You may have standard errors (akin to warnings) pop up but they will be gone the next time you do colcon build. To control with the standard teleop ros node, remember to remap cmd_vel to /rto3/cmd_vel on the robotino (or whatever your cmd_vel is called).

# To read more on setting up the robotino link to ethernet:
# https://ip.festo-didactic.com/Infoportal/Robotino3/Hardware/Interfaces/EN/Ethernet.html

ros2 launch rto_bringup rto_bringup_launch.py hostname:=172.27.1.1
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/rto3/cmd_vel