ros-noetic安装lio-sam
1. 创建工作空间
mkdir -p ~/lio-sam/src
cd ~/lio-sam/
2.下载功能包
cd ~/lio-sam/src
git clone https://mirror.ghproxy.com/https://github.com/TixiaoShan/LIO-SAM.git
3.编译依赖
参考链接
cd ~/lio-sam/srcgit clone https://mirror.ghproxy.com/https://github.com/borglab/gtsam.gitcd gtsammkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install
4.添加路径+安装依赖包(如果需要)
export CMAKE_PREFIX_PATH=/path/to/gtsam:$CMAKE_PREFIX_PATH
sudo apt-get update
sudo apt-get install ros-noetic-robot-localization
5. 编译工作空间
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro=noetic -y (报错可以忽略)catkin_make
6.配置ROS包
package.xml:<build_depend>gtsam</build_depend>
<exec_depend>gtsam</exec_depend>CMakeLists.txt:find_package(GTSAM REQUIRED)
include_directories(${GTSAM_INCLUDE_DIRS})
link_directories(${GTSAM_LIBRARY_DIRS})
7.报错参考
7.1 指针问题
error: conversion from ‘std::shared_ptr<gtsam::PreintegrationParams>’ to non-scalar type ‘boost::shared_ptr<gtsam::PreintegrationParams>’ requested 214 | PreintegrationParams> p = gtsam::PreintegrationParams::MakeSharedU(imuGravity);
第imuPreintegration第214行改为:
std::shared_ptr<gtsam::PreintegrationParams> std_ptr = gtsam::PreintegrationParams::MakeSharedU(imuGravity);
boost::shared_ptr<gtsam::PreintegrationParams> boost_ptr(std_ptr.get(), [std_ptr](gtsam::PreintegrationParams*){});
7.2 序列化问题
error: ‘class std::unordered_map<unsigned int, std::vector<unsigned int> >’ has no member named ‘serialize’ 33 | type.serialize(ar); | ~~~~~^~~~~~~~~
flann error-CSDN博客及其评论
7.3 版本问题
error: static assertion failed: Error: GTSAM was built against a different version of Eigen 75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION && |
static assertion failed: Error: GTSAM was built against a different version of Eigen问题修改-CSDN博客及其评论