-
Notifications
You must be signed in to change notification settings - Fork 207
Open
Description
Bug report
I'm new in using the the stvl layer (b.t.w - another great job!), and might be doing something wrong.
But according to the tutorials and to the answer given here Spatio temporal voxel layer: Clearing voxels not seen but included in fov - which explicitly saying that if a voxel is removed than the costmap should be updated as well , I think there might be a sync issue - when voxels are cleared after decaying but the costmap is not.
please look at the video -
voxels are green, taken from depth pcl. The 2D local costmap layer is pink.
stvl_sync_clear_issue-2020-12-24_10.06.25.mp4
Required Info:
- Operating System:
Ubuntu 20.04 - Version or commit hash:
- stvl branch: build from foxy-devel, commit: 4f538989191ae29325ddfc912ea452172ea765f8
- nav2: foxy binaries: 0.4.5-1focal.20201210.084248
Steps to reproduce issue
- Implement the stvl layer to the local costmap - seee parameters:
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: map # default odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 4
height: 4
resolution: 0.05
footprint: "[[0.083, 0.16033], [-0.36511, 0.16033], [-0.36511, -0.16033], [0.083,-0.16033]]"
footprint_padding: 0.01
robot_radius: 0.16 # not in use when has footprint
lethal_cost_threshold: 50
plugins: [ "inflation_layer", "head_stvl_layer" ]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
enabled: true
inflation_radius: 0.08 #0.55 default
cost_scaling_factor: 5.0
inflate_unknown: false
inflate_around_unknown: false
head_stvl_layer:
plugin: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"
enabled: true
voxel_decay: 10.0 # seconds if linear, e^n if exponential
decay_model: 0 # 0=linear, 1=exponential, -1=persistent
voxel_size: 0.2 # meters
track_unknown_space: false # default space is known
max_obstacle_height: 2.0 # meters
unknown_threshold: 15
mark_threshold: 2
update_footprint_enabled: true
combination_method: 1 # 1=max, 0=override
origin_z: 0.0 # meters
publish_voxel_map: true # default off
transform_tolerance: 0.2 # seconds
mapping_mode: false # default off, saves map not for navigation
map_save_duration: 60.0 # default 60s, how often to autosave
observation_sources: head_depth_pointcloud_mark head_depth_pointcloud_clear
head_depth_pointcloud_mark:
data_type: PointCloud2
topic: /sensors/depth_cameras/head/points
marking: true
clearing: false
obstacle_range: 2.0 # meters
min_obstacle_height: 0.3 # default 0, meters
max_obstacle_height: 1.5 # default 3, meters
expected_update_rate: 0.0 # default 0, if not updating at this rate at least, remove from buffer
observation_persistence: 0.0 # default 0, use all measurements taken during now-value, 0=latest
inf_is_valid: false # default false, for laser scans
filter: "passthrough" # default passthrough, apply "voxel", "passthrough", or no filter to sensor data, recommend on
voxel_min_points: 8 # default 0, minimum points per voxel for voxel filter
clear_after_reading: true # default false, clear the buffer after the layer gets readings from it
head_depth_pointcloud_clear:
data_type: PointCloud2
topic: /sensors/depth_cameras/head/points
marking: false
clearing: true
max_z: 3.0 # default 0, meters # maximum distance from camera it can see
min_z: 0.2 # default 10, meters
vertical_fov_angle: 0.8745 # default 0.7, radians
horizontal_fov_angle: 1.048 # default 1.04, radians
decay_acceleration: 5.0 # default 0, 1/s^2. If laser scanner MUST be 0 #acceleration scales the model's decay in presence of readings
model_type: 0 # default 0, model type for frustum. 0=depth camera, 1=3d lidar like VLP16 or similar
- PCL is directed to a wall, voxels are created and projected to the local costmap
- turn the robot and watch the voxels decay
- costmap is still "dirty" with decayed voxels.
Expected behavior
costmap is synced to stvl layer. when voxeled are cleared the costmap should be updated accordingly
Actual behavior
After voxels decayed and cleared from layer the costmap is not totally cleared
Additional information
- When reproducing this scenrio only the STVL and inflation layer are active
Metadata
Metadata
Assignees
Labels
No labels