Skip to content

ros2_canopen not working locally on Jetson AGX Orin #382

@jclinton830

Description

@jclinton830

Describe the bug

There is a problem with the thread event loop/timers when starting up the canopen_base_driver in Jetson AGX Orin. We also tried RPi 4 and 5 with the same result.

The same project works fine in an x86 system.

Logs

groundhog@ubuntu:~/ros_ws$ ros2 launch groundhog_bringup bringup.launch.py 
[INFO] [launch]: All log files can be found below /home/groundhog/.ros/log/2025-09-17-11-36-56-873894-ubuntu-35017
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rmw_zenohd-1]: process started with pid [35019]
[INFO] [robot_state_publisher-2]: process started with pid [35021]
[INFO] [ros2_control_node-3]: process started with pid [35023]
[INFO] [spawner-4]: process started with pid [35025]
[INFO] [teleop_node-5]: process started with pid [35027]
[INFO] [twist_mux-6]: process started with pid [35029]
[INFO] [twist_stamped_parser-7]: process started with pid [35031]
[twist_mux-6] [INFO] [1758073017.206779993] [twist_mux]: Topic handler 'topics.joy' subscribed to topic '/zhetronic_rc/cmd_vel': timeout = 0.500000s , priority = 100.
[teleop_node-5] [INFO] [1758073017.208132033] [TeleopTwistJoy]: Teleop enable button 0.
[twist_mux-6] [INFO] [1758073017.208676055] [twist_mux]: Topic handler 'topics.nav' subscribed to topic '/nav/cmd_vel': timeout = 0.500000s , priority = 10.
[twist_mux-6] [INFO] [1758073017.208899027] [twist_mux]: Topic handler 'locks.estop' subscribed to topic '/zhetronic_rc/estop_state': timeout = None , priority = 255.
[teleop_node-5] [INFO] [1758073017.210391000] [TeleopTwistJoy]: Turbo on button 1.
[teleop_node-5] [INFO] [1758073017.210412120] [TeleopTwistJoy]: Linear axis x on 0 at scale 0.500000.
[teleop_node-5] [INFO] [1758073017.210423288] [TeleopTwistJoy]: Turbo for linear axis x is scale 1.000000.
[teleop_node-5] [INFO] [1758073017.210428696] [TeleopTwistJoy]: Linear axis y on 1 at scale 0.500000.
[teleop_node-5] [INFO] [1758073017.210432983] [TeleopTwistJoy]: Turbo for linear axis y is scale 1.000000.
[teleop_node-5] [INFO] [1758073017.210438967] [TeleopTwistJoy]: Angular axis yaw on 2 at scale 0.400000.
[teleop_node-5] [INFO] [1758073017.210443671] [TeleopTwistJoy]: Turbo for angular axis yaw is scale 1.000000.
[ros2_control_node-3] [INFO] [1758073017.245606493] [controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[ros2_control_node-3] [INFO] [1758073017.246918118] [controller_manager]: update rate is 200 Hz
[ros2_control_node-3] [INFO] [1758073017.246980612] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50
[ros2_control_node-3] [WARN] [1758073017.247170337] [controller_manager]: No real-time kernel detected on this system. See [https://control.ros.org/master/doc/ros2_control/controller_manager/doc/userdoc.html] for details on how to enable realtime scheduling.
[robot_state_publisher-2] [WARN] [1758073017.266531172] [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-2] [INFO] [1758073017.266724416] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-2] [INFO] [1758073017.266820063] [robot_state_publisher]: got segment base_link
[robot_state_publisher-2] [INFO] [1758073017.266834270] [robot_state_publisher]: got segment fl_steer_link
[robot_state_publisher-2] [INFO] [1758073017.266843006] [robot_state_publisher]: got segment fl_wheel_link
[robot_state_publisher-2] [INFO] [1758073017.266850398] [robot_state_publisher]: got segment fr_steer_link
[robot_state_publisher-2] [INFO] [1758073017.266858046] [robot_state_publisher]: got segment fr_wheel_link
[robot_state_publisher-2] [INFO] [1758073017.266865118] [robot_state_publisher]: got segment imu_link
[robot_state_publisher-2] [INFO] [1758073017.266871934] [robot_state_publisher]: got segment os_sensor
[robot_state_publisher-2] [INFO] [1758073017.266879102] [robot_state_publisher]: got segment rl_steer_link
[robot_state_publisher-2] [INFO] [1758073017.266886141] [robot_state_publisher]: got segment rl_wheel_link
[robot_state_publisher-2] [INFO] [1758073017.266892989] [robot_state_publisher]: got segment rr_steer_link
[robot_state_publisher-2] [INFO] [1758073017.266899485] [robot_state_publisher]: got segment rr_wheel_link
[robot_state_publisher-2] [INFO] [1758073017.266906045] [robot_state_publisher]: got segment zhetronic_link
[ros2_control_node-3] [INFO] [1758073017.267479507] [controller_manager]: Received robot description file.
[ros2_control_node-3] [INFO] [1758073017.267857996] [resource_manager]: Loading hardware 'groundhog' 
[ros2_control_node-3] [INFO] [1758073017.286898549] [resource_manager]: Initialize hardware 'groundhog' 
[ros2_control_node-3] [INFO] [1758073017.287254286] [groundhog_interface]: Registering hardware interface 'groundhog'
[ros2_control_node-3] [INFO] [1758073017.287319661] [groundhog_interface]: 'groundhog' has bus config: '/home/groundhog/ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/bus.yml'
[ros2_control_node-3] [INFO] [1758073017.287330061] [groundhog_interface]: 'groundhog' has master config: '/home/groundhog/ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/master.dcf'
[ros2_control_node-3] [INFO] [1758073017.287342733] [groundhog_interface]: 'groundhog' has master bin: ''
[ros2_control_node-3] [INFO] [1758073017.287349452] [groundhog_interface]: 'groundhog' has can interface: 'can0'
[ros2_control_node-3] [INFO] [1758073017.291837276] [fl_drive_joint]: Node id for 'fl_drive_joint' is '21'
[ros2_control_node-3] [INFO] [1758073017.291900890] [fl_drive_joint]: fl_drive_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.292583502] [fl_steer_joint]: Node id for 'fl_steer_joint' is '22'
[ros2_control_node-3] [INFO] [1758073017.292606158] [fl_steer_joint]: fl_steer_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.293186051] [fr_drive_joint]: Node id for 'fr_drive_joint' is '23'
[ros2_control_node-3] [INFO] [1758073017.293209571] [fr_drive_joint]: fr_drive_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.293754457] [fr_steer_joint]: Node id for 'fr_steer_joint' is '24'
[ros2_control_node-3] [INFO] [1758073017.293773817] [fr_steer_joint]: fr_steer_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.294304079] [rl_drive_joint]: Node id for 'rl_drive_joint' is '25'
[ros2_control_node-3] [INFO] [1758073017.294325039] [rl_drive_joint]: rl_drive_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.294865029] [rl_steer_joint]: Node id for 'rl_steer_joint' is '26'
[ros2_control_node-3] [INFO] [1758073017.294883461] [rl_steer_joint]: rl_steer_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.295412123] [rr_drive_joint]: Node id for 'rr_drive_joint' is '27'
[ros2_control_node-3] [INFO] [1758073017.295433499] [rr_drive_joint]: rr_drive_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.295970481] [rr_steer_joint]: Node id for 'rr_steer_joint' is '28'
[ros2_control_node-3] [INFO] [1758073017.295988657] [rr_steer_joint]: rr_steer_joint, registered in 'velocity' mode
[ros2_control_node-3] [INFO] [1758073017.296294859] [resource_manager]: Successful initialization of hardware 'groundhog'
[ros2_control_node-3] [INFO] [1758073017.296672740] [resource_manager]: 'configure' hardware 'groundhog' 
[ros2_control_node-3] [INFO] [1758073017.302620089] [device_container]: Starting Device Container with:
[ros2_control_node-3] [INFO] [1758073017.302715799] [device_container]: 	 can_interface_name can0
[ros2_control_node-3] [INFO] [1758073017.302735863] [device_container]: 	 master_config /home/groundhog/ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/master.dcf
[ros2_control_node-3] [INFO] [1758073017.302748567] [device_container]: 	 bus_config /home/groundhog/ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/bus.yml
[ros2_control_node-3] [INFO] [1758073017.305819871] [device_container]: Loading Master Configuration.
[ros2_control_node-3] [INFO] [1758073017.306269431] [yaml-cpp]: Failed to load entry "namespace" for device "master" 
[ros2_control_node-3] [INFO] [1758073017.307090184] [device_container]: Load Library: /home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so
[ros2_control_node-3] [INFO] [1758073017.310881060] [device_container]: Found class: rclcpp_components::NodeFactoryTemplate<ros2_canopen::MasterDriver>
[ros2_control_node-3] [INFO] [1758073017.310928003] [device_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<ros2_canopen::MasterDriver>
[ros2_control_node-3] [WARN] [1758073017.311088384] [device_container]: Namespace not provided for node 'master', using container namespace: /
[ros2_control_node-3] [INFO] [1758073017.313821071] [master]: NodeCanopenBasicMaster
[ros2_control_node-3] [INFO] [1758073017.314061131] [device_container]: Load master component.
[ros2_control_node-3] [INFO] [1758073017.314327462] [device_container]: Added /master to executor
[ros2_control_node-3] [WARN] [1758073017.316983670] [master]: No timeout parameter found in config file. Using default value of 100ms.
[ros2_control_node-3] [INFO] [1758073017.317054133] [master]: Master boot timeout set to 2000ms.
[ros2_control_node-3] [INFO] [1758073017.343849714] [device_container]: Loading Driver Configuration.
[ros2_control_node-3] [INFO] [1758073017.344098093] [yaml-cpp]: Failed to load entry "namespace" for device "fl_drive_joint" 
[ros2_control_node-3] [INFO] [1758073017.344144716] [device_container]: Found device fl_drive_joint with driver ros2_canopen::RoboteqDriver
[ros2_control_node-3] [INFO] [1758073017.344991997] [device_container]: Load Library: /home/groundhog/ros_ws/install/roboteq_driver/lib/libroboteq_driver.so
[ros2_control_node-3] [INFO] [1758073017.346121609] [device_container]: Found class: rclcpp_components::NodeFactoryTemplate<ros2_canopen::RoboteqDriver>
[ros2_control_node-3] [INFO] [1758073017.346147944] [device_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<ros2_canopen::RoboteqDriver>
[ros2_control_node-3] [WARN] [1758073017.346200711] [device_container]: Namespace not provided for node 'fl_drive_joint', using container namespace: /
[ros2_control_node-3] [INFO] [1758073017.348964053] [device_container]: Load driver component.
[ros2_control_node-3] [INFO] [1758073017.349243056] [device_container]: Added /fl_drive_joint to executor
[ros2_control_node-3] [INFO] [1758073017.362500641] [fl_drive_joint]: Non transmit timeout100ms
[ros2_control_node-3] [INFO] [1758073017.365355374] [fl_drive_joint]: gearing 1.000000
[ros2_control_node-3]  rpm_at_max_power 360.000000
[ros2_control_node-3]  inverted 0
[ros2_control_node-3] 
[ros2_control_node-3] [INFO] [1758073017.367755427] [fl_drive_joint]: eds file /ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/roboteq_motor_controllers_v80.eds
[ros2_control_node-3] [INFO] [1758073017.367820033] [fl_drive_joint]: bin file /ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one/fl_drive_joint.bin
[ros2_control_node-3] terminate called after throwing an instance of 'lely::bad_init'
[ros2_control_node-3]   what():  No such file or directory
[ros2_control_node-3] Stack trace (most recent call last) in thread 35114:
[ros2_control_node-3] #31   Source "../sysdeps/unix/sysv/linux/aarch64/clone.S", line 79, in thread_start [0xffff838c5edb]
[ros2_control_node-3] #30   Source "./nptl/pthread_create.c", line 442, in start_thread [0xffff8385d5b7]
[ros2_control_node-3] #29   Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff83a929cb, in 
[ros2_control_node-3] #28   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dca54f3, in std::thread::_State_impl<std::thread::_Invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}> > >::_M_run()
[ros2_control_node-3] #27   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dca574b, in std::thread::_Invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}> >::operator()()
[ros2_control_node-3] #26   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dca5963, in void std::thread::_Invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>)
[ros2_control_node-3] #25   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dca5c9b, in std::__invoke_result<ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}>::type std::__invoke<ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}>(ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}&&)
[ros2_control_node-3] #24   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dca5ff7, in void std::__invoke_impl<void, ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}>(std::__invoke_other, ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}&&)
[ros2_control_node-3] #23   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dc9eaaf, in ros2_canopen::node_interfaces::NodeCanopenMaster<rclcpp::Node>::activate()::{lambda()#1}::operator()() const
[ros2_control_node-3] #22   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dc8eceb, in lely::ev::Loop::run()
[ros2_control_node-3] #21   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dc8edbb, in lely::ev::Loop::run(std::error_code&)
[ros2_control_node-3] #20   Object "/home/groundhog/ros_ws/install/canopen_master_driver/lib/libmaster_driver.so", at 0xffff2dc8eb4f, in ev_loop_run
[ros2_control_node-3] #19   Source "/home/groundhog/ros_ws/build/lely_core_libraries/upstream/src/ev/loop.c", line 390, in ev_loop_wait [0xffff2f637f67]
[ros2_control_node-3]         387: {
[ros2_control_node-3]         388: 	size_t n = 0;
[ros2_control_node-3]         389: 	struct ev_loop_ctx *ctx = NULL;
[ros2_control_node-3]       > 390: 	while (ev_loop_ctx_wait_one(&ctx, loop, future))
[ros2_control_node-3]         391: 		n += n < SIZE_MAX;
[ros2_control_node-3]         392: 	ev_loop_ctx_destroy(ctx);
[ros2_control_node-3]         393: 	return n;
[ros2_control_node-3] #18 | Source "/home/groundhog/ros_ws/build/lely_core_libraries/upstream/src/ev/loop.c", line 699, in ev_exec_run
[ros2_control_node-3]     |   697: #endif
[ros2_control_node-3]     |   698: 			assert(task->exec);
[ros2_control_node-3]     | > 699: 			ev_exec_run(task->exec, task);
[ros2_control_node-3]     |   700: 			n++;
[ros2_control_node-3]     |   701: #if !LELY_NO_THREADS
[ros2_control_node-3]       Source "/home/groundhog/ros_ws/build/lely_core_libraries/upstream/include/lely/ev/exec.h", line 144, in ev_loop_ctx_wait_one [0xffff2f63752b]
[ros2_control_node-3]         141: inline void
[ros2_control_node-3]         142: ev_exec_run(ev_exec_t *exec, struct ev_task *task)
[ros2_control_node-3]         143: {
[ros2_control_node-3]       > 144: 	(*exec)->run(exec, task);
[ros2_control_node-3]         145: }
[ros2_control_node-3]         146: 
[ros2_control_node-3]         147: #ifdef __cplusplus
[ros2_control_node-3] #17   Source "/home/groundhog/ros_ws/build/lely_core_libraries/upstream/src/ev/std_exec.c", line 293, in ev_std_exec_run [0xffff2f638a13]
[ros2_control_node-3]         290: 			*plist = &exec_node;
[ros2_control_node-3]         291: 		}
[ros2_control_node-3]         292: 
[ros2_control_node-3]       > 293: 		task->func(task);
[ros2_control_node-3]         294: 
[ros2_control_node-3]         295: 		pnode = ev_exec_find(exec_, plist);
[ros2_control_node-3]         296: 		assert(*pnode);
[ros2_control_node-3] #16   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa072ef, in lely::ev::detail::TaskWrapper<lely::util::detail::invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}> > >::TaskWrapper<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>(ev_exec_vtbl const* const*, ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}&&)::{lambda(ev_task*)#1}::_FUN(ev_task*)
[ros2_control_node-3] #15   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa07203, in lely::ev::detail::TaskWrapper<lely::util::detail::invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}> > >::TaskWrapper<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>(ev_exec_vtbl const* const*, ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}&&)::{lambda(ev_task*)#1}::operator()(ev_task*) const
[ros2_control_node-3] #14   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa0ef17, in lely::util::detail::invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}> >::operator()()
[ros2_control_node-3] #13   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa14a9b, in decltype (invoke((get<0ul>)(move((*this).tuple_)))) lely::util::detail::invoker<std::tuple<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}> >::invoke_<0ul>(std::integer_sequence<unsigned long, 0ul>)
[ros2_control_node-3] #12   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa194df, in std::invoke_result<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>::type std::invoke<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>(ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}&&)
[ros2_control_node-3] #11   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa1cc83, in std::__invoke_result<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>::type std::__invoke<ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>(ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}&&)
[ros2_control_node-3] #10   Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2fa1ff47, in void std::__invoke_impl<void, ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}>(std::__invoke_other, ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}&&)
[ros2_control_node-3] #9    Object "/home/groundhog/ros_ws/install/canopen_base_driver/lib/libnode_canopen_base_driver.so", at 0xffff2f9e9443, in ros2_canopen::node_interfaces::NodeCanopenBaseDriver<rclcpp::Node>::add_to_master()::{lambda()#1}::operator()() const
[ros2_control_node-3] #8    Object "/usr/lib/aarch64-linux-gnu/libgcc_s.so.1", at 0xffff8399ea13, in _Unwind_Resume
[ros2_control_node-3] #7    Object "/usr/lib/aarch64-linux-gnu/libgcc_s.so.1", at 0xffff8399e47b, in 
[ros2_control_node-3] #6    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff83a621bf, in __gxx_personality_v0
[ros2_control_node-3] #5    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff83a61973, in 
[ros2_control_node-3] #4    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff83a62b4b, in 
[ros2_control_node-3] #3    Object "/usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.30", at 0xffff83a653cf, in __gnu_cxx::__verbose_terminate_handler()
[ros2_control_node-3] #2    Source "./stdlib/abort.c", line 79, in abort [0xffff8380712f]
[ros2_control_node-3] #1    Source "../sysdeps/posix/raise.c", line 26, in raise [0xffff8381a67b]
[ros2_control_node-3] #0    Source "./nptl/pthread_kill.c", line 44, in __pthread_kill_implementation [0xffff8385f1f0]
[ros2_control_node-3] Aborted (Signal sent by tkill() 35023 1000)
[spawner-4] [INFO] [1758073018.159191556] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available...

Here is my bus.yaml

options:
  dcf_path: "/ros_ws/install/groundhog_bringup/share/groundhog_bringup/config/bus_one"

master:
  node_id: 1
  driver: "ros2_canopen::MasterDriver"
  package: "canopen_master_driver"
  baudrate: 500000
  sync_period: 5000

fl_drive_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 21
  mode: "velocity"
  gearing: 1
  rpm_at_max_power: 360
  inverted: false
  diagnostics:
    enable: true
    period: 1000
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2107, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command

fl_steer_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 22
  mode: "velocity"
  gearing: 100
  rpm_at_max_power: 100
  inverted: true
  diagnostics:
    enable: true
    period: 1000
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x210B, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags

fr_drive_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 23
  mode: "velocity"
  gearing: 1
  rpm_at_max_power: 360
  inverted: true
  diagnostics:
    enable: true
    period: 1000
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2107, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command

fr_steer_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 24
  mode: "velocity"
  gearing: 100
  rpm_at_max_power: 100
  inverted: true
  diagnostics:
    enable: true
    period: 1000
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x210B, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags

rl_drive_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 25
  mode: "velocity"
  gearing: 1
  rpm_at_max_power: 360
  inverted: false
  diagnostics:
    enable: true
    period: 1000
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2107, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command

rl_steer_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 26
  mode: "velocity"
  gearing: 100
  rpm_at_max_power: 100
  inverted: false
  diagnostics:
    enable: true
    period: 1000
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x210B, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags

rr_drive_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in milliseconds
  node_id: 27
  mode: "velocity"
  gearing: 1
  rpm_at_max_power: 360
  inverted: true
  diagnostics:
    enable: true
    period: 1000
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2107, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command

rr_steer_joint:
  # boot_timeout_ms: 10000
  reset_communication: true
  dcf: "roboteq_motor_controllers_v80.eds"
  driver: "ros2_canopen::RoboteqDriver"
  package: "roboteq_driver"
  polling: true
  period: 50 # in m   illiseconds
  node_id: 28
  mode: "velocity"
  gearing: 100
  rpm_at_max_power: 100
  inverted: false
  diagnostics:
    enable: true
    period: 1000
  rpdo:
    1:
      enabled: true
      cob_id: "auto"
      mapping:
        - { index: 0x2000, sub_index: 1 } # set motor command
  tpdo:
    1:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2100, sub_index: 1 } # read motor amps
    2:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x210B, sub_index: 1 } # read relative BL motor speed
        - { index: 0x2149, sub_index: 1 } # read pulse inputs converted
    3:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2122, sub_index: 1 } # read motor status flags
    4:
      enabled: true
      # transmission: 255
      mapping:
        - { index: 0x2111, sub_index: 0 } # read status flags
        - { index: 0x2112, sub_index: 0 } # read fault flags

zhetronic_rc:
  boot_timeout_ms: 100000
  node_id: 12
  dcf: "HyperCAN_line1.eds"
  package: "ros2_hetronic_driver"
  driver: "ros2_canopen::HetronicDriver"
  polling: true
  period: 50
  diagnostics:
    enable: true
    period: 1000

Setup:

  • Device: Nvidia Jetson AGX Orin
  • OS: Ubuntu 22.04
  • ROS-Distro: Humble
  • Branch/Commit: humble

Any help in finding the solution is appreciated. Let me know if I can test anything with my system. Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions