fzi-forschungszentrum-informatik/cartesian_controllers

controller_manager dies

Closed this issue · 2 comments

Problem description
When I run the basic controller simulation launch command, the control_manager node dies after getting the following error:

[ros2_control_node-1] [WARN] [1700484564.628426881] [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-1] [INFO] [1700484564.634661344] [resource_manager]: Loading hardware 'cartesian_controller_simulation' [ros2_control_node-1] [INFO] [1700484564.649593589] [resource_manager]: Initialize hardware 'cartesian_controller_simulation' [ros2_control_node-1] terminate called after throwing an instance of 'std::out_of_range' [ros2_control_node-1] what(): map::at [ros2_control_node-1] Stack trace (most recent call last): [ros2_control_node-1] #29 Object "", at 0xffffffffffffffff, in [ros2_control_node-1] #28 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377ad864, in _start [ros2_control_node-1] #27 Source "../csu/libc-start.c", line 392, in __libc_start_main_impl [0x7f4abae29e3f] [ros2_control_node-1] #26 Source "../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main [0x7f4abae29d8f] [ros2_control_node-1] #25 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377ae23c, in main [ros2_control_node-1] #24 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b0076, in std::shared_ptr<controller_manager::ControllerManager> std::make_shared<controller_manager::ControllerManager, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #23 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b0cdc, in std::shared_ptr<controller_manager::ControllerManager> std::allocate_shared<controller_manager::ControllerManager, std::allocator<controller_manager::ControllerManager>, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::allocator<controller_manager::ControllerManager> const&, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #22 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b1594, in std::shared_ptr<controller_manager::ControllerManager>::shared_ptr<std::allocator<controller_manager::ControllerManager>, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::_Sp_alloc_shared_tag<std::allocator<controller_manager::ControllerManager> >, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #21 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b1ab5, in std::__shared_ptr<controller_manager::ControllerManager, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<controller_manager::ControllerManager>, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::_Sp_alloc_shared_tag<std::allocator<controller_manager::ControllerManager> >, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #20 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b1da0, in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<controller_manager::ControllerManager, std::allocator<controller_manager::ControllerManager>, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(controller_manager::ControllerManager*&, std::_Sp_alloc_shared_tag<std::allocator<controller_manager::ControllerManager> >, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #19 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b23ea, in std::_Sp_counted_ptr_inplace<controller_manager::ControllerManager, std::allocator<controller_manager::ControllerManager>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::allocator<controller_manager::ControllerManager>, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #18 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b27e3, in void std::allocator_traits<std::allocator<controller_manager::ControllerManager> >::construct<controller_manager::ControllerManager, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::allocator<controller_manager::ControllerManager>&, controller_manager::ControllerManager*, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #17 Object "/home/ata/ros2_ws/build/controller_manager/ros2_control_node", at 0x55dd377b2cc7, in void __gnu_cxx::new_allocator<controller_manager::ControllerManager>::construct<controller_manager::ControllerManager, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(controller_manager::ControllerManager*, std::shared_ptr<rclcpp::Executor>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [ros2_control_node-1] #16 Object "/home/ata/ros2_ws/build/controller_manager/libcontroller_manager.so", at 0x7f4abbe6c356, 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 "/home/ata/ros2_ws/build/controller_manager/libcontroller_manager.so", at 0x7f4abbe6dc7d, 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 "/home/ata/ros2_ws/build/hardware_interface/libhardware_interface.so", at 0x7f4abad6ecdd, in hardware_interface::ResourceManager::load_urdf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) [ros2_control_node-1] #13 Object "/home/ata/ros2_ws/build/hardware_interface/libhardware_interface.so", at 0x7f4abad770ec, in hardware_interface::ResourceStorage::load_and_initialize_system(hardware_interface::HardwareInfo const&) [ros2_control_node-1] #12 Object "/home/ata/ros2_ws/build/hardware_interface/libhardware_interface.so", at 0x7f4abad76ee4, in auto hardware_interface::ResourceStorage::load_and_initialize_system(hardware_interface::HardwareInfo const&)::{lambda(auto:1&)#1}::operator()<std::vector<hardware_interface::System, std::allocator<hardware_interface::System> > >(std::vector<hardware_interface::System, std::allocator<hardware_interface::System> >&) const [ros2_control_node-1] #11 Object "/home/ata/ros2_ws/build/hardware_interface/libhardware_interface.so", at 0x7f4abad7c99d, in bool hardware_interface::ResourceStorage::initialize_hardware<hardware_interface::System>(hardware_interface::HardwareInfo const&, hardware_interface::System&) [ros2_control_node-1] #10 Object "/home/ata/ros2_ws/build/hardware_interface/libhardware_interface.so", at 0x7f4abadb5ab5, in hardware_interface::System::initialize(hardware_interface::HardwareInfo const&) [ros2_control_node-1] #9 Object "/opt/ros/humble/lib/librclcpp_lifecycle.so", at 0x7f4abb50adcf, in rclcpp_lifecycle::State::id() const [ros2_control_node-1] #8 Object "/opt/ros/humble/lib/librclcpp_lifecycle.so", at 0x7f4abb50ab5b, in rclcpp_lifecycle::MutexMap::getMutex(rclcpp_lifecycle::State const*) const [ros2_control_node-1] #7 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f4abb2a549f, 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 0x7f4abb2ae4d7, in __cxa_throw [ros2_control_node-1] #5 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f4abb2ae276, in std::terminate() [ros2_control_node-1] #4 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f4abb2ae20b, in [ros2_control_node-1] #3 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f4abb2a2b9d, in [ros2_control_node-1] #2 Source "./stdlib/abort.c", line 79, in abort [0x7f4abae287f2] [ros2_control_node-1] #1 Source "../sysdeps/posix/raise.c", line 26, in raise [0x7f4abae42475] [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 [0x7f4abae969fc] [ros2_control_node-1] Aborted (Signal sent by tkill() 38803 1000) [ERROR] [ros2_control_node-1]: process has died [pid 38803, exit code -6, cmd '/home/ata/ros2_ws/install/controller_manager/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_x5n7rfn_ --params-file /home/ata/ros_ur_driver/install/cartesian_controller_simulation/share/cartesian_controller_simulation/config/controller_manager.yaml -r motion_control_handle/target_frame:=target_frame -r cartesian_motion_controller/target_frame:=target_frame -r cartesian_compliance_controller/target_frame:=target_frame -r cartesian_force_controller/target_wrench:=target_wrench -r cartesian_compliance_controller/target_wrench:=target_wrench -r cartesian_force_controller/ft_sensor_wrench:=ft_sensor_wrench -r cartesian_compliance_controller/ft_sensor_wrench:=ft_sensor_wrench'].

Software versions

  • Commit: ef2abde
  • OS: Ubuntu 22.04.3 LTS
  • ROS version: ROS2 Humble

To Reproduce
If possible, list the steps to reproduce the behavior.

Expected behavior
Expected behavior is for the simulation environment to start properly, and to the control_manager node work properly.

Additional context
Add anything that you feel is relevant to tackle this issue.

Hi @atajafari

Thanks for pointing this out. You seem to build the controller_manager yourself inside your workspace. Could you navigate into the controller_manager repo in your src folder and check the version with:

git rev-parse HEAD

I'll try to reproduce this here on my setup for debugging.


Edit: Is there a reason why you are not using the system-wide install with sudo apt-get install ros-humble-controller-manager?

Please reopen if still relevant.