使用速腾雷达32线Helios和fast-LIO2算法建图(一)

一、配置激光雷达数据

参考链接Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题
下载驱动文件内部也有使用说明
第一步:下载rslidar_sdk,保存到catkin_ws/src路径工作空间下
下载地址: https://github.com/RoboSense-LiDAR/rslidar_sdk/releases/download/v1.3.0/rslidar_sdk.tar.gz
使用速腾雷达32线Helios和fast-LIO2算法建图(一)_第1张图片
下载红色圈主的rslidar_sdk.tar.gz 文件,因为这个文件内容齐全,不需要再下载子模块rs_driver的代码,请下载 rslidar_sdk.tar.gz 压缩包, 不要下载Source code。用户还需自行下载rs_driver的代码放入其中才行。
第二布:添加依赖
1.Yaml (必需)

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

2.Pcap (必需)

sudo apt-get install -y  libpcap-dev

3.Protobuf (可选)

// 下载 protoBuf:
$ git clone https://github.com/protocolbuffers/protobuf.git
//  安装依赖库
$ sudo apt-get install autoconf  automake  libtool curl make  g++  unzip libffi-dev -y
// 进入目录
$ cd protobuf/ 
// 自动生成configure配置文件:
$ ./autogen.sh 
// 配置环境:
$ ./configure
// 编译源代码(要有耐心!):
$ make 
// 安装
$ sudo make install
// 刷新共享库 (很重要的一步啊)
$ sudo ldconfig 
// 成功后需要使用命令测试
$ protoc -h 

如果不安装,打开CMakeLists.txt文件修改内,去掉或者注释使用Protobuf部分代码,每行前添加#号

#Protobuf#
find_package(Protobuf QUIET)
find_program(PROTOC protoc)
if(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)
  message(=============================================================)
  message("-- Protobuf Found, Protobuf Support is turned On!")
  message(=============================================================)
  add_definitions(-DPROTO_FOUND)

  include_directories(${PROTOBUF_INCLUDE_DIRS})
  SET(PROTO_FILE_PATH ${PROJECT_SOURCE_DIR}/src/msg/proto_msg)
  file(GLOB PROTOBUF_FILELIST ${PROTO_FILE_PATH}/*.proto)
  foreach(proto_file ${PROTOBUF_FILELIST})
    message(STATUS "COMPILING ${proto_file} USING ${PROTOBUF_PROTOC_EXECUTABLE}")
    execute_process(COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
                    --proto_path=${PROTO_FILE_PATH}
                    --cpp_out=${PROTO_FILE_PATH}
                    ${proto_file})
  endforeach()
else(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)
  message(=============================================================)
  message("-- Protobuf Not Found, Protobuf Support is turned Off!")
  message(=============================================================)
endif(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)

第三步:配置参数
1、打开工程内的CMakeLists.txt文件,修改以下内容

set(COMPILE_METHOD ORIGINAL)改为set(COMPILE_METHOD CATKIN)
set(POINT_TYPE XYZI)改为set(POINT_TYPE XYZIRT) #相较于XYZI,XYZIRT还有时间戳,能满足Fast-lio2时间补偿需求

2、将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml。
3、修改config.yaml参数
可以参考在下载驱动包路径rslidar_sdk/doc/intro/parameter_intro_cn.md下
  本工程只有一份参数文件 config.yaml, 储存于rslidar_sdk/config文件夹内。打开此文件,找到以下部分:

lidar:
- driver:
//此处修改激光雷达型号
lidar_type: RS128    #LiDAR type - RS16, RS32, RSBP, RS128, RS128_40, RS80, RSM1, RSHELIOS
frame_id: /rslidar           
msop_port: 6699             
difop_port: 7788  

将RS128改成RSHELIOS,对应自己的传感器型号

  msg_source: 1    #1: packet message comes from online Lidar

数字为1,不需要改,表示在线连接激光雷达测试。

第四步:编译,测试发布数据

catkin_make
source devel/setup.bash

运行指令,显示速腾原始格式点云
roslaunch start.launch
第五步:将速腾雷达数据转化为Velodyne雷达点云格式
下载转化数据格式功能包
https://github.com/HViktorTsoi/rs_to_velodyne.git
同样放到catkin_ws/src路径下,并且在路径catkin_ws/src/rs_to_velodyne/下添加launch文件夹,在launch文件夹下,添加velodyne.launch文件,内容如下

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

很多博客配置参数 args="XYZIRT"是不正确的,源码要求输入是两个参数。否则报错,程序退出

二、配置IMU数据

xsensIMU 安装
https://blog.csdn.net/cxz932652580/article/details/109961710

三、建图

使用速腾雷达32线Helios和fast-LIO2算法建图(三)

你可能感兴趣的:(slam,ubuntu,c++)