R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题

提示:以下全是自己编译实际运行SLAM工程实践中遇到的种种问题及如何解决相关问题

使用自己的相机和雷达实时运行R3LIVE、FAST-LIO2、FAST-LIVO等SLAM系统

  • 前言
    • 写这篇博客的主要目的:记录自己从零开始接触Linux、SLAM等,途中遇到的种种问题
  • 一、安装Ubuntu系统
    • 1.安装双系统
    • 2.采用VMware虚拟机安装Ubuntu
  • 二、ROS环境安装
  • 三、安装并编译相关SLAM系统
    • 1.R3LIVE
      • 1.自己实机运行遇到的状况
        • 1.1 问题一:抛出的opencv异常
        • 1.2 问题二:运行前imu、path、odometry抖动严重
        • 1.3 问题三:未做好imu、lidar和camera的时间同步,运行界面没有相应的相机frame更新
      • 2.相机内参标定(一定要采用定焦相机)
      • 3.相机和雷达外参标定
    • 2.FAST-LIVO
    • 2.FAST-LIO2
  • 四、amd显卡驱动安装(若不安装,运行SLAM相关系统时,系统默认的OpenGL渲染器的Rviz界面会很卡)
  • 总结


前言

第一次写博客,创作不易,还望多多支持。主要记录之前遇到的问题,方便以后查看,主要以R3LIVE为例进行探讨。

写这篇博客的主要目的:记录自己从零开始接触Linux、SLAM等,途中遇到的种种问题

一、安装Ubuntu系统

1.安装双系统

1、下载Ubuntu 20.04 LTS的ISO镜像文件。
2、制作启动U盘,使用rufus等工具来完成这个步骤。
3、为Ubuntu分配磁盘空间,你需要在Windows系统中创建一个空白分区来安装Ubuntu。
4、使用制作好的启动U盘启动计算机,并按照安装向导的指示进行安装。
Ubuntu双系统安装

2.采用VMware虚拟机安装Ubuntu

VMware安装和虚拟机上安装Ubuntu

二、ROS环境安装

强烈推荐鱼香ROS

wget http://fishros.com/install -O fishros && . fishros

依次进行:
5,更换系统源,更换系统源并删除旧源
1,ROS安装,系统版本是Ubuntu20.04–安装noetic,Ubuntu18.04–安装melodic,继续选择完整安装
3,rosdep更新,安装rosdepc,避免被墙。进行sudo rosdepc init;rosdepc update
4, 更新ROS环境设置


三、安装并编译相关SLAM系统

特别注意:在使用LIVOX雷达跑SLAM时,先安装livox-sdk,再编译安装livox_ros_driver,并在此窗口source后,再在此窗口cd到SLAM相关工作空间,再进行编译

1.R3LIVE

参考R3LIVE编译
R3live编译实机运行

1.自己实机运行遇到的状况

1.1 问题一:抛出的opencv异常

R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第1张图片
解决方案:可能有如下几个原因
1、相机分辨率和帧率过高
2、相机移动过快(有残影)
3、雷达和相机固定是否应尽量保持在同一视场下,(Livox avia雷达扫描的视场最前端有一部分无相应的点云)
4、相机内外参标定存在误差
5、rviz界面帧率极低(未装显卡驱动的原因),导致延迟卡顿
6、更换之前的变焦相机,改换成定焦相机(本人遇到的主要问题)

1.2 问题二:运行前imu、path、odometry抖动严重

R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第2张图片
解决方案:可以将配置参数中的是否允许在线标定相机内参设为0,从而让系统中的camera2imu在线标定时,在相机雷达移动SLAM建图过程中不会发生剧烈抖动
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第3张图片

1.3 问题三:未做好imu、lidar和camera的时间同步,运行界面没有相应的相机frame更新

