资讯详情

十六.激光和惯导LIO-SLAM框架学习之配置自用传感器实时室外跑LIO-SAM框架

专栏系列文章如下:

一:Tixiao Shan最新力作LVI-SAM(Lio-SAM Vins-Mono),基于视觉激光惯导里程计SLAM框架、环境建设和运行过程_goldqiu的博客-CSDN博客

二.激光SLAM框架学习之A-LOAM框架介绍_goldqiu的博客-CSDN博客

三.激光SLAM框架学习之A-LOAM框架-项目代码介绍-1.项目文件介绍(主源代码除外)_goldqiu的博客-CSDN博客

四.激光SLAM框架学习之A-LOAM框架-项目代码介绍-2.scanRegistration.cpp--前端雷达处理和特征提取_goldqiu的博客-CSDN博客

五.激光SLAM框架学习之A-LOAM框架-项目代码介绍-3.laserOdometry.cpp--前端雷达里程计和位置粗估计_goldqiu的博客-CSDN博客

六.激光SLAM框架学习之A-LOAM框架-项目代码介绍-4.laserMapping.cpp--估计(优化)后端建图和帧位姿势_goldqiu的博客-CSDN博客

七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-室内建图16线雷达_goldqiu的博客-CSDN博客

八.激光SLAM框架学习之LeGO-LOAM框架-框架介绍和操作演示_goldqiu的博客-CSDN博客

九.激光SLAM框架学习之LeGO-LOAM框架---速腾Robosense-与其他框架相比,16线雷达的室外图纸被记录和保存_goldqiu的博客-CSDN博客

十.激光SLAM框架学习之LeGO-LOAM框架-算法原理和改进_goldqiu的博客-CSDN博客

十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架-框架介绍和操作演示

十二.激光SLAM框架学习之livox-loam框架安装和运行数据集_goldqiu的博客-CSDN博客_livox 数据集

十三.激光SLAM框架学习之livox-Mid-70雷达和实时室外运行框架_goldqiu的博客-CSDN博客

十四.激光和惯导LIO-SLAM框架学习习惯导内参标定_goldqiu的博客-CSDN博客

十五.激光和惯导LIO-SLAM框架学习惯导与雷达外参标定(1)_goldqiu的博客-CSDN博客

首先在平台上安装雷达,准备好供电,雷达网口连接终端,雷达本机ip是192.168.1.200,终端ip要配置成192.168.1.102,子网掩码255.255.255.0即可。

终端ping 192.168.1.200可以ping通则表明雷达通信没有问题。

GitHub下载最新源码

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

安装pcap:sudo apt-get install -y libpcap-dev

安装Yaml:sudo apt-get install -y libyaml-cpp-dev (若已安装ROS desktop-full, 可跳过)

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

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

将rslidar_sdk在工程目录下package_ros1.xml重命名文件package.xml。

建立ros在工作空间编译工作空间。

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

并编译,可放置在同一工作空间进行编译。

编译LIO-SAM,可以在同一个工作空间编译。

传感器驱动安装:

SBG传感器如何通过上位机或传感器yaml此部分之前已经讨论过文件更改配置。

这里主要是SBG的ROS如何安装驱动,IMU如何给题目?LIO-SAM中。

下载并编译最新的源代码:

cd catkin_ws/src

git clonehttps://github.com/SBG-Systems/sbg_ros_driver.git

cd ../

catkin_make

惯导ROS驱动包yaml文件可以修改传感器参数,但不推荐。建议修改上位机,修改后yaml同步修改文件。

1) 需要找到传感器的串口号,然后更改portName: "/dev/ttyUSB0"

2) 改变波特率: baudRate: 921600

3) 改变运动模型: motionProfile: 2 (注:车载模型)

4) 输出变更:变更ros时间:time_reference: "ros"

5) 输出变更:变更ROS的IMU消息格式 : ros_standard: true

6) 输出变更:变更ENU坐标系, use_enu: true

7) 更改输出:更改frame_id : frame_id: "imu_link"

8) 更改输出:更改系统状态刷新频率:log_status: 200

9) 输出变更:变更IMU数据刷新频率: log_imu_data: 1

10) 输出变更:变更UTC时间刷新频率: log_utc_time: 200

11) 更改输出:更改磁计数据刷新频率: log_mag: 4

sbg_ellipseN.launch文件中增加: <remap from="/imu/data" to="imu_raw" />

把IMU话题改成LIO-SAM需要的话题

在LIO-SAM中config文件夹中的配置yaml修改雷达话题名称

pointCloudTopic: "points_raw" (改为雷达话题velodyne _points)

前面已经解释了如何标定IMU内部参数,这里不解释,就是更换前四个参数。第五个参数需要连续采样Z轴重力加速度作为平均值。

即确认惯导和雷达的旋转转换矩阵

查看LIO-SAM中config文件夹中的配置yaml文件:

其中extrinsicRot表示imu->lidar的坐标变换, 用于旋转imu坐标系下的加速度和角速度lidar坐标系下, extrinsicRPY则用于旋转imu欧拉角到坐标系下lidar坐标下, 由于lio-sam作者使用的imu欧拉角旋转方向与lidar坐标系不一致(即按旋转顺序旋转), 因此,个旋转是不同的, 但大多数设备的两个旋转应该设置为相同,我们也可以设置为相同。

前面的校准有解释,这里就不说怎么校准了,校准了替换这两个矩阵。

平移向量影响不大,直接从结构图中得到,即惯导原点到雷达原点的向量。

惯导串口在运行前给予权限:sudo chmod 777 dev/ttyUSB0

永久权限:以后再加

然后运行:

source devel/setup.bash

roslaunch sbg_driver sbg_ellipseN.launch

source devel/setup.bash

roslaunch rslidar_sdk start.launch

source devel/setup.bash

rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIRT

source devel/setup.bash

roslaunch lio_sam run.launch

录制地图包:

rosbag record -o mybag.bag out /laser_cloud_surround

查看:rosrun pcl_ros bag_to_pcd mybag.bag /laser_cloud_surround mypcd

pcl_viewer xxxpcd (这里是查看一帧的数据)

录制点云包:

rosbag record -o mybag.bag out /velodyne_points /imu_raw

如果想要保存地图,需要对config/params.yaml文件进行如下修改

# 保存地图设置为true

savePCD: true

# 设置地图保存路径

savePCDDirectory: "自己设置的路径"

注意:这里的路径是home folder, starts and ends with "/",即在home folder下建立一个文件夹即可。

更改了配置文件后,还需更改一下_TIMEOUT_SIGINT参数,否则可能造成地图保存失败(这是由于ros会在_TIMEOUT_SIGINT秒后关闭ros节点,但是地图过大时,保存地图会花费一些时间,如果_TIMEOUT_SIGINT太小,很可能造成地图还未保存,节点就已经关闭了,所以需要适当调高_TIMEOUT_SIGINT值),具体方法如下:

sudo gedit /opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py

找到_TIMEOUT_SIGINT并调整数值(默认15s,参考值60s)

还有一个方法是直接终端敲:

rosservice call /lio_sam/save_map 0.2 "/data/"

保存下来的pcd文件:

CC打开:

IMU内参和IMU与雷达外参在低速运行的情况下建图效果差距不大,也就是我们可以不用标定,直接用理论值就行。只要保证IMU使用正常即可,即是保证IMU运动方向与车前进方向相同,不然点云会错乱。后面再对比几个基于雷达的SLAM框架数据。

标签: cd22激光传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台