#每周一篇论文4#[感知]毫米波雷达与摄像头联合标定

2023-05-16

文章目录

  • 源代码下载
  • 系列其他资源
  • 一、坐标系说明
    • 1.1 摄像头相关坐标系
    • 1.2 毫米波雷达相关坐标系
    • 1.3 GPS相关坐标系
    • 1.4 车体相关坐标系
    • 1.5 其他坐标系
      • 1.5.1 左右手坐标系
  • 二、毫米波和摄像机联合标定
    • 2.1 毫米波 O X r Y r Z r OX_rY_rZ_r OXrYrZr坐标系转摄像机 O X c Y c Z c OX_cY_cZ_c OXcYcZc坐标系
  • 附录A: 旋转矩阵的推导
    • 二维旋转
      • 法一
      • 法二
    • 三维旋转
  • 附件B:三角公式

源代码下载

  • 开源付费版:https://download.csdn.net/download/hgz_gs/15546455
  • 半开源-体验版:https://download.csdn.net/download/hgz_gs/15546407

系列其他资源

激光雷达外参数自标定
激光雷达标定

一、坐标系说明

下图为车载6个摄像头、1个360度激光雷达、5个毫米雷达、1个GPS及1个惯性测量传感器以及车体base坐标系的坐标系框图。

传感器类型X轴方向Y轴方向Z轴方向原点
Camera
Radar
Lidar
GPS
IMU
车体base坐标系车辆后轴中心

1.1 摄像头相关坐标系

1.2 毫米波雷达相关坐标系

1.3 GPS相关坐标系

1.4 车体相关坐标系

1.5 其他坐标系

1.5.1 左右手坐标系

左手坐标系:伸开我们的左手, 掌心向外, 大拇指与食指成90度, 中指、无名指和小指弯曲, 大拇指指向的方向就是X轴正方向, 食指指向的方向就是Y轴正方向, 中指、无名指和小指指向的方向就是Z轴正方向。用左手的大拇指指向轴的正方向,弯曲手指。那么手指所指示的方向即是轴的正旋转方向。

右手坐标系:伸开我们的右手, 掌心向内, 大拇指与食指成90度, 中指、无名指和小指弯曲, 大拇指指向的方向就是X轴正方向, 食指指向的方向就是Y轴正方向, 中指、无名指和小指指向的方向就是Z轴正方向。用右手的大拇指指向轴的正方向,弯曲手指。那么手指所指示的方向即是轴的正旋转方向。

左手坐标系和右手坐标系中, X轴和Y轴的方向是相同的, Z轴的方向相反。在计算机中通常使用的是左手坐标系,而数学中则通常使用右手坐标系。

在这里插入图片描述

二、毫米波和摄像机联合标定

传感器类型X轴方向Y轴方向Z轴方向坐标系
Camera O X c Y c Z c OX_cY_cZ_c OXcYcZc
Radar O X r Y r Z r OX_rY_rZ_r OXrYrZr

2.1 毫米波 O X r Y r Z r OX_rY_rZ_r OXrYrZr坐标系转摄像机 O X c Y c Z c OX_cY_cZ_c OXcYcZc坐标系

