专栏系列文章如下:

一: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博客

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

十七.激光和惯导LIO-SLAM框架学习之IMU和IMU预积分_goldqiu的博客-CSDN博客

十八.多个SLAM框架(A-LOAM、Lego-loam、LIO-SAM、livox-loam)室外测试效果粗略对比分析_goldqiu的博客-CSDN博客

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

二十.激光、视觉和惯导LVIO-SLAM框架学习之相机内参标定_goldqiu的博客-CSDN博客

外参标定分为粗标定和精标定,先进行粗标定。

粗标定

录制相机和雷达的bag包(雷达和相机固定安装后,跟内参标定一样,需要在不同位置不同角度观测棋盘格,每种姿态保持几秒不动,方便在标定软件中截取雷达和相机帧),数据格式如下:

从github下载标定包(这是从autoware分离出来的相机雷达标定包)

https://github.com/XidianLemon/calibration_camera_lidar.git

需要安装nlopt2.5版本,在github上搜索下载。

安装依赖:

sudo apt-get install ros-kinetic-jsk-recognition-msgs 

需要注意的是ubuntu18.04需要对calibration_camera_lidar功能包下的CMakeLists.txt进行修改,添加ROS的melodic版本的支持,修改CMakeLists.txt中所有 (indigo|jade|kinetic) 为 (indigo|jade|kinetic|melodic)

编译问题

CMakeFiles/calibrationtoolkit.dir/CalibrationToolkit/calibrationtoolkit.cpp.o: In function nlopt::opt::get_errmsg() const': /usr/local/include/nlopt.hpp:516: undefined reference tonlopt_get_errmsg’ 

这个错误应该是重复安装冲突了。解决办法:

sudo apt remove libnlopt-dev

运行实现:先运行bag如下(需要将话题改成标定包支持的):

rosbag play your.bag /velodyne_points:=/points_raw /hikrobot_camera/rgb:=/image_raw

工作空间执行:

rosrun calibration_camera_lidar calibration_toolkit

先选择/image_raw话题,再选择如下:

注意要改棋盘格的大小和数量(数量指的是长宽的角点数据,不是格子数量),改了之后重新启动才会生效,具体操作在下面文章:

https://blog.csdn.net/nuo112/article/details/116404760

将雷达视角调至合适,如下:

播放bag,找到合适的标定位置后暂停播包,点击Grab,会截取一帧雷达和相机数据,在雷达数据上鼠标点击雷达线束(选择相机标定板的线束),完成一帧数据的标定,重复以上过程大约20次左右,点击Calibrate,会生成外参矩阵。

其实这个过程就是通过人为的在上位机选取标定板线束在雷达的位置(构建约束),通过建立多个方程(超定方程),求一个最优的雷达到相机变换矩阵(求解优化问题)。

精标定

为什么需要精标定?

因为这样标定出来的变换矩阵误差比较大,只是点云大致投射在了图像的标定板上,需要进一步的标定三个小角度,这会影响数据融合的效果和后续建图定位的精度。

二十一.激光、视觉和惯导LVIO-SLAM框架学习之相机与雷达外参标定(1)相关推荐

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

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

  2. 二十.激光、视觉和惯导LVIO-SLAM框架学习之相机内参标定

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

  3. mynt product model: D1000-IR-120标定相机和IMU外参之二

    1. 在之一中使用kalibr标定mynt相机和内置imu的外参数,使用的是720p,30fps的双目图像和200hz的imu数据,标定结果误差比较大,这一次我们改用480p,60hz的双目图像和20 ...

  4. SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

    SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置. 本系列文章主要 ...

  5. 十二.激光SLAM框架学习之livox-loam框架安装和跑数据集

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

  6. 3D惯导Lidar SLAM

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

  7. 九.激光SLAM框架学习之LeGO-LOAM框架---速腾Robosense-16线雷达室外建图和其他框架对比、录包和保存数据

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

  8. 十三.激光SLAM框架学习之livox-Mid-70雷达使用和实时室外跑框架

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

  9. 十.激光SLAM框架学习之LeGO-LOAM框架---算法原理和改进、项目工程代码

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

最新文章

  1. VIPER 和 MVVM 到底有什么区别
  2. 项目展示文案生成设计
  3. Windows CE 6.0正式发布 源代码100%开放
  4. 一些信号与自己的卷积结果
  5. 牛客练习赛7 E 珂朵莉的数列
  6. MySQL的介绍以及使用
  7. Matlab绘图详细总结
  8. 2021 第三封拒信 来自牛津大学自主智能机器和系统 Autonomous Intelligent Machines and Systems
  9. 在ADF 12.2.1.3中使用基于JSON的REST Web服务
  10. 武术与软件设计 - 简单即是最好
  11. 针对“云计算”服务安全思路的改进-花瓶模型V4.0
  12. BZOJ4591 SHOI2015超能粒子炮·改(卢卡斯定理+数位dp)
  13. access_token is invalid or not latest hint
  14. VIIRS 学习资料分享
  15. Win7上USB转串口芯片ch341驱动安装方法
  16. 三大变换与自控(五)三角函数的正交性证明
  17. Tomcat 开启APR运行模式
  18. 自助缴费终端无线联网方案
  19. jQuery实现图片定时轮播
  20. python如何安装库(详细教程,解决弯路)

热门文章

  1. Cognos值提示设置小技巧
  2. C++知识整理(在此感谢大牛的整理)
  3. freemarker 模板填充乱码
  4. Java基础-环境变量设置及Java命令行使用
  5. 数据库开发基本操作-配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名...
  6. 程序员的算法课(1)-算法概述
  7. html矩形坐标理解,HTML canvas中translate()与rotate()的理解
  8. 什么情况下需要创建MySQL索引
  9. Sublime Text 2/3如何支持中文GBK编码(亲测实现)
  10. 廖雪峰JS教程学习记录----Map和Set