MIT-SPARK / Kimera-VIO

Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
BSD 2-Clause "Simplified" License
1.56k stars 418 forks source link

Kimera VIO Mono on custom data #160

Closed Alex-Dee closed 12 months ago

Alex-Dee commented 3 years ago

Hi, I have successfully build and run Kimera-VIO Mono Pipeline on the EuRoC dataset and the results look very promising. However when I switch to either a custom or other scientific data set such as UMA-VI the algorithm diverges and the estimated poses reach escape velocity quickly (see attached image). Does anybody else experience these kind of problems? It seems to me that VIO is super parameter sensitive and not robust at all. Has anybody successfully processed custom data and may be able to share some hints on how to proceed? That would be tremendously helpful. Bildschirmfoto vom 2021-04-27 11-19-44

Edit: In fact it does not even seem to work on the machine hall sequences of the original euroc dataset.

mateosss commented 3 years ago

I opened a similar issue #170. Were you able to achieve any improvements?

Alex-Dee commented 3 years ago

I opened a similar issue #170. Were you able to achieve any improvements?

Sadly I was not able to identify the problem even thorugh extensive debugging. Running the same data through ORB-SLAM3 went nicely and without any problems. So I am pretty sure it's a problem either with the code or my specific build environment.

zgxsin commented 2 years ago

I had the same issue. I checked the performance of Kimera on Euro dataset MH05 using both stereo and mono setup without any modifications. I got mean APE error of 0.17 and 0.95 respectively. But when i used Kimera on my customer datasets, the result didn't make any sense.

marcusabate commented 2 years ago

Note that our paper results with Euroc were always in the stereo configuration, mono is relatively new and untested. However, we have found that applying the change I mentioned in #170 improves performance significantly especially if your custom dataset is not time-synchronized between imu and camera.

For Euroc, we've found that mono performs worse than stereo but not by too much. There is a separate parameters folder for the Mono case, generally has to be looser to work properly.