-
Notifications
You must be signed in to change notification settings - Fork 218
Adding min_age_outside_frustum parameter (solving the noisy edge problem) #183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: noetic-devel
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -43,10 +43,12 @@ namespace volume_grid | |
| /*****************************************************************************/ | ||
| SpatioTemporalVoxelGrid::SpatioTemporalVoxelGrid(const float& voxel_size, \ | ||
| const double& background_value, const int& decay_model,\ | ||
| const double& min_age_outside_frustum, \ | ||
| const double& voxel_decay, const bool& pub_voxels) : | ||
| _background_value(background_value), \ | ||
| _voxel_size(voxel_size), \ | ||
| _decay_model(decay_model), \ | ||
| _min_age_outside_frustum(min_age_outside_frustum), \ | ||
| _voxel_decay(voxel_decay), \ | ||
| _pub_voxels(pub_voxels), \ | ||
| _grid_points(new std::vector<geometry_msgs::Point32>), \ | ||
|
|
@@ -218,10 +220,15 @@ void SpatioTemporalVoxelGrid::TemporalClearAndGenerateCostmap( \ | |
| } | ||
| } | ||
|
|
||
| // if not inside any, check against nominal decay model | ||
| // if not inside any, check against nominal decay model, also clearing if | ||
| // too young. | ||
| // Depending on min_age_outside_frustum value and cycle frequency, | ||
| // a voxel too young means that it was marked without being in a frustrum | ||
| // (or, edgy case, the point that marked the voxel was in a frustrum | ||
| // but the center of that voxel was not), in that case : clearing | ||
| if(!frustum_cycle) | ||
| { | ||
| if (base_duration_to_decay < 0.) | ||
| if (base_duration_to_decay < 0. || time_since_marking < _min_age_outside_frustum) | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So this wouldn't only set the threshold for newly marked points, but also points outside of the frustum that have been accelerated before, since That means that this is going to not only affect the clearing of recently marked points, but also longer-standing points that have had any level of frustum acceleration already applied. This is still overclearing. I could make the argument that as long as the minimum age is very small, we can approximate those older points as being likely to be removed as well very soon in the next update cycle, but it does break that clear divide. I really question if this is necessary. Going back to your problem statement: |
||
| { | ||
| // expired by temporal clearing | ||
| if(!this->ClearGridPoint(pt_index)) | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.