赞
踩
本文档介绍了如何安装配置ALOAM算法,使其能够利用激光雷达实现三维点云图(PCD)构建,而后利用pcd2pgm 包将点云图转换为二维栅格地图供二维导航使用。因多线激光雷达建立的点云地图存在较多噪点,且存在地面点信息等,转换后的二维栅格地图不能达到理想情况,讲述了如何用图片处理工具(Pinda)进行后期处理,以及可能遇到的一些问题和处理方式。
操作系统
Ubuntu 64-bit 18.04
系统架构linux-amd64
安装 ROS Melodic 环境
cd install_shell/shell
./install_ros.sh
安装 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
安装 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
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的文件删除即可。
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雷达,其参数为:
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,便于后期调优。
目前有两种方式进行点云地图的保存,
#运行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格式点云。
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文件位置
sudo apt-get install ros-melodic-map-server
roslaunch pcd2pgm run.launch
另开一个终端,运行地图保存 程序
rosrun map_server map_saver
经过以上步骤后,得到点云地图直接滤波投影到二维的二维栅格地图,还需要对二维栅格地图进行下一步处理,得到供二维导航的二维栅格地图(pgm)。
Ubuntu下可以使用pinda或者gimp等图片处理软件对制作的二维栅格地图进行修改完善,建议使用gimp保存成原文件格式(windows下Gimp也可以使用)。
Gimp安装网址:https://www.gimp.org/downloads/
白色表示可通行区域,黑色与灰色表示不可通行区域。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。