You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm looking into OctoMap to create a live map from LiDAR data. My current test consist of creating a OctoTree from a 650'000-points pointcloud. The pointcloud represent an outdoor space that can be contained in a bounding box of 80m x 45m x 15m.
Creating the OctoTree takes a non-negligible amount of time depending on the resolution.
Around 40s at a 0.03m resolution
Less than a second at a 1m resolution
It seems to be a bit longer than the data reported in the paper concerning the Uni Freiburg Campus map which has similar dimension.
My concerns arise with subsequent update where we add a new pointcloud to the map. Adding 10'000 new points to the map takes around 1s which mean an update time of around 0.1ms per point. This is obviously not sufficient for real-time use with a LiDAR device which usually output > 200'000 points/s.
I looked at the parralelism and as in #243, I did not get a significant speedup. I'll keep an eye on #257 in the following days.
My project reside around a robot which doesn't move a lot. I was therefore contemplating using different resolution for different part of the map. For example, the immediate 10m sphere around my robot could have a resolution of 0.01m while the space further than 30m could have a lower (e.g.g 0.5m) resolution.
If I understand the website correctly, OctoMap should be able to support this.
The map is multi-resolution so that, for instance, a high-level planner is able to use a coarse map, while a local planner may operate using a fine resolution.
I however didn't find anywhere in the code or documentation that described how I could assign a different max_depth or resolution to different part of the map.
I tried to manually expand nodes to get a lower resolution but didn't manage to make it works. Either the node was a tree leaf and therefore the expansion was no possible or the whole graph took the smaller resolution.
Can OctoMap handle my use-case? If yes, pointing to some documentation explaining how it could be done would be greatly appreciated!
Thanks anyway for the great open-source software!
The text was updated successfully, but these errors were encountered:
vwvw
changed the title
Real-time performance for LiDAR use
Real-time performance for LiDAR use and multiresolution map
Jan 16, 2020
I however didn't find anywhere in the code or documentation that described how I could assign a different max_depth or resolution to different part of the map.
That multi-resolution property is only available during query-time, so you can e.g. limit the maximum depth of the iterators.
There's no multi-resolution property during creation time implemented right now, though it should be possible to add. You could also think of simply maintaining different OcTrees in parallel, with different resolutions and maximum ranges (bonus: they can be safely parallelized).
With large point clouds like that you can probably expect the biggest gain from sub-sampling the input clouds, e.g. with a voxel grid filter.
Great! We finally also though of handling multiple Octree separately! It comes with the challenge of handling the resolution change when the robot is moving but otherwise fulfill our expectation.
I'm looking into OctoMap to create a live map from LiDAR data. My current test consist of creating a OctoTree from a 650'000-points pointcloud. The pointcloud represent an outdoor space that can be contained in a bounding box of 80m x 45m x 15m.
Creating the OctoTree takes a non-negligible amount of time depending on the resolution.
It seems to be a bit longer than the data reported in the paper concerning the Uni Freiburg Campus map which has similar dimension.
My concerns arise with subsequent update where we add a new pointcloud to the map. Adding 10'000 new points to the map takes around 1s which mean an update time of around 0.1ms per point. This is obviously not sufficient for real-time use with a LiDAR device which usually output > 200'000 points/s.
I looked at the parralelism and as in #243, I did not get a significant speedup. I'll keep an eye on #257 in the following days.
My project reside around a robot which doesn't move a lot. I was therefore contemplating using different resolution for different part of the map. For example, the immediate 10m sphere around my robot could have a resolution of 0.01m while the space further than 30m could have a lower (e.g.g 0.5m) resolution.
If I understand the website correctly, OctoMap should be able to support this.
I however didn't find anywhere in the code or documentation that described how I could assign a different
max_depth
or resolution to different part of the map.I tried to manually expand nodes to get a lower resolution but didn't manage to make it works. Either the node was a tree leaf and therefore the expansion was no possible or the whole graph took the smaller resolution.
Can OctoMap handle my use-case? If yes, pointing to some documentation explaining how it could be done would be greatly appreciated!
Thanks anyway for the great open-source software!
The text was updated successfully, but these errors were encountered: