maplab icon indicating copy to clipboard operation
maplab copied to clipboard

Trajectory generate by ROVIOLI in Localization mode seems even worse than ROVIOLI in VIO mode

Open LeoKingBUAA opened this issue 6 years ago • 5 comments

Hi, all I want to compare the trajectory generated by ROVIOLI in Localization mode and in VIO mode. So I do the following steps:

  1. download dataset MH_04_difficult.bag
  2. run ROVIOLI in VIO mode using MH_04_difficult.bag and save trajectory in EuRoc format.
  3. use maplab_console Preparing a single-session map and generate a summary map for Localization mode.
  4. run ROVIOLI in Localization mode and save trajectory in EuRoc format.
  5. use evo to plot trajectory in VIO mode and in Localization mode. Following picture shows the result. default blue line is the trajectory in Localization mode green line is the trajectory in VIO mode dotted line is groundtruth it seems the trajectory even worse in Localization mode, so I want to ask what's the problem?

LeoKingBUAA avatar Jun 26 '18 12:06 LeoKingBUAA

Hi @LeoKingBUAA, thanks for your report, that indeed shouldn't happen. Few questions:

  • Did you follow this tutorial exactly?
  • Could you, instead of the tutorial above, call optvi, lc, optvi and not use relax and kfh at all?
  • Which version of the repo are you using? Overall, ROVIOLI in Localization mode should work better using the most recent release candidate branch, see https://github.com/ethz-asl/maplab/pull/55

Would be great if you could test those suggestions and report back if you see any improvement.

dymczykm avatar Jun 27 '18 09:06 dymczykm

Hi @dymczykm , I think I use the wrong localization data. I used vertices' position in VI-map as localization data before, but it's not the true localization results, actually. I found using flag --export_estimated_pose_to_csv can export the localization data in global coordinate. Comparing this data with the groundtruth the result seems better. image To get the result, I localize MH_04 dataset with the summary map which is generated by dataset MH_04. But in practical, it's impossible to use the same picture during mapping and localization. So, I generate a new summary map with datasets MH_01 to MH_03, and the localization result shows below. image The result seems not so good. I think the reason is little pose can be localized with map during the term, though the mapping environment and the localization environment are similar. image (red points are poses localized with summary map) So, I want to ask why just little pose can be localize by map? Is this an inherent problem of the feature point method? Or if there is a method to improve it ?

LeoKingBUAA avatar Jul 03 '18 06:07 LeoKingBUAA

@LeoKingBUAA Could you:

  • provide here or link the the ncamera.yaml file you are using,
  • when building the localization map, try out the commands I've linked above, and report back? This would help diagnosing the issue.

dymczykm avatar Jul 09 '18 09:07 dymczykm

Hi, @LeoKingBUAA I can't find the flag --export_estimated_pose_to_csv you mentioned,which command use the flag? I just ues the csv_export command to get the CSV data, and use the vertices' position in vertices.csv as the localization results. Is that wrong? Looking forward to your reply!

JWDu avatar Mar 09 '19 12:03 JWDu

Hi, I tried to execute Rovioli with localiztion like @LeoKingBUAA did - run MH1 when using summary map from the same MH1 rosbag as reference.

I got very bad results: image image

I run ROVIOLI as described on tutorials (create summary map and then run ROVIOLI with localization script) : rosrun rovioli tutorial_euroc_localization /home/amichay/maplab_ws/save_folder_MH1_with_optimization_for_loc_localization MH1_calibration /home/amichay/maplab_ws/dataset/MH_01_easy.bag

How can it be described? I think that it is correlated to camera parameters. I looked on EuroC camera yaml file and found different format (for example, the data value on MH1 camera yaml is matrix 4X4 and in ncamera-euroc is 1X4 )

amichayfeldman avatar Jun 21 '20 14:06 amichayfeldman