Ubuntu18.04使用速腾16线激光雷达RS-16测试3D建图算法 LeGO-LOAM 的使用

  • 1. 安装gtsam因子图库
  • 2. 新建ROS工程目录文件夹,下载源码进行编译
  • 3. 下载相关数据集进行测试
  • 4. 使用速腾16线激光雷达RS-16进行实时建图
    • 4.1 下载rslidar_sdk
    • 4.2 雷达驱动环境安装
    • 4.3 修改 CMakeLists.txt 和 package.xml
    • 4.4 修改 config.yaml 参数
    • 4.5 下载rs雷达话题转velodyne雷达话题源码
    • 4.6 编译LeGO-LOAM
    • 4.7 编译并运行所有节点和launch文件
  • 5. 进行测试过程中遇到的相关问题及解决方案

运行环境

  • Linux:Ubuntu18.04
  • ros:Melodic
  • Ceres Solver 2.0.0(Ubuntu18.04安装Ceres)
  • PCL 1.8.1(Ubuntu系统的PCL、Eigen卸载和安装)

1. 安装gtsam因子图库

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install

2. 新建ROS工程目录文件夹,下载源码进行编译

  • 新建工程文件
mkdir catkin_ws
cd catkin_ws
mkdir src
catkin_make
  • 下载编译LeGO-LOAM
cd src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1

3. 下载相关数据集进行测试

根据GitHub上面的测试集进行相对应的测试

  • 下载相关的数据集,并进行测试。下载地址如下:
    https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa
source ~/devel/setup.bash
roslaunch lego_loam run.launch
rosbag play *.bag --clock --topic /velodyne_points /imu/data


4. 使用速腾16线激光雷达RS-16进行实时建图

4.1 下载rslidar_sdk

https://github.com/RoboSense-LiDAR/rslidar_sdk/releases

根据官网的介绍,下载 rslidar_sdk.tar.gz 压缩包

  • 注意:不要下载Source code。 因为Source code压缩包内不包含子模块 rs_drive r的代码, 还需自行下载rs_driver的代码放入其中才行。

打开工作空间进入src文件夹下将下面的文件解压到此处,先不要编译

4.2 雷达驱动环境安装

安装pcapYaml

sudo apt-get install -y libpcap-dev
sudo apt-get install -y libyaml-cpp-dev #若已安装ROS desktop-full, 可跳过

4.3 修改 CMakeLists.txt 和 package.xml

(1) 将文件顶部的set(COMPILE_METHOD ORIGINAL)改为set(COMPILE_METHOD CATKIN)

(2) 将set(POINT_TYPE XYZI)改为set(POINT_TYPE XYZIRT)

(3) 将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml

4.4 修改 config.yaml 参数

rslidar_sdk只有一份参数文件 config.yaml, 储存于rslidar_sdk/config文件夹内。打开此文件,找到以下部分:

idar:- driver://此处修改激光雷达型号lidar_type: RS128           frame_id: /rslidar           msop_port: 6699             difop_port: 7788            start_angle: 0              end_angle: 360               min_distance: 0.2            max_distance: 200            use_lidar_clock: false

激光雷达型号默认RS128,修改为自己的激光雷达型号即可
不修改则会报错,并且读取不到激光扫描参数:

  • 下图为报错的图

    作者使用的是16线的激光雷达,故修改如下,
lidar:- driver:lidar_type: RS16            #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOSframe_id: /rslidar           #Frame id of messagemsop_port: 6699              #Msop port of lidardifop_port: 7788             #Difop port of lidarstart_angle: 0               #Start angle of point cloudend_angle: 360               #End angle of point cloud min_distance: 0.2            #Minimum distance of point cloudmax_distance: 200            #Maximum distance of point clouduse_lidar_clock: false       #True--Use the lidar clock as the message timestamp#False-- Use the system clock as the timestamp

4.5 下载rs雷达话题转velodyne雷达话题源码

  • 方法一:
    下载地址:https://github.com/HViktorTsoi/rs_to_velodyne.git
    并编译,可放在同个工作空间编译

  • 方法二:使用 git 下载
cd ~/catkin_ws/src
git clone https://github.com/HViktorTsoi/rs_to_velodyne.git
cd ../
catkin_make

4.6 编译LeGO-LOAM

修改LeGO-LOAM的launch文件:
将这句话的true改成false

<param name="/use_sim_time" value="false"/>

4.7 编译并运行所有节点和launch文件

  • 先运行雷达;
  • 再运行rs_to_velodyne节点(这里要注意LeGO-LOAM需要的雷达点云是XYZIR格式的,话题还是velodyne_points)
  • 最后运行lego_loam
catkin_make
source devel/setup.bash
roslaunch rslidar_sdk start.launch
rosrun rs_to_velodyne rs_tovelodyne XYZIRT XYZIR
roslaunch lego_loam run.launch

其中rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIR这个节点启动,可以该写成下面的launch文件进行启动。
在与src并列的位置新建launch文件夹,在launch文件夹内新建XX.launch文件用来启动节点,并在launch内写入如下。其中args="XYZIRT XYZIR"是Main函数的输入参数:XYZIRT、XYZIR,使用空格隔开参数。

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

运行成功的图:


5. 进行测试过程中遇到的相关问题及解决方案

遇到的问题:[mapOptmization-7] process has died
原因:可能是libmetis 库没有安装,安装libparmetis-dev可以解决

解决方法:

sudo apt-get update
sudo apt-get install libparmetis-dev

使用参考链接2方法遇到的问题
遇到的问题:[ERROR] [1638358942.333987429]: Point cloud is not in dense format, please remove NaN points first!

