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

Where are velocities are set to zero in Joint group velocity controller.

asked 2019-03-26 12:55:30 -0500

BhanuKiran.Chaluvadi gravatar image

updated 2019-03-26 12:56:03 -0500

Hi ,

I see that when ever velocity control is used , usually velocities are set to zero after certain time out (cmd_vel_timeout). which can be observed in differential drive controller.

But in the case of "joint_group_velocity_controller" which refers to "forward_joint_group_command_controller " , I am unable to find where the velocities are set to zero after a specified time ?

I also see that there is no time stamp in the joint group velocity controller ?


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2019-03-27 04:31:45 -0500

gvdhoorn gravatar image

The behaviour you describe ("velocities are set to zero after certain time out") is very controller specific. It's not a general property of velocity controllers (or even velocity controllers in ros_control).

It is a typical property of so called "mobile base controllers" (or drivers) though, as it makes a lot of sense for those controllers to do that: imagine a tele-opped robot going out of range of its controller, without a time-out on the (last) velocity command, the robot would continue executing whatever was the last command without any way for the operator to stop it.

The time-out automatically resets target velocity to zero after a short time-out, resulting in a stopped robot. If new commands come in, the time-out is reset and things keep working as normal (ie: the robot does not stop). If the operator purposefully commands a zero velocity (because he wants to stop the robot), things also work as expected: a zero-command also resets the time-out, and as the target is zero velocity, the robot stops.

But in the case of "joint_group_velocity_controller" which refers to "forward_joint_group_command_controller " , I am unable to find where the velocities are set to zero after a specified time ?

That is because the behaviour I described earlier just hasn't been implemented in those controllers.

Could it make sense for these controllers to have a time-out? Probably. But it would be good to ask the original developers why there currently isn't one, just to make sure we're not missing some rationale for why they shouldn't have it.

Is it going to get added: that will depend on someone contributing it.

edit flag offensive delete link more

Question Tools



Asked: 2019-03-26 12:55:30 -0500

Seen: 430 times

Last updated: Mar 27 '19