激光雷达和相机的坐标转换以及联合标定

  • 1.坐标系说明
    • 2.坐标系转换
      • 3.基于autoware功能包的联合标定

1.坐标系说明

1)Lidar坐标系
激光雷达坐标系可以描述物体与激光雷达的相对位置,表示为[XL, YL, ZL],其中原点为激光雷达几何中心,XL轴水平向前,YL轴水平向左,ZL轴竖直向上,符合右手坐标系规则。

2)相机坐标系
相机坐标系可以描述物体与相机的相对位置,表示为[XC, YC, ZC],其中原点为相机光心 O 点,XC 轴与 x 轴平行,YC 轴与 y轴平行,ZC轴与摄像机光轴平行,与图像平面垂直。

3)图像坐标系
图像坐标系指在图像像素坐标系下建立以物理单位(如毫米)表示的坐标系,使像素尺度具有物理意义,表示为[x, y],其中原点为相机主点,即相机光轴与图像平面的交点,一般位于图像平面中心,x 轴与 u 轴平行,y 轴与 v 轴平行;

4)像素坐标系
像素坐标系表示为[u, v],其中原点为图像左上角,u 轴水平向右,v 轴竖直向下;

2.坐标系转换

1)世界坐标系到相机坐标系的转换
世界坐标系和相机坐标系同处于三维空间下,主要是坐标原点与各个轴的方向不同,所以进行刚体变换就ok了(R为3x3旋转矩阵,T为3x1平移矩阵)


2)相机坐标系到图像坐标系的转换
相机坐标系与图像坐标系为透视投影的关系。


f为相机的焦距,相机坐标系下点p与图像坐标系下投影点p(x,y)的坐标关系为:

最终的转换关系为:

3)图像坐标系与像素坐标系的转换
图像坐标系与像素坐标系为平移转换关系,o1->像素坐标系原点,o->图像坐标系原点 ;示意图如下:

点o在像素坐标系下的坐标为(Uo,Vo),变换公式为:

式中 dx 和 dy 分别为单个像素在像平面的长和宽,转换为矩阵:

最后,激光雷达和相机的坐标转换关系为:

3.基于autoware功能包的联合标定

autoware的安装很是烦人,网上又说有独立出来的calibration toolkit,但是在安装编译的时候也总是报错,最后找到了autoware的功能包,标定过程做个记录。

1)功能包下载编译

在AUTOWARE_AI 下找到uilits中的autoware_camera_lidar_calibrator包,根据launch文件要求下载其他的功能包,并放置在一个工作空间下编译。主要是以下三个需要在autoware其他文件夹中找到。其中image_view2 用sudo apt-get install ros-melodic - image_view2 安装即可

 <node pkg="calibration_publisher" type="calibration_publisher" name="calibration_publisher" ns="$(arg camera_id)"><node pkg="image_processor" type="image_rectifier" name="rectifier" ns="$(arg camera_id)" output="screen"><node pkg="image_view2" type="image_view2" name="image_view2" ns="$(arg camera_id)" output="screen"><remap from="image" to="image_rectified" />

2)相机内参标定

运行命令:

rosrun autoware_camera_lidar_calibrator cameracalibrator.py --square 0.108 --size 8x6 image:=/camera/image_raw

将image的topic换成你自己的,当出现calibrate后点击,过一会儿再点save就会保存一个yaml文件;

3)联合标定

