44Application: ``icp-log-viewer ``
55=====================================
66
7- Debug ICP pipelines as never before!
7+ ``icp-log-viewer `` is an interactive GUI tool to inspect and debug ICP (Iterative Closest Point)
8+ registration sessions stored as ``*.icplog `` files.
89
910.. raw :: html
1011
@@ -18,30 +19,48 @@ Debug ICP pipelines as never before!
1819How to launch
1920------------------
2021
21- Once mp2p_icp is installed, move to the directory where your `*.icplog ` files have been stored and run:
22+ Once mp2p_icp is installed, move to the directory where your `` *.icplog ` ` files have been stored and run:
2223
2324.. code-block :: bash
2425
2526 icp-log-viewer
2627
28+ You can also point it directly at a single file or a specific directory:
29+
30+ .. code-block :: bash
31+
32+ # Load all *.icplog files in a directory
33+ icp-log-viewer -d /path/to/logs/
34+
35+ # Load a single file
36+ icp-log-viewer -f /path/to/log.icplog
37+
38+ # Only load files where the ICP quality is >= 0.5 (50%)
39+ icp-log-viewer -d /path/to/logs/ --min-quality 0.5
40+
2741
2842 .. dropdown :: Complete command line argument help
2943
3044 .. code-block :: bash
3145
3246 USAGE:
3347
34- icp-log-viewer [--autoplay-period < period [seconds]> ] [-l < foobar.so > ]
35- [-f < log.icplog> ] [-d < .> ] [-e < icplog> ] [-- ]
36- [--version] [-h]
48+ icp-log-viewer [--autoplay-period < period [seconds]> ] [-q < quality [0,1] > ]
49+ [-l < foobar.so > ] [- f < log.icplog> ] [-d < .> ] [-e < icplog> ]
50+ [--] [-- version] [-h]
3751
3852
39- Where:
53+ Where:
4054
4155 --autoplay-period < period [seconds]>
4256 The period (in seconds) between timestamps to load and show in
4357 autoplay mode.
4458
59+ -q < quality [0,1]> , --min-quality < quality [0,1]>
60+ Minimum ICP quality (range [0,1], i.e. 0%-100%) to load a log file.
61+ Files whose ICP result quality is below this threshold are skipped.
62+ This is useful to focus inspection on well-converged ICP results.
63+
4564 -l < foobar.so> , --load-plugins < foobar.so>
4665 One or more (comma separated) * .so files to load as plugins
4766
@@ -52,7 +71,7 @@ Once mp2p_icp is installed, move to the directory where your `*.icplog` files ha
5271 Directory in which to search for * .icplog files.
5372
5473 -e < icplog> , --file-extension < icplog>
55- Filename extension to look for. Default is ` icplog`
74+ Filename extension to look for. Default is ` ` icplog` ` .
5675
5776 --, --ignore_rest
5877 Ignores the rest of the labeled arguments following this flag.
@@ -67,4 +86,49 @@ Once mp2p_icp is installed, move to the directory where your `*.icplog` files ha
6786 GUI and feature explanation
6887-------------------------------
6988
70- Write me!
89+ The viewer window is divided into a left control panel and a main 3D viewport.
90+
91+ **Log selector **
92+
93+ A slider at the top of the panel lets you step through all loaded ``*.icplog `` entries
94+ (filtered by ``--min-quality `` if requested at launch). Use the **Back ** / **Forward ** buttons
95+ for single-step navigation, or enable **Autoplay ** to advance automatically at the rate set by
96+ ``--autoplay-period ``.
97+
98+ **3D viewport **
99+
100+ The main 3D view shows the *global * map and the *local * point cloud registered against it.
101+ The initial-guess pose and the final ICP pose can be toggled independently.
102+
103+ **ICP statistics panel **
104+
105+ Numerical outputs shown for each selected log entry:
106+
107+ - **Quality ** — the ICP quality score in [0, 1] produced by the configured
108+ ``QualityEvaluator `` (e.g. ``QualityEvaluator_PairedRatio ``).
109+ - **Log pose ** — the final estimated SE(3) pose of the local map.
110+ - **Initial guess ** — the pose used to seed the ICP iteration.
111+ - **Init→Final ** — the correction applied by ICP on top of the initial guess.
112+ - **Covariance / condition number ** — uncertainty of the result.
113+ - **Pairings ** — number of point correspondences in the last ICP iteration.
114+
115+ **Pairings visualisation **
116+
117+ Enable **Show pairings ** to draw the point correspondences found at the last ICP
118+ iteration. Individual pairing types (point-to-point, point-to-plane, point-to-line,
119+ covariance-to-covariance) can be toggled independently.
120+
121+ **Filtering by quality at load time **
122+
123+ When a directory contains many log files (e.g. from a full SLAM session) it is often
124+ useful to inspect only the low-quality registrations that may have caused drift. Use
125+ ``--min-quality `` to restrict the loaded set:
126+
127+ .. code-block :: bash
128+
129+ # Inspect only high-quality (≥ 80 %) registrations
130+ icp-log-viewer -d logs/ --min-quality 0.8
131+
132+ # Inspect only low-quality (< 20 %) registrations — invert by running with 0
133+ # and then sorting/filtering externally, or set a low threshold and browse manually
134+ icp-log-viewer -d logs/ --min-quality 0.0
0 commit comments