Comments (6)
Hi Martin,
This is an interesting issue.
One way to get some more voxels allocated near the surface of shallow returns is to simply increase the truncation distance of the TSDF from the default 2*voxel_size to something larger such as 5 or 10x. However, if no ray passes through the area your system is trying to plan in this won't solve your problem.
I would be hesitant to allow the ESDF to update unobserved voxels as this would allow for situations where the map is confident an area was obstacle free when in reality moving into this space could cause a collision. In our current work on planning in the voxblox ESDF for MAVs we overcome this problem by setting all unknown space in the TSDF to occupied before building an ESDF out of it. This ensures the system will never try to enter an area it has not explicitly observed to be safe and could also work in your application.
from voxblox.
Hi Zachary,
thanks for your help.
However, if no ray passes through the area your system is trying to plan in this won't solve your problem.
The sensor can actually look above the ramp, but since nothing is behind it, no rays are created that would mark the voxels as unoccupied.
setting all unknown space in the TSDF to occupied before building an ESDF out of it
Isn't that problematic in open spaces? For example if you don't have a ceiling, everything above the sensor height is unobserved and would then be occupied.
from voxblox.
It is a problem in open spaces. We get around this by making use of the freespace_pointcloud
topic which is activated by setting use_freespace_pointcloud
to true.
We then run our system with a modified stereo vision driver that outputs two separate pointclouds. The first pointcloud is the normal surface points. The second output is a pointcloud that gives an estimate of how far away a point in a certain direction can safely be assumed to be free see ethz-asl/image_undistort#18 for details. Also see #78
from voxblox.
Ok, that makes sense. The combination of free space pointclouds and setting unknown voxels to occupied should solve my problem.
How exactly do you set all unknown space in the TSDF to occupied? Do you have some kind of "work area" where you just allocate every voxel? Otherwise there is theoretically an unlimited amount of unknown voxels.
from voxblox.
Sorry for taking a while to get back to you. A quick way is to just set all the unknown voxels in allocated blocks to occupied, as this constrains it to the areas near observed space
from voxblox.
Ok, that should answer all my questions. Thanks for your thorough help.
from voxblox.
Related Issues (20)
- Start and stop mapping service
- How to convert to shape_msgs/Mesh?
- How to generate freespace pointcloud?
- build voxblox_ros error in ubuntu 20.04 / noetic HOT 1
- Performance (update speed)
- Catkin build error HOT 1
- Planning in confined space
- wrong in save_map
- libvoxblox_proto.so: undefined symbol
- Empty TSDF with projective tsdf integrator
- Is the reconstructed scene optimized when there is a loop closure?
- Proper way to query the created ESDF map?
- How can i use different dataset? (ex. ScanNet) HOT 1
- What is the truncation distance?
- Help running Voxblox on the Machine Hall dataset
- Possible memory alignment problem HOT 2
- Load TSDF map into Voxblox HOT 1
- Fast-lio & voxblox strange problem
- RGBD dataset can be downloaded HOT 1
- failed making grpc HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from voxblox.