Designed for easy modifying via modular and easy to understand code. Relying upon HKU-Mars's IKFoM and ikd-Tree open-source libraries.
- Find the compensation bug (big deltas underdeliver)
- Find mapping offline bug (probably related to compensation's)
- Initialize IMU measurements
- Downsample matches (to avoid overfitting)
- Improve computation cost
- Check if need to add point in map
-
Check quality vs. other SOTA algorithms
-
KITTI (City/Residential/Road) - No problems in 29/41 recordings.
-
Descriptions of problematic recordings:
- Feature-less context (7)
- High frequencies (6)
- Non-static beggining (6)
- Other vehicles (2)
-
-
(Find more datasets)
-
Compare with other SOTA algorithms
-
- Interpolation and smoothing of states when mapping offline
- Erase unused (potentially dangerous) points in the map
- Add degeneracy detection and correction
- Try to add a module for removing dynamic objects such as people or vehicles
When cloning the repository, we also need to clone the IKFoM and ikd-Tree submodules. Hence we will use the --recurse-submodules
tag.
git clone --recurse-submodules https://github.com/Huguet57/LIMO-Velo.git
We either can do catkin_make
or catkin build
to compile the code. By default it will compile it optimized already
To run LIMO-Velo, we can run the launch file roslaunch limovelo test.launch
if we want a visualization or roslaunch limovelo run.launch
if we want it without.
An additional launch file roslaunch limovelo debug.launch
is added that uses Valgrind as a analysing tool to check for leaks and offers detailed anaylsis of program crashes.
To adapt LIMO-Velo to our own hardware infrastructure, a YAML file config/params.yaml
is available and we need to change it to our own topic names and sensor specs.
TODO - This section is intended to explain how to modify the LiDAR driver to increase its frequency by publishing parts of the pointcloud instead of waiting for all of it.