ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

"what(): can't subtract times with different time sources [2 != 1]" error when spawning diff_drive_controller on ros2_control

asked 2021-09-29 04:52:22 -0500

byeongkyu gravatar image

updated 2021-09-29 05:10:39 -0500

gvdhoorn gravatar image

I'm using ros2_control to control my robot. After exectue controller_manager, when I spawned "diff_drive_controller" I have this error.

[ros2_control_node-1] [INFO] [1632907663.808010997] [controller_manager]: update rate is 50 Hz
[ros2_control_node-1] [INFO] [1632907695.226861708] [controller_manager]: Loading controller 'diff_drive_controller'
[ros2_control_node-1] [INFO] [1632907695.255700365] [controller_manager]: Configuring controller 'diff_drive_controller'
[ros2_control_node-1] terminate called after throwing an instance of 'std::runtime_error'
[ros2_control_node-1]   what():  can't subtract times with different time sources [2 != 1]

another terminal shown as

$ ros2 control load_controller --set-state start diff_drive_controller
Sucessfully loaded controller diff_drive_controller into state active

I tried add parameter use_sim_time: True to controller_manager, diff_drive_controller.. but result is same.. How can I solve this error?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2021-10-06 02:50:59 -0500

byeongkyu gravatar image

It was solved by updating ros2_control packages.

edit flag offensive delete link more

Comments

This should not actually be solved by solely updating the packages. This can still be an issue, depending which time-source is used in a commanding package.

destogl gravatar image destogl  ( 2021-11-29 08:35:44 -0500 )edit

Building ros2_control and (for simulation) gazebo_ros2_control from source solved the issue for me too (diff_drive_controller can be installed via apt)... Crash didn't occur no matter whether controller_manager spawner node was launched with use_sim_time:=True or False. Looks like some kind of incompatibility between packages in current Galactic sync.

afrixs gravatar image afrixs  ( 2021-12-08 01:19:06 -0500 )edit
1

answered 2021-11-29 02:46:07 -0500

Bence Magyar gravatar image

More on this though: we have been working towards resolving this and there's a new batch of safety measures we are planning to add to all velocity-based controllers to ensure the command can time out at some point. Different time sources are making this tricky

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2021-09-29 04:52:22 -0500

Seen: 1,080 times

Last updated: Nov 29 '21