How to get the 6 DOF SES-PRO to work with ROS2

Hello I have been trying to follow the guide to get ROS2 to control the Lynx 6 DOF 900mm arm: GitHub - Lynxmotion/SES-P-ROS2-Arms

I am trying to control the real arm so I get to the point where I run the launch file ros2 launch pro_arm_moveit real_arm_control.launch.py but I am unable to make the arm move in real life. The LEDS are blue and I have the usb cable for the arm connected to the laptop I am using.

An error if it is useful here is [spawner_arm_trajectory_controller]: Could not contact service /controller_manager_list_controllers

Any help would be appreciated!

Hi BSilber1,

Thanks for reaching out. I’ve already forwarded your message to our support center (Zendesk / check your SPAM), and our team will be in touch with you as soon as possible.

In the meantime, we’re genuinely curious — what kind of task are you envisioning for the Lynxmotion PRO at NASA?
Is it intended for an exhibition, a demo, or something else?

All the best,

1 Like

I am an intern tasked with getting it to work inside a vacuum chamber for moving some test items in it

3 Likes

That’s a nice project, we would love if you could post about it on our Robot section.

1 Like

Hello @BSilber1, that’s an exciting project!

There seems to be a problem with the trajectory controller.

Could you specify which ROS distro you are using?

Were you able to run the fake and simulated controllers?

When you installed the dependencies, did you get any errors while running this command?

rosdep install --from-path src -yi --rosdistro humble

When you are running the example, open another terminal and run this command

ros2 control list_controllers

Please share the output here :slight_smile:

1 Like

Thanks for the help!

1: Humble
2: fake and simulated controllers appear to run ok
3: no errors from the command. I redid it to check and it said all rosdeps installed succesfully
4: The output was:

arm_trajectory_controller joint_trajectory_controller/JointTrajectoryController active
joint_state_broadcaster joint_state_broadcaster/JointStateBroadcaster active

I’m also thinking I could just be connecting to the real arm in a wrong way. The way I have been trying to do it is just by plugging in the USB and then running the real controller. I’m relatively new to ROS so I don’t know if there is another step I should be doing

Hello!

fake and simulated controllers appear to run ok

Have you tried using MoveIt to move the arm (in RViz or Gazebo)?

no errors from the command. I redid it to check and it said all rosdeps installed successfully

Noted. So all packages were installed correctly

The output was:
arm_trajectory_controller joint_trajectory_controller/JointTrajectoryController active
joint_state_broadcaster joint_state_broadcaster/JointStateBroadcaster active

That’s interesting because the first error you shared was:
ā€œ[spawner_arm_trajectory_controller]: Could not contact service /controller_manager_list_controllersā€

But now you see:
arm_trajectory_controller joint_trajectory_controller/JointTrajectoryController active

So the error you initially mentioned might have been a timing issue during launch.

What error are you having right now?

I’m also thinking I could just be connecting to the real arm in a wrong way.

I don’t think so because the LEDs wouldn’t have turned blue.

Have you tried using a different way to control the arm? Like the:

I’m relatively new to ROS so I don’t know if there is another step I should be doing

All steps are listed in the repository, so there should be no further steps. If the LEDs didn’t turn blue, I would say it is a connection issue, but it doesn’t seem to be. However, just to check could you try installing this package and running the example shown in the readme?

  • Note: You might want to switch the IDs in the code for the ones at the top of the arm (5 & 6) to not move the bottom servos abruptly in case they are not centered.

That’s LSS-P-ROS2-Hardware repository has the package that contains the ā€œhardware interfaceā€ code for the LSS-P, which is used to control the physical motors, and it includes an example to move two motors. The package for the arm actually uses it to communicate with the motors so you already have this package inside the other project but there is no problem if you use it separately.

Let me know if you have any questions!

ok thanks for the info here is what happened on my end:

#1: Moveit to Gazebo works well. I can change the arm location in moveit / RVIZ and can make the arm do that move in Gazebo

