ubuntu18.04系统下安装loam (新手小白的入门学习记录2..)

一、安装PCL

参考链接:
Ubuntu18.04安装PCL(详细教程)来自古月居.
ubuntu18.04 bionic安装pcl1.8.

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.8 libflann-dev
   *(显示无法定位包libflann1.8,ubuntu 18.04 bionic对应的版本是libflann1.9,改用libflann1.9执行成功。参考链接2)*
   sudo apt-get install libeigen3-dev 这个需要自己下载正确版本安装
   sudo apt-get install libboost-all-dev
   sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev 但我把-qt去掉了
    *然后出现了这个错误:(下列软件包有未满足的依赖关系:
 libvtk7-dev : 依赖: libvtk7-java (= 7.1.1+dfsg1-2) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。)
   sudo apt-cache search libvtk
    (用这行命令去搜索libtk的最新版本)*
   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、下载编译

   git clone https://github.com/PointCloudLibrary/pcl.git

3、接下来进行编译

cd pcl 
mkdir release 
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr .. 
make  

等待漫长的编译之后

sudo make install

(接下来的步骤我没有使用)
4、验证PCL是否安装成功
按照以上步骤直接生成.cpp文件运行会发现找不到头文件,原因是需要使用Cmake 编译(包括连接到PCL库等)
具体操作直接参照官网(http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php#using-pcl-pcl-config)

步骤包括:
(1).在project 文件夹下生成 pcd_write.cpp(见官网上提供的链接)
(2).生成 CMakeLists.txt,直接复制一下内容(不需要任何修改):

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(MY_GRAND_PROJECT)
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})

然后编译运行

cd /PATH/TO/MY/GRAND/PROJECT (project 所在的文件夹)
mkdir build
cd build
cmake ..
make
./pcd_write_test

安装完成。

二、loam的编译安装和运行

参考文章:
Loam的编译安装运行及可能遇到的问题.

(一)编译安装loam

1.Loam的编译需要使用catkin,如果已经建立catkin_ws,可以跳过下面这步

mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace

2.下载Loam的源码

cd ~/catkin_ws/src # catkin_ws自己的ROS工作空间。
 
git clone https://github.com/laboshinl/loam_velodyne.git

在编译安装之前,Loam的代码一部分需要修改,具体可以参照https://github.com/laboshinl/loam_velodyne/pull/84/files. 把src/lib/LaserMapping.cpp 的139-153行注释掉。

(这里我点进去链接看不懂..就去文件夹里找到了这个.cpp文件手动改的。我的电脑上的路径是~/catkin_ws/src/loam_velodyne/src/lib)
(一开始我想用命令行找到这个文件在哪,结果用find / -name 显示一堆权限不够,用locate命令 也没反应,只能去文件夹翻了T _ T)

3.编译Loam

cd catkin_ws
catkin_make
source ~/devel/setup.bash

source命令在每打开一个新的终端需要重新输入,也可以把它写入到.bahsrc里面

(我输入最后一行显示没有那个文件或目录,在bash最下边添加了source ~/catkin_ws/devel/setup.bash 也没有帮助)
(后来我手动在文件夹找到了setup.bash,并用cd命令进入它所在的文件夹 然后在命令行输入 source setup.bash 即可成功)
至此,Loam已经编译完成
(二)Loam的运行

1.使用bag文件

roslaunch loam_velodyne loam_velodyne.launch

运行后会打开rviz并等待雷达数据。
(编译的最后一步如果没有成功的话会显示红字错误,
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
所以 上一步很重要)
播放bag

本文提供ROS wiki http://wiki.ros.org/loam_velodyne上无imu信息的bag百度云链接

链接: https://pan.baidu.com/s/18ISyr4ky2MfTl7TXJD2W-A 提取码: 2yea

下载后,输入

rosbag play ~/nsh_indoor_outdoor.bag

至此,可以在RVIZ里面观察到点云了

2.使用pcap文件:

安装驱动

sudo apt-get install ros-kinetic-velodyne

播放pcap文件

rosrun velodyne_driver velodyne_node _model:=VLP16 _pcap:=/home/wangzhiyong/dianyun1.pcap _read_once:=true

需要修改pcap文件的路径以及名称

五.错误处理

1.multiScanRegistration报错

如果在运行Loam后播放bag提示multiScanRegistration错误,原因是使用apt-get 安装了编译好的pcl,需要按照第二部分进行卸载PCL并下载源代码编译安装PCL,之后需要重新catkin_make

2.error: ‘downSizeFilterMap’ was not declared in this scope错误

catkin_make时可能会出现error: ‘downSizeFilterMap’ was not declared in this scope错误,这是因为没有修改Loam的源代码,参照https://github.com/laboshinl/loam_velodyne/pull/84/files 把src/lib/LaserMapping.cpp 的139-153行注释掉

3.提示缺少ROS package

输入

sudo apt-get install ros-kinetic-xxxxxxxx

来安装缺少的xxxxxx package。

Loam建好的地图的保存以及转pcd,ply和播放pcap格式的文件可以参考

https://blog.csdn.net/qq_36396941/article/details/83048415

使用vlp16运行Loam参考

https://blog.csdn.net/qq_36396941/article/details/83048660

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值