编译LeGo-LOAM,并且采用速腾聚创激光雷达与之相连


一、LeGo-LOAM部署

参考链接:实车部署采用速腾聚创RS16激光雷达的LeGo-LOAM
LeGO-LOAM初探:原理,安装和测试
1.gtsam安装(install的过程比较慢,需要耐心等待)

git clone https://bitbucket.org/gtborg/gtsam.git
cd ~/gtsam
mkdir build
cd build
cmake ..
sudo make install

2.下载并编译LeGO-LOAM

mkdir -p slam_ws/src
cd slam_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make

3.数据集试运行
数据集的百度云地址:https://pan.baidu.com/s/1SkrqfN82il1m6jhkLZT-WA 密码: oqo8
打开LeGO-LOAM/LeGO-LOAM/launch/run.launch文件,确保/use_sim_timevaluetrue(在线建图为false,离线建图为true
运行lego-loam(黑屏别慌)

source devel/setup.bash
roslaunch lego_loam run.launch

遇到下面的报错
在这里插入图片描述
解决办法
参考链接:运行lego_loam报错[mapOptmization-7] process has died pid 11653, exit code 127, cmd /home/p/legoloam/dev
在roslaunch之前动态链接库

source devel/setup.bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
roslaunch lego_loam run.launch

运行刚刚下载的数据集

source devel/setup.bash
rosbag play xxx.bag --clock --topic /velodyne_points /imu/data

在这里插入图片描述


二、速腾聚创激光雷达调试

参考链接:速腾聚创 RoboSense RS-Helios 32线激光雷达使用 LeGO-LOAM 算法建图
因为RS-lidar默认IP是192.168.1.200,RS-lidar默认可接受数据的IP是192.168.1.102,所以我们将本地ip地址改为192.168.1.102,子网掩码设置为255.255.255.0
将雷达插上电源,网线与电脑连接后,手动修改ip
在这里插入图片描述
然后重启网络连接(网络开关按钮关一下,然后再打开)
在这里插入图片描述
下面打开wireshark,发现数据已经通了

sudo wireshark

在这里插入图片描述
下面配置ROS开发环境,ros驱动下载链接:https://github.com/RoboSense-LiDAR/rslidar_sdk/releases
在这里插入图片描述
手动下载rslidar_sdk.tar.gz文件
新建一个工作空间,将下载好的ros驱动解压到该路径下

mkdir -p RoboSense-LiDAR_ws/src

安装参考github上面的教程
1.安装环境依赖
安装Yaml(version: >= v0.5.2)

sudo apt-get update
sudo apt-get install -y libyaml-cpp-dev

安装libpcap(version: >= v1.7.4)

sudo apt-get install -y  libpcap-dev

2.编译和运行
下面以ros形式编译
(1)在文件CMakeLists.txt的顶部,将变量COMPILE_METHOD设置为CATKIN。
在这里插入图片描述
(2)将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml
(3)创建一个新的工作区文件夹,并在其中创建一个src文件夹。然后将rslidar_sdk项目放入src文件夹中。(前面已经做过了
(4)回到工作区的根目录,运行以下命令进行编译和运行。(如果使用zsh,请将第二个命令替换为source-devel/setup.zsh)。

#编译
cd ~/RoboSense-LiDAR_ws
catkin_make
#运行
source devel/setup.bash
roslaunch rslidar_sdk start.launch

运行后会自动打开一个rviz,rviz中没有雷达点云
在这里插入图片描述
后来查看RoboSense-LiDAR_ws/src/rslidar_sdk/doc/howto/how_to_offline_decode_pcap_cn.md里面找到要设置雷达型号
在这里插入图片描述
查看雷达的发货清单,发现雷达的型号是RS-Helios,打开RoboSense-LiDAR_ws/src/rslidar_sdk/config/config.yaml文件,将lidar_type改成RSHELIOS
在这里插入图片描述
重新编译一下工作空间,运行节点,发现有激光点云信息了
在这里插入图片描述


三、将速腾聚创激光雷达连到LeGo-LOAM

参考链接:速腾聚创 RoboSense RS-Helios 32线激光雷达使用 LeGO-LOAM 算法建图
1.下载一个转换包,放在RoboSense-LiDAR_ws/src(与激光雷达的ros驱动路径一致)路径下

cd ~/RoboSense-LiDAR_ws/src
git clone https://github.com/HViktorTsoi/rs_to_velodyne.git

添加launch文件
新建/rs_to_velodyne/launch文件夹,新建rs_to_velodyne.launch文件,内容如下。(LeGO-LOAM需要的点云格式为XYZIR,args="XYZIRT XYZIR"为转换格式的参数。)

<launch>
  <node pkg="rs_to_velodyne" name="rs_to_velodyne" type="rs_to_velodyne"  args="XYZIRT XYZIR"   output="screen">
  </node>
</launch>

打开RoboSense-LiDAR_ws/src/rslidar_sdk/CMakeLists.txt,确保POINT_TYPEXYZIRT
在这里插入图片描述

编译、安装、运行

cd ~/RoboSense-LiDAR_ws
catkin_make
source devel/setup.bash
#运行rs_to_velodyne
roslaunch rs_to_velodyne rs_to_velodyne.launch
#运行ros驱动
roslaunch rslidar_sdk start.launch

订阅topic:/rslidar_points,发布topic:/velodyne_points
接着打开LeGO-LOAM/LeGO-LOAM/launch/run.launch文件
在这里插入图片描述
/use_sim_timevalue改成false(在线建图为false,离线建图为true
然后运行lego_loam

source devel/setup.bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
roslaunch lego_loam run.launch

rviz中成功出现点云

在这里插入图片描述

四、解决LeGo-LOAM不保存pcd地图的问题

首先LeGO-LOAM/路径下新建PCD_Files文件夹,用来保存pcd点云地图
接着在LeGO-LOAM/LeGO-LOAM/include/utility.h文件中第57行将文件保存路径改成/home/smart_car/slam_ws/src/LeGO-LOAM/PCD_Files/
在这里插入图片描述
同样的,在LeGO-LOAM/LeGO-LOAM/src/mapOptmization.cpp中,将visualizeGlobalMapThread()函数里面有三个文件路径改成自己的
在这里插入图片描述
运行LeGO-LOAM程序,然后播放ros包,发现目标路径下并没有点云文件保存下来
解决办法(参考链接:LeGO-LOAM初探:原理,安装和测试):
经过调试,发现程序进入到publishGlobalMap()函数后没有出来,检查publishGlobalMap()函数,发现下面代码:

if (pubLaserCloudSurround.getNumSubscribers() == 0)
    return;

表明我们需要订阅pubLaserCloudSurround,否则会退出函数,不执行后面的代码,导致globalMapKeyFramesDS为空。
因此,在运行LeGO-LOAM程序后,手动在rviz中勾选Map Cloud(这个问题是代码更新导致的,具体为https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/blob/master/LeGO-LOAM/launch/test.rvizMap Cloud由默认的勾选变成不勾选。)
在这里插入图片描述
然后播放ros包,播放完毕后然后按ctrl+c退出LeGO-LOAM程序,最终可以在自定义目录下生成四个pcd文件。
在这里插入图片描述
使用这个命令安装一下点云工具

sudo apt install pcl-tools

使用下面的命令查看点云图

pcl_viewer finalCloud.pcd

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_60355964/article/details/131155261
今日推荐