I m driving my robot between two goals. After several times running the robot is stuck on the goal and can not reach the goal i mean it can't rotate and in the real world there is no obstacle and when i check the costmap from rviz there is no collision and the robot far from the inflation. When the robot stuck i received the following error:
Aborting because a valid control could not be found. Even after executing all recovery behaviors
Got new plan
Invalid Trajectory 0.000000, 0.000000, -0.600000, cost: -2.000000
Rotation cmd in collision
Error when rotating
Clearing costmap to unstuck robot (3.000000m).
Invalid Trajectory 0.000000, 0.000000, -0.600000, cost: -2.000000
Got new plan
Invalid Trajectory 0.000000, 0.000000, -0.600000, cost: -2.000000
Rotation cmd in collision
Error when rotating
↧
Local path doesnt find a valid control
↧
Why dwa planner can't reach the target rotation?
I've commanded the robot to go to the green arrow position/rotation, so it went there and started rotating CCW until it got near the upper wall, then it got stuck in that position.
The question is why it don't go a bit forward so it can complete the rotation? Which parameters can be changed so that it better behave in situations like that?

↧
↧
Local planner not correct
Hi,
I am using the amcl module from the navigation stack, and the dwa_local_planner. As you can see on the picture below, the global planner seems to be correct while the local planner is not, therefore my robot gets stuck.

My sim_time (from dwa_local_planner_params.yaml) is set to 1.0. max_vel_x was originally set to 1.0 and I set it to 0.55 but nothing changed.
In costmap_common_params.yaml, I've tried to set the z_voxels parameter to 20, although it originally was set to 2, but it didn't change anything.
Finally, in local_costmap_params.yaml, I changed the resolution to 0.1 instead of 0.05, but it didn't work.
Do you have any idea as to why it isn't working the way I would like it to?
Thank you for your help.
↧
DWAPlannerROS obstacle avoidance
DWAPlannerROS is able to plan a path to avoid the new obstacle infront but it is moving too close to the obstacle!

