ethz-asl / voxblox

A library for flexible voxel-based mapping, mainly focusing on truncated and Euclidean signed distance fields.
BSD 3-Clause "New" or "Revised" License
1.29k stars 350 forks source link

Planning in confined space #398

Open danielvennestrom opened 2 years ago

danielvennestrom commented 2 years ago

Hi, I am using the voxblox rrt planner included in this package as an example for my master's thesis and am unfortunately running into an issue with the maps I am using for testing.

I am using a simplified gazebo world generated from models included in aws-robomaker-bookstore-world (https://github.com/aws-robotics/aws-robomaker-bookstore-world).

The first thing I attempted was to generate a tsdf map from the gazebo world using voxblox_ground_truth (https://github.com/ethz-asl/voxblox_ground_truth), however this resulted in all of the space being "occupied" and not available for planning. I found an issue about this on voxblox_ground_truth's github and it mentioned using floodfill = true. It was unclear if this on was a feature implemented for "PLY to tsdf", or was a feature for "gazebo to esdf" as well. I attempted to add the parameter to the "gazebo to tsdf" launch demo and modified the path of the world to be the bookstore. This gave the same result.

Next I wanted to attempt to use the "PLY to tsdf" feature with floodfill enabled. So i tried to convert the 3D model (.fbx), of a ship hull I am also going to test, into a PLY mesh using Blender. This resulted in an error. I suspect it was because the PLY mesh generated from Blender is not the same as the format used by voxblox_ground_truth. Tried changing the PLY mesh export settings in Blender, but it did not seem like it could output the correct format.

I ended up using the esdf map generated from an exploratory planner using voxblox, GBplanner. This generated a map with "plannable" space, however the conditions on start and goal pose required for Voxblox RRT planner to start planning is causing the very confined space to be almost entirely occupied. My understand of the conditions: Certain proximity to the "ground" in start position, and a certain radius (larger than the robot) of free space around the robot. Where would I be able to adjust these conditions?

Finally, the map i generated using gbplanner may be noisy, which may contribute to the issue at hand.

Any help would be appreciated. Thanks in advance.