Ask Your Question

Problem with DWA planner, post 0.0 to angular velocity after is posted real speed

asked 2020-04-17 05:21:48 -0500

Yehor gravatar image

updated 2020-04-17 05:22:35 -0500


I have tried DWA local planner, it works almost good. However I faced some problem:

1) fist is that when robot try perform in place rotation is starts post such a strange velocities like in the picture: image description

2) and sometimes it didn't clean the local costmap.

Could someone help with that? Thank you

edit retag flag offensive close merge delete


Please be more specific than "strange". Is it weird because its a negative linear velocity?

David Lu gravatar image David Lu  ( 2020-04-17 09:07:17 -0500 )edit

@David Lu I wrote strange behavior and added a screen because I can't describe why is that happening. The planner posts angular velocity and immediately post 0.0 after.

Yehor gravatar image Yehor  ( 2020-04-18 02:33:06 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2020-04-17 06:04:42 -0500

hashirzahir gravatar image

My experience with DWA planner is that it does not perform in place rotations unless it really really needs to (gives a high cost for in-place rotation I'm guessing). If given a certain type of rotation goal, it may sometimes calculate that it is better to reverse and move forward to achieve the rotation goal. You can think of it as behaving similarly to a car. As far as I know, there was no known way to tune DWA planner such that it would optimize on in-place rotations (hopefully someone can answer otherwise). If you require a more specific and deterministic local planner, I would recommend writing your own simple planner unless you are ok with the car-like behaviour of DWA local planner.

Regarding your second question, the local map not clearing has nothing to do with DWA planner. Please have a look at your move_base config and double check the settings for your local costmap. You can check the update_frequency and the publish_frequency parameters. Also make sure your Transforms are setup correctly and that your data source for the costmap (eg: lidar) is outputting data properly.

Hope that helps.

edit flag offensive delete link more


@hashirzahir what navigator so you suggest for differential drive robot?

Yehor gravatar image Yehor  ( 2020-04-17 06:27:54 -0500 )edit

This is quite a generic question. Perhaps you could state your use case. For example, it you are in a static environment (no moving obstacles) and you have a good local costmap that you can rely on, I don't see the need for obstacle avoidance infused local planners. Of course safety is another concern. Otherwise, I would recommend just writing your own path following algorithm (eg: Pure Pursuit) that can follow the obstacle free path provided by the global path planner. So the task becomes outputting a set of velocities given a fixed path. This isn't as hard as it sounds for simple scenarios.

However, if you are in a situation where your robot interacts with moving obstacles and other humans, I would strongly recommend sticking to DWA planner as it does offer very useful real time obstacle avoidance. In my experience, the robot has not yet hit ...(more)

hashirzahir gravatar image hashirzahir  ( 2020-04-17 06:48:50 -0500 )edit

@hashirzahir Sorry, for too many questions. But how do you think, Jetson Nano is it enough for that task with DWA?

Yehor gravatar image Yehor  ( 2020-04-17 06:51:51 -0500 )edit

It would be really helpful if you answered the earlier questions. Please state your use case otherwise it is very hard to answer your question.

I have used the jetson Nano, but its GPU is the selling point, not its CPU (i.e. better for Deep Learning, Machine Learning stuff). There are so many questions I need to ask before I can answer this. Please tell me your use case. And exactly what processes will be running on the Jetson Nano. If the Nano will only be running the Dwa and nothing else (the navigation and lidar driver stack running on another SBC), then it should be fine. But if you are running your whole ROS and navigation stack with lidar data on your Jetson Nano, I think you will find it quite "slow", meaning that the system is not able to output velocity commands fast enough and it can ...(more)

hashirzahir gravatar image hashirzahir  ( 2020-04-17 11:25:33 -0500 )edit

@hashirzahir I future I want to use that robot with the dynamic obstacles. But for now, I want to at least achieve stable navigation on a static map.

Ideally, I planned to use Jetson nano for the whole system. And it is very sad that that's will be not enough. But what did you mean when you say to run only DWA and nothing else. (Does it mean to run move_base node on Jetson nano?).

Thank you very much for your answers! It is really very helpful for me.

Yehor gravatar image Yehor  ( 2020-04-18 02:44:01 -0500 )edit

Yes running only the move base node on the jetson nano should not be a problem. But the nano is not good at handling multiple CPU intensive tasks since it only has a low spec ARM processor.

hashirzahir gravatar image hashirzahir  ( 2020-04-18 04:10:12 -0500 )edit

@hashirzahir Thank you, do you have any suggestions for that. Maybe Raspberry 4 Pi would be better?

Can I ask one more question? Is it possible to for example run the only global_planner and follow the trajectory which is produced? I mean without local_planner?

Yehor gravatar image Yehor  ( 2020-04-18 04:19:00 -0500 )edit

@hashirzahir I also found the problem, I have changed the parameters of DWA planner min_vel_trans: to 0.0, and it seemed to solve the problem. However, probably because of the luck of CPU on Jetson Nano I lose the map update loop frequently.

Yehor gravatar image Yehor  ( 2020-04-18 04:24:11 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-04-17 05:21:48 -0500

Seen: 267 times

Last updated: Apr 17 '20