Discussion - Running ros2_control on a real robot (Making a Mobile Robot Pt 13)

I’ve been banging on this for some time and would appreciate any help that someone can offer. I’ve followed the update instructions for Humble to the best of my ability and can run everything in the simulated environment. The error comes when I try to run on the real robot. I get this error:

[ros2_control_node-3] [WARN] [1717166914.463673109] [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] [1717168386.815847187] [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

I build 4 wheel differential drive whit this tutorial, but i have problem with arduino diff drive because not supported for 4 wheel, can anyone help me?

Hi , can some one please help me out with this. Im getting this output when i run the launch_robot.launch.py (using the humble branch along with buzzology repo)

[ros2_control_node-3] [WARN] [1719424456.132014484] [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] [1719424456.135225674] [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 0xaaaad1ee2c6f, in 
[ros2_control_node-3] #14   Object "/usr/lib/aarch64-linux-gnu/libc.so.6", at 0xffff95a474cb, in __libc_start_main
[ros2_control_node-3] #13   Object "/usr/lib/aarch64-linux-gnu/libc.so.6", at 0xffff95a473fb, in 
[ros2_control_node-3] #12   Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0xaaaad1ee2767, in 
[ros2_control_node-3] #11   Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0xffff960f24cb, in controller_manager::ControllerManager::ControllerManager(std::shared_ptr<rclcpp::Executor>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rclcpp::NodeOptions const&)
[ros2_control_node-3] #10   Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0xffff960ee5f7, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[ros2_control_node-3] #9    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0xffff958b7077, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool)
[ros2_control_node-3] #8    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0xffff958b56ab, in 
[ros2_control_node-3] #7    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0xffff958c9ef3, in 
[ros2_control_node-3] #6    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff95ca2e03, in __cxa_throw
[ros2_control_node-3] #5    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff95ca2b1f, in std::terminate()
[ros2_control_node-3] #4    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff95ca2abb, in 
[ros2_control_node-3] #3    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff95ca62db, in __gnu_cxx::__verbose_terminate_handler()
[ros2_control_node-3] #2    Object "/usr/lib/aarch64-linux-gnu/libc.so.6", at 0xffff95a4712f, in abort
[ros2_control_node-3] #1    Object "/usr/lib/aarch64-linux-gnu/libc.so.6", at 0xffff95a5a67b, in raise
[ros2_control_node-3] #0    Object "/usr/lib/aarch64-linux-gnu/libc.so.6", at 0xffff95a9f200, in 
[ros2_control_node-3] Aborted (Signal sent by tkill() 10495 1000)
[ERROR] [ros2_control_node-3]: process has died [pid 10495, exit code -6, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_p6dnjvqp --params-file /home/rosbot/aria_ws/install/articubot_one/share/articubot_one/config/my_controllers.yaml'].

i did a topic echo and it seems like my joystick is sending input and the bot is receiving the necessary twist msg . But the bot doesn’t move can someone please help me out with this??

Hello sir,

Thank you for the great tutorials.

I am using raspberry pi 5 model and therefore I have install Ubuntu 24.04 and ROS2 rolling in my Pi. I am currently in “Using ros2_control to drive our robot” video and up to now it’s all good.

P.S. I had to go through the motor driver code in arduino nano and found out that whenever I give a motor value ( o 255 255), the corresponding pins in the arduino nano will be high for a moment and again go back to 0. Therefore I commented out line 360 to 363 on ROSArduinoBridge code. After that it worked as expected. That is something I wanted to tell if someone having a same issue as me.

When I try to build the diffdrive_arduino package I got an issue about not having base_interface.hpp in hardware interface. When I read this discussion this is because I am using a new version of ROS2. Therefore I use this link to install diffdrive_arduino package : GitHub - RedstoneGithub/diffdrive_arduino: A simple ROS Control Hardware Interface for differential drive control of robot whose motors are connected via an Arduino (or similar microcontroller). as someone mention in the discussion and it built successfully.

The problem comes when I try to control it using teleop twist keyboard.
When I launch the launhc_robot.launch.py file, it launched successfully in Pi. Then after I run teleop twist keyboard in my dev machine I got the following error.

[rcutils|error_handling.c:108] rcutils_set_error_state()
This error state is being overwritten:
‘Fast CDR exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:118’
with this new error message:
‘‘Bad alloc’ exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:123’
rcutils_reset_error() should be called after error handling to avoid this.
<<<
>>> [rcutils|error_handling.c:108] rcutils_set_error_state()
This error state is being overwritten:

‘‘Bad alloc’ exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:123’
with this new error message:
‘Fast CDR exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:118’
rcutils_reset_error() should be called after error handling to avoid this.

I have no idea what cause this error. If someone could help me out, I really appreciate it.

Thank you

Hi, I’m having trouble trying to launch the real robot launch file, I get this error about robot_publisher. I saw someone else had the exact same problem in the past but never got a response, what can I do to fix the problem? the error in question:

[INFO] [launch]: All log files can be found below /home/ubuntu/.ros/log/2024-07-09-02-35-49-118585-tato-corp-3174
[INFO] [launch]: Default logging verbosity is set to INFO
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py:226> exception=PackageNotFoundError("package 'twist_mux' not found, searching: ['/home/ubuntu/detta_ws/install/tato_bot', '/home/ubuntu/detta_ws/install/diffdrive_arduino', '/home/ubuntu/detta_ws/install/serial', '/opt/ros/foxy']")>
Traceback (most recent call last):
  File "/opt/ros/foxy/lib/python3.8/site-packages/ament_index_python/packages.py", line 50, in get_package_prefix
    content, package_prefix = get_resource('packages', package_name)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ament_index_python/resources.py", line 48, in get_resource
    raise LookupError(
LookupError: Could not find the resource 'twist_mux' of type 'packages'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event
    await self.__process_event(next_event)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event
    visit_all_entities_and_collect_futures(entity, self.__context))
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  [Previous line repeated 1 more time]
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
    sub_entities = entity.visit(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/action.py", line 108, in visit
    return self.execute(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/actions/node.py", line 453, in execute
    ret = super().execute(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 823, in execute
    self.__expand_substitutions(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 668, in __expand_substitutions
    cmd = [perform_substitutions(context, x) for x in self.__cmd]
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 668, in <listcomp>
    cmd = [perform_substitutions(context, x) for x in self.__cmd]
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions
    return ''.join([context.perform_substitution(sub) for sub in subs])
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in <listcomp>
    return ''.join([context.perform_substitution(sub) for sub in subs])
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_context.py", line 232, in perform_substitution
    return substitution.perform(self)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/substitutions/executable_in_package.py", line 76, in perform
    package_prefix = super().perform(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 79, in perform
    result = self.find(package)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 96, in find
    return get_package_prefix(package_name)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ament_index_python/packages.py", line 52, in get_package_prefix
    raise PackageNotFoundError(
ament_index_python.packages.PackageNotFoundError: "package 'twist_mux' not found, searching: ['/home/ubuntu/detta_ws/install/tato_bot', '/home/ubuntu/detta_ws/install/diffdrive_arduino', '/home/ubuntu/detta_ws/install/serial', '/opt/ros/foxy']"
Task exception was never retrieved
future: <Task finished name='Task-8' coro=<LaunchService._process_one_event() done, defined at /opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py:226> exception=RuntimeError('Signal event received before subprocess transport available.')>
Traceback (most recent call last):
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event
    await self.__process_event(next_event)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event
    visit_all_entities_and_collect_futures(entity, self.__context))
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
    sub_entities = entity.visit(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/action.py", line 108, in visit
    return self.execute(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/opaque_function.py", line 75, in execute
    return self.__function(context, *self.__args, **self.__kwargs)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 443, in __on_signal_process_event
    raise RuntimeError('Signal event received before subprocess transport available.')
RuntimeError: Signal event received before subprocess transport available.
[INFO] [robot_state_publisher-1]: process started with pid [3178]
[robot_state_publisher-1] Parsing robot urdf xml string.
[robot_state_publisher-1] Link base_footprint had 0 children
[robot_state_publisher-1] Link chassis had 4 children
[robot_state_publisher-1] Link camera_link had 1 children
[robot_state_publisher-1] Link camera_link_optical had 0 children
[robot_state_publisher-1] Link laser_frame had 0 children
[robot_state_publisher-1] Link left_caster_wheel had 0 children
[robot_state_publisher-1] Link right_caster_wheel had 0 children
[robot_state_publisher-1] Link left_wheel had 0 children
[robot_state_publisher-1] Link right_wheel had 0 children
[robot_state_publisher-1] [INFO] [1720506950.444877888] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-1] [INFO] [1720506950.445267630] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1720506950.445339852] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-1] [INFO] [1720506950.445376500] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-1] [INFO] [1720506950.445409815] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1720506950.445440260] [robot_state_publisher]: got segment laser_frame
[robot_state_publisher-1] [INFO] [1720506950.445469500] [robot_state_publisher]: got segment left_caster_wheel
[robot_state_publisher-1] [INFO] [1720506950.445498575] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1720506950.445527408] [robot_state_publisher]: got segment right_caster_wheel
[robot_state_publisher-1] [INFO] [1720506950.445556834] [robot_state_publisher]: got segment right_wheel
[ERROR] [robot_state_publisher-1]: process[robot_state_publisher-1] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [robot_state_publisher-1]: sending signal 'SIGTERM' to process[robot_state_publisher-1]
[ERROR] [robot_state_publisher-1]: process has died [pid 3178, exit code -15, cmd '/opt/ros/foxy/lib/robot_state_publisher/robot_state_publisher --ros-args --params-file /tmp/launch_params_xhapja7u'].

hi
i am using ros2 humble can anyone tell me if there is any diff drive arduino hardware interface available for ros2 humble?

I have an issue with the diffdrive_arduino. I want to use the servo from the Arduino firmware alongside the normal motor control provided by the ROS package, but the ROS package doesn’t support servo control. How can I integrate servo control while still using the motor functions from ROS?

Hello @JoshNewans
I have tried to follow the tutorial, but I’ve run into an issue when launching everything:

[INFO] [launch]: All log files can be found below /home/flamethrower/.ros/log/2024-08-10-17-38-22-624094-robot-19553
[INFO] [launch]: Default logging verbosity is set to INFO
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py:226> exception=TypeError('Unable to parse the value of parameter robot_description as yaml. If the parameter is meant to be a string, try wrapping it in launch_ros.parameter_descriptions.ParameterValue(value, value_type=str)')>
Traceback (most recent call last):
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/utilities/evaluate_parameters.py", line 78, in evaluate_parameter_dict
    yaml_evaluated_value = yaml.safe_load(evaluated_value)
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 162, in safe_load
    return load(stream, SafeLoader)
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python3/dist-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python3/dist-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/usr/lib/python3/dist-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
  File "/usr/lib/python3/dist-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/usr/lib/python3/dist-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/usr/lib/python3/dist-packages/yaml/scanner.py", line 258, in fetch_more_tokens
    raise ScannerError("while scanning for the next token", None,
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 19, column 1:
    	
    ^

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event
    await self.__process_event(next_event)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event
    visit_all_entities_and_collect_futures(entity, self.__context))
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  [Previous line repeated 3 more times]
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
    sub_entities = entity.visit(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch/action.py", line 108, in visit
    return self.execute(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/actions/node.py", line 444, in execute
    self._perform_substitutions(context)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/actions/node.py", line 399, in _perform_substitutions
    evaluated_parameters = evaluate_parameters(context, self.__parameters)
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/utilities/evaluate_parameters.py", line 164, in evaluate_parameters
    output_params.append(evaluate_parameter_dict(context, param))
  File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/utilities/evaluate_parameters.py", line 80, in evaluate_parameter_dict
    raise TypeError(
TypeError: Unable to parse the value of parameter robot_description as yaml. If the parameter is meant to be a string, try wrapping it in launch_ros.parameter_descriptions.ParameterValue(value, value_type=str)

My interpretation would be that it’s trying to interpret the urdf file as a yaml file and can’t because of the format. However, trying the suggestion of wrapping it as a string doesn’t work. Why is this happening? Thanks in advance.

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]

Hi,
I’m encountering the same issue. Were you able to find a solution?

Same issue here too :frowning:
Did you find the solution ?
thanks

@JoshNewans, any good idea ?

[ros2_control_node-3] [INFO] [1727546369.238227958] [controller_manager]: update rate is 30 Hz
[ros2_control_node-3] [INFO] [1727546369.238354193] [controller_manager]: Successful set up FIFO RT scheduling policy with priority 50.
[ros2_control_node-3] [INFO] [1727546369.448109260] [controller_manager]: Loading controller ‘diff_cont’
[ros2_control_node-3] [INFO] [1727546369.452716415] [controller_manager]: Loading controller ‘joint_broad’
[spawner-5] [INFO] [1727546369.465198905] [spawner_diff_cont]: Loaded diff_cont
[ros2_control_node-3] [INFO] [1727546369.465795888] [controller_manager]: Configuring controller ‘diff_cont’
[spawner-4] [INFO] [1727546369.468300039] [spawner_joint_broad]: Loaded joint_broad
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] [INFO] [1727546372.242377368] [controller_manager]: Configuring controller ‘joint_broad’
[ros2_control_node-3] [INFO] [1727546372.242457129] [joint_broad]: ‘joints’ or ‘interfaces’ parameter is empty. All available state interfaces will be published
[spawner-5] [INFO] [1727546372.242822814] [spawner_diff_cont]: Configured and activated diff_cont
[INFO] [spawner-5]: process has finished cleanly [pid 6531]
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.

How to solve this error

Resolved by using this diffdrive_arduino package (and not the buzzlogy one): GitHub - joshnewans/diffdrive_arduino at humble

Hi there, I was following the tutorial and was trying it to run on ros2 iron that too within docker container. I have cloned the humble branch of diffdrive_arduino plugin, but when i try to launch on raspberry pi , I am encountering the below error :
ros@robot-desktop:/code$ ros2 launch articubot_one launch_robot.launch.py
[INFO] [launch]: All log files can be found below /home/ros/.ros/log/2024-11-04-18-59-18-861703-robot-desktop-1839
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [1843]
[INFO] [twist_mux-2]: process started with pid [1845]
[robot_state_publisher-1] [WARN] [1730726960.024817777] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[robot_state_publisher-1] [WARN] [1730726960.024899352] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[twist_mux-2] [WARN] [1730726960.034913639] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[twist_mux-2] [WARN] [1730726960.035975557] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[twist_mux-2] [INFO] [1730726960.092092569] [twist_mux]: Topic handler ‘topics.joystick’ subscribed to topic ‘cmd_vel_joy’: timeout = 0.500000s , priority = 100.
[twist_mux-2] [INFO] [1730726960.095484177] [twist_mux]: Topic handler ‘topics.navigation’ subscribed to topic ‘cmd_vel’: timeout = 0.500000s , priority = 10.
[robot_state_publisher-1] [INFO] [1730726960.151025628] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-1] [INFO] [1730726960.151324631] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1730726960.151379168] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-1] [INFO] [1730726960.151411372] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-1] [INFO] [1730726960.151441798] [robot_state_publisher]: got segment caster_wheel
[robot_state_publisher-1] [INFO] [1730726960.151469595] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1730726960.151496854] [robot_state_publisher]: got segment face_link
[robot_state_publisher-1] [INFO] [1730726960.151524040] [robot_state_publisher]: got segment laser_frame
[robot_state_publisher-1] [INFO] [1730726960.151552503] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1730726960.151579578] [robot_state_publisher]: got segment right_wheel
[INFO] [ros2_control_node-3]: process started with pid [1876]
[ros2_control_node-3] [WARN] [1730726970.066824439] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[ros2_control_node-3] [WARN] [1730726970.066935089] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[ros2_control_node-3] [INFO] [1730726970.181804163] [controller_manager]: Subscribing to ‘/controller_manager/robot_description’ topic for robot description.
[ros2_control_node-3] [INFO] [1730726970.182399372] [controller_manager]: update rate is 30 Hz
[ros2_control_node-3] [WARN] [1730726970.184093111] [controller_manager]: No real-time kernel detected on this system. See [Controller Manager — ROS2_Control: Rolling Nov 2024 documentation] for details on how to enable realtime scheduling.
[INFO] [spawner-4]: process started with pid [1902]
[INFO] [spawner-5]: process started with pid [1904]
[spawner-4] [WARN] [1730726991.351985677] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[spawner-4] [WARN] [1730726991.352038122] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[spawner-5] [WARN] [1730726991.351985696] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[spawner-5] [WARN] [1730726991.352038067] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[spawner-4] [INFO] [1730726991.776469795] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [INFO] [1730726991.813621455] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1730727001.803619917] [spawner_diff_cont]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1730727001.807764192] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [WARN] [1730727001.840872803] [spawner_joint_broad]: Could not contact service /controller_manager/list_controllers
[spawner-5] [INFO] [1730727001.846545258] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1730727011.838180730] [spawner_diff_cont]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1730727011.842924861] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [WARN] [1730727011.875181803] [spawner_joint_broad]: Could not contact service /controller_manager/list_controllers
[spawner-5] [INFO] [1730727011.879837007] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1730727021.870786495] [spawner_diff_cont]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1730727021.875593605] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[spawner-5] [WARN] [1730727021.907440217] [spawner_joint_broad]: Could not contact service /controller_manager/list_controllers
[spawner-5] [INFO] [1730727021.914711346] [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] [1730727028.716040430] [rclcpp]: signal_handler(signum=2)
[twist_mux-2] [INFO] [1730727028.716937048] [rclcpp]: signal_handler(signum=2)
[ros2_control_node-3] [INFO] [1730727028.718154316] [rclcpp]: signal_handler(signum=2)
[INFO] [robot_state_publisher-1]: process has finished cleanly [pid 1843]
[INFO] [ros2_control_node-3]: process has finished cleanly [pid 1876]
[INFO] [twist_mux-2]: process has finished cleanly [pid 1845]
[INFO] [spawner-4]: process has finished cleanly [pid 1902]
[INFO] [spawner-5]: process has finished cleanly [pid 1904]

