北科天绘R-Fans16M跑A-Loam

A-Loam项目地址

环境:Ubuntu18.04+Ros Melodic+北科天绘R-Fans16M激光雷达

一、环境准备

可以参考下列教程,完全解决ros安装过程中会遇到的所有问题。ubuntu系统安装过程略,可自行搜索。

ubuntu18.04 LTS安装ROS图文教程_u014453443的博客-CSDN博客

ROS安装中sudo rosdep init和rosdep update失败的终极解决方法(最新版本)_何为其然的博客-CSDN博客

二、依赖安装

A-Loam依赖于Ceres Solver2.0PCL-1.8.1,安装过程有诸多困难。

2.1 Ceres安装

首先在Ceres官方提供的下载链接里下载源码。

Ceres官方提供详尽的安装步骤。按照官网步骤实践,编译A-Loam时报找不到Ceres路径,说明未安装成功或者别的原因。按照如下步骤安装成功:

#依赖库安装过程略,参照官网即可
tar zxf ceres-solver-2.0.0.tar.gz
cd ceres-solver-2.0.0
mkdir build
cd build
cmake ..
make -j3
make test
sudo make install

上述步骤与官网步骤区别只是build文件夹位置不一样而已,不知为何没有安装成功,重新安装后没有报错了,默认装在usr/local/include下。

2.2 PCL1.8安装

PCL库可以从Ubuntu的官方仓库用apt命令安装1.7版本,也可以自己下载源码编译安装,我选的是源码安装,一方面是不小心把libvtk(PCL的依赖库)版本升级了,退回到旧版本需要付出比较大的代价(apt安装的PCL库是1.7版本,依赖旧版本libvtk);另一方面为将来学习PCL源码做准备。所以apt安装的过程我就不写了。

首先进入PCL的git仓库主页,不要傻乎乎的把master分支拉下来(和我一样),master分支是最新的版本(当时好像是1.12),在ubuntu18.04下编译会通不过。

按tag找到1.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
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
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

libvtk安装过程可能会遇到一点阻碍,会报有一些依赖没有升级所以无法安装,遇到该类问题,直接选择apt安装那些依赖,如此尝试安装到最下层,报安装成功后,再从最后一个库逐层往上安装,就可以解决。

libvtk7.1对应pcl1.8版本。

编译安装:

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

经过漫长的等待,没有报错信息即为安装成功。

2.3 pcl_conversions安装

pcl1.8缺失了两个pcl1.7中所包含的库:pcl_conversions和pcl_ros,A-Loam需要用到pcl_conversions,所以我就只安装了这个库。

apt也可以直接安装pcl_conversions这个库,但是记得需要卸载libvtk7,重新安装libvtk6。担心卸载后会造成什么不可言说的错误,我还是选择了源码安装。

仓库地址:ros-perception/perception_pcl: PCL (Point Cloud Library) ROS interface stack (github.com)

还是按tag选择1.7.1版本下载。

在工作目录新建一个ros工作空间ros_ws,在其中新建一个src文件夹,然后对ros_ws目录进行初始化使之成为ros工作空间。将pcl_conversions放入ros_ws/src下,执行:

sudo su
source /opt/ros/melodic/setup.bash
catkin_make install --cmake-args -DCMAKE_INSTALL_PREFIX=/opt/ros/melodic

至此依赖安装工作完成。

三、A-Loam运行

创建ROS工作空间

mkdir -p ~/aloam_ws/src
cd ~/aloam_ws/
catkin_make
//至此你会发现aloam_ws下自动生成了多个文件夹和文件
cd src/
//此处在src文件夹中放入解压后的A-LOAM源码,地址在文章开头
cd ../
catkin_make

如果依赖安装没有出什么问题,这里就能顺利编译通过。相反如果提示找不到某个库,说明依赖安装有问题。

从工作空间目录打开两个终端,分别运行以下两个命令以启动A-Loam:

终端一:

source ~/aloam_ws/devel/setup.bash
roscore

终端二:

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

会有rviz窗口弹出,但没有任何数据,这是因为A-Loam要订阅一个发布PointCloud2格式数据的话题,这个话题的名称写在scanRegistration.cpp的第478行,默认是velodyne雷达发布的话题名称。因此如果是velodyne雷达,直接运行驱动或者播放录制好的bag包就可以建图。

如果使用的是其他品牌的激光雷达,则需要找到对应的话题名称,并修改此处。

四、R-Fans16M激光雷达

按要求连接好主机与雷达(或播放录制好的pcap数据)

将驱动包源码复制到aloam_ws工作空间的src目录下,并对工作空间进行编译,编译后添加环境变量

cd ~/aloam_ws/
source ~/aloam_ws/devel/setup.bash

运行驱动

roslaunch rfans_driver node_manager.launch

然后打开一个新终端,使用rostopic list命令查看驱动运行时发布的topic,可以看到这个驱动的节点发布的PointCloud2话题名称应该为/rfans_driver/rfans_points。

按上节末尾修改A-Loam代码中的话题名称,如下图

 然后启动A-Loam,开始建图

 效果如下

 之前系统计算图如下

现在计算图如下

可以看到A-Loam的ascanRegistration节点订阅了/rfans_driver的相关话题。

部分参考资料

Ubuntu16.04 多版本pcl 1.11与pcl_ros pcl_conversion冲突错误_u010838619的博客-CSDN博客

Ubuntu18.04安装PCL(详细教程)Zhangfei Wang-CSDN博客ubuntu18.04安装pcl

(记录)配置并运行A-LOAM(Ubuntu18.04+ROS Melodic)_TOL5933的博客-CSDN博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值