LIO-SAM ouster

1 ROS tested with Melodic

sudo apt-get install -y ros-melodic-navigation
sudo apt-get install -y ros-melodic-robot-localization
sudo apt-get install -y ros-melodic-robot-state-publisher

2 gtsam (Georgia Tech Smoothing and Mapping library)

wget -O ~/Downloads/gtsam.zip https://ghproxy.com/https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

or

sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev

3 下载和编译LIO-SAM

mkdir -p catkin_ws/src
cd ~/catkin_ws/src
git clone https://ghproxy.com/https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

Error: GTSAM was built against a different version of Eigen。
这个问题是GTSAM自带的eigen库和之前安装的eigen库的版本不同导致的。
解决办法:
修改gtsam下的CMakeLists.txt文件中的内容,在if(GTSAM_USE_SYSTEM_EIGEN)前面加上set(GTSAM_USE_SYSTEM_EIGEN ON),使得gtsam使用自己安装的eigen而不是它自带的eigen。然后重新编译gtsam,之后再编译LIO-SAM,问题解决。

运行LIO-SAM

roslaunch lio_sam run.launch
rosbag play park.bag

在这里插入图片描述
4下载和编译ouster_example
Ouster激光雷达的驱动程序安装过程

https://ouster.atlassian.net/wiki/spaces/SUPPORT/pages/928120883/Ouster+ROS
sudo apt install build-essential cmake libglfw3-dev libglew-dev libeigen3-dev   libjsoncpp-dev libtclap-dev
sudo apt install ros-melodic-ros-core ros-melodic-pcl-ros ros-melodic-tf2-geometry-msgs ros-melodic-rviz
cd ~/catkin_ws/src
git clone https://github.com/ouster-lidar/ouster_example.git
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release

运行ouster

roslaunch ouster_ros ouster.launch

5 报错实例

[lio_sam_imuPreintegration-2] process has died [pid 18568, exit code 127, cmd /home/uav/MappingSrc/devel/lib/lio_sam/lio_sam_imuPreintegration __name:=lio_sam_imuPreintegration __log:=/home/uav/.ros/log/a65082e4-a798-11ec-b3d5-02428e571c30/lio_sam_imuPreintegration-2.log].

在这里插入图片描述

实际问题是库文件libmetis.so 的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。在通过运行命令sudo make install -j8安装库gtsam 时,文件libmetis.so安装在/usr/local/lib/的默认位置,但是当我们启动 ros 工作区时,运行时库查看位置/opt/ros/melodic/库/

cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/melodic/lib/

再次运行,一切正常。

运行时报错 [lio_sam_mapOptmization-5] process has died [pid 260348, exit code -11

解决: gtsam编译时带上这个参数,cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
  1. 运行时报错 error while loading shared libraries: libmetis-gtsam.so: cannot open shared object file: No such file or directory
解决: sudo ln -s /usr/local/lib/libmetis-gtsam.so /usr/lib/libmetis-gtsam.so
  1. 保存地图数据

savePCDDirectory: “/Downloads/LOAM/”
注意!!代码会删除这个路径重新创建,不要用已有的路径哦,最好改一下代码把删除路径的逻辑去掉。

修改_TIMEOUT_SIGINT值,默认15s,改为60s。

sudo gedit /opt/ros/noetic/lib/python3/dist-packages/roslaunch/nodeprocess.py
4. Rviz展示

如果点云的点很大,窗口缩小一下试试。

出现报错 boost was not found需要重新安装boost

CMake Error at /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:48 (message):
  common is required but boost was not found
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:687 (pcl_report_not_found)
  /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:850 (find_external_library)
LIO-SAM/CMakeLists.txt:25 (find_package)

这是因为系统中存在多个boost版本引起冲突造成的
在安装系统时自动在x86_64-linux-gun中安装了boost
在安装ros系统时又在opt/ros/melodic中安装了boost
在这里插入图片描述
查看boost版本

dpkg -S /usr/include/boost/version.hpp

常规版操作
在LIO-SAM/CMakeLists.txt文件中加上这一句话,去明确引导到一个系统就可以解决问题:

set(Boost_LIBRARY_DIR /usr/lib/x86_64-linux-gnu/)

然后删除build和devel文件夹,重新编译就没问题了

♥♥♥升级版操作
解决boost多版本问题
在这里插入图片描述
默认使用的时1.65版本的boost,删除其余版本删除库和头文件

 sudo rm -f /opt/ros/melodic/lib/libboost_*

############################################################
卸载旧版本Boost库并安装新版本
查看本机现boost版本

dpkg -S /usr/include/boost/version.hpp

删除/usr/include/boost文件夹,删除/usr/local/lib中和boost有关的文件

sudo rm -rf /usr/include/boost
sudo rm -rf /usr/lib/x86_64-linux-gnu/libboost*

到此boost 1.65.1就已经成功被卸载了
安装
到boost官网下载1.65.1(或其他版本)的tar.gz文件
https://www.boost.org/users/history/
解压安装

tar -xzvf boost_1_65_0.tar.gz
sudo ./bootstrap.sh

在执行下面的命令,这样头文件就被默认安装在/usr/local/include头文件下,库文件就被默认安装在/usr/local/lib下

sudo ./b2 install

设置环境变量sudo gedit /etc/profile

#在文件末尾添加
export CPLUS_INCLUDE_PATH=/usr/local/include/boost:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞同学

随时为您服务

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值