专栏系列文章如下:

一: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, 可跳过)

修改CMakeLists.txt

(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工作空间,在工作空间编译。

GitHub下载rs雷达话题转velodyne雷达话题

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

并编译,可放在同个工作空间编译。

编译LIO-SAM,前面有讲,可放在同个工作空间编译。

SBG AHRS传感器驱动安装:

SBG传感器具体如何通过上位机或者yaml文件更改配置,这个部分之前有讲过。

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

下载并编译最新的源码:

cd catkin_ws/src

git clone https://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 xxx.pcd (这里是查看一帧的数据)

录制点云包:

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框架数据。

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

  1. 十九.激光和惯导LIO-SLAM框架学习之项目工程代码介绍---代码框架和一些文件解释

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  2. 十五.激光和惯导LIO-SLAM框架学习之惯导与雷达外参标定(1)

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  3. 十四.激光和惯导LIO-SLAM框架学习之惯导内参标定

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  4. 十七.激光和惯导LIO-SLAM框架学习之IMU和IMU预积分

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  5. LVI-SAM:紧耦合的激光视觉惯导SLAM系统(Tixiao Shan新作,已开源)

    论文地址:在公众号「3D视觉工坊」,后台回复「LVI-SAM」,即可直接下载. 我相信很多人对激光视觉惯导融合的系统都是这样设计的,但是最难的是把自己的想法保质保量的实现出来.我们做不到但是大佬可以! ...

  6. 3D惯导Lidar SLAM

    3D惯导Lidar SLAM LIPS: LiDAR-Inertial 3D Plane SLAM 摘要 本文提出了最近点平面表示的形式化方法,并分析了其在三维室内同步定位与映射中的应用.提出了一个利 ...

  7. LVI-SAM:使用SAM的激光-视觉-惯导紧耦合里程计

    转载自:https://mp.weixin.qq.com/s/MlN-0BD9rAdJwsVco7TRlg LVI-SAM:使用SAM的激光-视觉-惯导紧耦合里程计 原创 泡泡机器人 泡泡机器人SLA ...

  8. LIO-SAM: 紧耦合的激光与惯导里程计方案

    点云PCL免费知识星球,点云论文速读. 标题:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 作者 ...

  9. 立体视觉+惯导+激光雷达SLAM系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:Stereo Visual Inertial LiDAR Simultaneous Locali ...

最新文章

  1. BorderDet(论文解读)
  2. python连接ssh执行模块_python ssh之paramiko模块使用
  3. 浅谈SQL Server内部运行机制
  4. 微信小程序tabBar不显示的问题描述解决
  5. java-自定义数据排序
  6. 使用SecureCRT录制自动脚本
  7. vue 路由知识点梳理及应用场景整理
  8. mysql 5.6.36安装图解_2017年12月聚合文章--实战-Mysql5.6.36脚本编译安装及初始化 | 码友网...
  9. 自动放大_放大招!滴滴自动驾驶汽车通过图灵测试,quot;车技quot;不输老司机...
  10. android 画笔
  11. 一级调研员比三级调研员退休金高多少?
  12. python web编程 创建一个web服务器
  13. wi ndows防火墙,网吧的防火墙怎么关?四种方法关闭WINDOWS防火墙
  14. php求闰年的公式,php判断闰年(闰年计算方法)
  15. 我和宁夏日报 【白述礼】
  16. IM 即时通讯系统【源码好优多】
  17. 华勤技术股份有限公司
  18. 主进程、子进程和守护进程
  19. sohc和vtec的关系
  20. 如何区别画面分割器、视频矩阵和延长器

热门文章

  1. P2P之UDP穿透NAT的原理与实现(附源代码)(转)
  2. AV Linux MX-21 来了,多媒体创作者梦想成真
  3. 在大连做安天技术论坛 GuessMe1
  4. 无意中又喜获一本好书——《操作系统真相还原》——郑钢 著
  5. Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time
  6. vue3使用的移动端UI框架,vue3.0 ui组件库
  7. 【世界读书日】2023年通信好书推荐
  8. 计算机等级节日综合症,警惕孩子节日综合症
  9. STM32F103点亮LED灯
  10. GIAC 技术大会 Redis 演讲文字稿