#3: the error only happens when using the real controller. That output was from the simulated one which works ok

#4: the windows application works fine I can control the arm with that (but we still would like ROS for what we are doing)

#5: I tried using the LSS-P-ROS2-Hardware package and the same error pops up when I run ā€œros2 launch rrbot_example rrbot.launch.pyā€

Here is an info dump from the terminal if this is somehow helpful:

let me know if there are other details you would like from me

SES-P-ROS2-ARMS Output after ā€œros2 launch pro_arm_moveit sim_arm_control.launch.py size:=900ā€

[INFO] [launch]: All log files can be found below /home/cryo-user/.ros/log/2025-06-18-12-35-03-167200-ladmin-Latitude-5540-18200
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [18218]
[INFO] [ros2_control_node-2]: process started with pid [18220]
[INFO] [move_group-3]: process started with pid [18222]
[INFO] [rviz2-4]: process started with pid [18224]
[INFO] [emergency_stop_marker.py-5]: process started with pid [18226]
[INFO] [spawner-6]: process started with pid [18228]
[INFO] [spawner-7]: process started with pid [18230]
[rviz2-4] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[ros2_control_node-2] [WARN] [1750264503.778085126] [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] [ERROR] [1750264503.782546305] [ProMotorHardware]: Failed to initialize pro bus: Permission denied
[ros2_control_node-2] [ERROR] [1750264503.782571961] [ProMotorHardware]: Hardware interface error
[ros2_control_node-2] terminate called after throwing an instance of ā€˜std::runtime_error’
[ros2_control_node-2] what(): Failed to set the initial state of the component : pro_arm_system to active
[ros2_control_node-2] Stack trace (most recent call last):
[ros2_control_node-2] 13 Object ā€œā€, at 0xffffffffffffffff, in
[ros2_control_node-2] #12 Object ā€œ/opt/ros/humble/lib/controller_manager/ros2_control_nodeā€, at 0x608e4696eee4, in
[ros2_control_node-2] #11 Source ā€œā€¦/csu/libc-start.cā€, line 392, in __libc_start_main_impl [0x7b1cbe629e3f]
[ros2_control_node-2] 10 Source ā€œā€¦/sysdeps/nptl/libc_start_call_main.hā€, line 58, in __libc_start_call_main [0x7b1cbe629d8f]
[ros2_control_node-2] #9 Object ā€œ/opt/ros/humble/lib/controller_manager/ros2_control_nodeā€, at 0x608e4696e3e3, in
[ros2_control_node-2] #8 Object ā€œ/opt/ros/humble/lib/libcontroller_manager.soā€, at 0x7b1cbf0925da, 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] #7 Object ā€œ/opt/ros/humble/lib/libcontroller_manager.soā€, at 0x7b1cbf07832c, in
[ros2_control_node-2] #6 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7b1cbeaae4d7, in __cxa_throw
[ros2_control_node-2] 5 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7b1cbeaae276, in std::terminate()
[ros2_control_node-2] 4 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7b1cbeaae20b, in
[ros2_control_node-2] 3 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7b1cbeaa2b9d, in
[ros2_control_node-2] 2 Source ā€œ./stdlib/abort.cā€, line 79, in abort [0x7b1cbe6287f2]
[ros2_control_node-2] 1 Source ā€œā€¦/sysdeps/posix/raise.cā€, line 26, in raise [0x7b1cbe642475]
[ros2_control_node-2] #0 | Source ā€œ./nptl/pthread_kill.cā€, line 89, in __pthread_kill_internal
[ros2_control_node-2] | Source ā€œ./nptl/pthread_kill.cā€, line 78, in __pthread_kill_implementation
[ros2_control_node-2] Source ā€œ./nptl/pthread_kill.cā€, line 44, in __pthread_kill [0x7b1cbe6969fc]
[ros2_control_node-2] Aborted (Signal sent by tkill() 18220 1001)
[move_group-3] [WARN] [1750264503.841234457] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-3] [ERROR] [1750264503.841290585] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
[emergency_stop_marker.py-5] [INFO] [1750264504.014454193] [emergency_stop_marker]: Creating Interactive Marker Server…
[emergency_stop_marker.py-5] [INFO] [1750264504.018637861] [emergency_stop_marker]: Server created
[rviz2-4] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don’t link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
[rviz2-4] at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp
[ERROR] [ros2_control_node-2]: process has died [pid 18220, exit code -6, cmd ā€˜/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --log-level warn --ros-args --params-file /tmp/launch_params_8qxhqirc --params-file /home/cryo-user/SES-P-ROS2-Arms/install/pro_arm_moveit/share/pro_arm_moveit/config/controllers_6dof.yaml --params-file /tmp/launch_params_xn_hicm7’].
[emergency_stop_marker.py-5] [INFO] [1750264505.020594058] [emergency_stop_marker]: Creating emergency stop marker…
[emergency_stop_marker.py-5] [INFO] [1750264505.023356418] [emergency_stop_marker]: Emergency stop button created
[emergency_stop_marker.py-5] [INFO] [1750264505.023913677] [emergency_stop_marker]: Emergency Stop Button initialized
[rviz2-4] [ERROR] [1750264507.105066507] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[spawner-7] [WARN] [1750264513.970811665] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750264514.033936586] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[move_group-3] [WARN] [1750264515.799135892] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Failed to fetch current robot state.
[move_group-3] [WARN] [1750264515.828992137] [moveit_trajectory_processing.time_optimal_trajectory_generation]: Joint velocity limits are not defined. Using the default 1 rad/s. You can define velocity limits in the URDF or joint_limits.yaml.
[move_group-3] [WARN] [1750264516.832334928] [moveit_ros.trajectory_execution_manager]: Failed to validate trajectory: couldn’t receive full current joint state within 1s
[rviz2-4] [ERROR] [1750264516.834126528] [move_group_interface]: MoveGroupInterface::move() failed or timeout reached
[spawner-7] [WARN] [1750264523.990519154] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750264524.055574971] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750264534.012107440] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750264534.079353887] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750264544.033165015] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750264544.102237405] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers

