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

本文详细介绍了如何安装配置ALOAM算法,利用激光雷达生成点云图并转换为二维栅格地图。过程中提到了PCL库、CeresSolver的安装,以及如何使用Pinda进行地图后期处理,以优化二维导航地图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

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

A-LOAM算法安装

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

  2. 安装 ROS Melodic 环境

    cd install_shell/shell
    ./install_ros.sh
    
  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
    
  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
    
  5. Boost 1.65.1
    命令行安装:

    sudo apt-get install libboost-dev
    

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

    cd ./boost_1_65_1
    ./bootstrap.sh
    sudo ./b2 install
    

    安装完毕之后,头文件默认在/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

配置文件修改:
运行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;

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

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

格式,更改话题名。

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

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

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

其中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

运行结束,可以看到生成了一个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
第二种:
mkdir pcd
cd pcd
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround

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

点云地图查看:
pcl_viewer xxx.pcd

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
修改配置文件
sudo gedit src/pcd2pgm_package/pcd2pgm/launch/run.launch

更改为自己的pcd文件位置

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

在这里插入图片描述

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

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

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

5.后期制图

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值