Quantcast
Viewing all 89 articles
Browse latest View live

Local path doesnt find a valid control

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

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? ![image description](/upfiles/15011588857567179.png)

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. ![trajectory](/upfiles/15028853076847103.png) 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! ![image description](/upfiles/15083793475720377.png) 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, ![RVIZ view](/upfiles/15105647348838313.jpg) 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, ![RVIZ view](/upfiles/15105647348838313.jpg) 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. ![image description](/upfiles/15167606136231221.jpg) 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. [![Video Label](http://img.youtube.com/vi/owYYzp5JvOM/0.jpg)](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 ) [![Video Label](http://img.youtube.com/vi/BVcq9uY_v7I/0.jpg)](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,
Viewing all 89 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>