The green color line is the global path generated by GlobalPlanner. The obstacle(Box) is added after the path plan by GlobalPlanner.
**How could I configure the DWAPlannerROS to avoid my robot footprint entering the lethal costmap region (Cyan colour)? Or at least plan its path farther away from the obstacle which I am able to set?**
↧
Difference between DWA local_planner and TEB local_planner
Hi there,
I'm new in ROS nav_stack. Currently, I'm working on navigation of a mobile robot (vehicular robot) and I am searching the "best" local planner for our application.
Currently, we are using TEB local planner and I am working on improving its performance of avoiding obstacles (dynamic and static obstacles).
But still it is not clear for me that beside of the mathematical algorithm to find the most optimized path, what is the difference between the DWA local planner (or the base local planner) and the TEB local planner? According to [this question](https://answers.ros.org/question/234821/how-does-global-planner-in-teb-local-planner-tutorial-work/), they should have the same approach. Thus, I would like to know for a user that asks the robot to go from point A to point B, what is the difference, in user point of view, and the developer point of view, between the TEB local planner and the DWA local planner?
Also, according to [ this question](https://answers.ros.org/question/236497/which-local-planner-should-i-use-for-dynamic-obstacles/) there is no local planner for Dynamic obstacles and the only solution is to work on additional tracking and motion prediction on top of the costmap in TEB and DWA local planner. Do you have any other idea?
Thanks in advance,
↧
↧
How to choose different robot footprint type for DWA_local_planner
Hi folks,
I wanted to know how the [DWA_local_planner](http://wiki.ros.org/dwa_local_planner) computes (or chooses) the foorprint of the robot? is it a dot (or a circle based on the inflation added to the robot)? If yes, my question is that is it possible to give another type of the robot's foot print to the DWA_local_planner? (for example by line or two circle, something like the [TEB_local_planner](http://wiki.ros.org/teb_local_planner)?
Thanks in advance,
↧
DWA planner failed to produce path.
Hi everybody,
currently, I'm working on AMCL navigation (from Point A to Point B) and for this reason I'm using `DWAL_local_planner`. The `DWA_local_planner` works well but I'm facing an issue when I put an obstacle in its way (the obstacle is put in its global path before it starts to move). As you see in the following picture,

When the robot recognizes the obstacle, the DWA_local_planner is not able to produce a path as the following error and it stucks.
[ WARN] [1510564078.318379963, 78.707000000]: DWA planner failed to produce path.
[ INFO] [1510564078.615916578,78.890000000]: Got new plan
[ WARN] [1510564078.683191056, 78.923000000]: DWA planner failed to produce path.
[ INFO] [1510564079.038445171, 79.090000000]: Got new plan
[ WARN] [1510564079.051915033, 79.128000000]: DWA planner failed to produce path.
I have changed the local_planner parameters like path_distance_bias, goal_distance_bias, forward_point_distance, etc. in order to have an other behavior from the `DWA_local_planner` but I did not achieve.
Do you have any idea why it behaves like this? I would appreciate if you look at this @David Lu.
Thanks in advance,
You can find below the navigation parameters
Launch file:
global_costmap:
global_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 1.0
track_unknown_space: true
static_map: true
transform_tolerance: 0.5
static_layer:
track_unknown_space: true
enabled: true
map_topic: "/map"
inflation_layer:
enabled: true
cost_scaling_factor: 10
inflation_radius: 2.0
track_unknown_space: true
plugins:
- {name: static_layer, type: "costmap_2d::StaticLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Local_cost_map:
local_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 1.0
static_map: false
rolling_window: true
width: 4.0
height: 4.0
resolution: 0.02
transform_tolerance: 0.5 #0.5
obstacle_layer:
enabled: true
obstacle_range: 5.0
raytrace_range: 4.5
inflation_radius: 0.5
track_unknown_space: true
combination_method: 1
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true,
expected_update_rate: 0.25, obstacle_range: 19.0, raytrace_range: 19.0}
inflation_layer:
enabled: true
cost_scaling_factor: 10 # exponential rate at which the obstacle cost drops off (default: 10)
inflation_radius: 0.5 # max. distance from an obstacle at which costs are incurred for planning paths.
track_unknown_space: true
plugins:
- {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Common_costçmap:
footprint: [[0.725, -0.4], [0.725, 0.4], [-0.725, 0.4], [-0.725,-0.4]]
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}
transform_tolerance: 0.2
map_type: costmap
DWA_local_planner:
DWAPlannerROS:
# Robot Configuration Parameters
max_vel_x: 1
max_vel_x_backwards: 0.2
min_vel_x: 0.1
max_trans_vel: 1
min_trans_vel: 0.1
max_vel_y: 0.0
min_vel_y: 0.0
max_trans_vel: 1.0
min_trans_vel: 0.0
max_rot_vel: 0.4 # 1.0
min_rot_vel: 0.2 # could set this lower
acc_lim_x: 0.2
acc_lim_th: 0.05 # 1.0
acc_lim_y: 0.0 # diff drive robot
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.15
xy_goal_tolerance: 0.5
latch_xy_goal_tolerance: false
# Forward Simulation Parameters
sim_time: 3
sim_granularity: 0.025
vx_samples: 20
vy_samples: 0
vtheta_samples: 30
controller_frequency: 5
#meter_scoring: true
#penalize_negative_x: false
# Trajectory Scoring Parameters
path_distance_bias: 32.0
goal_distance_bias: 20.0
occdist_scale: 0.01
forward_point_distance: 0 # Default 0.325
stop_time_buffer: 0.5
scaling_speed: 0.25
max_scaling_factor: 0.2
#cheat_factor: 2
#scaled_path_factor: 0.75
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05
# Global Plan Parameters
prune_plan: true
↧
DWA local planner fails to produce path
Hi everybody,
As nobody answered to my last question, I re-ask this question cause I am completely blocked!
currently, I'm working on 2D navigation with ROS `nav_stack` and for this reason I'm using `DWAL_local_planner`. The `DWA_local_planner` works well but I'm facing an issue when I put an obstacle in its way (the obstacle is put in its global path before it starts to move). As you see in the following picture,

When the robot recognizes the obstacle, the `DWA_local_planner` is not able to produce a path as the following error and it stuck.
[ WARN] [1510564078.318379963, 78.707000000]: DWA planner failed to produce path.
[ INFO] [1510564078.615916578,78.890000000]: Got new plan
[ WARN] [1510564078.683191056, 78.923000000]: DWA planner failed to produce path.
[ INFO] [1510564079.038445171, 79.090000000]: Got new plan
[ WARN] [1510564079.051915033, 79.128000000]: DWA planner failed to produce path.
I have already tried to solve this issue by changing the `DWA_local_planner` parameters like *path_distance_bias*, *goal_distance_bias*, *forward_point_distance*, *sim_time* etc. but still I the local planner does not avoid the obstacle.
Do you have any idea why it behaves like this? I would appreciate if you look at this @David Lu.
Thanks in advance,
You can find below the navigation parameters
Launch file:
global_costmap:
global_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 1.0
track_unknown_space: true
static_map: true
transform_tolerance: 0.5
static_layer:
track_unknown_space: true
enabled: true
map_topic: "/map"
inflation_layer:
enabled: true
cost_scaling_factor: 10
inflation_radius: 2.0
track_unknown_space: true
plugins:
- {name: static_layer, type: "costmap_2d::StaticLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Local_cost_map:
local_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 1.0
static_map: false
rolling_window: true
width: 4.0
height: 4.0
resolution: 0.02
transform_tolerance: 0.5 #0.5
obstacle_layer:
enabled: true
obstacle_range: 5.0
raytrace_range: 4.5
inflation_radius: 0.5
track_unknown_space: true
combination_method: 1
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true,
expected_update_rate: 0.25, obstacle_range: 19.0, raytrace_range: 19.0}
inflation_layer:
enabled: true
cost_scaling_factor: 10 # exponential rate at which the obstacle cost drops off (default: 10)
inflation_radius: 0.5 # max. distance from an obstacle at which costs are incurred for planning paths.
track_unknown_space: true
plugins:
- {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Common_costçmap:
footprint: [[0.725, -0.4], [0.725, 0.4], [-0.725, 0.4], [-0.725,-0.4]]
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}
transform_tolerance: 0.2
map_type: costmap
DWA_local_planner:
DWAPlannerROS:
# Robot Configuration Parameters
max_vel_x: 1
max_vel_x_backwards: 0.2
min_vel_x: 0.1
max_trans_vel: 1
min_trans_vel: 0.1
max_vel_y: 0.0
min_vel_y: 0.0
max_trans_vel: 1.0
min_trans_vel: 0.0
max_rot_vel: 0.4 # 1.0
min_rot_vel: 0.2 # could set this lower
acc_lim_x: 0.2
acc_lim_th: 0.05 # 1.0
acc_lim_y: 0.0 # diff drive robot
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.15
xy_goal_tolerance: 0.5
latch_xy_goal_tolerance: false
# Forward Simulation Parameters
sim_time: 3
sim_granularity: 0.025
vx_samples: 20
vy_samples: 0
vtheta_samples: 30
controller_frequency: 5
#meter_scoring: true
#penalize_negative_x: false
# Trajectory Scoring Parameters
path_distance_bias: 32.0
goal_distance_bias: 20.0
occdist_scale: 0.01
forward_point_distance: 0 # Default 0.325
stop_time_buffer: 0.5
scaling_speed: 0.25
max_scaling_factor: 0.2
#cheat_factor: 2
#scaled_path_factor: 0.75
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05
# Global Plan Parameters
prune_plan: true
↧
DWA Cannot control at reasonable rate (controller_frequency)
When I set my DWA controller_frequency in move base params above 7.0 Hz, I get the behavior below and the robot does not move. I see the default is 20Hz, Any thoughts on potential causes? I have near-vanilla DWA params for the turtlebot in use and my velocity smoother accepts at 60 hz. I included my local planner yaml file below as well.
I'm running an i5 computer on my turtlebot.
Behavior is: Control loop missed its desired rate of 20.0000z, Got new plan, DWA planner failed to produce path., Got new plan, DWA planner failed to produce path., etc over and over
DWAPlannerROS:
max_vel_x: 0.55# 0.55
min_vel_x: 0.0
max_vel_y: 0.0# diff drive robot
min_vel_y: 0.0# diff drive robot
max_trans_vel: 0.5 # choose slightly less than the base's capability
min_trans_vel: 0.1# this is the min trans velocity when there is negligible rotational velocity
trans_stopped_vel: 0.1
max_rot_vel: 5.0# choose slightly less than the base's capability
min_rot_vel: 0.4# this is the min angular velocity when there is negligible translational velocity
rot_stopped_vel: 0.4
acc_lim_x: 1. # maximum is theoretically 2.0, but we go to 1.5 (now 1.)
acc_lim_theta: 2.0
acc_lim_y: 0.0# diff drive robot
yaw_goal_tolerance: 0.10#0.3# 0.05
xy_goal_tolerance: 0.10 #0.15
# latch_xy_goal_tolerance: false
sim_time: 1.7 # 1.0 from 1.7. 2. ok. 2.5+bad
vx_samples: 20 # from 6 default 3
vy_samples: 1 # diff drive robot, there is only one sample, but to be safe --Steve
vtheta_samples: 40# 20
path_distance_bias: 564.0 # 64. - weighting for how much it should stick to the global path plan
goal_distance_bias: 24.0# 24.0 - wighting for how much it should attempt to reach its goal
occdist_scale: 0.5# 0.01 - weighting for how much the controller should avoid obstacles
forward_point_distance: 0.325 # 0.325- how far along to place an additional scoring point
stop_time_buffer: 0.2 # 0.2- amount of time a robot must stop in before colliding for a valid traj.
scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint
max_scaling_factor: 0.2 # 0.2- how much to scale the robot's footprint when at speed.
oscillation_reset_dist: 0.05
↧
↧
costmap parameters - navigation stack
Hello,
for me it's unclear what parameters **have to/can** be in common_costmap_params.yaml, local_costmap_params.yaml and global_costmap_params.yaml
This tutorial http://wiki.ros.org/navigation/Tutorials/RobotSetup doesn't really help me.
To start with I just want to use a hand-drawn static map.
Every yaml file i could find in github projects uses different parameters / is otherwise structured. I want to use it together with dwa_local_planner. Also the parameters here differ from project to project and it seems that the ROS Wiki doesn't cover every parameter possible.
At the moment I always get the message "dwa planner failed to produce path". To find the problem I think it would be good the be full aware of the possible parameters and their influence on the system.
I appreciate any help / possible guides.
↧
Dwa failed to produce path in free space
Hi, all. I found a bug for [dwa local planner](https://github.com/ros-planning/navigation/tree/indigo-devel/dwa_local_planner). When the goal is in the -x and -y direction with respect to robot's current pose, the robot moves really slowly, even stop.
For example, the right part of the following image shows the case that the robot stops in the way to a goal as the end of blue line (not dotted blue lines) shows.
The left part of the following image shows the output in the terminal while the package is being run in debug model.
It outputs **"The dwa local planner failed to find a valid plan, cost functions discarded all candidates. This can mean there is an obstacle too close to the robot".** This information is generated from [here](https://github.com/ros-planning/navigation/blob/indigo-devel/dwa_local_planner/src/dwa_planner_ros.cpp#L216) when the cost of computed path is smaller than zero.
Obviously, we can see that there is no obstacle around the robot at that time. This case can be repeated as long as we want.

The parameters are listed as follows:
DWAPlannerROS:
# Robot Configuration Parameters - Kobuki
max_vel_x: 0.3 # 0.55
min_vel_x: 0.0
max_vel_y: 0.0 # diff drive robot
min_vel_y: 0.0 # diff drive robot
max_trans_vel: 0.3 # choose slightly less than the base's capability
min_trans_vel: 0.04 # this is the min trans velocity when there is negligible rotational velocity
trans_stopped_vel: 0.1
max_rot_vel: 1.57 # default 5.0 # choose slightly less than the base's capability
min_rot_vel: 0.4 # this is the min angular velocity when there is negligible translational velocity
rot_stopped_vel: 0.4
acc_lim_x: 1.0 # maximum is theoretically 2.0, but we
acc_lim_theta: 2.0
acc_lim_y: 0.0 # diff drive robot
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.05 # 0.05
xy_goal_tolerance: 0.05 # 0.10
# latch_xy_goal_tolerance: false
# Forward Simulation Parameters
sim_time: 1.7 #1.5 # 1.7
vx_samples: 20 # 3
vy_samples: 1 #1 # diff drive robot, there is only one sample
vtheta_samples: 40 # 20
# Trajectory Scoring Parameters
path_distance_bias: 32.0 # 32.0 - weighting for how much it should stick to the global path plan
goal_distance_bias: 12.0 # 24.0 - wighting for how much it should attempt to reach its goal
occdist_scale: 0.02 # 0.01 - weighting for how much the controller should avoid obstacles
forward_point_distance: 0.325 #0.325 # 0.325 - how far along to place an additional scoring point
stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj.
scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint
max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed.
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags
# Debugging
publish_traj_pc : true
publish_cost_grid_pc: true
global_frame_id: odom
# Differential-drive robot configuration - necessary?
holonomic_robot: false
Very looking forward anyone can give me any advice to solve this problem! Thank you!
↧
How to integrate a learning node into the navigation stack
Hello,
I am new to ROS and am using it for my school project. I am working on a turtlebot3 for navigation purpose. Currently it deploys navigation stack (`Dijkstra global_planner` and `DWA local_planner` ) with Laser input.
I wish to improve the obstacle avoidance performance using a raspberry pi camera. I have written a classification node that takes raw image as input and output 5 different velocity cmd (left, left-straight, straight, right-straight, right)
As I still want the robot go to a certain destination using global planner, I wish to integrate this classification node to the original navigation stack. However, since I don't compute the cost map from the image, I am wondering if there is still a way to achieve this?
To be more specific, my questions are:
1. Is it possible to write this classification node as a local planner plugin if it does not compute the cost map?
2. If not, how to integrate this node into the navigation stack?
3. Is possible for the robot to know where it is without this cost map?
4. If 3 is not possible, what if I keep the DWAlocal planner and laer input just to locate the robot?
I am sorry for this long question, but I would really appreciate it if anyone could give me some suggestions or links that may help!
Thanks a lot
↧
Is there a flowchart or something like that for dwa_local_planner or base_local_planner?
Hi all,
Reading from code is complicating. And I can't found calling sequences for these functions:
UpdatePlanAndCosts(...);
checkTrajectory(...);
setPlan(...);
isGoalReached(...);
checkTrajectory(...);
computeVelocityCommands(...);
findBestPath(...);
...
etc.
↧
↧
Real Robot and Rviz path is not matching
Hi
Good morning everyone!!
I hope my question/query is not duplicated. If it is, I am really really sorry. I tried checking the answers similiar to my query but I couldn't find it. Any help would be highly appreciated.
I have a customized robot which I am trying to move it autonomously in my workshop. I am using amcl and move-base algorithm.
**The problem is when I am watching on rviz, its perfectly moving and planning path. But my customized robot is not even moving more than few centimeters.**
I am using:
(1) **ROS Kinetic**
(2) **Ubuntu 16.04 LTS on Jetson TX2**
(3) **RP Lidar A1**
(4) **Arduino UNO for sending motor command via STM32F0-Discorvery board (CAN bus) to RoboteQ motor controller**.
I am getting this warning messages
[ WARN] [1520556177.779801584]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.5349 seconds
[ WARN] [1520556178.214556518]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.5679 seconds
This is my cmd_vel plot:
https://www.dropbox.com/s/x67lhcx2qf97h2o/cmd_vel.png?dl=0
Here are my launch files and configuration files:
(1) navigate.launch
2) amcl.launch
3) move_base.launch
4) laser.launch
5) costmap_common_params.yaml
# Customized for ArloBot
max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[-0.45, -0.35], [-0.45, 0.35], [0.45,0.35], [0.45,-0.35]] # if the robot is not circular
inflation_radius: 0.50 # max. distance from an obstacle at which costs are incurred for planning paths.
cost_scaling_factor: 5 # exponential rate at which the obstacle cost drops off (default: 10)
# voxel map configuration; z-voxels 0 are filled by bumpers and 1 by laser scan (kinect)
map_type: voxel
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2
publish_voxel_map: false
observation_sources: scan bump
#observation_sources: scan
# scan: {data_type: LaserScan, topic: scan, marking: true, clearing: true, min_obstacle_height: 0.25, max_obstacle_height: 0.35}
scan: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true, min_obstacle_height: 0.0, max_obstacle_height: 3}
# Can we just set up two of these here?
bump: {data_type: PointCloud2, topic: mobile_base/sensors/bumper_pointcloud, marking: true, clearing: false, min_obstacle_height: 0.0, max_obstacle_height: 0.15}
6) global_costmap_params.yaml
global_costmap:
global_frame: /map
robot_base_frame: /base_link
update_frequency: 1.0
publish_frequency: 0.5
static_map: true
transform_tolerance: 0.5
7) local_costmap_params.yaml
local_costmap:
global_frame: odom
robot_base_frame: /base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 50.0
height: 50.0
resolution: 0.05
transform_tolerance: 0.5
plugins:
- {name: static_map, type: "costmap_2d::StaticLayer"}
- {name: obstacles, type: "costmap_2d::VoxelLayer"}
publish_frequency: 1.0
obstacles:
observation_sources: base_scan
base_scan: {data_type: LaserScan, sensor_frame: laser, clearing: true, marking: true, topic: /scan}
8) base_local_planner_params.yaml
TrajectoryPlannerROS:
# Robot Configuration Parameters
max_vel_x: 0.3
min_vel_x: 0.1
max_vel_theta: 1.0
min_vel_theta: -1.0
min_in_place_vel_theta: 0.6
acc_lim_x: 0.5
acc_lim_theta: 1.0
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.3
xy_goal_tolerance: 0.5
# Forward Simulation Parameters
sim_time: 1.0
vx_samples: 15
vtheta_samples: 20
# Trajectory Scoring Parameters
meter_scoring: true
pdist_scale: 0.0
gdist_scale: 0.8
occdist_scale: 0.01
heading_lookahead: 0.325
dwa: true
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05
# Differential-drive robot configuration
holonomic_robot: false
max_vel_y: 0.5
min_vel_y: 0.0
acc_lim_y: 0.0
vy_samples: 1
9) dwa_local_planner_params.yaml
DWAPlannerROS:
# Robot Configuration Parameters - Kobuki
max_vel_x: 0.5 # 0.55
min_vel_x: 0.0
max_vel_y: 0.5 # diff drive robot
min_vel_y: 0.0 # diff drive robot
max_trans_vel: 0.5 # choose slightly less than the base's capability
min_trans_vel: 0.1 # this is the min trans velocity when there is negligible rotational velocity
trans_stopped_vel: 0.1
# Warning!
# do not set min_trans_vel to 0.0 otherwise dwa will always think translational velocities
# are non-negligible and small in place rotational velocities will be created.
max_rot_vel: 5.0 # choose slightly less than the base's capability
min_rot_vel: 0.4 # this is the min angular velocity when there is negligible translational velocity
rot_stopped_vel: 0.4
acc_lim_x: 1.0 # maximum is theoretically 2.0, but we
acc_lim_theta: 2.0
acc_lim_y: 0.0 # diff drive robot
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.3 # 0.05
xy_goal_tolerance: 0.15 # 0.10
# latch_xy_goal_tolerance: false
# Forward Simulation Parameters
sim_time: 1.0 # 1.7
vx_samples: 15 # 3
vy_samples: 1 # diff drive robot, there is only one sample
vtheta_samples: 20 # 20
# Trajectory Scoring Parameters
path_distance_bias: 32.0 # 32.0 - weighting for how much it should stick to the global path plan
goal_distance_bias: 10.0 # 24.0 - wighting for how much it should attempt to reach its goal
occdist_scale: 0.01 # 0.01 - weighting for how much the controller should avoid obstacles
forward_point_distance: 0.325 # 0.325 - how far along to place an additional scoring point
stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj.
scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint
max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed.
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags
# Debugging
publish_traj_pc : true
publish_cost_grid_pc: true
global_frame_id: odom
# Differential-drive robot configuration - necessary?
# holonomic_robot: false
10) move_base_params.yaml
# Move base node parameters. For full documentation of the parameters in this file, please see
#
# http://www.ros.org/wiki/move_base
#
shutdown_costmaps: false
controller_frequency: 5.0
controller_patience: 3.0
planner_frequency: 1.0
planner_patience: 5.0
oscillation_timeout: 10.0
oscillation_distance: 0.2
# local planner - default is trajectory rollout
base_local_planner: "dwa_local_planner/DWAPlannerROS"
↧
dwa_local_planner
Hello.
The move_base don't create the shortest distance path.
I need help. please advise me.
My setting is below.
My PC is Unbuntu 16.04 , Ros Kinetic.
My robot is turtlebot3 waffle ,
I use turtlebot3 navigation reference source code .
-> https://github.com/ROBOTIS-GIT/turtlebot3/tree/master/turtlebot3_navigation.
I use launch command to run move_base node .
-> roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
By the way, if I set the goal position , Sometimes the robot moves to the Goal as shown in Figure 1.
I want the robot to move the shortest distance path as shown in Figure 2.
[](https://youtu.be/owYYzp5JvOM?t=0s)
Click image to link to YouTube video.
video time line ( 0:00 ~ 0:30) -> actual mobility path , picture 1 ( Control robot by move_base & dwa_local_planner package )
video time line ( 0:30 ~ 0:58) -> desired mobility path , picture 2 (Control robot by turtlebot3_teleop package )
[](https://youtu.be/BVcq9uY_v7I?t=0s)
What parameters need to be changed to improve the path?
I will attach the parameter value that I used.
1. dwa_local_planner_params
https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_navigation/param/dwa_local_planner_params_waffle.yaml
DWAPlannerROS:
Robot Configuration Parameters
max_vel_x: 0.26
min_vel_x: -0.26
max_vel_y: 0.0
min_vel_y: 0.0
// The velocity when robot is moving in a straight line
max_trans_vel: 0.26
min_trans_vel: 0.13
max_rot_vel: 1.82
min_rot_vel: 0.9
acc_lim_x: 2.5
acc_lim_y: 0.0
acc_lim_theta: 3.2
// Goal Tolerance Parametes
xy_goal_tolerance: 0.05
yaw_goal_tolerance: 0.17
latch_xy_goal_tolerance: false
// Forward Simulation Parameters
sim_time: 2.0
vx_samples: 20
vy_samples: 0
vtheta_samples: 40
controller_frequency: 10.0
// Trajectory Scoring Parameters
path_distance_bias: 32.0
goal_distance_bias: 20.0
occdist_scale: 0.02
forward_point_distance: 0.325
stop_time_buffer: 0.2
scaling_speed: 0.25
max_scaling_factor: 0.2
// Oscillation Prevention Parameters
oscillation_reset_dist: 0.05
// Debugging
publish_traj_pc : true
publish_cost_grid_pc: true
2. move_base_params
-> https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_navigation/param/move_base_params.yaml
shutdown_costmaps: false
controller_frequency: 10.0
planner_patience: 5.0
controller_patience: 15.0
conservative_reset_dist: 3.0
planner_frequency: 5.0
oscillation_timeout: 10.0
oscillation_distance: 0.2
3. costmap_common_params
https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_navigation/param/costmap_common_params_waffle.yaml
4. global_costmap_params
https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_navigation/param/global_costmap_params.yaml
5. local_costmap_params
https://github.com/ROBOTIS-GIT/turtlebot3/blob/master/turtlebot3_navigation/param/local_costmap_params.yaml
↧
How to stop robot if it encounters with dynamic object ?
Hi
I want my robot just to stop if it encounters with a dynamic obstacle. Currently, I stop the robot with the laser sensor distance value (if any obstacle is in the range, then stop), but it is not an elegant and reliable solution. How can I do that?
thanks
↧
How does the DWA planner handle continuously updated goals?
Hello! I would appreciate some assistance since I am pretty new to ROS. I am running ROS indigo with ubuntu 14.04.
I am continuously updating the goal position of my robot (arlo-bot). I am wondering how the DWA_Local_Planner, and even the Global Planner, handles trajectory (path) formulation if I continuously publish the goal before the robot reaches the goal (move_base_simple/goal topic). Does it simply ignore the previous goal and recomputes the optimal trajectory for the newest goal? Or does it query all the goals until it reaches each goal, acting like a planning path? I am trying to determine how to set up my code so the robot can make the smoothest and fastest transitions between goals so that it does not stop to re-calculate the trajectory for every updated goal.
Thank you.
↧
↧
When optimizing the DWA local planner, is there a way to get the the total cost assocaited from APIs or from the parameter server?
I am trying to automate the parameter selection for DWA, for this I need to have the cost function value, is there a way to obtain this?
↧
stuck robot problem
Hi, I'm running navigation stack with a rosbot, my problem is that when my robot is close to the obstacles, it stops. This is normal, but the recovery behaviours doesn't start, this is not normal. If I go to the robot, it detects me, the local costmap updates, and it comes move again.
TrajectoryPlannerROS:
acc_lim_x: 1.0
acc_lim_y: 1.0
acc_lim_theta: 0.6
max_vel_x: 0.35
max_vel_theta: 0.5
min_in_place_vel_theta: 0.3
escape_vel: -0.3
xy_goal_tolerance: 0.10
yaw_goal_tolerance: 0.25
path_distance_bias: 40.0
stop_time_buffer: 0.5
holonomic_robot: false
meter_scoring: true
sim_time: 2.0
global_frame_id: map
controller_patience: 5.0
planner_frequency: 2.0
Common params.yaml
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[0.10,0.12],[0.10,-0.12],[-0.10,-0.12],[-0.10,0.12]]
inflation_radius: 0.4
resolution: 0.1
use_dijkstra: false
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser_frame, data_type: LaserScan, topic: scan, clearing: true, marking: true}
local_costmap:
update_frequency: 5.0
publish_frequency: 1.0
static_map: false
rolling_window: true
height: 5.0
width: 5.0
resolution: 0.1
global_frame: odom
robot_base_frame: base_link
publish_cost_grid: true
Sometimes, after a long time stopped, it comes move again.
↧
How to use the DWB local planner
Dear all,
I was wondering if you can help me to find out how to use the [DWB_local_planner](https://github.com/locusrobotics/robot_navigation/tree/master/dwb_local_planner) in [move_base](http://wiki.ros.org/move_base).
I have already installed all the packages in the [This](https://github.com/locusrobotics/robot_navigation).
You can find the part of the launcher where I call the *move_base*.
>
At the moment I use the *TEB_local_planner*. But I have no idea how I can call the *DWB_local_planner* in the launch file.
Thanks,
↧