R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第4张图片
解决方案:
方法1:软件同步
参考Rlive作者修改livox_ros_driver里面的lddc.cpp源码
然后重新编译livox_ros_driver
方法2:简单粗暴,硬件同步,可参考下面这篇博客
硬件同步

2.相机内参标定(一定要采用定焦相机)

采用matlab棋盘格标定方法,拍摄不同角度的棋盘格图片,选择内参标定Option设置里面的3维径向和切向畸变
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第5张图片
点击Calibrate,然后Export Camera Parameters
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第6张图片
然后回到工作区,查看相关参数
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第7张图片

3.相机和雷达外参标定

方法1:港科大方法
将相机和雷达牢牢固定好之后,利用录制bag包转pcd和一张image,自动标定,注意相关的参数修改,尤其注意室内还是室外
成功标定的示例(点云几乎和RGB图像边沿配准并重合)
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第8张图片
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第9张图片
方法2:b站大佬自己手敲代码gitee
建议查看大佬的b站视频教程在线标定和bag标定
我本人还未对此方法进行测试,但是感觉效果很好,大家可以试一下,或者还有其他的标定方法

最后实时成功运行的界面,并形成闭环:

2.FAST-LIVO

使用D435i+Avia跑Fast-LIVO
效果没有R3LIVE好,但是也值得一试,也是港大火星实验室大佬们的成果,这里我就不展示了。

2.FAST-LIO2

FASTLIO2编译运行
成功闭环的结果,大家只要R3LIVE搞定了,FASTLIO2自然不是问题(毕竟只有雷达嘛 哈哈哈哈哈)。
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第10张图片

四、amd显卡驱动安装(若不安装,运行SLAM相关系统时,系统默认的OpenGL渲染器的Rviz界面会很卡)

1、测试环境:lenovo+amd显卡
2、先升级内核到最新版本,然后再返回原来内核版本(谨慎使用,注意备份资料),最后再安装显卡驱动,然后重启系统后,自动进入最新版本内核
(采用脚本文件脚本文件安装最新Linux内核)
3、默认情况下,AMD Radeon 驱动程序在 Ubuntu 基础存储库中不可用。 可将 PPA AMD Radeon 驱动程序库添加到您的
Ubuntu 系统:sudo add-apt-repository ppa:oibaf/graphics-drivers
4、添加所有基本项目后,是时候运行系统更新并安装它了:
官网去获取最新的deb比较好(可以直接安装)
wget https://repo.radeon.com/amdgpu-install/5.4.2/ubuntu/focal/amdgpu-install_5.4.50402-1_all.deb
sudo apt-get install ./amdgpu-install_5.4.50402-1_all.deb
sudo apt update
sudo apt upgrade
sudo amdgpu-install
5、重启Ubuntu

反正这个安装过程很抽象,我自己也是不经意间安装好的,大家也可以尝试现在Windows上安装相关的显卡驱动后,看进入双系统中的Ubuntu系统或者虚拟机的Ubuntu,看能不能自动识别到相应显卡。
成功安装后的示例:
R3LIVE编译运行(自己数据集),用自己的设备实机操作中遇到的一系列问题_第11张图片

遇到的问题:
若出现显卡驱动安装问题,一直卡在登陆界面进不去(输入正确的密码也进不去)
1、尝试ctrl+fn+alt+f2进入图形字符界面(仅适用本人电脑,其他电脑的进入方法可能不同,有可能是ctrl+f1~f6其中一个)
2、然后卸载相关显卡驱动
sudo apt-get --purge remove nvidia*
sudo apt autoremove
3、返回图形操作可视化界面,进入Ubuntu,重新安装相关显卡驱动

最后,若是英伟达nvidia显卡驱动安装,请参考其他博客。

总结

第一次写博客,希望大家多多支持。最后,总结一下下,实践才是检验真理的唯一标准,只有自己尝试了,才会出现很多别人没有遇到的问题,然后自己上网查资料以及询问其他大佬解决相关问题。

你可能感兴趣的:(经验分享)