LSS-P-ROS2_Hardware output after ā€œros2 launch rrbot_example rrbot.launch.pyā€

[INFO] [launch]: All log files can be found below /home/cryo-user/.ros/log/2025-06-18-12-37-39-413040-ladmin-Latitude-5540-18490
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [18494]
[INFO] [robot_state_publisher-2]: process started with pid [18496]
[INFO] [spawner-3]: process started with pid [18498]
[INFO] [spawner-4]: process started with pid [18500]
[robot_state_publisher-2] [INFO] [1750264659.580002359] [robot_state_publisher]: got segment base_link
[robot_state_publisher-2] [INFO] [1750264659.580062311] [robot_state_publisher]: got segment link1
[robot_state_publisher-2] [INFO] [1750264659.580067989] [robot_state_publisher]: got segment link2
[robot_state_publisher-2] [INFO] [1750264659.580071734] [robot_state_publisher]: got segment tool_link
[robot_state_publisher-2] [INFO] [1750264659.580074673] [robot_state_publisher]: got segment world
[ros2_control_node-1] terminate called after throwing an instance of ā€˜std::out_of_range’
[ros2_control_node-1] what(): _Map_base::at
[ros2_control_node-1] Stack trace (most recent call last):
[ros2_control_node-1] #21 Object ā€œā€, at 0xffffffffffffffff, in
[ros2_control_node-1] 20 Object ā€œ/opt/ros/humble/lib/controller_manager/ros2_control_nodeā€, at 0x5e49e5a58ee4, in
[ros2_control_node-1] #19 Source ā€œā€¦/csu/libc-start.cā€, line 392, in __libc_start_main_impl [0x7bce8a229e3f]
[ros2_control_node-1] #18 Source ā€œā€¦/sysdeps/nptl/libc_start_call_main.hā€, line 58, in __libc_start_call_main [0x7bce8a229d8f]
[ros2_control_node-1] #17 Object ā€œ/opt/ros/humble/lib/controller_manager/ros2_control_nodeā€, at 0x5e49e5a583e3, in
[ros2_control_node-1] 16 Object ā€œ/opt/ros/humble/lib/libcontroller_manager.soā€, at 0x7bce8ac5f5da, 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-1] #15 Object ā€œ/opt/ros/humble/lib/libcontroller_manager.soā€, at 0x7bce8ac5a5ff, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-1] #14 Object ā€œ/opt/ros/humble/lib/libhardware_interface.soā€, at 0x7bce8a5c0115, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool)
[ros2_control_node-1] 13 Object ā€œ/opt/ros/humble/lib/libhardware_interface.soā€, at 0x7bce8a5bf1db, in
[ros2_control_node-1] #12 Object ā€œ/opt/ros/humble/lib/libhardware_interface.soā€, at 0x7bce8a5e740a, in
[ros2_control_node-1] #11 Object ā€œ/opt/ros/humble/lib/libhardware_interface.soā€, at 0x7bce8a5e573b, in hardware_interface::System::initialize(hardware_interface::HardwareInfo const&)
[ros2_control_node-1] 10 Object ā€œ/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.soā€, at 0x7bce834e980d, in pro_motor_hardware::ProMotorHardware::on_init(hardware_interface::HardwareInfo const&)
[ros2_control_node-1] #9 Object ā€œ/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.soā€, at 0x7bce834f331e, in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >::at(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-1] #8 Object ā€œ/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.soā€, at 0x7bce834f6293, in std::__detail::_Map_base<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::at(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)
[ros2_control_node-1] #7 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7bce8a6a549f, in std::__throw_out_of_range(char const*)
[ros2_control_node-1] #6 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7bce8a6ae4d7, in __cxa_throw
[ros2_control_node-1] 5 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7bce8a6ae276, in std::terminate()
[ros2_control_node-1] 4 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7bce8a6ae20b, in
[ros2_control_node-1] 3 Object ā€œ/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30ā€, at 0x7bce8a6a2b9d, in
[ros2_control_node-1] 2 Source ā€œ./stdlib/abort.cā€, line 79, in abort [0x7bce8a2287f2]
[ros2_control_node-1] 1 Source ā€œā€¦/sysdeps/posix/raise.cā€, line 26, in raise [0x7bce8a242475]
[ros2_control_node-1] #0 | Source ā€œ./nptl/pthread_kill.cā€, line 89, in __pthread_kill_internal
[ros2_control_node-1] | Source ā€œ./nptl/pthread_kill.cā€, line 78, in __pthread_kill_implementation
[ros2_control_node-1] Source ā€œ./nptl/pthread_kill.cā€, line 44, in __pthread_kill [0x7bce8a2969fc]
[ros2_control_node-1] Aborted (Signal sent by tkill() 18494 1001)
[spawner-3] [INFO] [1750264659.730214792] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [INFO] [1750264659.779823445] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[ERROR] [ros2_control_node-1]: process has died [pid 18494, exit code -6, cmd ā€˜/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --log-level error --ros-args --params-file /tmp/launch_params_z12i16yw --params-file /home/cryo-user/LSS-P-ROS2-Hardware/install/rrbot_example/share/rrbot_example/config/rrbot_controllers.yaml’].
[spawner-3] [WARN] [1750264669.752833749] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264669.753522553] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264669.803277250] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264669.804346851] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264679.775848053] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264679.777032506] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264679.827415114] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264679.828360679] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264689.800112907] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264689.801101958] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264689.850031360] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264689.850604963] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264699.823905744] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264699.824818363] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264699.873073978] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264699.873825021] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264709.847561296] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264709.848250634] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264709.896262262] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264709.897312130] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264719.870405115] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264719.871133444] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264719.920310845] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264719.920983907] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264729.894262174] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264729.895085894] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264729.943311948] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264729.944237309] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-3] [WARN] [1750264739.916277590] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750264739.917455598] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available…
[spawner-4] [WARN] [1750264739.967064892] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-4] [INFO] [1750264739.968335759] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…

