Skip to content

[PV][fix] Fix some interface inconsistencies

Julia Sanchez requested to merge PV/fix/FixloopClosure into master

Goal

The loop closure interface was not user friendly enough and lead to bad pose graph estimations.

A bug was appearing when 2 loops were detected and the graph was optimized afterwards.

Changes

Interface

  • Fix and improve verbose outputs
  • Remove the default "no subsampling mode"
  • Force submaps to be built on previous frames
  • Correct and uniformize the visibility options
  • Remove validation threshold on best loop closure

Library

  • The loop closure transform is uniformized to be always relative in all code parts
  • A hint prior transform can be provided to LoopClosureRegistration function. This prior can come from LogStates, Offset and/OR Teaser
  • LoopClosureTransform is removed and a new transform member is added to LoopInfo (formerly LoopIndices) structure. This allows to store various LC transforms and to not override the value.

Results

external.png

teaser.png

Demo video

Checklist

  • Camel case everywhere except for ROS variables/parameters
  • Lower case for local variables and lambda functions
  • Upper case for members, methods and tool functions (in Utils)
  • Precise namespace when calling a function (or this->X or classe.X)
  • Align code (for multiline if and while, "&&" or "||" go in upper line to ensure alignement)
  • Check your spaces
    • between if, while, for and parenthesis
    • between operators and variables: e.g. a + b
    • after ","
  • Mind your commit titles/desc (plurals, he/she + "s", correct tags, title should begin by a verb...)
  • Function names should start with a verb, variable names should start with a name
  • Macros should be between {}
  • Do not use negative boolean (i.e. noJoe)
  • Check minimal size of the types (double -> float -> int -> uint)
  • Check const and ref in functions arguments
  • References should be written "type& name", not "type &name"
  • Update documentation
  • Add MR labels [ROS]/[ROS2]/[PV]
  • If ros/ros2, update task table here
  • Add a comment over each non trivial function in header files
  • Add a header to each new file
Edited by Julia Sanchez

Merge request reports