毫米波点云和摄像头坐标系转换

在组会的时候,被问到了这个问题,现在来对毫米波雷达数据和摄像头数据坐标转换进行说明。

本文解决两个问题:

1.坐标系如何转换

2.毫米波点云如何变为毫米波雷达图像(png后缀)

3.nuscenes数据集中的雷达点云形式

1.坐标系转换问题

1.1什么是世界坐标系?

在毫米波雷达点云转换过程中,我们需要用到世界坐标系。但其实它就是一个假象的三维坐标系。它的作用是雷达坐标->世界坐标->摄像头坐标。此外,由于雷达和摄像头安装位置不一样,所以它们存在于不同的“空间”,那么我们就需要利用一个中间变量进行转换,来描述摄像机和雷达的位置。

1.2世界坐标系如何转为摄像头坐标系?

摄像头坐标系和世界坐标系如下图所示,我们需要明白,现在我们是通过世界坐标系来表示摄像头坐标系,相当于就是说把世界坐标系中的一个点转为摄像头坐标系中。

毫米波点云和摄像头坐标系转换_第1张图片

这个图的区别就是摄像头坐标系往右下方向倾斜了。那么对于世界坐标系下的一个点来说,它想变为摄像头坐标系下,是不是就是把点也进行右下方倾斜呢?没错,就是这个原理。

Fixer_itb现在来看看具体如何倾斜的。(引用Fixer_itb的图)

毫米波点云和摄像头坐标系转换_第2张图片

 黑色坐标为世界坐标系,蓝色为摄像头坐标系。红点开始是世界坐标系下一点。根据三角形原理。我们来推导一下y->yc

首先先做一下辅助线。三条垂直线。

毫米波点云和摄像头坐标系转换_第3张图片

 

现在的yc是两部分组成,分别是1,2所对应线段。其中1的长度计算为ycosθ,2为zsinθ。因此yc长度就算出来了。此时需要强调,我们现在是转动x轴,因为在保持x轴不变情况下,z,y轴发生了变换。同理,对于转动其他轴都可以推导。

最后的结果如下。

毫米波点云和摄像头坐标系转换_第4张图片

 最后,在满足了翻转的角度问题后,只需要平移一次,就可以把两个坐标系的中心点进行对准。

因此最后的公式如下:

 2.雷达坐标如何转为摄像头坐标?

我们上面说了,雷达坐标转换是通过先把雷达转为世界坐标系,通过世界坐标系再转为摄像头坐标系。因此本部分介绍如何把雷达坐标转为世界坐标系。

2.1雷达坐标系是什么?

毫米波雷达的坐标系是极坐标系,只有两个维度,分别是(R,α),其中R是距离,α是角度。这里补充一下,说雷达是三维坐标系的时候,它的维度是(x,y,z)其中是把z维度数据置为0了,x,y就是我们后续要做变换之后的数据。

下图是维度转换图

毫米波点云和摄像头坐标系转换_第5张图片

 通过简单推导即可从(R,α)->(x,y,z),其中z数据为0

到此,我们就完成了雷达数据转为世界坐标系。然后你把该世界坐标系转为摄像头坐标系即可。

3.关于nuscenes的补充

nuscenes数据集以及帮我们完成了从雷达坐标系转为世界坐标系,原因从下图可以看出。

毫米波点云和摄像头坐标系转换_第6张图片

 一个毫米波雷达点云数据包括18个通道,其中前三个为x,y,z只是z的数据为0.这个数据可以从下面结果看出。(借用皮皮鲁与鲁西西的图)在第18行数据就没了

毫米波点云和摄像头坐标系转换_第7张图片


 

你可能感兴趣的:(yolo,python,开发语言)