hmm using ai tools it looks like it might be a permissions issue… will also check this

Hello @BSilber1

Yes, it seems like you might not have sufficient permissions for the serial port connected to the arm

I mentioned this on the repo instructions:

sudo chmod 666 /dev/ttyACM0

But you may have to switch it a little, you can try to identify your serial port

ls /dev/tty*

Look for devices like /dev/ttyACM0, /dev/ttyUSB0, or similar

Unplug/replug your arm to identify which port appears

1 Like

Hi @BSilber1

Just doing a little follow-up, have you been able to make it work yet ?

Thanks,

Some other things became more important so I haven’t been working on this recently but here is the latest update on it:

I tried this on the computer that I was using and I tried following the instructions up to this point on a separate computer with a fresh linux install and am still getting errors.

this output was after doing the sudo chmod 666 line and then running the real controller.

I should probably also mention we have been having IT issues getting the pro config to run on our computers but I assumed this was fine since the arm moved well with the lynxmotion UI. Let me know if there was something important that should have been done.

[INFO] [launch]: All log files can be found below /home/lynx-arm/.ros/log/2025-06-23-10-46-25-661603-lynxarm-C40-7851
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [7858]
[INFO] [ros2_control_node-2]: process started with pid [7860]
[INFO] [move_group-3]: process started with pid [7862]
[INFO] [rviz2-4]: process started with pid [7864]
[INFO] [emergency_stop_marker.py-5]: process started with pid [7866]
[INFO] [spawner-6]: process started with pid [7868]
[INFO] [spawner-7]: process started with pid [7870]
[rviz2-4] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[ros2_control_node-2] [WARN] [1750689987.399732716] [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.
[move_group-3] [WARN] [1750689987.535441000] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-3] [ERROR] [1750689987.535564112] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
[rviz2-4] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
[rviz2-4]          at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp
[emergency_stop_marker.py-5] [INFO] [1750689988.308002478] [emergency_stop_marker]: Creating Interactive Marker Server...
[emergency_stop_marker.py-5] [INFO] [1750689988.318264815] [emergency_stop_marker]: Server created
[emergency_stop_marker.py-5] [INFO] [1750689989.319921698] [emergency_stop_marker]: Creating emergency stop marker...
[emergency_stop_marker.py-5] [INFO] [1750689989.322030209] [emergency_stop_marker]: Emergency stop button created
[emergency_stop_marker.py-5] [INFO] [1750689989.322588626] [emergency_stop_marker]: Emergency Stop Button initialized
[rviz2-4] [ERROR] [1750689991.284040676] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[spawner-7] [WARN] [1750689998.113266967] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750689998.146973552] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[move_group-3] [WARN] [1750690006.645294324] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Failed to fetch current robot state.
[move_group-3] [WARN] [1750690006.667091062] [moveit_trajectory_processing.time_optimal_trajectory_generation]: Joint velocity limits are not defined. Using the default 1 rad/s. You can define velocity limits in the URDF or joint_limits.yaml.
[move_group-3] [WARN] [1750690007.670255974] [moveit_ros.trajectory_execution_manager]: Failed to validate trajectory: couldn't receive full current joint state within 1s
[rviz2-4] [ERROR] [1750690007.671420950] [move_group_interface]: MoveGroupInterface::move() failed or timeout reached
[spawner-7] [WARN] [1750690008.130004717] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750690008.162679635] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750690018.148084262] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750690018.180267396] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750690028.163735747] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750690028.196598566] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers

