vrep 深度相机(Vision Sensor)的内参计算

在vrep做机器人视觉抓取实验时,需要用到深度相机,在vrep中深度相机的实现是使用vision_sensor(详细说明参考帮助文档的[V-REP User Manual -> Entities(scene objects and collections) -> scene objects -> vision sensors])。本文描述如何计算perspective_mode的相机内参。

相机内参

关于相机内参参考:相机针孔模型详解

vision_sensor相关参数

vision_sensor需要与内参相关的参要有:透视角(Persp. angle)以及分辨率(Resolution X/Y)。
vrep 深度相机(Vision Sensor)的内参计算

内参计算

vrep 深度相机(Vision Sensor)的内参计算

上图为相机针孔模型的示意图,vision_sensor参数中的透视角是指最大透视角,也就是$\angle{AEC}$$\angle{BED}$中的最大值。

设最大透视角为 ∠ B E D \angle{BED} ∠BED。

图中主距为 O E OE OE,设分辨率为 ( r x , r y ) (r_x,r_y) (rx​,ry​)

设, f = O E , α = ∠ B E D , l x = B D , l y = A C , l x l y = r x r y = β f=OE, \alpha=\angle{BED}, l_x=BD, l_y=AC,\\\frac{l_x}{l_y}=\frac{r_x}{r_y}=\beta f=OE,α=∠BED,lx​=BD,ly​=AC,ly​lx​​=ry​rx​​=β

则有,

l x / 2 f = tan ⁡ α 2 \frac{l_x/2}{f} = \tan{\frac{\alpha}{2}} flx​/2​=tan2α​

相机内参

a x = f d x = f l x / r x = f l x × r x = r x 2 tan ⁡ α 2 a_x=\frac{f}{dx} =\frac{f}{l_x/r_x}=\frac{f}{l_x}\times r_x=\frac{r_x}{2\tan{\frac{\alpha}{2}}} ax​=dxf​=lx​/rx​f​=lx​f​×rx​=2tan2α​rx​​

同理可以求得 r y = r x 2 tan ⁡ α 2 r_y=\frac{r_x}{2\tan{\frac{\alpha}{2}}} ry​=2tan2α​rx​​

相机内参: K = [ a x 0 u 0 0 a y v 0 ] = [ r x 2 tan ⁡ α 2 0 r x 2 0 r x 2 tan ⁡ α 2 r y 2 ] K=\begin{bmatrix} a_x & 0& u_0 \\ 0 & a_y & v_0 \\ \end{bmatrix} =\begin{bmatrix} \frac{r_x}{2\tan{\frac{\alpha}{2}}} &0 & \frac{r_x}{2} \\ 0 &\frac{r_x}{2\tan{\frac{\alpha}{2}}} &\frac{r_y}{2} \end{bmatrix} K=[ax​0​0ay​​u0​v0​​]=[2tan2α​rx​​0​02tan2α​rx​​​2rx​​2ry​​​]

上一篇:数学笔记21——三角替换2(tan和sec)


下一篇:角度测量(AOA/DOA)室内定位-迭代最小二乘和高斯牛顿法\MATLAB