-
Notifications
You must be signed in to change notification settings - Fork 191
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
Obstacles are cleared from the voxel layer but not from the local costmap #199
Comments
admittedly, its been a long time since I've looked at the ROS1 nav configuration file hierarchy, so I'd make sure first of all that your parameters are actually making it to the layer in the first place. Try using our provided configuration file for indoor use: https://github.com/SteveMacenski/spatio_temporal_voxel_layer/blob/melodic-devel/example/standard_indoor_environment_config.yaml I know companies using that exactly so if that starts working for you, we can back out the issue one param change at a time. Unfortunately, I'm so far removed from ROS1 that I can't test this easily. Another thing to test is rolling back What happens if you put the static layer under the STVL layer in the local costmap? @tasilb are you still on Melodic? If so, you see any issues in the binaries? |
They are, otherwise I wouldn't be able to see the voxels in rviz (default is off) nor would the layer be aware of the correct observation sources and topics.
Problem persisted.
(by under, you mean to place the static layer first in the plugin list, right?) That fixes the problem! Obstacles are now correctly removed from the local costmap when the voxels are removed from the STVL layer. I guess this was the reason why the global costmap was working fine while the local costmap wasn't - the global costmap already had a static layer as the bottom layer. Any clue as to what the problem might be? For navigation purposes I would much prefer to not have the static map present in the local costmap. A temporary workaround could be to have a static layer pointing to a dummy map topic, so for all intents and purposes the static layer wouldn't actually be doing anything - but that doesn't solve the underlying issue. |
The video that you shared is 26 seconds long, but your voxel decay is set to 30 seconds, so maybe part of the box was outside of the camera frustum and hence kept for the full 30 seconds (without decay acceleration)? There's a tool to visualize the frustum if I remember correctly. |
@SteveMacenski although this ticket is ros1 it seems very similar to #187 don't you think? |
The obstacle stays in the local costmap indefinitely - I just tested it again to make sure, by waiting ~5min. |
Did you try the older version I suggested before the min points in voxel filter was added? |
Yes, same problem. |
My guess then it has something to do with the sizing. Since the static layer will set the size of the costmap by having content, when there's nothing behind it and we cleared the costmap grid then this function https://github.com/SteveMacenski/spatio_temporal_voxel_layer/blob/ros2/src/spatio_temporal_voxel_layer.cpp#L672-L691 wouldn't touch any cells to update the bounds to then update the appropriate costs. https://github.com/SteveMacenski/spatio_temporal_voxel_layer/blob/ros2/src/spatio_temporal_voxel_layer.cpp#L733-L755 we clear than mark, so if you had the parameters set so aggressively they instantly disappear, then the internal voxel grid is empty on clearing, then nothing new marks it because it instantly disappeared, and then when it comes time to update the bounds, there's nothing to update them with (and there's no static layer to set the reasonable update bounds). The fix I could see would be to Another fix would just be have some costmap layer below this of all FREE space just to size the costmap for updates - though a bit more hacky |
* fixes #199 * applied requested changes * renamed remaining updated_cells to cleared_cells * changed loop to use iterators * fixed point cloud density when marking * small semantic change * cleared points are no longer added to the costmap * removed duplicate code * break early from frustum clearing. reverted fix to marking lag * revert fix to marking lag
@siferati can you also submit one for the new |
Done. |
Patch has now been merged in all distributions. Thanks @siferati ! |
Edit: forgot to mention, I'm using ros melodic. STVL was installed by
sudo apt-get install ros-melodic-spatio-temporal-voxel-layer
Hello, I'm having a problem where the obstacles are cleared from the voxel layer but not from the local costmap. However, this only affects the local costmap, the global costmap works fine!
You can see here a short clip I recorded of it happening. The green lines you see once I give it a new nav goal are from the costmap_converter, proof that the local costmap was indeed not cleared and it's not just a visual bug.
Below are my costmap params:
The text was updated successfully, but these errors were encountered: