当前位置:   article > 正文

使用A-LOAM建图并转成二维栅格图供二维导航使用_aloam建图

aloam建图

介绍

本文档介绍了如何安装配置ALOAM算法,使其能够利用激光雷达实现三维点云图(PCD)构建,而后利用pcd2pgm 包将点云图转换为二维栅格地图供二维导航使用。因多线激光雷达建立的点云地图存在较多噪点,且存在地面点信息等,转换后的二维栅格地图不能达到理想情况,讲述了如何用图片处理工具(Pinda)进行后期处理,以及可能遇到的一些问题和处理方式。

A-LOAM算法安装

环境配置
  1. 操作系统
    Ubuntu 64-bit 18.04
    系统架构linux-amd64

  2. 安装 ROS Melodic 环境

    cd install_shell/shell
    ./install_ros.sh
    
    • 1
    • 2
  3. 安装 Ceres Solver

    wget http://ceres-solver.org/ceres-solver-2.1.0.tar.gz
    sudo apt-get install libgoogle-glog-dev libgflags-dev
    sudo apt-get install libatlas-base-dev
    sudo apt-get install libeigen3-dev
    sudo apt-get install libsuitesparse-dev
    tar zxf ceres-solver-2.1.0.tar.gz
    mkdir ceres-bin
    cd ceres-bin
    cmake ../ceres-solver-2.1.0
    make -j3
    make test
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  4. 安装 PCL, 参见 PCL 官方文档.

    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 libflann1.8 libflann-dev
    sudo apt-get install libboost-all-dev
    sudo apt-get install libeigen3-dev
    sudo apt-get install libvtk7-jni libvtk7-java libvtk7-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
    # 下载编译
    git clone https://github.com/PointCloudLibrary/pcl.git
    ## 编译
    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
    # 也可以直接安装
    sudo apt install libpcl-dev
    sudo apt-get install ros-melodic-pcl-conversions
    sudo apt-get install ros-melodic-pcl-ros
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  5. Boost 1.65.1
    命令行安装:

    sudo apt-get install libboost-dev
    
    • 1

    源码安装:
    进入网址:http://www.boost.org/users/download/
    本人使用的软件包版本为1.65.1,使用最新的1.76.0会导致后续运行报错

    cd ./boost_1_65_1
    ./bootstrap.sh
    sudo ./b2 install
    
    • 1
    • 2
    • 3

    安装完毕之后,头文件默认在/usr/local/include目录中,.a与.so文件在/usr/local/lib目录下,若安装版本不正确需卸载,则将以上两个目录下关于boost的文件删除即可。

2.A-LOAM编译

Clone the repository and catkin_make:

	cd ~/catkin_ws/src
	git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
	cd ../
	catkin_make
	source ~/catkin_ws/devel/setup.bash
  • 1
  • 2
  • 3
  • 4
  • 5

配置文件修改:
运行A-LOAM之前,将雷达型号更改为适配自己雷达的参数。
针对目前使用的Hesai雷达,其参数为:

pandar XT 32
	extern const int N_SCAN = 32;
	extern const int Horizon_SCAN = 2000;
	extern const float ang_res_x = 0.18;
	extern const float ang_res_y = 1.0;
	extern const float ang_bottom = 15+0.1;
	extern const int groundScanInd =12;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在launch文件中修改,并且要注意aloam默认接收rostopic话题为velodyne_points,因为要在Hesai驱动的配置文件hesai_lidar.launch中,将frame_id默认为velodyne,并将其话题名更改为velodyne_points。
另外,如果要是用bag包离线建图,录制时话题名未更改的话,可以使用

rosbag play *.bag --clock /rslidar_points:=/velodyne_points
  • 1

格式,更改话题名。

禾赛雷达驱动安装:
数据包创建:

如果想要创建一个属于自己的rosbag,在启动A-LOAM后,另起终端开始记录数据:

#创建rosbag
rosbag record -o xxx.bag /velodyne_points /laser_cloud_surround
  • 1
  • 2

其中xxx为创建的bag名,/velodyne_points为激光雷达发布点云话题名,/laser_cloud_surround为A-LOAM所建地图话题名。如此就创建了自己的rosbag,便于后期调优。

3.点云地图构建与查看

目前有两种方式进行点云地图的保存,

第一种:
#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_HDL _32.launch
 
#另起终端运行rosbag
rosbag play xxx.bag
 
#另起终端用bag_to_pcd方法保存点云图
rosrun pcl_ros bag_to_pcd xxx.bag /laser_cloud_surround pcd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。

#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
 
#另起终端运行rosbag
rosbag play xxx.bag
 
#另起终端,用pointcloud_to_pcd方法保存点云图
mkdir pcd
cd pcd
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
第二种:
mkdir pcd
cd pcd
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround
  • 1
  • 2
  • 3

运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。

点云地图查看:
pcl_viewer xxx.pcd
  • 1

pcd文件的点云地图可以直接用cloudcompare软件来编辑,如果想使用MatLab软件编辑,还需要将pcd转成ply格式,也是调用PCL库给出的方法pointcloud_to_pcd来使pcd转成ply格式点云。

4.二维栅格地图转化

安装pcd2pgm包
mkdir -p pcd_ws/src&& cd pcd/src
echo "source ~/pcd_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

git clone -b develop  https://github.com/Hinson-A/pcd2pgm_package
cd ..
catkin_make
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
修改配置文件
sudo gedit src/pcd2pgm_package/pcd2pgm/launch/run.launch
  • 1

更改为自己的pcd文件位置

安装map_saver
sudo apt-get install ros-melodic-map-server
  • 1
4-1运行地图转换程序
roslaunch pcd2pgm run.launch
  • 1

在这里插入图片描述

另开一个终端,运行地图保存 程序

4-2地图保存程序
rosrun map_server map_saver
  • 1

在这里插入图片描述
经过以上步骤后,得到点云地图直接滤波投影到二维的二维栅格地图,还需要对二维栅格地图进行下一步处理,得到供二维导航的二维栅格地图(pgm)。

5.后期制图

Ubuntu下可以使用pinda或者gimp等图片处理软件对制作的二维栅格地图进行修改完善,建议使用gimp保存成原文件格式(windows下Gimp也可以使用)。

Gimp安装网址:https://www.gimp.org/downloads/
白色表示可通行区域,黑色与灰色表示不可通行区域。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号