Discussion - Changes for running mobile robot on Humble/Jammy

Hey M.josh
Thank you for the update. My question is, I would like to test this robot first by simply uploading the code you provided in the description of the YouTube video and following the steps and changes you made. I tried it, but the robot won’t move with either the ros2 run teleop_twist_keyboard teleop_twist_keyboard command or the ball tracker algorithm. It just keeps turning around the left wheel all the time. Should I rebuild it following your tutorial, or is there another solution? Thanks for replying.

Best regards,

Greetings, I’m trying to follow along the series as I design my own bot, but in Humble. Cloning articubot_one from git, I’m able to get everything running from a control standpoint, but the camera and laser topics do not launch when using “launch_robot.launch.py” script. The urdf’s for the camera and lidar load just fine in simulation, just no topics. When I watch the videos in the series, camera and lidar seem to be available in sim from that single launch command.

Question - are those all separate launch files, or does Foxy pull in packages by default that Humble would not?

Only the following topics load with sim:

/clicked_point
/clock
/cmd_vel
/cmd_vel_joy
/cmd_vel_tracker
/diagnostics
/diff_cont/cmd_vel_unstamped
/diff_cont/odom
/diff_cont/transition_event
/dynamic_joint_states
/goal_pose
/initialpose
/joint_broad/transition_event
/joint_states
/joy
/joy/set_feedback
/parameter_events
/performance_metrics
/robot_description
/rosout
/tf
/tf_static

Hi community,
First-off, many thanks to Josh for the great material.
I am having an issue with my /odom frame not showing up in rviz at all. I have the gazebo control command to publish_odom set to true etc and funnily enough this has worked on a laptop using the same repo. On my dev machine however, I can’t see the topic. Does anyone know of this issue at all?
I just have no tf’s showing up without being able to set my odom frame. I have heard there are issues with odom not being published when the controller_manager is not using sim time.
See here.

I am also getting the terminal output:

[ERROR] [gzserver-5]: process has died [pid 8604, exit code 255, cmd ‘gzserver /home/greggz/dev/pi_dev_ws/articubot_one/worlds/cones.world -slibgazebo_ros_init.so -slibgazebo_ros_factory.so -slibgazebo_ros_force_system.so --ros-args --params-file /home/greggz/dev/pi_dev_ws_copy/install/articubot_one/share/articubot_one/config/gazebo_params.yaml’].
[spawn_entity.py-7] [INFO] [1718176855.784051815] [spawn_entity]: Spawn Entity started
[spawn_entity.py-7] [INFO] [1718176855.784383578] [spawn_entity]: Loading entity published on topic robot_description
[spawn_entity.py-7] /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/qos.py:307: UserWarning: DurabilityPolicy.RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL is deprecated. Use DurabilityPolicy.TRANSIENT_LOCAL instead.
[spawn_entity.py-7] warnings.warn(
[spawn_entity.py-7] [INFO] [1718176855.786096802] [spawn_entity]: Waiting for entity xml on robot_description
[spawn_entity.py-7] [INFO] [1718176855.796817613] [spawn_entity]: Waiting for service /spawn_entity, timeout = 30
[spawn_entity.py-7] [INFO] [1718176855.797126966] [spawn_entity]: Waiting for service /spawn_entity
[spawner-8] [INFO] [1718176857.744004194] [spawner_diff_cont]: Waiting for ‘/controller_manager’ node to exist
[spawner-9] [INFO] [1718176857.760207703] [spawner_joint_broad]: Waiting for ‘/controller_manager’ node to exist
[spawner-8] [INFO] [1718176859.751059006] [spawner_diff_cont]: Waiting for ‘/controller_manager’ node to exist
[spawner-9] [INFO] [1718176859.769959948] [spawner_joint_broad]: Waiting for ‘/controller_manager’ node to exist
[spawner-8] [INFO] [1718176861.760329137] [spawner_diff_cont]: Waiting for ‘/controller_manager’ node to exist
[spawner-9] [INFO] [1718176861.777056150] [spawner_joint_broad]: Waiting for ‘/controller_manager’ node to exist
[spawner-8] [INFO] [1718176863.767548160] [spawner_diff_cont]: Waiting for ‘/controller_manager’ node to exist
[spawner-9] [INFO] [1718176863.786248879] [spawner_joint_broad]: Waiting for ‘/controller_manager’ node to exist
[spawner-8] [ERROR] [1718176865.774747141] [spawner_diff_cont]: Controller manager not available
[spawner-9] [ERROR] [1718176865.796215398] [spawner_joint_broad]: Controller manager not available
[ERROR] [spawner-8]: process has died [pid 8610, exit code 1, cmd ‘/opt/ros/humble/lib/controller_manager/spawner diff_cont --ros-args’].
[ERROR] [spawner-9]: process has died [pid 8612, exit code 1, cmd ‘/opt/ros/humble/lib/controller_manager/spawner joint_broad --ros-args’].

Has anyone solved this issue of the odom tf not being published?
Many thanks in advance.

Hi , im facing the same issue , tried your solution but it was in vain. Could you please guide me on how i can resolve this ??

pipc@pipc:~/dev_ws$ source install/setup.bash

pipc@pipc:~/dev_ws$ ros2 launch articubot_one launch_sim.launch.py world:=src/articubot_one/worlds/obstacles.world

[INFO] [launch]: All log files can be found below /home/pipc/.ros/log/2024-07-02-13-23-57-822208-pipc-36841
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): “package ‘twist_mux’ not found, searching: [‘/home/pipc/dev_ws/install/ball_tracker’, ‘/home/pipc/dev_ws/install/articubot_one’, ‘/opt/ros/humble’]”

