move_base planning to a Goal
Hello All, I am using move_base to send simple goals to a robot within stage. Is it possible for the robot to execute goals that are beyond its current laser range? For example it executes goals, that are in a certain local vicinity, perfectly. However for goals on the other end of the map, it is unable to plan a path. It keeps giving me the error: Aborting because a valid plan could not be found. Even after executing all recovery behaviors
when the goals are not within the range of its ranger. I am publishing a map of the environment as well. Does anyone know how to use move_base for distant goals? Thanks
EDIT 1: To be honest I simply stole the move_base configurations from the navigation_stage package from the navigation-tutorials stack. Here are the files:
costmap_common_params.yaml:
origin_z: 0.0
z_resolution: 0.2
z_voxels: 10
unknown_threshold: 9
mark_threshold: 0
transform_tolerance: 0.3
obstacle_range: 2.5
max_obstacle_height: 2.0
raytrace_range: 3.0
footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]]
footprint_padding: 0.01
inflation_radius: 0.55
cost_scaling_factor: 10.0
lethal_cost_threshold: 100
observation_sources: base_scan
base_scan: {data_type: LaserScan, expected_update_rate: 0.4,
observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.08}
local_costmap_param.yaml -
local_costmap:
publish_voxel_map: true
global_frame: odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.025
origin_x: 0.0
origin_y: 0.0
global_costmap_params.yaml -
global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 0.0
static_map: true
rolling_window: false
footprint_padding: 0.02
base_local_planner.yaml -
TrajectoryPlannerROS:
acc_lim_th: 3.2
acc_lim_x: 2.5
acc_lim_y: 2.5
max_vel_x: 0.65
min_vel_x: 0.1
max_rotational_vel: 1.0
min_in_place_rotational_vel: 0.4
escape_vel: -0.1
holonomic_robot: true
y_vels: [-0.3, -0.1, 0.1, -0.3]
xy_goal_tolerance: 0.1
yaw_goal_tolerance: 0.05
sim_time: 1.7
sim_granularity: 0.025
vx_samples: 3
vtheta_samples: 20
goal_distance_bias: 0.8
path_distance_bias: 0.6
occdist_scale: 0.01
heading_lookahead: 0.325
dwa: true
oscillation_reset_dist: 0.05
prune_plan: true
Probably, something with your configuration is wrong. move_base shouldn't have any problems planning paths as long as there exists one. Can you edit your post and add your move_base configuration?
Are you sure that there exist valid paths in your map? Maybe there are some tight doors and the robot is too big to drive through?
When move_base finds a map being published, it uses that to plan a path to goal right? The reason, I ask is I have used move_base previously to explore unknown spaces. And it would plan a path only within the visible region, even then.
So move_base should be able to plan in unknown space as well, if I set static map to false? Could you please elaborate more on the size and origin parameters? I really appreciate the help. I am unable to find description of the various parameters online.