Ask Your Question
1

DWA Implementation in ROS ?

asked 2020-05-25 03:02:29 -0500

Jerryt3204 gravatar image

hi, recently i'm using global planner(A*) and local planner(DWA). But there is one thing strange.

According to this official page: http://wiki.ros.org/navigation/Tutori...

global planner(A) send path to local planner(DWA), so can i say DWA is not implemented in its original way? In DWA's paper, DWA should calculate many path and give scores to these path then choose the highest one to go, but we just follow global planner(A)'s path?

I was confused by how they co-work in path-planning and obstacle avoidance. Could someone tell me? Thanks in advnce !

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2021-07-25 12:28:09 -0500

fergs gravatar image

These two components do different things, and part of the confusion comes from the poor naming:

  1. The global_planner really is a planner. Inputs are a start pose and an end pose. The output is a path.
  2. The local_planner is really a controller (ROS2 actually properly renamed this!).The inputs are a path and the current robot pose. The output is base velocities (the controls for the base).
edit flag offensive delete link more
0

answered 2021-07-25 22:46:11 -0500

Better check out this page: http://wiki.ros.org/dwa_local_planner And the source code for DWA: https://github.com/ros-planning/navig... image description

A simple pipeline should be: A* send a path to DWA. DWA will generate a series of trajectories according to the params, velocities, vx, vy, vtheta samples, sim_time, etc.. then calculate the cost for each trajectory according to path_cost, goal_cost, occ_cost. In the end, find out the best trajectory.

DWA initializes with local costmap. local costmap contains map and sensor information.

edit flag offensive delete link more
0

answered 2021-07-18 05:49:21 -0500

Given the initial pose of the bot (say P1) and a goal pose (say P2), the global planner creates a path (global plan) from P1 to P2. This path is essentially an array (vector) of discrete points (poses) that can be followed by the bot to reach the goal (a.k.a P2).

The local planner computes the control inputs that need to be sent to the bot in order for it to keep tracking the global plan (provided by the global planner) while avoiding collisions with (dynamic) obstacles.

I hope that makes sense.

edit flag offensive delete link more

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

Stats

Asked: 2020-05-25 03:02:29 -0500

Seen: 122 times

Last updated: Jul 25