any one know its solution

gedit ~/.bashrc

source /opt/ros/humble/setup.bash

please help me out twist mux package not found thats my fyp and deadline is 7july

Hello, I’m following the tutorial and adapting to ROS Humble but I’m having this issue when launching the launch_robot.
Can you help me or guide me in troubleshooting this error?

/robot_ws$ ros2 launch lizardbot1 launch_robot.launch.py
[INFO] [launch]: All log files can be found below /home/manuel/.ros/log/2024-09-11-01-39-39-345167-manuel-rpi4b-14700
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [14702]
[robot_state_publisher-1] [INFO] [1726015180.416354100] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1726015180.416657040] [robot_state_publisher]: got segment camera
[robot_state_publisher-1] [INFO] [1726015180.416703502] [robot_state_publisher]: got segment camera_optical
[robot_state_publisher-1] [INFO] [1726015180.416734224] [robot_state_publisher]: got segment caster_wheel
[robot_state_publisher-1] [INFO] [1726015180.416760298] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1726015180.416786112] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1726015180.416810279] [robot_state_publisher]: got segment lidar
[robot_state_publisher-1] [INFO] [1726015180.416833315] [robot_state_publisher]: got segment right_wheel
[INFO] [ros2_control_node-2]: process started with pid [14724]
[INFO] [spawner-3]: process started with pid [14726]
[INFO] [spawner-4]: process started with pid [14728]
[ros2_control_node-2] [WARN] [1726015186.116352004] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use ‘~/robot_description’ topic from ‘robot_state_publisher’ instead.
[ros2_control_node-2] [INFO] [1726015186.117874446] [resource_manager]: Loading hardware ‘RealRobot’
[ros2_control_node-2] terminate called after throwing an instance of ‘pluginlib::LibraryLoadException’
[ros2_control_node-2] what(): According to the loaded plugin descriptions the class diffdrive_arduino/DiffDriveArduinoHardware with base class type hardware_interface::SystemInterface does not exist. Declared types are diffdrive_arduino/DiffDriveArduino fake_components/GenericSystem fake_robot/FakeRobot mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem
[spawner-4] [INFO] [1726015187.412823660] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [INFO] [1726015187.417740539] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[ERROR] [ros2_control_node-2]: process has died [pid 14724, exit code -6, cmd ‘/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_e3ocn1u7 --params-file /home/manuel/robot_ws/install/lizardbot1/share/lizardbot1/config/my_controllers.yaml’].
[spawner-4] [WARN] [1726015197.440823715] [spawner_diff_cont]: Could not contact service /controller_manager/list_controllers
[spawner-3] [WARN] [1726015197.444375871] [spawner_joint_broad]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1726015197.447669993] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [INFO] [1726015197.448979179] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1726015207.475644678] [spawner_joint_broad]: Could not contact service /controller_manager/list_controllers
[spawner-4] [WARN] [1726015207.475678733] [spawner_diff_cont]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1726015207.482327051] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [INFO] [1726015207.482370625] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[robot_state_publisher-1] [INFO] [1726015210.538115666] [rclcpp]: signal_handler(signum=2)
[INFO] [robot_state_publisher-1]: process has finished cleanly [pid 14702]
[INFO] [spawner-4]: process has finished cleanly [pid 14728]
[INFO] [spawner-3]: process has finished cleanly [pid 14726]

I been able to resolve the issue by using the diffdrive_arduino package (humble branch) from Josh repo :

Hello Josh, hello community