roslaunch autoware_camera_lidar_calibrator camera_lidar_calibration.launch intrinsics_file:=/home/zqh/***.yaml image_src:=/camera/image_raw

忘记拍照了,大致流程,需要找一个人站在摄像头范围内移动9次;每移动一次首先点击一下image_rectify上面的人的位置,然后在rviz中的对应人的点云上点publish_point(选择点云时最好选择拐点或者是交叉点)。

重复9次之后,会在home下生成标定文件。

激光雷达和相机的坐标转换以及联合标定相关推荐

  1. 激光雷达和相机联合标定之开源代码和软件汇总(2004-2021)

    作者丨十点雨@知乎 来源丨https://zhuanlan.zhihu.com/p/404762012 编辑丨3D视觉工坊 LiDAR Camera Calibration (LCC)系列,主要介绍激 ...

  2. 绝了!多个激光雷达和相机的快速且鲁棒的外参标定方法(代码开源)

    文章:Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras 作者:Xiyuan Liu , Chongjian ...

  3. ZED2跑ORB-SLAM3+双目相机、IMU联合标定+显卡驱动与cuda/cudnn安装

    一.引言 同样是项目需求,需要利用视觉惯性导航做一些开发,所以第一步先做些算法的测试–仿真与实物测验,通过仿真的测试结果,最终是决定使用ORB-SLAM3来完成任务,当然了,Vins-fusion作为 ...

  4. 点云,联合标定与信息融合

    点云 点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合. 参考资料: https://blog.csdn.net/hongju ...

  5. 小觅相机问题解决后开始进行标定的事

    小觅相机问题解决后开始进行标定的事项: 0:一定确保环境安装正常,这里出了问题就等于白给,测试环境可以参考https://blog.csdn.net/u011392872/article/detail ...

  6. LMS151-10100单线激光雷达与RealSense双目相机的联合标定

    一丶标定板的准备 棋盘格规格使用A4纸大小,角点(图7中红色.绿色圆圈标记)数分别为8个及6个,单个棋盘格为0.024mm*0.024mm的正方形. 将打印出的高清A4大小棋盘格粘贴在平整.坚硬的平面 ...

  7. 使用autoware的calibration_toolkit联合标定双目相机和激光雷达(ZED and VLP-16)

    准备工作 Ubuntu18.04+ROS Melodic ZED ROS环境配置与相机内参标定 Velodyne ROS环境配置 OpenCV 3.2.0 一.编译calibration_toolki ...

  8. 开源代码和软件汇总!激光雷达和相机联合标定(2004-2021)

    作者 | 十点雨  编辑 | 我爱计算机视觉 原文链接:https://zhuanlan.zhihu.com/p/404762012 点击下方卡片,关注"自动驾驶之心"公众号 AD ...

  9. 激光雷达和相机的联合标定

    最近在做相机和激光雷达的联合标定,花费了大把力气. 操作系统使用的设备: Ubuntu18.04 Velodyne VLP16激光雷达 Kinect DK相机 准备工作 相机的sdk安装和ros相关文 ...

最新文章

  1. AI端计算产业应用:如何快速训练高精度模型并在设备端加速计算 | 公开课报名...
  2. python编辑器和终端_从python curses程序运行终端文本编辑器
  3. 【NLP】Transformers 源码阅读和实践
  4. macrotask和microtask以及EventLoop的介绍
  5. 【图像处理】——在plt绘制的坐标窗口中,捕获鼠标点,在右下角显示点的坐标
  6. with(nolock)解释
  7. 04.SpringBoot 自定义配置
  8. PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
  9. linearlayout布局的属性 gravity layout_gravity layout_weight
  10. win10系统镜像文件iso下载教程
  11. T5:Exploring the Limits of Transfer Learning with a UnifiedText-to-Text Transformer
  12. 这是最好的时光,这是最坏的时光 SNAPSHOT
  13. 解决“任务管理器已被系统管理员停用”的问题
  14. 求逆序数-第12届蓝桥杯Scratch省赛3真题第3题
  15. 二维数组 string[,]
  16. RT-Thread应用实战-TI温湿度HDC1000软件包设计与制作
  17. Windows10安装Ubuntu子系统+配置SSH连接+安装xfce4图形界面+配置xrdc远程桌面连接
  18. Python开发环境之pyenv环境搭建
  19. 每日启程——2019.12.13(古人学问无遗力,少壮工夫老始成)
  20. 帕斯卡三角形,二项式定理

热门文章

  1. 科普向 | Lucene,Solr,Elasticsearch之间的区别和联系
  2. 给头像加上绿帽子网站源码自行玩耍
  3. 关于javascript的unescape()函数
  4. 指令集os系统部署用户应用教程
  5. Nginx根据Pc端和手机端访问不同页面
  6. 计算机窗口颜色不能自定义,用RBG颜色设置自定义颜色
  7. 用python写12306系统_Python实现12306火车票抢票系统
  8. 哈理工OJ 1490 咒语(BFS广度优先搜索)
  9. 996普遍吗_网络常识不是太普遍
  10. 景安网络:根植中原厚土发力云计算巅峰