假设毫米传感器在摄像机坐标系下的坐标为 X o f f s e t Y o f f s e t Z o f f s e t X_{offset}Y_{offset}Z_{offset} XoffsetYoffsetZoffset O X r Y r Z r OX_rY_rZ_r OXrYrZr坐标系在 O X c Y c Z c OX_cY_cZ_c OXcYcZc坐标系下的姿态为 ( α , β , γ ) (\alpha,\beta,\gamma) (α,β,γ)(俯仰角pitch、航向角yaw、翻滚角roll);在 X c X_c Xc轴的旋转矩阵为 R x R_x Rx, 在 Y c Y_c Yc轴的旋转矩阵为 R y R_y Ry, 在 Z c Z_c Zc轴的旋转矩阵为 R z R_z Rz;则由前左天 O X r Y r Z r OX_rY_rZ_r OXrYrZr坐标系转右地前 O X c Y c Z c OX_cY_cZ_c OXcYcZc坐标系:
{ X c = R x ( − Y r ) + X o f f s e t Y c = R y ( − Z r ) + Y o f f s e t Z c = R z ( X r ) + Z o f f s e t \begin{cases} X_c = R_x (- Y_r) + X_{offset} \\ Y_c = R_y (- Z_r) + Y_{offset} \\ Z_c = R_z ( X_r) + Z_{offset} \end{cases} Xc=Rx(Yr)+XoffsetYc=Ry(Zr)+YoffsetZc=Rz(Xr)+Zoffset

写成矩阵的形式:
[ X c Y c Z c ] = { [ 1 0 0 0 c o s ( α ) s i n ( α ) 0 − s i n ( α ) c o s ( α ) ] [ c o s ( β ) 0 − s i n ( β ) 0 1 0 s i n ( β ) 0 c o s ( β ) ] [ c o s ( γ ) s i n ( γ ) 0 − s i n ( γ ) c o s ( γ ) 0 0 0 1 ] } { [ 0 − 1 0 0 0 − 1 1 0 0 ] ∗ [ X r Y r Z r ] } + { [ X o f f s e t Y o f f s e t Z o f f s e t ] } \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \end{matrix} \right] = \left\{ \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & cos(\alpha) & sin(\alpha) \\ 0 & -sin(\alpha) & cos(\alpha) \end{matrix} \right] \left[ \begin{matrix} cos(\beta) & 0 & -sin(\beta) \\ 0 & 1 & 0 \\ sin(\beta) & 0 & cos(\beta) \end{matrix} \right] \left[ \begin{matrix} cos(\gamma) & sin(\gamma) & 0 \\ -sin(\gamma) & cos(\gamma) & 0 \\ 0 & 0 & 1 \end{matrix} \right] \right\} \left\{ \left[ \begin{matrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \\ \end{matrix} \right] * \left[ \begin{matrix} X_r \\ Y_r \\ Z_r \end{matrix} \right] \right\} + \left\{ \left[ \begin{matrix} X_{offset} \\ Y_{offset} \\ Z_{offset} \end{matrix} \right] \right\} XcYcZc=1000cos(α)sin(α)0sin(α)cos(α)cos(β)0sin(β)010sin(β)0cos(β)cos(γ)sin(γ)0sin(γ)cos(γ)0001001100010XrYrZr+XoffsetYoffsetZoffset
接下来就是相机的标定原理了。

雷达转相机坐标系:
[ X c Y c Z c ] = { R ∣ T } { [ 0 − 1 0 0 0 − 1 1 0 0 ] ∗ [ X r Y r Z r ] } { [ 0 − 1 0 0 0 − 1 1 0 0 ] ∗ [ X r Y r Z r ] } + { [ X o f f s e t Y o f f s e t Z o f f s e t ] } \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \end{matrix} \right] = \left\{ R|T \right\} \left\{ \left[ \begin{matrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \\ \end{matrix} \right] * \left[ \begin{matrix} X_r \\ Y_r \\ Z_r \end{matrix} \right] \right\} \left\{ \left[ \begin{matrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \\ \end{matrix} \right] * \left[ \begin{matrix} X_r \\ Y_r \\ Z_r \end{matrix} \right] \right\} + \left\{ \left[ \begin{matrix} X_{offset} \\ Y_{offset} \\ Z_{offset} \end{matrix} \right] \right\} XcYcZc={RT}001100010XrYrZr001100010XrYrZr+XoffsetYoffsetZoffset
因为毫米波雷达的 Z r Z_r Zr为0,也就时相机坐标系的 Y c Y_c Yc为0,没有 Y c Y_c Yc坐标轴。对上式进行化简可得:
[ X c Y c Z c ] = { [ c o s ( β ) 0 − s i n ( β ) 0 1 0 s i n ( β ) 0 c o s ( β ) ] } { [ 0 − 1 0 0 0 − 1 1 0 0 ] ∗ [ X r Y r Z r ] } + { [ X o f f s e t Y o f f s e t Z o f f s e t ] } \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \end{matrix} \right] =\left\{ \left[ \begin{matrix} cos(\beta) & 0 & -sin(\beta) \\ 0 & 1 & 0 \\ sin(\beta) & 0 & cos(\beta) \end{matrix} \right] \right\} \left\{ \left[ \begin{matrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \\ \end{matrix} \right] * \left[ \begin{matrix} X_r \\ Y_r \\ Z_r \end{matrix} \right] \right\} + \left\{ \left[ \begin{matrix} X_{offset} \\ Y_{offset} \\ Z_{offset} \end{matrix} \right] \right\} XcYcZc=cos(β)0sin(β)010sin(β)0cos(β)001100010XrYrZr+XoffsetYoffsetZoffset

相机坐标系转像素坐标系:
z c 1 ( u v 1 ) = { [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ f 0 0 0 f 0 0 0 1 ] } { [ X c Y c Z c ] } z_{c1} \left( \begin{matrix} u \\ v \\ 1 \end{matrix} \right) = \left\{ \left[ \begin{matrix} \frac{1}{d_x} & 0 & u_0 \\ 0 & \frac{1}{d_y} & v_0 \\ 0 & 0 & 1 \end{matrix} \right] \left[ \begin{matrix} f & 0 & 0 \\ 0 & f & 0 \\ 0 & 0 & 1 \end{matrix} \right] \right\} \left\{ \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \end{matrix} \right] \right\} zc1uv1=dx1000dy10u0v01f000f0001XcYcZc

附录A: 旋转矩阵的推导

一般两坐标进行旋转变换时沿逆时针旋转。

二维旋转

法一

有点P(Pa,PYa)[(Xa,Ya)],当坐标由 x –> y 旋转 b(θ) 度后,求该点在新坐标轴的坐标是多少。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

法二

有点P(Xa,Ya),当坐标由 x –> y 旋转 θ 度后,求该点在新坐标轴的坐标是多少。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三维旋转

三维旋转,需要先搞清楚正、负方向(使用的是右手法则,在二维平面增加一维z,它的正方向朝向屏幕外)

绕x轴进行旋转(在yz平面逆时针旋转):

在这里插入图片描述

绕y轴进行旋转(在zx平面逆时针旋转):

在这里插入图片描述

绕z轴进行旋转(在xy平面逆时针旋转):

在这里插入图片描述

参考:https://mathworld.wolfram.com/RotationMatrix.html

附件B:三角公式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

#每周一篇论文4#[感知]毫米波雷达与摄像头联合标定 的相关文章

随机推荐

  • Qt局域网聊天(群聊和私聊)

    本次设计是一个简易的局域网聊天 xff0c 功能设计主要分为群聊和私聊两部分 xff0c 每部分都支持基础聊天以及文件传输功能 参考了 Qt及Qt Quick开发实战精解 中群聊实例 xff0c 在群聊的基础设计了私聊这部分内容以及其他一些
  • 基于Qt、FFMpeg的音视频播放器设计一(准备环境)

    前言 xff1a 整个项目的源代码 https download csdn net download hfuu1504011020 10672140 最近刚完成基于Qt FFMpeg的音视频播放器相关C 43 43 程序 xff0c 实现了
  • 基于Qt、FFMpeg的音视频播放器设计二(FFMpeg视频处理)

    在上一篇中我们介绍了如何在VS2013中配置文件以及FFMpeg的开发环境准备 xff0c 本篇我们说下视频处理的原理以及实现 对于视频的处理我们这里对它分开总结 xff0c 不然看起来会显得很冗余复杂 xff0c 不易理解 主要分为以下几
  • 基于Qt、FFMpeg的音视频播放器设计三(Qt界面设计及OpenGL绘制视频)

    本部分总结了一下界面绘制和OpenGL绘制视频 xff0c 由于使用的是Qt的openGL xff0c 功能上没有那么复杂 xff0c 实现起来也比较简单 xff0c 毕竟人家已经给封好的 xff0c 完整的代码中使用OpenGL绘制视频
  • 基于Qt、FFMpeg的音视频播放器设计四(视频播放进度控制)

    上面介绍了如何使用opengl绘制视频和Qt的界面设计 xff0c 也比较简单 xff0c 现在我们看下如何控制视频播放及进度的控制 xff0c 内容主要分为以下几个部分 1 创建解码线程控制播放速度 2 通过Qt打开外部视频 3 视频总时
  • VS2008中Unicode编码转UTF-8编码

    今天在pc客户端传数据 Json格式 给服务端时 在存储到数据库 Mysql 时总是出现乱码现象 xff0c 使用的是http协议 xff0c 以及json的解码 后一篇说明 这里我们先说下转码 在vs2008中编码方式有Unicode编码
  • 串口显示乱码的原因总结

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • Linux出现Input/output error

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • 错误 expected '}' before ' ' token

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • 浅谈C语言中的布尔(bool)类型

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • C++类成员空间分配和虚函数表

    C 43 43 类成员空间分配和虚函数表 xff0c 非常详细的一篇文章 xff0c 受益匪浅 https www cnblogs com secondtonone1 p 7205108 html utm source 61 itdadao
  • 外部时钟与内部时钟区别 作用 使用条件

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • Ghostscript的介绍和移植

    关于ghostscript 以下简称gs Gs是一个地下工作者 xff0c 一般用户不熟悉它 xff0c 因为它上不和用户直接打交道 xff0c 下不直接接触打印机 但是在打印工作中它却扮演了极为重要的解色 一般从用户常见文件如图片或者wo
  • PPPoE on Android

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow P
  • 文件编程 创建目录mkdir 函数

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow L
  • VFY unable to resolve virtual method Landroid/support/v4/

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow 使
  • CUPS移植记录

    分享一下我老师大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到我们人工智能的队伍中来 xff01 https blog csdn net jiangjunshow C
  • gazebo多机器人仿真和move_base,diff_drive等gazebo包配置

    gazebo中的多机器人仿真指的是在gazebo中加入多个urdf xff0c 并控制机器人运动 下面是我总结的一些名称的命名规律 1 joint名称 在spawn model中 xff0c 通过 model model name添加参数
  • Golang语言移植-ARM开发环境搭建

    开发环境介绍 主机操作系统 xff1a Ubuntu14 04 64位目标平台 xff1a IMX 6Q ARM Cortex A9内核交叉工具链 xff1a arm poky linux gnueabi xff0c gcc4 9 1Go版
  • #每周一篇论文4#[感知]毫米波雷达与摄像头联合标定

    文章目录 源代码下载系列其他资源一 坐标系说明1 1 摄像头相关坐标系1 2 毫米波雷达相关坐标系1 3 GPS相关坐标系1 4 车体相关坐标系1 5 其他坐标系1 5 1 左右手坐标系 二 毫米波和摄像机联合标定2 1 毫米波 O X r