Hello @BSilber1

Can you try using the LSS-P-ROS2_Hardware example again, with the real controller, not the simulated one?

Share the output here.

Last time you shared ā€œ[ros2_control_node-2] [ERROR] [1750264503.782546305] [ProMotorHardware]: Failed to initialize pro bus: Permission deniedā€

That looks like you don’t have permission to access the port.

Try running:

ls /dev/tty*

Look for entries like /dev/ttyACM0, /dev/ttyUSB0, or similar

Unplug/replug your arm to identify the port

Once you identify the correct < port > use the command

sudo chmod 666 < port >

And run the example on the same terminal

If you get any errors, share them here

1 Like

Thanks for info here is the output with the sudo chmod 666 line (also should be noted is that the LED on the first motor blinks white and red now). The rest of the motors remain blue.

**ARMS**
[INFO] [launch]: All log files can be found below /home/cryo-user/.ros/log/2025-06-25-15-32-12-215156-ladmin-Latitude-5540-135095
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [135107]
[INFO] [ros2_control_node-2]: process started with pid [135109]
[INFO] [move_group-3]: process started with pid [135111]
[INFO] [rviz2-4]: process started with pid [135113]
[INFO] [emergency_stop_marker.py-5]: process started with pid [135115]
[INFO] [spawner-6]: process started with pid [135117]
[INFO] [spawner-7]: process started with pid [135119]
[rviz2-4] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[ros2_control_node-2] [WARN] [1750879932.841645989] [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.
[move_group-3] [WARN] [1750879932.908247110] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-3] [ERROR] [1750879932.908306164] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
[emergency_stop_marker.py-5] [INFO] [1750879933.077805461] [emergency_stop_marker]: Creating Interactive Marker Server...
[emergency_stop_marker.py-5] [INFO] [1750879933.082396698] [emergency_stop_marker]: Server created
[rviz2-4] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
[rviz2-4]          at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp
[emergency_stop_marker.py-5] [INFO] [1750879934.083744598] [emergency_stop_marker]: Creating emergency stop marker...
[emergency_stop_marker.py-5] [INFO] [1750879934.085608854] [emergency_stop_marker]: Emergency stop button created
[emergency_stop_marker.py-5] [INFO] [1750879934.086054961] [emergency_stop_marker]: Emergency Stop Button initialized
[rviz2-4] [ERROR] [1750879936.166340686] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[spawner-6] [WARN] [1750879943.029367768] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879943.110161587] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750879953.049999213] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879953.131217106] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750879963.071115387] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879963.151703430] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750879973.092712756] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879973.175659283] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750879983.113328174] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879983.197739264] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers
[spawner-6] [WARN] [1750879993.135575345] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers
[spawner-7] [WARN] [1750879993.220427481] [spawner_arm_trajectory_controller]: Could not contact service /controller_manager/list_controllers