I have also tried to run ros@robot-desktop:/code$ ros2 control list_controllers but got error :

WARN] [1730727016.592815428] [rcl]: ROS_LOCALHOST_ONLY is deprecated but still honored if it is enabled. Use ROS_AUTOMATIC_DISCOVERY_RANGE and ROS_STATIC_PEERS instead.
[WARN] [1730727016.592882465] [rcl]: ‘localhost_only’ is disabled, ‘automatic_discovery_range’ and ‘static_peers’ will be used.
[INFO] [1730727017.457390852] [_ros2cli_1928]: waiting for service /controller_manager/list_controllers to become available…

Can you help me or guide me in troubleshooting this error?

Hi there, I’m trying to drive my robot but the motors don’t run when i try to drive with teleop_twist_keyboard. I use ros2 jazzy and this diffdrive GitHub - joshnewans/diffdrive_arduino at humble and the same hardware setup as in the videos.Everything was working up to now the serial_motor_demo works fine.
Can someone help with a hint ware to look?
This is what i get when i start the launch_robot.launch.py:
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [4180]
[INFO] [twist_mux-2]: process started with pid [4181]
[twist_mux-2] [INFO] [1732398474.316701318] [twist_mux]: Topic handler ‘topics.joystick’ subscribed to topic ‘cmd_vel_joy’: timeout = 0.500000s , priority = 100.
[twist_mux-2] [INFO] [1732398474.319338432] [twist_mux]: Topic handler ‘topics.navigation’ subscribed to topic ‘cmd_vel’: timeout = 0.500000s , priority = 10.
[twist_mux-2] [INFO] [1732398474.319863610] [twist_mux]: Topic handler ‘topics.tracker’ subscribed to topic ‘cmd_vel_tracker’: timeout = 0.500000s , priority = 20.
[robot_state_publisher-1] [INFO] [1732398474.338389018] [robot_state_publisher]: Robot initialized
[INFO] [ros2_control_node-3]: process started with pid [4250]
[INFO] [spawner-4]: process started with pid [4251]
[INFO] [spawner-5]: process started with pid [4252]
[ros2_control_node-3] [INFO] [1732398479.495462036] [controller_manager]: Subscribing to ‘/robot_description’ topic for robot description.
[ros2_control_node-3] [INFO] [1732398479.627548895] [controller_manager]: update rate is 30 Hz
[ros2_control_node-3] [INFO] [1732398479.627650413] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50
[ros2_control_node-3] [INFO] [1732398479.637954225] [controller_manager]: Successful set up FIFO RT scheduling policy with priority 50.
[ros2_control_node-3] [INFO] [1732398479.663439490] [controller_manager]: Received robot description from topic.
[ros2_control_node-3] [INFO] [1732398479.669822927] [controller_manager.resource_manager]: Loading hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.671651644] [controller_manager.resource_manager]: Loaded hardware ‘RealRobot’ from plugin ‘diffdrive_arduino/DiffDriveArduinoHardware’
[ros2_control_node-3] [INFO] [1732398479.671799086] [controller_manager.resource_manager]: Initialize hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.672693760] [DiffDriveArduinoHardware]: PID values not supplied, using defaults.
[ros2_control_node-3] [INFO] [1732398479.672756296] [controller_manager.resource_manager]: Successful initialization of hardware ‘RealRobot’
[ros2_control_node-3] [WARN] [1732398479.673015515] [controller_manager.resource_manager]: Importing state interfaces for the hardware ‘RealRobot’ returned no state interfaces.
[ros2_control_node-3] [INFO] [1732398479.673201328] [resource_manager]: ‘configure’ hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.673221050] [DiffDriveArduinoHardware]: Configuring …please wait…
[ros2_control_node-3] [INFO] [1732398479.674503718] [DiffDriveArduinoHardware]: Successfully configured!
[ros2_control_node-3] [INFO] [1732398479.674543662] [resource_manager]: Successful ‘configure’ of hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.674562736] [resource_manager]: ‘activate’ hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.674570755] [DiffDriveArduinoHardware]: Activating …please wait…
[ros2_control_node-3] [INFO] [1732398479.674576754] [DiffDriveArduinoHardware]: Successfully activated!
[ros2_control_node-3] [INFO] [1732398479.674581754] [resource_manager]: Successful ‘activate’ of hardware ‘RealRobot’
[ros2_control_node-3] [INFO] [1732398479.674607365] [controller_manager]: Resource Manager has been successfully initialized. Starting Controller Manager services…
[spawner-5] [INFO] [1732398480.221708956] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[ros2_control_node-3] [INFO] [1732398480.258754684] [controller_manager]: Loading controller : ‘joint_broad’ of type ‘joint_state_broadcaster/JointStateBroadcaster’
[ros2_control_node-3] [INFO] [1732398480.258819424] [controller_manager]: Loading controller ‘joint_broad’
[ros2_control_node-3] [INFO] [1732398480.264793940] [controller_manager]: Controller ‘joint_broad’ node arguments: --ros-args --params-file /tmp/launch_params_dw8xllww --params-file /home/rbt/dev_ws/install/my_bot/share/my_bot/config/my_controllers.yaml
[ros2_control_node-3] The ReadByte() call has timed out.
[spawner-4] [INFO] [1732398480.703632611] [spawner_joint_broad]: Loaded joint_broad
[ros2_control_node-3] [INFO] [1732398480.705741399] [controller_manager]: Configuring controller: ‘joint_broad’
[ros2_control_node-3] [INFO] [1732398480.705934452] [joint_broad]: ‘joints’ or ‘interfaces’ parameter is empty. All available state interfaces will be published
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] [INFO] [1732398482.686052879] [controller_manager]: Activating controllers: [ joint_broad ]
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[ros2_control_node-3] The ReadByte() call has timed out.
[spawner-4] [INFO] [1732398485.692064587] [spawner_joint_broad]: Configured and activated joint_broad
[ros2_control_node-3] [INFO] [1732398485.694229893] [controller_manager]: Loading controller : ‘diff_cont’ of type ‘diff_drive_controller/DiffDriveController’
[ros2_control_node-3] [INFO] [1732398485.694295910] [controller_manager]: Loading controller ‘diff_cont’
[ros2_control_node-3] [INFO] [1732398485.698053974] [controller_manager]: Controller ‘diff_cont’ node arguments: --ros-args --params-file /tmp/launch_params_dw8xllww --params-file /home/rbt/dev_ws/install/my_bot/share/my_bot/config/my_controllers.yaml
[spawner-5] [INFO] [1732398485.729429427] [spawner_diff_cont]: Loaded diff_cont
[ros2_control_node-3] [INFO] [1732398485.731886359] [controller_manager]: Configuring controller: ‘diff_cont’
[ros2_control_node-3] [INFO] [1732398485.763207146] [controller_manager]: Activating controllers: [ diff_cont ]
[spawner-5] [INFO] [1732398485.775559322] [spawner_diff_cont]: Configured and activated diff_cont
[INFO] [spawner-4]: process has finished cleanly [pid 4251]
[INFO] [spawner-5]: process has finished cleanly [pid 4252]