I am using articubot_one-humble.zip, diffdrive_arduino-humble.zip
from joshnewans (Josh Newans) · GitHub.

starting:
ros2 launch articubot_one launch_sim.launch.py
…gazebo launches correct
ros2 run teleop_twist_keyboard teleop_twist_keyboard

When the key ’ i ’ is pressed, the wheels turn for about one revolution and then stop, until the next key ’ i ’ is pressed.

“i” or “u” … all do the same
Shouldn’t it be stopped with the “space” key, for example, and not automatically?

what changes are necessary to eliminate this behavior?

additional info:

ls -1 src
articubot_one-humble
diffdrive_arduino-humble

colcon…

[ERROR] [launch]: Caught exception in launch (see debug for traceback): “package ‘twist_mux’ not found, searching: [‘…_ws/install/diffdrive_arduino’, ‘…_ws/install/articubot_one’, ‘/opt/ros/humble’]”

I added then twist_mux
ls -1 src
articubot_one-humble
diffdrive_arduino-humble
twist_mux

colcon, source, … ros2 launch articubot_one launch_sim.launch.py

I removed twist_mux again because:
sudo apt install ros-humble-twist-mux

11 Jun '23
Discussion - Running ros2_control on a real robot (Making a Mobile Robot Pt 13)
by Josh

Hello Josh
I am using articubot_one-humble.zip, diffdrive_arduino-humble.zip
from joshnewans (Josh Newans) · GitHub.

but this time on rpi4 8G and not like above on dev-machine (VMware).

ls -1 src
articubot_one-humble
diffdrive_arduino-humble
serial

ros2 launch articubot_one launch_robot.launch.py
with
ros2 run teleop_twist_keyboard teleop_twist_keyboard

the wheels turn for about one revolution as it does on the dev-machine

made some trace:
[ros2_control_node-3] [INFO] [1735237385.141011566] [DiffDriveArduinoHardware]: ENC ‘0 20’
[ros2_control_node-3] [INFO] [1735237386.407855922] [controller_manager]: Loading controller ‘diff_cont’
[ros2_control_node-3] [INFO] [1735237386.599903375] [controller_manager]: Loading controller ‘joint_broad’
[spawner-5] [INFO] [1735237386.879360927] [spawner_diff_cont]: Loaded diff_cont
[ros2_control_node-3] [INFO] [1735237386.891296439] [controller_manager]: Configuring controller ‘diff_cont’
[spawner-4] [INFO] [1735237387.088330377] [spawner_joint_broad]: Loaded joint_broad
[ros2_control_node-3] [INFO] [1735237387.252216907] [controller_manager]: Configuring controller ‘joint_broad’
[ros2_control_node-3] [INFO] [1735237387.252650589] [joint_broad]: ‘joints’ or ‘interfaces’ parameter is empty. All available state interfaces will be published
[spawner-5] [INFO] [1735237387.259805801] [spawner_diff_cont]: Configured and activated diff_cont
[spawner-4] [INFO] [1735237387.598657380] [spawner_joint_broad]: Configured and activated joint_broad
[INFO] [spawner-5]: process has finished cleanly [pid 22216]
[INFO] [spawner-4]: process has finished cleanly [pid 22214]
’ s2_control_node-3] [INFO] [1735237464.236035755] [DiffDriveArduinoHardware]: SSS 'o 194 358
[ros2_control_node-3] [INFO] [1735237464.347295781] [DiffDriveArduinoHardware]: ENC ‘20 20’
’ s2_control_node-3] [INFO] [1735237464.347518854] [DiffDriveArduinoHardware]: SSS 'o 194 358
[ros2_control_node-3] [INFO] [1735237464.461299659] [DiffDriveArduinoHardware]: ENC ‘160 190’
’ s2_control_node-3] [INFO] [1735237464.461546305] [DiffDriveArduinoHardware]: SSS 'o 194 358
[ros2_control_node-3] [INFO] [1735237464.579297991] [DiffDriveArduinoHardware]: ENC ‘190 200’
’ s2_control_node-3] [INFO] [1735237464.579852284] [DiffDriveArduinoHardware]: SSS 'o 194 358
[ros2_control_node-3] [INFO] [1735237464.693751589] [DiffDriveArduinoHardware]: ENC ‘240 210’
’ s2_control_node-3] [INFO] [1735237464.693954513] [DiffDriveArduinoHardware]: SSS 'o 194 358
[ros2_control_node-3] [INFO] [1735237464.807962206] [DiffDriveArduinoHardware]: ENC ‘240 230’

I use “o” instead of “m”, because I do not understand the meaning/difference yet
My board: Arduino NANO 33 Iot

