[PV][feat] Initiate a toolbar with a preset manager dialog
Goal
Adds some basic UI capabilities for the SLAM to make the whole process more user-friendly.
Changes
Add a toolbar with icons:
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 aCity
). - 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).
-
Note : the presets are saved in local config folder (
-
WARNING : User Custom preset are overriding all properties. (compared to environment and model presets)
- 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
-
The next 3 buttons are respectively:
Initialization
,Add External Sensor
andOptimize 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 theApply
button for the Initialize button will callInit
and therefore init maps. -
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:
- 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