Skip to content

[PV][feat] Initiate a toolbar with a preset manager dialog

Timothée Couble requested to merge feat/addPresetToobar into master

Goal

Adds some basic UI capabilities for the SLAM to make the whole process more user-friendly.

Changes

Add a toolbar with icons: image
New buttons (from left to right):

  • Create the SLAM Filter on the current source (usually on a LidarReader)

  • Open a Preset dialog:

    • This dialog allows the user to fill the SLAM with standard presets for Environment and LiDAR models (e.g the user might want to use a Velodyne in a City).
    • The buttons to right can be used to share custom presets (load / save / delete).
      • Note : the presets are saved in local config folder (~/.config/Kitware/SlamPreset on linux).
    • WARNING : User Custom preset are overriding all properties. (compared to environment and model presets)
      image
  • The next 3 buttons are respectively: Initialization, Add External Sensor and Optimize Graph dialogs. They are just re-grouping some properties in dialog. A nice next improvement would be to add more logic to the dialog to help the user choose / modify the right option. Note that the Apply button for the Initialize button will call Init and therefore init maps.

    image image image

  • The last button can be used to reset all SLAM maps

This MR also adds a dialog from menu Help to show SLAM version and all associated libraries version: image

  • Documentation has been all rewritten.
  • Condition for initialization has been changed in vtkSlam.cxx to better target LidarView use.

A Demo Video with the new interface is available.

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