1 Like

Hi,

I am also struggling with migration to jazzy.
But I managed to make teleoperation working again with this command, this is publishing message in TwistStamped format :

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true

Make sure on robot side you activate to accept TwistStamped for /cmd_vel topic.

Hope it helps.

Hi, I’m trying to run the diffdrive_arduino with open loop mode but i don’t know how to setup my my_controllers.yaml. Can you please help me?

@JoshNewans Can you help me to debugging on this problem? I’m currently using ros2 humble with diffdrive_arduino-humble and got trouble to launch the controllers_manager node when performing this tutorial

robot@robot-pi:~/bot_ws$ ros2 launch articubot_one launch_robot.launch.py
[INFO] [launch]: All log files can be found below /home/robot/.ros/log/2025-01-02-02-18-02-991864-robot-pi-3945
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [3947]
[robot_state_publisher-1] [WARN] [1735759083.798609223] [kdl_parser]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
[robot_state_publisher-1] [INFO] [1735759083.798852722] [robot_state_publisher]: got segment F_left_wheel
[robot_state_publisher-1] [INFO] [1735759083.799013794] [robot_state_publisher]: got segment F_right_wheel
[robot_state_publisher-1] [INFO] [1735759083.799050905] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1735759083.799078831] [robot_state_publisher]: got segment chassis
[robot_state_publisher-1] [INFO] [1735759083.799104683] [robot_state_publisher]: got segment laser_frame
[robot_state_publisher-1] [INFO] [1735759083.799129701] [robot_state_publisher]: got segment left_wheel
[robot_state_publisher-1] [INFO] [1735759083.799155849] [robot_state_publisher]: got segment right_wheel
[INFO] [ros2_control_node-2]: process started with pid [3969]
[INFO] [spawner-3]: process started with pid [3971]
[INFO] [spawner-4]: process started with pid [3973]
[ros2_control_node-2] [WARN] [1735759090.888502313] [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] [1735759090.889384159] [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/DiffDriveArduino with base class type hardware_interface::SystemInterface does not exist. Declared types are diffdrive_arduino/DiffDriveArduinoHardware fake_components/GenericSystem mock_components/GenericSystem test_hardware_components/TestSystemCommandModes test_hardware_components/TestTwoJointSystem
[ros2_control_node-2] Stack trace (most recent call last):
[ros2_control_node-2] #16 Object “/usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1”, at 0xffffffffffffffff, in
[ros2_control_node-2] #15 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae769476f, in
[ros2_control_node-2] #14 Source “…/csu/libc-start.c”, line 392, in __libc_start_main_impl [0xffffad3d74cb]
[ros2_control_node-2] #13 Source “…/sysdeps/nptl/libc_start_call_main.h”, line 58, in __aarch64_ldadd4_acq [0xffffad3d73fb]
[ros2_control_node-2] #12 Object “/opt/ros/humble/lib/controller_manager/ros2_control_node”, at 0xaaaae7693d17, in
[ros2_control_node-2] #11 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffadaa2863, 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-2] #10 Object “/opt/ros/humble/lib/libcontroller_manager.so”, at 0xffffada9e9af, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-2] #9 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffad2571c7, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool)
[ros2_control_node-2] #8 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffad25580b, in
[ros2_control_node-2] #7 Object “/opt/ros/humble/lib/libhardware_interface.so”, at 0xffffad26b283, in
[ros2_control_node-2] #6 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffad632e03, in __cxa_throw
[ros2_control_node-2] #5 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffad632b1f, in std::terminate()
[ros2_control_node-2] #4 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffad632abb, in
[ros2_control_node-2] #3 Object “/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30”, at 0xffffad6362db, in __gnu_cxx::__verbose_terminate_handler()
[ros2_control_node-2] #2 Source “./stdlib/abort.c”, line 79, in abort [0xffffad3d712f]
[ros2_control_node-2] #1 Source “…/sysdeps/posix/raise.c”, line 26, in raise [0xffffad3ea67b]
[ros2_control_node-2] #0 Source “./nptl/pthread_kill.c”, line 44, in __pthread_kill_implementation [0xffffad42f200]
[ros2_control_node-2] Aborted (Signal sent by tkill() 3969 1000)
[spawner-3] [INFO] [1735759092.174425168] [spawner_joint_broad]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [INFO] [1735759092.184318519] [spawner_diff_cont]: waiting for service /controller_manager/list_controllers to become available…
[ERROR] [ros2_control_node-2]: process has died [pid 3969, exit code -6, cmd ‘/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_q13_6nmr --params-file /home/robot/bot_ws/install/articubot_one/share/articubot_one/config/my_controllers.yaml’].

Hi all
I am having trouble installing diffdrive_arduino onto my raspberry pi and PC. I am using humble (not the original distro of foxy.
If someone can throw light on this I would be greatful as I have been at this for days. Also if anyone has a list of actions (absolute minimal actions) to get the motors working on a pi that is sitting on my desk. The miniterm test is fully working.
regards