下载
gtsam_points
或者私信
简单翻译
这是一个基于GTSAM框架开发的点云SLAM因子和优化器集合,主要用于基于距离的SLAM系统。
主要功能模块
扫描匹配因子
1.IntegratedICPFactor & IntegratedPointToPlaneICPFactor
传统点对点和点对面ICP算法
2.IntegratedGICPFactor
基于分布到分布距离的广义ICP
3.IntegratedVGICPFactor
基于体素数据关联和多分布对应的VGICP
4.IntegratedVGICPFactorGPU
VGICP的GPU实现(需启用-DBUILD_WITH_CUDA=ON)
5.IntegratedLOAMFactor
结合点对面和点对边距离的匹配代价因子
彩色扫描匹配因子
1.IntegratedColorConsistencyFactor
光度ICP误差
2.IntegratedColoredGICPFactor
光度ICP误差+GICP几何误差
连续时间ICP因子
1.IntegratedCT_ICPFactor
连续时间ICP因子
2.IntegratedCT_GICPFactor
结合GICP D2D匹配代价的连续时间ICP
光束法平差因子
1.PlaneEVMFactor和EdgeEVMFactor
基于特征值最小化的光束法平差因子
2.LsqBundleAdjustmentFactor
基于EVM和EF最优条件满足的光束法平差因子
GPU优化器
所有优化器均派生自GTSAM实现:
LevenbergMarquardtOptimizerExt
ISAM2Ext
IncrementalFixedLagSmootherExt
最近邻搜索
1.KdTree
并行树构建的KdTree(基于nanoflann)
2.IncrementalVoxelMap
增量体素最近邻搜索(iVox)
3.IncrementalCovarianceVoxelMap
带在线法线和协方差估计的增量体素地图
4.FastOccupancyGrid
用于高效点云重叠估计的二进制占据栅格
安装方式
gtsam
git clone https://github.com/borglab/gtsam
cd gtsam
git checkout 4.3a0
mkdir build && cd build
cmake .. \
-DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
-DGTSAM_BUILD_TESTS=OFF \
-DGTSAM_WITH_TBB=OFF \
-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF
make -j$(nproc)
sudo make install
[optional] iridescence
This is required for only demo programs
sudo apt install -y libglm-dev libglfw3-dev libpng-dev
git clone https://github.com/koide3/iridescence --recursive
mkdir iridescence/build && cd iridescence/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
编译 gtsam_points
git clone https://github.com/koide3/gtsam_points
mkdir gtsam_points/build && cd gtsam_points/build
cmake .. -DCMAKE_BUILD_TYPE=Release
# Optional cmake arguments
# cmake .. \
# -DBUILD_DEMO=OFF \ # Set ON to build demo programs
# -DBUILD_TESTS=OFF \ # Set ON to build unit tests
# -DBUILD_TOOLS=OFF \ # Set ON to build tools
# -DBUILD_WITH_TBB=OFF \ # Set ON to enable TBB
# -DBUILD_WITH_OPENMP=OFF \ # Set ON to enable OpenMP
# -DBUILD_WITH_CUDA=OFF \ # Set ON to enable CUDA support
# -DBUILD_WITH_CUDA_MULTIARCH=OFF \ # Set ON to enable multi-arch CUDA support
# -DCMAKE_CUDA_ARCHITECTURES=89 \ # If not specified, "native" architecture is used
# -DBUILD_WITH_MARCH_NATIVE=OFF # Set ON to enable -march=native (recommended to keep it OFF)
make -j$(nproc)
sudo make install
测试
cd gtsam_points
./build/demo_matching_cost_factors
./build/demo_bundle_adjustment
./build/demo_continuous_time
./build/demo_continuous_trajectory
./build/demo_colored_registration