- 03 Nov, 2020 3 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.
-
Nicolas Cadart authored
[fix] Correctly extract points from rolling grid using bounds See merge request !58
-
- 28 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
-
- 26 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
[fix] Use WORLD coordinates input bounding box to extract points from RollingGrid See merge request !55
-
- 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.
-
- 21 Oct, 2020 1 commit
-
-
Nicolas Cadart authored
Add color to verbose display See merge request !53
-
- 15 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
From Windows 10, ANSI color codes are natively available. This allows us to simplify the printing helpers.
-
Nicolas Cadart authored
-
- 14 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
-
Nicolas Cadart authored
-
- 13 Oct, 2020 2 commits
-
-
Nicolas Cadart authored
Check that time is roughly increasing to perform frame undistortion using previous motion See merge request !52
-
Nicolas Cadart authored
[fix] Check that time scale is roughly increasing to perform frame undistortion using previous motion If points timestamps were not excatly computed, it could happen that FrameDuration was bigger than NewFrameTime - PreviousFrameTime. In that case, approximated undistortion using previous motion was not performed as it detected that time wasn't strictly increasing. Now, we only check that time is roughly increasing and that FrameDuration is roughly the same as the current and previous timestamps difference.
-
- 12 Oct, 2020 3 commits
-
-
Nicolas Cadart authored
[fix] Add missing std before ios in PointCloudStorage.h See merge request !42
-
Nicolas Cadart authored
Fix Maps update See merge request !50
-
Nicolas Cadart authored
Replace max variance error by max position and orientation errors See merge request !47
-
- 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 3 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.
-
Nicolas Cadart authored
As NbrFrameProcessed is incremented into SLAM algorithm, its value in vtkSlam is 1 after a reset. By considering NbrFrameProcessed - 1, we update maps display right after the 1st frame is received, and we reset properly maps display after reset button is clicked.
-
- 28 Sep, 2020 6 commits
-
-
Nicolas Cadart authored
Ignore Ego-Motion extrapolation and Localization results if errors occurs See merge request !49
-
Nicolas Cadart authored
[PV] Add verbose timings and perform less maps updates See merge request !48
-
Nicolas Cadart authored
-
Nicolas Cadart authored
This enables refreshing maps display when we hit Reset button, even if maps update step has not been reached.
-
Nicolas Cadart authored
In case too few keypoints have been extracted, we reset current state to previous one. This avoids unstability in case of bad optimization at one step.
-
Nicolas Cadart authored
If frames timestamps are incorrect and are not strictly increasing, using them to perform motion interpolation or extrapolation will lead to wrong behavior. In this case, we just ignore Ego-Motion extrapolation and Undistortion.
-
- 25 Sep, 2020 2 commits
-
-
Nicolas Cadart authored
Conversions from PCL to VTK formats are slow. Keypoints maps can rapidly grow heavy. At some point, most of the SLAM filter duration is spent in the maps output conversions ! To avoid that, this commit enables updating SLAM maps only 1 frame over MapsUpdateStep frames.
-
Nicolas Cadart authored
-
- 17 Sep, 2020 1 commit
-
-
Nicolas Cadart authored
Maximum variance is not meaningful. Position and orientation errors (in meters and degrees) are easier to understand. Display these errors and the direction of error.
-
- 11 Sep, 2020 2 commits
-
-
Nicolas Cadart authored
[ROS] Publish SLAM-estimated speed in GPS-like message See merge request !46
-
Nicolas Cadart authored
-
- 08 Sep, 2020 3 commits
-
-
Nicolas Cadart authored
[ROS] Publish SLAM pose as `gps_common/GPSFix` msg instead of `sensor_msgs/NavSatFix` See merge request !45
-
Nicolas Cadart authored
-
Nicolas Cadart authored
sensor_msgs/NavSatFix only gives position. gps_common/GPSFix adds orientation (and speed, even if unused).
-
- 01 Sep, 2020 1 commit
-
-
Nicolas Cadart authored
Fix ego motion extrapolation when using PGO See merge request !44
-
- 31 Aug, 2020 3 commits
-
-
Nicolas Cadart authored
Fix transformation matrix multiplication order. Use modern tf2 server to get transform. Reset current keypoints and previous pose to skip next ego-motion step due to discontinuity.
-
Nicolas Cadart authored
When using Pose Graph Optimization, last Tworld is beeing updated after optimization succeded. However, PreviousTWorld was not updated. When extrapolating motion from PreviousTWorld to TWorld, this lead to very important motion. This resulted in a wrong big jump for next TWorld estimation. This commit also updates PreviousTWorld after PGO to repair Ego Motion extrapolation.
-
Nicolas Cadart authored
Misc bug fixes and code refactoring in ICP functions See merge request !43
-