解决方法:
找到utility.huseCloudRIng设置为false
并重新编译


暂未解决,使用其它方法直接对速腾的雷达数据进行转换时遇到的问题
遇到的问题:[pcl::KdTreeFLANN::setInputCloud] Cannot create a KDTree with an empty input cloud!
原因:


该图为参考链接2处实现的建图效果


  • 参考链接
  • 1、九.激光SLAM框架学习之LeGO-LOAM框架—速腾Robosense-16线雷达室外建图和其他框架对比、录包和保存数据
  • 2、https://blog.csdn.net/Zed_Of_Zoe/article/details/117254473

3、速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 + ROS Melodic)相关推荐

  1. 采用16线激光雷达调用cartographer室内建图

    采用16线激光雷达调用cartographer室内建图 要用cartographer建图,我们需要的前期准备工作有: 1 安装cartographer功能包 这是一个谷歌编写的开源功能包,还是非常好用 ...

  2. robosense速腾16线激光雷达配置过程

    环境: 1.速腾16线激光雷达rslidar: 2.工控机: 3.Ubuntu 18.04        melocic版本; 1.1 安装驱动源码 $ mkdir –p ~/catkin_rslid ...

  3. 大疆激光雷达livox avia 在ubuntu18.04+ROS中基本使用方法

    Readme 大疆livox avia 固态激光雷达操作步骤: 1.参考本人CSDN博客lsg_dawn中收藏中的一篇关于ubuntu18.04中使用livox avia 雷达的文章 Livox Av ...

  4. 使用速腾16线激光雷达与IMU 实现Cartographer 3D建图

    平台:ubuntu18.04 + rosmelodic 设备: 速腾16线激光雷达(RS-Helios-16P).IMU(WHT901B-485),使用方法见前文 1.创建backpack_2d_rs ...

  5. 速腾聚创16线激光雷达rslidar-16的ros驱动安装与rviz点云显示

    原链接: https://community.bwbot.org/topic/520 运行测试平台:小强ROS机器人 速腾聚创16线激光雷达rslidar-16的供电是直流12v 3A,通信接口是rs ...

  6. Ubuntu18系统下采集点云数据(速腾16线激光雷达)与ZED 2 相机进行外参标定(Matlab的LCC工具箱)

    这篇是最近的实验记录:在Ubuntu系统下读取点云数据并在rviz中显示,录制自己的rosbag数据包并离线播放,将rosbag文件转化为pcd格式导入MATLAB中,和双目相机进行外参标定. 目录 ...

  7. 速腾聚创16线激光雷达ros驱动安装与rviz点云展示说明

    .速腾聚创16线激光雷达ros驱动安装与rviz点云展示说明 V1.0.0 – by Holden Date : 2021-10-12 文章目录 .速腾聚创16线激光雷达ros驱动安装与rviz点云展 ...

  8. 3999美元掀价格战,Velodyne宣布16线激光雷达降价50%

    3D视觉系统和先进的自动驾驶安全解决方案的全球领导者Velodyne LiDAR今天宣布,其无人驾驶用16线激光雷达现在可以面向全球客户降价50%. 新智元从Velodyne亚洲区总监翁炜处获悉,现在 ...

  9. 镭神16线激光雷达跑SC-LeGo-LOAM算法

    一.运行环境 环境:ubutu18.04+ros:melodic+pcl:1.8+gtsam+metis 环境配置: Eigen 3.3.4 PCL 1.8.1 (1.11不能用) ceres 2.0 ...

最新文章

  1. android数据库降级_Android SQLite (二.数据库创建,升级及降级)
  2. 丰田chr优惠5万_精打细算还是英朗划算,优惠5万入手英朗,落地8.8万买贵了吗...
  3. 细数Android 7.0“牛轧糖”的五大缺陷:不支持悬浮窗口
  4. python取出字典中最大值_python找出字典中value最大值的几种方法
  5. Ambari离线部署Hadoop集群踩到的坑
  6. 智能语音技术新发展与发展趋势
  7. VS调试时断点无法进入或命中的原因及解决方法(PDB引发的)
  8. 系统学习机器学习之参数方法(一)
  9. 白话文:几个例子马上看懂typescript基础类型
  10. 按顺序发起多次请求的loading使用
  11. iOS面试开发-这样的简历才是面试官想看的
  12. gsp计算机软件管理,药品进销存管理系统(含GSP管理)
  13. pc用c语言控制三菱plc,上位PC机控制三菱PLC
  14. Scrum中的软件测试指南
  15. Java Socket 网络编程
  16. SINR, RSRP, CQI 关系
  17. html5经纬度定位 源码_利用HTML5定位功能获取经纬度,在根据经纬度利用百度地图获取位置信息...
  18. jav常用类-时间处理相关类
  19. 关于用指针实现输入字符串以单词为元素反转输出思路
  20. RFID技术与畜牧业保险理赔的应用解决方案

热门文章

  1. [go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目
  2. csp-202209-2何以包邮?——背包问题
  3. 世界上第一个计算机有鼠标,40年的经典,世界上第一个鼠标
  4. Thinkpad T440S笔记本如何设置U盘启动
  5. ManagementClass类——ManagementClass 构造函数
  6. 139家企业入选前程无忧2021年度中国雇主榜;帝亚吉欧投资5亿于中国兴建碳中和威士忌酒厂 | 美通社头条...
  7. [NOIP2011]数字反转
  8. js声明函数的几种方式
  9. 听音乐看节目是计算机的什么,2014家用电脑既能听音乐又能看影视节目 .doc
  10. 对onreadystatechange的理解