Closed amitfishy closed 6 years ago
So,
I was able to get a seemingly proper result by doing the following:
load --map_folder '/data/amit_data/maplab/floor_data/maps_created/cla_test'
load --map_folder '/data/amit_data/maplab/floor_data/maps_created/cla_full'
join_all_maps --target_map_key cla_merged
align_for_eloc //This takes 2c951998ffffffff0f00000000000000 as default because we loaded it first
eloc //This takes 2c951998ffffffff0f00000000000000 as default because we loaded it first
Output:
I0628 15:39:44.669945 17208 vi-localization-evaluator.cc:62] Recall: 0.24662
So from what I understand this recall is the % of frames that localized correctly between the query mission (the mission that gets set by default on running align_for_eloc
and eloc
) and the map that was created. Could someone please confirm this?
Please also have a look at my question regarding extracting further information from the bagfile frame identified by the query image.
Thanks
Hi @amitfishy,
I'll try to answer your questions one by one:
VisualNFrame
that is stored (as a pointer actually) inside the Vertex
.sbk
can be used with a -map_mission=
flag, e.g. sbk --map_mission=7d8bb3e8145b3c150d00000000000000
.eloc
, you can select the query mission using the same -map_mission
flag (see the code here).--benchmark_position_error_threshold
, by default it is 0.05m.Hope this helps.
Thank you for your response! Code reference was nice to have as well.
If you have the time could you please answer these as well?
align_for_eloc
or any other align functions (aam) which align a mission with the base frame, Do these use loop closures to put the different mission frames in the same co-ord frame? My confusion comes from the separate use of lc
which I understand from here, just merges the loop closures that were found during the alignment phase.@amitfishy
align_for_eloc
uses the loop closure engine, but only temporarily merges matching landmarks and then reverts the changes. We wanted to revert them to make sure eloc
works in a fair way, e.g. no landmarks are merged before the evaluation.align_for_eloc
are well aligned and you can do the following:
align_for_eloc
) pose of the keyframe expressed in the common frame for both missions,eloc
does it (it actually checks the pose error).Thanks for the information, it helps a lot.
Hello,
I've been trying to use the loop closure plugin (from
src/maplab/console-plugins/loop-closure-plugin/loop-closure-plugin.cc
) - particularly theevaluate_localization (eloc)
command.Following the cla data (floor f-j), I built a map following the guides mentioned and the calibration file from the data. What I would like to do is take data from the localization data (as query images frame by frame) and find out where they belong in the created map (I would like to get the frame data from the rosbag for the matched frame). I understand the matching is done in a 2D-3D way as mentioned in the paper, but is there a way to pin-point the data from query image to rosbag files (used for creating the map)?
Here are the steps I follow:
cla_floor_f_v2_for_localization
map just created in point 2.join_all_maps --target_map_key cla_merged
and thensbk
(side question, how do you select a non-default sbk?)eloc
So I'm unable to figure out how to set the query and the database properly wrt these missions. Also I know that
e6ce16bfffffffff0f00000000000000
refers to one of the floor runs here and the localization run is supposed to be2c951998ffffffff0f00000000000000
in which case I get a Recall of 0 at the end (I was able to set it assbk
by changing the order of the operations).Thank you for your time.