ubuntu 20.04 ros1 noetic环境复现 lego-loam 过程出现 mapOptmization-7] process has died 问题解决(个人经验)
复现lego-loam时,使用github 官方 bag文件。报错图片如下:
具体报错如下:
[mapOptmization-7] process has died [pid 3677, exit code -11, cmd /home/reicom2025/LeGOLAOM_ws/devel/lib/lego_loam/mapOptmization __name:=mapOptmization __log:=/home/reicom2025/.ros/log/32df3f74-7b80-11f1-8cf9-998f20430ff7/mapOptmization-7.log].
log file: /home/reicom2025/.ros/log/32df3f74-7b80-11f1-8cf9-998f20430ff7/mapOptmization-7*.log
此时gtsam版本为4.0.2,使用系统自带的pcl版本。
观看别人的csdn经验。最终复现成功,整体流程大概为以下三点。
第一依赖库的安装,第二lego-loam源码编译,第三修改cpp文件重新编译,显示点云地图。
第一依赖库的安装
源码安装gtsam4.1.0版本
改变gtsam版本,源码安装,使用4.1.0版本(先卸载之前的gtsam版本,不会就问AI,先清楚是apt还是源码安装)
# 安装依赖
sudo apt install libboost-all-dev libtbb-dev
# 获取指定版本
git clone -b 4.1.0 https://github.com/borglab/gtsam.git
cd gtsam && mkdir build && cd build
# 关键配置参数
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make -j$(nproc)
sudo make install
编译过程中失败,这里我编译错误,问AI,编译成功即可
pcl方面
编译成功后检测这些pcl模块
pcl_viewer -h # 测试可视化模块
pcl_ply2pcd -h # 测试格式转换
进行检测有没有安装成功,没有进行安装,好像有安装指令提醒。
opencv方面
以下指令进行检查
# 检查已安装模块
pkg-config --modversion opencv4
# 补充安装可能缺失的模块
sudo apt install libopencv-calib3d-dev libopencv-contrib-dev
成功进行第二流程。
第二源码编译
git 源码
git 源码,进行修改编译源码,编译成功后有报错
mkdir -p ~/lego_ws/src
cd ~/lego_ws/src
git clone --recursive https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
# 修复常见的子模块问题
cd LeGO-LOAM && git submodule update --init --recursive
编译前的准备
之后更改Cmakelists.txt c++11 --为c++ 14
utility.h 中#include <opencv/cv.h>注释改为 #include<opencv2/imgproc.hpp>
#include <pcl/kdtree/kdtree_flann.h>放到修改的opencv上面。
编译
回到工作空间进行编译。
cd ~/lego_ws
catkin_make -j1 # 首次编译
catkin_make -j$(nproc) --cmake-args -DCMAKE_BUILD_TYPE=Release # 后续编译
编译成功后记得
source devel/setup.bash
或者在bash.rc文件下改
之后启动roslaunch lego_loam run.launch
数据集准备
编译成功同时,bag文件去lego-loam github官方随便下个就行。
编译后的一些问题
不报这个 [mapOptmization-7] process has died错误了(好像是这样,具体有点忘记了),但是rviz还是出现报错说Failed to transform from frame [/camera] to frame [map]之类的,点云地图也没有显示。进入第三步。
第三修改cpp文件,显示点云地图。
修改lego-loam cpp文件 cpp文件中的/camera 部分改为camera 保存重新编译。成功后,增加话题如下图。
改变size为0.03及以上。即可显示点云地图。
个人经验。
也有说安装以下文件的
sudo apt-get update -y
sudo apt-get install -y libparmetis-dev
链接如下:Lego-Loam 运行错误解决方案_[mapoptmization-7] process has died-CSDN博客
也有加动态链接的
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
roslaunch lego_loam run.launch 链接如运行lego_loam报错[mapOptmization-7] process has died [pid 11653, exit code 127, cmd /home/p/legoloam/dev-CSDN博客
可以参考一下:
主要参考csdn链接:
保姆级避坑指南:Ubuntu 20.04 + ROS Noetic 下编译运行 LeGO-LOAM 全流程-CSDN博客
如果有在ros noetic下复现Lio-sam的可以参考这个链接
Ubuntu20.04 ROS noetic中编译和运行LIO-SAM_ros noetic lio sam-CSDN博客
不过我没有两个同时进行操作复现。
个人经验,仅供参考,链接已经指出。如有不妥,马上删除。
第一次写有点乱,还请见谅
