Advertisement

近日工作知识点(未整理版)

阅读量:

//opencv api接口介绍(全英)

https://docs.opencv.org/2.4/modules/refman.html

关于惯导角度信息(俯仰角、航向角、横滚角)的转换

载体的右、前、上三个方向构成右手系,绕向前的轴旋转就是横滚角,绕向右的轴旋转就是俯仰角,绕向上的轴旋转就是航向角。
俯仰角:机体坐标系X轴与水平面的夹角。当X轴的正半轴位于过坐标原点的水平面之上时,俯仰角为正,按习惯,俯仰角θ的范围为:-π/2≤θ≤π/2。

摘抄一段关于陀螺仪的描述:陀螺仪测量机体围绕某个轴向的旋转角速率值。使用陀螺仪测量飞机机体轴向的旋转角速率时,如果飞机在旋转,测得的值为非零值,飞机不旋转时,测量的值为零。因此,在60度横滚角的飞机上的陀螺仪测得的横滚角速率值为零,同样在飞机做水平直线飞行时,角速率值为零。可以通过角速率值的时间积分来估计当前的横滚角度,前提是没有误差的累积。陀螺仪测量的值会随时间漂移,经过几分钟甚至几秒钟定会累积出额外的误差来,而最终会导致对飞机当前相对水平面横滚角度完全错误的认知。因此,单独使用陀螺仪也无法保持飞机的特定航向。

惯导一般是由三个陀螺仪组成,分别测试俯仰角、航向角、横滚角的角度信息(当然惯导不仅仅这些数据),我们当前近关注着三个数据,计算他们与坐标系的转换关系。

在opencv中一般solvepnp所得结果为旋转向量的表达式,若需要转换至度或者弧度,需要二次转换,即通过rodrigues转至旋转矩阵R,再由R转至度(弧度)。那么rodrigues扮演着重要作用,其在opencv中有对应方法,可直接转换。若自己实现其功能,可参考如下code:

http://www.pudn.com/Download/item/id/2988718.html

补充一个计算旋转矩阵到欧拉角的计算文档(附件)

空间中两个物体关系,一般数学上,我们使用坐标系描述,归根结底就是坐标系的转换。而两个坐标系的转换有多种表示方法,如旋转矩阵R、平移矩阵T、旋转向量、欧拉角、还有上述的三个惯导角度(俯仰角、横滚角、航向角)等。那么实际工作中,肯定会遇到这几个表示方式的转换。那么接下来我们研究下转换关系。

旋转矩阵----->欧拉角:拉角由于和转动顺序有关,具体可参考:https://www.geometrictools.com/Documentation/EulerAngles.pdf

欧拉角---->旋转矩阵:上述链接中也有,这是最基本的刚体旋转理论;

旋转向量----->旋转矩阵:opencv中Rodrigues方法描述中有介绍。旋转向量其表示为空间一个向量,其方向为旋转轴,其向量的长度表示旋转的弧度,旋转时从向量的正向看满足右手定理;

旋转向量----->欧拉角:需借助旋转矩阵,即旋转向量----->旋转矩阵--->欧拉角。这两个转换,上面已经描述;

惯导信息(俯仰角、横滚角、航向角):三个角度为欧拉角。由于一般用于飞机,所以以飞机为例,飞行方向为x轴,飞机翅膀方向为y轴,z轴垂直于xoy平面。继续理解下三个角度在平面内的表示值。俯仰角 :飞机x轴与地球xoy平面的夹角(-90~90,向上飞为正);航向角 :飞机x轴在xoy平面上的投影与地球x轴的夹角(-180~180,向右为正,不满足右手定理);横滚角 :飞机xoy平面绕飞机自身x轴旋转的角度(0~360,逆时针为正)。所以若想通过这三个角度换成世界坐标系,三者顺序为围绕x轴顺时旋转一个横滚角Rx滚;再绕y轴旋转一个俯仰角Ry;再围绕z轴顺时针旋转一个航向角Rz航,这是绕运动轴的旋转关系,所以旋转矩阵为

Rz航Ry俯Rx滚。

计算时,注意两点,俯仰角的正负意义和计算时应该取反,和三个R的顺序问题。

相机标定:张氏标定法

1998年在论文:"A Flexible New Technique fro Camera Calibration"提出了基于单平面棋盘格的相机标定方法。

https://www.cnblogs.com/wangguchangqing/p/8335131.html

全部评论 (0)

还没有任何评论哟~