Hello,
I’ve tried to complete unit 3 ( Hardware Interface Implementation Template) but it seems like the controller manager not working right?
Followed unit 3, three times now and I get the same result every time. Robot not launching correctly, only first joint stands up right, the other just hangs there.
user:~/ros2_ws$ source install/setup.bash
user:~/ros2_ws$ ros2 launch my_robot_hardware_interface bring_up_on_hardware.launch.py
[INFO] [launch]: All log files can be found below /home/user/.ros/log/2022-07-19-16-39-09-182794-4_xterm-4451
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [4453]
[INFO] [spawner-2]: process started with pid [4455]
[INFO] [spawner-3]: process started with pid [4457]
[INFO] [spawner-4]: process started with pid [4459]
[INFO] [robot_state_publisher-5]: process started with pid [4461]
[INFO] [rviz2-6]: process started with pid [4463]
[ros2_control_node-1] terminate called after throwing an instance of 'pluginlib::LibraryLoadException'
[ros2_control_node-1] what(): Failed to load library /home/user/ros2_ws/install/my_robot_hardware_interface/lib/libmy_robot_hardware_interface.so. Make sure that you are calling thePLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library dlopen error: /home/user/ros2_ws/install/my_robot_hardware_interface/lib/libmy_robot_hardware_interface.so: undefined symbol: _ZN26ros2_control_demo_hardware31RRBotSystemPositionOnlyHardware13on_deactivateERKN16rclcpp_lifecycle5StateE, at /tmp/binarydeb/ros-galactic-rcutils-4.0.2/src/shared_library.c:99
[robot_state_publisher-5] Link link1 had 1 children
[robot_state_publisher-5] Link link2 had 1 children
[robot_state_publisher-5] Link link3 had 1 children
[robot_state_publisher-5] Link camera_link had 1 children
[robot_state_publisher-5] Link camera_link_optical had 0 children
[robot_state_publisher-5] [INFO] [1658248749.669679964] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-5] [INFO] [1658248749.669786548] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-5] [INFO] [1658248749.669812695] [robot_state_publisher]: got segment link1
[robot_state_publisher-5] [INFO] [1658248749.669830825] [robot_state_publisher]: got segment link2
[robot_state_publisher-5] [INFO] [1658248749.669847548] [robot_state_publisher]: got segment link3
[robot_state_publisher-5] [INFO] [1658248749.669863990] [robot_state_publisher]: got segment world
[ERROR] [ros2_control_node-1]: process has died [pid 4453, exit code -6, cmd '/opt/ros/galactic/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_8gt24rv4 --params-file /home/user/ros2_ws/install/my_robot_hardware_interface/share/my_robot_hardware_interface/config/controller_configuration.yaml'].
[spawner-4] [INFO] [1658248750.152696598] [spawner_joint_trajectory_controller]: Waiting for /controller_manager services
[spawner-2] [INFO] [1658248750.221954547] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[spawner-3] [INFO] [1658248750.232681563] [spawner_forward_position_controller]: Waiting for /controller_manager services
[spawner-4] [INFO] [1658248752.161627139] [spawner_joint_trajectory_controller]: Waiting for /controller_manager services
[spawner-2] [INFO] [1658248752.230794321] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[spawner-3] [INFO] [1658248752.240980260] [spawner_forward_position_controller]: Waiting for /controller_manager services
[spawner-4] [INFO] [1658248754.170799691] [spawner_joint_trajectory_controller]: Waiting for /controller_manager services
[spawner-2] [INFO] [1658248754.240021384] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[spawner-3] [INFO] [1658248754.249834550] [spawner_forward_position_controller]: Waiting for /controller_manager services
[spawner-4] [INFO] [1658248756.180545332] [spawner_joint_trajectory_controller]: Waiting for /controller_manager services
[spawner-2] [INFO] [1658248756.249374193] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[spawner-3] [INFO] [1658248756.257891518] [spawner_forward_position_controller]: Waiting for /controller_manager services
[spawner-4] [INFO] [1658248758.190055589] [spawner_joint_trajectory_controller]: Waiting for /controller_manager services
[spawner-2] [INFO] [1658248758.258498090] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[spawner-3] [INFO] [1658248758.267030351] [spawner_forward_position_controller]: Waiting for /controller_manager services
[spawner-4] [ERROR] [1658248760.199021577] [spawner_joint_trajectory_controller]: Controller manager not available
[spawner-2] [ERROR] [1658248760.267442958] [spawner_joint_state_broadcaster]: Controller manager not available
[spawner-3] [ERROR] [1658248760.275913201] [spawner_forward_position_controller]: Controller manager not available
[ERROR] [spawner-4]: process has died [pid 4459, exit code 1, cmd '/opt/ros/galactic/lib/controller_manager/spawner joint_trajectory_controller -c /controller_manager --ros-args'].
[ERROR] [spawner-2]: process has died [pid 4455, exit code 1, cmd '/opt/ros/galactic/lib/controller_manager/spawner joint_state_broadcaster --controller-manager /controller_manager --ros-args'].
[ERROR] [spawner-3]: process has died [pid 4457, exit code 1, cmd '/opt/ros/galactic/lib/controller_manager/spawner forward_position_controller -c /controller_manager –ros-args'].
From what i understand it seems like there is a problem with the controller manage not being available.
I also tried to list the controllers:
user:~/ros2_ws$ ros2 control list_controllers
Could not contact service /controller_manager/list_controllers
user:~/ros2_ws$ ros2 control
list_controller_types list_hardware_interfaces reload_controller_libraries switch_controllers
list_controllers load_controller set_controller_state unload_controller
user:~/ros2_ws$ ros2 control reload_controller_libraries
Could not contact service /controller_manager/reload_controller_libraries
Thanks for considering this.