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

dwa local planner: deceleration limit?

asked 2020-07-10 17:17:53 -0600

dschnabel gravatar image

Looking at I see the config parameter acc_lim_x (x acceleration limit) which is needed for forward simulation.

Why is there no parameter dec_lim_x (x deceleration limit) which would be equally important for forward simulation? Wouldn't it be crucial to know how fast the robot can come to a halt? One cannot simply assume that the deceleration is the same as the acceleration, the dec limit is likely higher than the acc limit.

edit retag flag offensive close merge delete



AFAIK the navigation stack and ros itself was made with service robots (indoor) in mind. Slow speed, low inertia, even ground, highly geared motors, auto brakes (NULL locks). This assumptions would make near instant stop capabillity a given (collision avoidance), accurate deceleration just wouldnt be a concern. Its the engineers job to make the mechanics beeing able to follow the commands. Zero linear_x should lock the wheels or give max deceleration (anti lock system). Also there are the parameters "scaling_speed" (The absolute value of the velocity at which to start scaling the robot's footprint, in m/s ) and "max_scaling_factor" (The maximum factor to scale the robot's footprint). Iam not 100% sure but as I understand them, they are for implementing a save stoping distance, or point of deceleration. The faster you go the earlier the footprints "cost" increses near obstacles and the less costly slower linear_x trajectory is ...(more)

Dragonslayer gravatar image Dragonslayer  ( 2020-07-11 10:24:37 -0600 )edit

I see. So based on the assumption of near instant stop capability it makes sense that dec_lim_x is not needed. However, it seems that the dwa local planner is not making this assumption right now but instead assumes that decelaration is equal to the negative acceleration, as pointed out by David Lu. Regardless, the parameters scaling_speed and max_scaling_factor seem useful for implementing a save stoping distance. I'll play around with those a bit. Thanks!

dschnabel gravatar image dschnabel  ( 2020-07-13 14:08:23 -0600 )edit

Clarification. My idea about "near instant" stop was because of the usual usecase of indoor service robots and the practical outcome. ROS was originally made for pr2 AFAIK. Its dwa paramaters state 0.55m/s max x vel, but its x acceleration is 2.5 m/s^. Neglecting controller update rate that would mean it stopps in ~0.2 seconds, or ~0.1 meters. Also I never seen pr2 move at speeds that I would estimate to be near 0.55m/s more like 0.25m/s. The practical outcome I would consider "near instant". With its 220kg I wouldnt be surprised if it cant be slowed much faster due to traction (specially on marble floors or similar). As your question was "Why is there no dec_lim_x" I think this historic/practical insight might be interesting. I came across some similar cases with ros, its just that many packages were ...(more)

Dragonslayer gravatar image Dragonslayer  ( 2020-07-14 12:15:22 -0600 )edit

Historic/practical insights are always helpful! Understanding that the navigation stack was implemented with one specific usecase in mind helps to see why certain config parameters are not there. Thanks.

dschnabel gravatar image dschnabel  ( 2020-07-14 15:46:56 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2020-07-11 21:04:31 -0600

David Lu gravatar image

dwa_local_planner assumes the deceleration is equal to the negative acceleration.

This is not ideal, but other planners such as dwb_local_planner do allow you to set a deceleration parameter and/or customize the generated trajectories as much as you like.

edit flag offensive delete link more


Great, I didn't know about dwb_local_planner. Thanks!

dschnabel gravatar image dschnabel  ( 2020-07-13 14:11:03 -0600 )edit

Question Tools

1 follower


Asked: 2020-07-10 17:17:53 -0600

Seen: 550 times

Last updated: Jul 11 '20