How can I eliminate this “one turn” behavior on rpi4 8G and on dev-machine?

PS. next will be articubot_one-main.zip, diffdrive_arduino-main.zip
on the same rpi4, Arduino and dev-machine

pi@ubuntu:~/robot_ws$ source install/setup.bash
pi@ubuntu:~/robot_ws$ ros2 launch aris launch_robot.launch.py
[INFO] [launch]: All log files can be found below /home/pi/.ros/log/2025-01-09-01-03-35-181770-ubuntu-1123
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [1125]
[INFO] [twist_mux-2]: process started with pid [1127]
[twist_mux-2] [INFO] [1736364816.473366096] [twist_mux]: Topic handler ‘topics.joystick’ subscribed to topic ‘cmd_vel_joy’: timeout = 0.500000s , priority = 100.
[twist_mux-2] [INFO] [1736364816.491809521] [twist_mux]: Topic handler ‘topics.navigation’ subscribed to topic ‘cmd_vel’: timeout = 0.500000s , priority = 10.
[twist_mux-2] [INFO] [1736364816.493233793] [twist_mux]: Topic handler ‘topics.tracker’ subscribed to topic ‘cmd_vel_tracker’: timeout = 0.500000s , priority = 20.
[robot_state_publisher-1] [INFO] [1736364816.530567313] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-1] [INFO] [1736364816.530988687] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1736364816.531061169] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-1] [INFO] [1736364816.531105170] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-1] [INFO] [1736364816.531145022] [robot_state_publisher]: got segment caster_wheel
[robot_state_publisher-1] [INFO] [1736364816.531182893] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1736364816.531219523] [robot_state_publisher]: got segment face_link
[robot_state_publisher-1] [INFO] [1736364816.531302968] [robot_state_publisher]: got segment laser_frame
[robot_state_publisher-1] [INFO] [1736364816.531350579] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1736364816.531390320] [robot_state_publisher]: got segment right_wheel
[INFO] [ros2_control_node-3]: process started with pid [1174]
[INFO] [spawner-4]: process started with pid [1176]
[INFO] [spawner-5]: process started with pid [1178]
[ros2_control_node-3] [WARN] [1736364822.759789817] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use ‘~/robot_description’ topic from ‘robot_state_publisher’ instead.
[ros2_control_node-3] [INFO] [1736364822.760995809] [resource_manager]: Loading hardware ‘RealRobot’
[ros2_control_node-3] terminate called after throwing an instance of ‘pluginlib::LibraryLoadException’
[ros2_control_node-3] what(): According to the loaded plugin descriptions the class diffdrive_arduino/DiffDriveArduinoHardware with base class type hardware_interface::SystemInterface does not exist. Declared types are diffdrive_arduino/DiffDriveArduino fake_components/GenericSystem fake_robot/FakeRobot mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem
[ros2_control_node-3] Stack trace (most recent call last):
[ros2_control_node-3] #16 Object “/usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1”, at 0xffffffffffffffff, in
[ros2_control_node-3] #15 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae332476f, in
[ros2_control_node-3] #14 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae3474cb, in __libc_start_main
[ros2_control_node-3] #13 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae3473fb, in
[ros2_control_node-3] #12 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae3323d17, in
[ros2_control_node-3] #11 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffaea12863, in controller_manager::ControllerManager::ControllerManager(std::shared_ptrrclcpp::Executor, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, rclcpp::NodeOptions const&)
[ros2_control_node-3] #10 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffaea0e9af, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-3] #9 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1c71c7, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool)
[ros2_control_node-3] #8 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1c580b, in
[ros2_control_node-3] #7 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1db283, in
[ros2_control_node-3] #6 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2e03, in __cxa_throw
[ros2_control_node-3] #5 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2b1f, in std::terminate()
[ros2_control_node-3] #4 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2abb, in
[ros2_control_node-3] #3 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a62db, in __gnu_cxx::__verbose_terminate_handler()
[ros2_control_node-3] #2 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae34712f, in abort
[ros2_control_node-3] #1 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae35a67b, in raise
[ros2_control_node-3] #0 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae39f200, in
[ros2_control_node-3] Aborted (Signal sent by tkill() 1174 1000)
[spawner-4] [INFO] [1736364823.964251390] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [INFO] [1736364823.964251427] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[ERROR] [ros2_control_node-3]: process has died [pid 1174, exit code -6, cmd ‘/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_sy90ohlu --params-file /home/pi/robot_ws/install/aris/share/aris/config/my_controllers.yaml’].

