实车部署采用速腾聚创RS16激光雷达的LeGo-LOAM

1. 前言

        本博客主要记录博主在实车上的部署过程,帮助各位快速完成LeGo-LOAM的实车部署。主要包括:通过RS-16的rslidar-sdk得到点云数据,LeGo-LOAM测试数据集下载与部分代码修改两部分内容。

2. RS-16的驱动配置

 2.1 rslidar_sdk下载

mkdir slam_ws && cd slam_ws

mkdir src && cd src

git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git
cd rslidar_sdk
git submodule init
git submodule update

 2.2 config/config.yaml修改

        1)16行 lidar_type: RS16

        2)22行 min_distance: 0.9

        3)18行 msop_port: 6699

        4)19行 difop_port: 7788

2.3 CMakeLists.txt修改

        1)8行 set(COMPILE_METHOD CATKIN)

        2)13行 set(POINT_TYPE XYZIRT)

2.4 依赖库安装

sudo apt-get install libyaml-cpp-dev libpcap-dev

sudo apt-get install libprotobuf-dev protobuf-compiler

2.5 编译

cd ..
catkin_make

2.6 试运行

source devel/setup.bash

roslaunch rslidar_sdk start.launch

3. RS_to_VLP points

  由于LOAM算法都是应用的VLP激光雷达,所以先到下面的链接下在点云转换代码

cd slam_ws/src

git clone https://github.com/HViktorTsoi/rs_to_velodyne.git

cd ..

catkin_make

但是由于最新版的rs_sdk将强度信息调整为了float格式,所以需要将上述代码 中第30 37行的uint8_t替换成float

4. LeGo-LOAM部署

4.1 gtsam安装

git clone https://bitbucket.org/gtborg/gtsam.git

cd ~/gtsam
mkdir build
cd build
cmake ..
sudo make install

 4.2 下载并编译LeGO-LOAM

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

4.3  LeGO-LOAM代码修改与问题解决

1)run.launch中改为

2)utility.h中的:#include,修改为#include

3)CMakeList.txt的修改

set(CMAKE_CXX_FLAGS "-std=c++14")

4)报错:‘Index’ is not a member of ‘Eigen’与更改

参考

从https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/issues/215.

voxel_grid.h中报错的Eigen::Indexx修改成int

5)/usr/bin/ld问题

出现报错

/usr/bin/ld: 找不到 -lBoost::serialization
/usr/bin/ld: 找不到 -lBoost::thread
/usr/bin/ld: 找不到 -lBoost::timer
/usr/bin/ld: 找不到 -lBoost::chrono

 在CMakeLists中加入

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

6) Failed to transform from frame [/camera] to frame [map]的报错问题解决

将"/camera_init"换成"camera_init",将"/camera"换成"camera" ,将"/map"换成"map"

4 数据集试运行

数据集的百度云地址:https://pan.baidu.com/s/1SkrqfN82il1m6jhkLZT-WA. 密码: oqo8

 运行lego-loam(黑屏别慌)

source devel/setup.bash

roslaunch lego_loam run.launch

运行数据集(也可以rosbag play刚才百度云地址中下载的)

source devel/setup.bash

rosbag play *.bag --clock --topic /velodyne_points /imu/data

4 实车部署

  先运行rslidar节点

source devel/setup.bash

roslaunch rslidar_sdk start.launch

再运行rs_to_velodyne节点

source devel/setup.bash

rosrun rs_to_velodyne rs_tovelodyne XYZIRT XYZIR (LeGO-LOAM需要的雷达点云是XYZIR格式的,话题还是velodyne_points)

最后运行lego_loam

source devel/setup.bash

roslaunch lego_loam run.launch

可以遥控撒欢跑了~!!!!!!!!

4.参考

 用速腾RS16跑LeGO-LOAM_rs16 运行loam_XinkaiZed的博客-CSDN博客   

九.激光SLAM框架学习之LeGO-LOAM框架---速腾Robosense-16线雷达室外建图和其他框架对比、录包和保存数据_legoloam保存pcd_goldqiu的博客-CSDN博客

你可能感兴趣的:(自动驾驶,人工智能)