RPP with non-circular robot not stopping for obstacles when not directly in front of robot
Using RPP with non-circular robot footprint I see the robot footprint hit obstacles that are not directly in front. RPP will stop if the obstacle is directly in front. It looks like it only checks for obstacles on the look ahead collision arc but does not project the robots footprint on those points. I assume I have something configured incorrectly?
Video of situation https://drive.google.com/file/d/19zVY...
Controller config
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 0.15
lookahead_dist: 1.0
min_lookahead_dist: 1.0
max_lookahead_dist: 2.0
lookahead_time: 2.0
rotate_to_heading_angular_vel: 0.45
transform_tolerance: 0.1
use_velocity_scaled_lookahead_dist: false
min_approach_linear_velocity: 0.1
max_allowed_time_to_collision: 5.0
use_regulated_linear_velocity_scaling: true
use_cost_regulated_linear_velocity_scaling: false
regulated_linear_scaling_min_radius: 0.01
regulated_linear_scaling_min_speed: 0.25
use_rotate_to_heading: true
allow_reversing: false
rotate_to_heading_min_angle: 0.785
max_angular_accel: 0.8
max_robot_pose_search_dist: 10.0
use_interpolation: true
Local costmap config
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 4.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_footprint
use_sim_time: False
rolling_window: true
width: 3
height: 3
resolution: 0.05
footprint: "[ [0.25, 0.3048], [0.75, 0.00], [0.25, -0.3048], [-0.5, -0.12], [-0.5, 0.12] ]"
plugins: ["static_layer", "stvl_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0 # Exponential decay factor across inflation radius.
inflation_radius: 0.10 #Radius to inflate costmap around lethal obstacles.
stvl_layer:
plugin: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"
enabled: true
voxel_decay: 10.
decay_model: 0
voxel_size: 0.05
track_unknown_space: true
max_obstacle_height: 5.0
unknown_threshold: 15
mark_threshold: 0
update_footprint_enabled: true
combination_method: 1
origin_z: 0.0
publish_voxel_map: false
transform_tolerance: 0.2
mapping_mode: false
map_save_duration: 60.0
observation_sources: pointcloud
pointcloud:
data_type: PointCloud2
topic: /stereo_camera/depth/color/points
marking: true
clearing: true
obstacle_range: 3.0
min_obstacle_height: 0.065
max_obstacle_height: 5.0
expected_update_rate: 0.0
observation_persistence: 0.0
inf_is_valid: false
voxel_filter: false
clear_after_reading: true
max_z: 7.0
min_z: 0.195
vertical_fov_angle: 1.01229
horizontal_fov_angle: 1.51844
decay_acceleration: 15.0
model_type: 0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
local_costmap_client:
ros__parameters:
use_sim_time: False
local_costmap_rclcpp_node:
ros__parameters:
use_sim_time: False