iam face this error any fix?

hello pi@ubuntu:~/robot_ws$ source install/setup.bash
pi@ubuntu:~/robot_ws$ ros2 launch aris launch_robot.launch.py
[INFO] [launch]: All log files can be found below /home/pi/.ros/log/2025-01-09-01-03-35-181770-ubuntu-1123
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [1125]
[INFO] [twist_mux-2]: process started with pid [1127]
[twist_mux-2] [INFO] [1736364816.473366096] [twist_mux]: Topic handler ‘topics.joystick’ subscribed to topic ‘cmd_vel_joy’: timeout = 0.500000s , priority = 100.
[twist_mux-2] [INFO] [1736364816.491809521] [twist_mux]: Topic handler ‘topics.navigation’ subscribed to topic ‘cmd_vel’: timeout = 0.500000s , priority = 10.
[twist_mux-2] [INFO] [1736364816.493233793] [twist_mux]: Topic handler ‘topics.tracker’ subscribed to topic ‘cmd_vel_tracker’: timeout = 0.500000s , priority = 20.
[robot_state_publisher-1] [INFO] [1736364816.530567313] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-1] [INFO] [1736364816.530988687] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1736364816.531061169] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-1] [INFO] [1736364816.531105170] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-1] [INFO] [1736364816.531145022] [robot_state_publisher]: got segment caster_wheel
[robot_state_publisher-1] [INFO] [1736364816.531182893] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1736364816.531219523] [robot_state_publisher]: got segment face_link
[robot_state_publisher-1] [INFO] [1736364816.531302968] [robot_state_publisher]: got segment laser_frame
[robot_state_publisher-1] [INFO] [1736364816.531350579] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1736364816.531390320] [robot_state_publisher]: got segment right_wheel
[INFO] [ros2_control_node-3]: process started with pid [1174]
[INFO] [spawner-4]: process started with pid [1176]
[INFO] [spawner-5]: process started with pid [1178]
[ros2_control_node-3] [WARN] [1736364822.759789817] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use ‘~/robot_description’ topic from ‘robot_state_publisher’ instead.
[ros2_control_node-3] [INFO] [1736364822.760995809] [resource_manager]: Loading hardware ‘RealRobot’
[ros2_control_node-3] terminate called after throwing an instance of ‘pluginlib::LibraryLoadException’
[ros2_control_node-3] what(): According to the loaded plugin descriptions the class diffdrive_arduino/DiffDriveArduinoHardware with base class type hardware_interface::SystemInterface does not exist. Declared types are diffdrive_arduino/DiffDriveArduino fake_components/GenericSystem fake_robot/FakeRobot mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem
[ros2_control_node-3] Stack trace (most recent call last):
[ros2_control_node-3] #16 Object “/usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1”, at 0xffffffffffffffff, in
[ros2_control_node-3] #15 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae332476f, in
[ros2_control_node-3] #14 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae3474cb, in __libc_start_main
[ros2_control_node-3] #13 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae3473fb, in
[ros2_control_node-3] #12 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae3323d17, in
[ros2_control_node-3] #11 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffaea12863, in controller_manager::ControllerManager::ControllerManager(std::shared_ptrrclcpp::Executor, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, rclcpp::NodeOptions const&)
[ros2_control_node-3] #10 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffaea0e9af, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-3] #9 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1c71c7, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool)
[ros2_control_node-3] #8 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1c580b, in
[ros2_control_node-3] #7 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffae1db283, in
[ros2_control_node-3] #6 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2e03, in __cxa_throw
[ros2_control_node-3] #5 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2b1f, in std::terminate()
[ros2_control_node-3] #4 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a2abb, in
[ros2_control_node-3] #3 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffae5a62db, in __gnu_cxx::__verbose_terminate_handler()
[ros2_control_node-3] #2 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae34712f, in abort
[ros2_control_node-3] #1 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae35a67b, in raise
[ros2_control_node-3] #0 Object “/usr/lib/aarch64-linux-gnu/libc.so.6”, at 0xffffae39f200, in
[ros2_control_node-3] Aborted (Signal sent by tkill() 1174 1000)
[spawner-4] [INFO] [1736364823.964251390] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [INFO] [1736364823.964251427] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[ERROR] [ros2_control_node-3]: process has died [pid 1174, exit code -6, cmd ‘/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_sy90ohlu --params-file /home/pi/robot_ws/install/aris/share/aris/config/my_controllers.yaml’].

please can you help me to fix this error iam stuck from past few days in this error please reply to this help me out

sudo apt-get update
sudo apt-get install libserial-dev