HKUST-Aerial-Robotics / FIESTA

Fast Incremental Euclidean Distance Fields for Online Motion Planning of Aerial Robots
MIT License
608 stars 130 forks source link

Comparison with Dense Surfel Mapping #13

Closed ArlenCHEN closed 4 years ago

ArlenCHEN commented 4 years ago

Dear authors @hlx1996 @USTfgaoaa ,

Thanks for your open-source code. Great work! I noticed in your TRR project, you use Dense Surfel Mapping(DSM) for global mapping while FIESTA for local mapping. After I separately test the two mapping modules, I found something interesting.

FIESTA has 3D probabilistic representation and ESDF, but seems has more error than DSM when VINS is used. See below pics for an illustration. The first picture is from FIESTA. Vins-mono is launched. The map with height color is from FIESTA, while the white pointcloud is from an RGBD camera (that you could think as a groundtruth pointcloud). The camera pose from VINS is good but there is an obvious discrepancy between the two pointclouds. The second pic is from DSM. From there you can see DSM does a really good job. bad_4 good_4

Also, it seems FIESTA does not integrate pose-graph from VINS side, leading to an accumulation of the mapping error, which may cause bad issues for map global consistency.

I am wondering if you guys have ever encountered those problems in your experiments.

Regarding to DSM, although it is more accurate, it seems DSM only has 3D deterministic surfel representation of the environment but no probabilistic property and ESDF available. So I am also wondering if you have plans to integrate the two mapping modules together to make a more robust, scalable, and accurate 3D mapping module.

Thanks!

USTfgaoaa commented 4 years ago

@ArlenCHEN

  1. Because of FIESTA's underlying structure, it can't support deformable wrapping to incorporate a global pose graph.
  2. I don't think FIESTA has such an "ERROR". You may check your own testing code. Since FIESTA and Dense Surfel Mapping are just mapping modules, their core algorithms are about how to fuse several observations into a unified map, how to reject outliers, how to generate the correct values (like ESDF or Surfels) you want to use, right? Apart from the above, they just project points according to the camera model, there are no differences. So if you find can't align the simulated map with the ground truth, I think probably it's because of intrinsic parameters of the camera or just some functional errors in your testing code. We have tested FIESTA on our drones many time and it successfully supports collision avoidance and onboard mapping.
  3. If you want a more direct mapping module to use directly, please go to Fast-Planner and use its map, which is just a probabilistic occupancy grid map with local ESDF batch generation.
USTfgaoaa commented 4 years ago

@ArlenCHEN Fast-Planner: https://github.com/HKUST-Aerial-Robotics/Fast-Planner

ArlenCHEN commented 4 years ago

@USTfgaoaa Thanks for your explanation. Very helpful! I will check my testing code.