global_planner eventually creates paths over obstacles when calling /GlobalPlanner/make_plan

asked 2020-08-31 05:33:03 -0500

pgarcia gravatar image

Hi all!

I'm using Gmapping based on visual odometry and lidar readings to create a map of an unknown environment with obstacles. To create feasible paths I'm using the move_base package, and the GlobalPlanner package as the path planner.

Given that as the robot moves around it discovers new obstacles, I'm calling the service /GlobalPlanner/make_plan at 1 Hz to recalculate a valid trajectory, free of obstacles. Most of the times the path seems to be ok, but eventually the created path goes over already-known obstacles. This happens even if the robot does not move.

For instance, a good path could be:

image description

But if I keep on recalculating the path, calling the service, at some point I get some trajectories going over known obstacles, like this one:

image description

/move_base/global_costmap/costmap seems to be ok, although the path goes clearly over the obstacle:

image description

But /move_base/GlobalPlanner/potential is not:

image description

The funny thing is that, if I use instead /move_base_simple/goal topic to create the path, which is re-evaluated periodically, it always works.

Does anyone know what could be happening? This is my parameter list:

PARAMETERS

  • /move_base/DWAPlannerROS/acc_lim_th: 3.2
  • /move_base/DWAPlannerROS/acc_lim_x: 2.5
  • /move_base/DWAPlannerROS/acc_lim_y: 0
  • /move_base/DWAPlannerROS/latch_xy_goal_tolerance: False
  • /move_base/DWAPlannerROS/max_rot_vel: 3.0
  • /move_base/DWAPlannerROS/max_vel_theta: 3.0
  • /move_base/DWAPlannerROS/max_vel_trans: 0.3
  • /move_base/DWAPlannerROS/max_vel_x: 0.3
  • /move_base/DWAPlannerROS/max_vel_y: 0
  • /move_base/DWAPlannerROS/min_rot_vel: 2.0
  • /move_base/DWAPlannerROS/min_vel_theta: 2.0
  • /move_base/DWAPlannerROS/min_vel_trans: 0.05
  • /move_base/DWAPlannerROS/min_vel_x: 0.05
  • /move_base/DWAPlannerROS/min_vel_y: 0
  • /move_base/DWAPlannerROS/xy_goal_tolerance: 0.2
  • /move_base/DWAPlannerROS/yaw_goal_tolerance: 0.1
  • /move_base/GlobalPlanner/allow_unknown: True
  • /move_base/GlobalPlanner/cost_factor: 3
  • /move_base/GlobalPlanner/default_tolerance: 0.0
  • /move_base/GlobalPlanner/publish_potential: True
  • /move_base/GlobalPlanner/use_dijkstra: True
  • /move_base/GlobalPlanner/use_quadratic: True
  • /move_base/TrajectoryPlannerROS/acc_lim_theta: 3.2
  • /move_base/TrajectoryPlannerROS/acc_lim_x: 2.5
  • /move_base/TrajectoryPlannerROS/angular_sim_granularity: 0.02
  • /move_base/TrajectoryPlannerROS/controller_frequency: 20.0
  • /move_base/TrajectoryPlannerROS/dwa: True
  • /move_base/TrajectoryPlannerROS/escape_reset_dist: 0.1
  • /move_base/TrajectoryPlannerROS/escape_reset_theta: 0.1
  • /move_base/TrajectoryPlannerROS/escape_vel: -0.1
  • /move_base/TrajectoryPlannerROS/gdist_scale: 1.0
  • /move_base/TrajectoryPlannerROS/heading_lookahead: 0.325
  • /move_base/TrajectoryPlannerROS/heading_scoring: False
  • /move_base/TrajectoryPlannerROS/heading_scoring_timestep: 0.8
  • /move_base/TrajectoryPlannerROS/holonomic_robot: True
  • /move_base/TrajectoryPlannerROS/latch_xy_goal_tolerance: True
  • /move_base/TrajectoryPlannerROS/max_vel_theta: 2.0
  • /move_base/TrajectoryPlannerROS/max_vel_x: 0.2
  • /move_base/TrajectoryPlannerROS/meter_scoring: True
  • /move_base/TrajectoryPlannerROS/min_in_place_vel_theta: 2
  • /move_base/TrajectoryPlannerROS/min_vel_theta: -2.0
  • /move_base/TrajectoryPlannerROS/min_vel_x: 0.05
  • /move_base/TrajectoryPlannerROS/occdist_scale: 0.1
  • /move_base/TrajectoryPlannerROS/oscillation_reset_dist: 0.25
  • /move_base/TrajectoryPlannerROS/pdist_scale: 0.75
  • /move_base/TrajectoryPlannerROS/publish_cost_grid_pc: True
  • /move_base/TrajectoryPlannerROS/sim_granularity: 0.02
  • /move_base/TrajectoryPlannerROS/sim_time: 2.0
  • /move_base/TrajectoryPlannerROS/simple_attractor: False
  • /move_base/TrajectoryPlannerROS/vtheta_samples: 20
  • /move_base/TrajectoryPlannerROS/vx_samples: 6
  • /move_base/TrajectoryPlannerROS/xy_goal_tolerance: 0.3
  • /move_base/TrajectoryPlannerROS/yaw_goal_tolerance: 3
  • /move_base/base_global_planner: global_planner/Gl...
  • /move_base/base_local_planner: base_local_planne...
  • /move_base/controller_frequency: 1
  • /move_base/global_costmap/footprint: [[-0.25, -0.2], [...
  • /move_base/global_costmap/footprint_padding: 0.35
  • /move_base/global_costmap/global_frame: map
  • /move_base/global_costmap/height: 200.0
  • /move_base/global_costmap/inflation/inflation_radius: 0.5
  • /move_base/global_costmap/obstacle_range: 8.0
  • /move_base/global_costmap/obstacles_laser/laser/clearing: True
  • /move_base/global_costmap/obstacles_laser/laser/data_type: LaserScan
  • /move_base/global_costmap/obstacles_laser/laser/inf_is_valid: False
  • /move_base/global_costmap/obstacles_laser/laser/marking: True
  • /move_base/global_costmap ...
(more)
edit retag flag offensive close merge delete