**LSS-P-ROS2_Hardware**
[INFO] [launch]: All log files can be found below /home/cryo-user/.ros/log/2025-06-25-15-39-45-639488-ladmin-Latitude-5540-136335
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [136339]
[INFO] [robot_state_publisher-2]: process started with pid [136341]
[INFO] [spawner-3]: process started with pid [136343]
[INFO] [spawner-4]: process started with pid [136345]
[ros2_control_node-1] terminate called after throwing an instance of 'std::out_of_range'
[ros2_control_node-1]   what():  _Map_base::at
[ros2_control_node-1] Stack trace (most recent call last):
[ros2_control_node-1] #21   Object "", at 0xffffffffffffffff, in 
[ros2_control_node-1] #20   Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0x640e0ce7bee4, in 
[robot_state_publisher-2] [INFO] [1750880385.810106750] [robot_state_publisher]: got segment base_link
[robot_state_publisher-2] [INFO] [1750880385.810202105] [robot_state_publisher]: got segment link1
[robot_state_publisher-2] [INFO] [1750880385.810214389] [robot_state_publisher]: got segment link2
[robot_state_publisher-2] [INFO] [1750880385.810222252] [robot_state_publisher]: got segment tool_link
[robot_state_publisher-2] [INFO] [1750880385.810229624] [robot_state_publisher]: got segment world
[ros2_control_node-1] #19   Source "../csu/libc-start.c", line 392, in __libc_start_main_impl [0x7f5774c29e3f]
[ros2_control_node-1] #18   Source "../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main [0x7f5774c29d8f]
[ros2_control_node-1] #17   Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0x640e0ce7b3e3, in 
[ros2_control_node-1] #16   Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0x7f57756b65da, 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-1] #15   Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0x7f57756b15ff, in controller_manager::ControllerManager::init_resource_manager(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[ros2_control_node-1] #14   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f57752b2115, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool)
[ros2_control_node-1] #13   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f57752b11db, in 
[ros2_control_node-1] #12   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f57752d940a, in 
[ros2_control_node-1] #11   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f57752d773b, in hardware_interface::System::initialize(hardware_interface::HardwareInfo const&)
[ros2_control_node-1] #10   Object "/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.so", at 0x7f576df3e80d, in pro_motor_hardware::ProMotorHardware::on_init(hardware_interface::HardwareInfo const&)
[ros2_control_node-1] #9    Object "/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.so", at 0x7f576df4831e, in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<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> > > > >::at(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[ros2_control_node-1] #8    Object "/home/cryo-user/LSS-P-ROS2-Hardware/build/pro_motor_hardware/libpro_motor_hardware.so", at 0x7f576df4b293, in std::__detail::_Map_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<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> > >, std::allocator<std::pair<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> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::at(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[ros2_control_node-1] #7    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f57750a549f, in std::__throw_out_of_range(char const*)
[ros2_control_node-1] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f57750ae4d7, in __cxa_throw
[ros2_control_node-1] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f57750ae276, in std::terminate()
[ros2_control_node-1] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f57750ae20b, in 
[ros2_control_node-1] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f57750a2b9d, in 
[ros2_control_node-1] #2    Source "./stdlib/abort.c", line 79, in abort [0x7f5774c287f2]
[ros2_control_node-1] #1    Source "../sysdeps/posix/raise.c", line 26, in raise [0x7f5774c42475]
[ros2_control_node-1] #0  | Source "./nptl/pthread_kill.c", line 89, in __pthread_kill_internal
[ros2_control_node-1]     | Source "./nptl/pthread_kill.c", line 78, in __pthread_kill_implementation
[ros2_control_node-1]       Source "./nptl/pthread_kill.c", line 44, in __pthread_kill [0x7f5774c969fc]
[ros2_control_node-1] Aborted (Signal sent by tkill() 136339 1001)
[spawner-3] [INFO] [1750880385.956910567] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available...
[spawner-4] [INFO] [1750880386.000001781] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available...
[ERROR] [ros2_control_node-1]: process has died [pid 136339, exit code -6, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --log-level error --ros-args --params-file /tmp/launch_params_m3_bomtx --params-file /home/cryo-user/LSS-P-ROS2-Hardware/install/rrbot_example/share/rrbot_example/config/rrbot_controllers.yaml'].
[spawner-3] [WARN] [1750880395.978095595] [spawner_forward_position_controller]: Could not contact service /controller_manager/list_controllers
[spawner-3] [INFO] [1750880395.978936828] [spawner_forward_position_controller]: waiting for service /controller_manager/list_controllers to become available...
[spawner-4] [WARN] [1750880396.020350922] [spawner_joint_state_broadcaster]: Could not contact service /controller_manager/list_controllers

Hello @BSilber1

The issue seems to be that there is no connection.

Were you able to identify which exact port you are using with ls /dev/tty*?

Have you tried using different IDs in the rrbot.ros2_control.xacro file?

Please use a different software like the windows application to change the colors of all the motors to Black (0) (or something other than red, green, or blue) using CLED.

Then, when you attempt to use the ROS package look at the LEDs, when the motors are being initialized they should turn green and when they are being activated they should turn blue.

If you see any blinking patterns look at this guide

Hi @BSilber1

Any news on your project ?
We would like to be sure you get it up and running…!

Thanks,

1 Like