- 03 Nov, 2020 2 commits
-
-
Nicolas Cadart authored
Get the subgrid containing all non-empty voxels, and convolve only this part. This allows saving a lot of time.
-
Nicolas Cadart authored
Resolves #11. Extract less keypoints from maps for faster KD-trees building and NN queries. First, we check in which rolling grid's voxels lie each current frame keypoint. Then we extract map keypoints from these cells and their neighbors. The "voting dilatation" is done by convolving the voxels "to take". This implementation uses unsupported Eigen Tensor module.
-
- 28 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
-
- 23 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
Before, user had to specify relative bounding box inb BASE coordinates. This same relative bounding box was used to extract local keypoints from map, and to roll it later. But this bounding box was in relative coordinates, and was not correctly rotated to WORLD coordinates. Therefore, some cells were incorrectly extracted, and others were missing. Now, user can directly specify a WORLD bounding box to extract keypoints. Also, the Add() method can automatically call the Roll() method by computing the bounding box of the new points to add. By fixing previous wrong extraction and rolling, this improves SLAM precision as more keypoints can be matched.
-
- 14 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
-
Nicolas Cadart authored
-
- 08 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
-
Nicolas Cadart authored
Before this commit, if the new frame does not fit at all in all directions (if min point and max point are out of the grid), the grid would firstly roll to include the min point, then roll to include the max point. This behavior resulted in always discarding the min point to the benefit of the max one. Now, if the new frame does not fit into grid, the grid is rolled by the mean of the offsets. This allows to properly run SLAM when using smaller grids (e.g. indoor).
-
- 06 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
-
- 05 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
All points are extracted, then grid/position/resolution is resized/updated, and then the points are added back. This ensures all previously mapped points lie in the right voxel after modification.
-
Nicolas Cadart authored
If we change VoxelResolution or RollingGridSize during execution, some weird behavior may happen by using voxels indices. Using absolute positions allow to be independent from these conversions.
-
- 17 Jun, 2020 1 commit
-
-
Nicolas Cadart authored
`std::endl` not only adds a new line but also flushes output, resulting in bad printing performance issues if called frequently. When compiled, `\n` is replaced by the compiler to the corresponding OS-dependent new line character. Source : https://stackoverflow.com/questions/213907/c-stdendl-vs-n
-
- 22 Apr, 2020 1 commit
-
-
Nicolas Cadart authored
Add LICENSE.txt (Apache 2.0). Add license header to files where it was missing. Update and extend copyright date to 2020. Add copyright to Kitware SAS. Remove personnal email addresses.
-
- 13 Mar, 2020 1 commit
-
-
Nicolas Cadart authored
Rename slamlib library to LidarSlam. Install header files to include/LidarSlam directory. Change repo hierarchy by splitting slam_lib into src and include/LidarSlam directories. Use add_definitions() instead of add_compile_definitions() for CMake < 3.12 compatibility.
-
- 26 Feb, 2020 1 commit
-
-
Nicolas Cadart authored
-
- 19 Feb, 2020 1 commit
-
-
Nicolas Cadart authored
-
- 14 Jan, 2020 1 commit
-
-
Nicolas Cadart authored
Write warnings and erros to std::cerr instead of std::cout. Avoid using '\n' symbol, prefer 'std::endl'.
-
- 10 Jan, 2020 1 commit
-
-
Nicolas Cadart authored
Add RollingGrid::Reset() method to clear maps and reset voxel grid parameters, and improve Slam::Reset() to reset only SLAM internal state. RollingGrid::Reset() clears all points from VoxelGrid, but resets also voxel grid position and cropbox parameters. It increases readibility, and improves maps clearing by not deallocating memory when possible. Slam::Reset() has been split to be used to reset SLAM internal state (and log history). Memory allocation is done only in constructor.
-
- 17 Dec, 2019 1 commit
-
-
Nicolas Cadart authored
Even if it has more parameters (4 x 4 matrix) insted of 6 scalars, it leads to much more cleaner code, a little faster as no conversions to homogeneous matrix are needed, and much more stable as no euler angles are used, avoiding conventions/representations/singularities.
-
- 13 Dec, 2019 7 commits
-
-
Nicolas Cadart authored
-
Nicolas Cadart authored
Improve RollinGrid : move VoxelGrid only when necessary so that current frame can entirely fit in rolled map.
-
Nicolas Cadart authored
Improve RollingGrid keypoints extraction using min and max range in each direction instead of global max radius. The keypoints extractor now computes also the min and max keypoints coordinates. In RollingGrid, PointCloudMaxRange is replaced by these MinPoint and MaxPoint coordinates. This allows to extract keypoints from a smaller region, resulting in faster keypoints extraction and faster Mapping ICP step since less points are considered.
-
Nicolas Cadart authored
-
Nicolas Cadart authored
-
Nicolas Cadart authored
Major refactoring of RollingGrid to clean implementation, add doc and use more relevant attributes and methods names. Improve RollingGrid initialization by allocating memory in constructor to avoid a slow 1sst frame processing. Add RollingGrid::Clear method. Avoid resetting whole maps memory in PGO.
-
Nicolas Cadart authored
Add files RollingGrid.h and RollingGrid.cxx to define the Rolling voxel grid used by SLAM. Clean imports.
-