DWA planner not considerate robot footprint
Hello everybody,
we want to use cartographer together with move base to do some frontier based semantic exploration. We use Ubuntu 18.04 and ros melodic. Cartographer is set up nicely and runs without any issues. As sensor input for move base we use two SICKS300 and odometry information calculated from the robot encoders. We have set up all the necessary tfs. With our setup, we are able to get plausible global and local costmaps. We choose the navfn as global and dwa as the local planner. As long as our robot does not have to avoid any obstacles, everything runs smoothly.
But if there are obstacles the dwa planner does not seem to take into account the footprint of the robot (see rviz screenshot).
The blue line is the global path (navfn), the green one is the global dwa path and the red one is the dwa local path. We are confused and do not understand why the robot's footprint touches the inflation layer in such a way.
Here are our configuration files:
costmap_common_params
obstacle_range: 5.0
raytrace_range: 5.0
map_topic: "/ctv_10/map"
first_map_only: false
footprint: [[-1.03,0.46], [0.38,0.46], [0.38,-0.46], [-1.03,-0.46]]
plugins:
- {name: static_map, type: "costmap_2d::StaticLayer"}
- {name: inflation, type: "costmap_2d::InflationLayer"}
- {name: obstacles, type: "costmap_2d::VoxelLayer"}
static_map:
lethal_cost_threshold: 55
subscribe_to_updates: true
inflation:
inflation_radius: 0.55
cost_scaling_factor: 10.0
obstacles:
observation_sources: scanFront scanBack
scanFront: { data_type: LaserScan,
sensor_frame: ctv_10/laser_front_link,
clearing: true,
marking: true,
topic: /ctv_10/front_scan,
expected_update_rate: 10}
scanBack: { data_type: LaserScan,
sensor_frame: ctv_10/laser_back_link,
clearing: true,
marking: true,
topic: /ctv_10/back_scan,
expected_update_rate: 10}
global_costmap_params
global_frame: "ctv_10/map"
robot_base_frame: "ctv_10/base_link"
transform_tolerance: 20.0
update_frequency: 5.0
publish_frequency: 5.0
rolling_window: false
always_send_full_costmap: false
static_map: true
map_type: costmap
cost_scaling_factor: 10.0
local_costmap_params
global_frame: "ctv_10/map"
robot_base_frame: "ctv_10/base_link"
transform_tolerance: 10.0
update_frequency: 5.0
publish_frequency: 2.0
rolling_window: true
always_send_full_costmap: true
static_map: false
map_type: costmap
width: 5.0
height: 5.0
resolution: 0.05
dwa planner params
# robot configuration parameters
max_vel_trans: 0.5
min_vel_trans: 0.1
max_vel_x: 0.5
min_vel_x: 0.1
max_vel_y: 0.1
min_vel_y: -0.1
max_vel_theta: 1.0
min_vel_theta: 0.4
acc_lim_x: 0.8
acc_lim_y: 0.8
acc_lim_theta: 1.0
acc_lim_trans: 0.1
# goal tolerance parameters
xy_goal_tolerance: 0.1
yaw_goal_tolerance: 0.07
latch_xy_goal_tolerance: false
# forward simulation parameters
sim_time: 4.0
sim_granularity: 0.025
vx_samples: 3
vy_samples: 3
vth_samples: 20
#controller_frequency: 15.0
# trajectory scoring parameters
path_distance_bias: 32.0
goal_distance_bias: 24.0
occdist_scale: 0.01
forward_point_distance: 0.325
stop_time_buffer: 0.2
scaling_speed: 0.25
max_scaling_factor: 0.2
publish_cost_grid: false
# oscillation prevention parameters
oscillation_reset_dist: 0.05
# global plan parameters
prune_plan: false