1.检查自身pcl版本,要求为1.8.1版本
检查版本代码:
查系统自带的pcl :
gedit /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfigVersion.cmake
查源码安装的pcl版本:
gedit gedit /usr/local/share/pcl-1.8/PCLConfigVersion.cmake # 注意: 指令中 pcl-1.8/ 根据自己电脑 /usr/local/share/ 下的 pcl 文件夹而定,其他电脑可能是别的,比如 pcl-1.9/
2.要是没有pcl 1.8.1这个版本,或者没有pcl,需要安装pcl
安装步骤:
(1):安装依赖
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.9 libflann-dev //这里如果是1.8改为1.9才可以
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk6.3-qt libvtk6.3 libvtk6-dev
//这里如果不能用需用sudo apt-cache search libvtk 找新版本替换
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre
(2)下载编译
a.下载pcl 1.8.1 链接:
打开链接拉到最下面,点击source code(zip)下载
下载过后解压
b.编译pcl
cd pcl-pcl-1.8.1
mkdir build
cd build
cmake ..
make -j4
//不建议使用cpu的最大线程来编译,可能会死机,用4线程即可大约等20-30 min
sudo make install
3.loam的编译
(1)下载
创建catkin_ws文件夹并在其内部创建src文件夹
cd ~/catkin_ws/src
git clone https://github.com/laboshinl/loam_velodyne.git
(2)编译
cd catkin_ws
catkin_make
PS:
如果在编译过程中报错:
CMakeErrorat/opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83(find_package):Could not find a package configuration file provided by “pcl_conversions”
with any of the following names:
pcl_conversionsConfig.cmake
pcl_conversions-config.cmake
执行命令:
sudo apt-get install ros-melodic-navigation
sudo apt-get install ros-melodic-pcl-conversions ros-melodic-pcl-ros
重新编译
4.运行loam
可以使用的bag loam_velodyne - ROS Wiki
启动ros:打开一个新的终端输入命令
roslaunch loam_velodyne loam_velodyne.launch
运行bag:打开一个新的终端输入
rosbag play nsh_indoor_outdoor.bag
(命令格式:rosbag play data_file_name.bag
低速播放数据文件,例如以半速播放数据文件
命令格式:rosbag play data_file_name.bag -r 0.5)
PS:若启动ros遇到错误:
RLException: [loam_velodyne.launch] is neither a launch file in package [loam_velodyne] nor is [loam_velodyne] a launch file name
The traceback for the exception was written to the log file
需要去添加环境变量去说明包的来源,去/.bashrc文件里面添加
source /home/lin/catkin_ws/devel/setup.bash
(source ./devel/setup.bash类型的)
PS:
如果还有问题,操作以下步骤中的一个进行修改:
- 在路径 /home/flycar/catkin_ws/src/loam_velodyne 下打开 CMakeLists.txt
- 行 add_definitions( -march=native ) 前加 # ,注释掉此行,点击保存,返回重新编译 catkin_ws。原因是gcc,g++版本过高,降低版本,若之前没有则用sudo apt install gcc-5和sudo apt install g++-5安装。若有则进行如下命令修改:
cd /usr/bin
ls -l gcc*
sudo mv gcc gcc.bak
sudo ln -s gcc-5 gcc
gcc --version
sudo mv g++ g++.bak
sudo ln -s g++-5 g++
g++ --version
改回高版本同样用以上命令,修改其中数字5即可