目录

一、基本概念

 二、转换公式

三、应用场景


一、基本概念

旋转向量为三维向量表示形式,用旋转向量表示旋转变换,可以将其方向为旋转轴方向,模为旋转角度。三维空间的旋转变换为绕任意轴r旋转【入门】(一)旋转向量与旋转矩阵角,可以分解为分别绕X,Y,Z轴旋转【入门】(一)旋转向量与旋转矩阵角,将绕坐标轴旋转表达为矩阵形式有:

【入门】(一)旋转向量与旋转矩阵

图源:https://blog.csdn.net/hongbin_xu/article/details/78929006 ,以绕X轴为例,推导过程如下所示

【入门】(一)旋转向量与旋转矩阵

旋转矩阵R=RxRyRz;

 二、转换公式

旋转矩阵和旋转向量之间的转换公式如下:

假设有单位旋转向量【入门】(一)旋转向量与旋转矩阵,旋转角度为【入门】(一)旋转向量与旋转矩阵,旋转矩阵为R,那么r到R的转换如下,称为

罗德里格斯(Rodrigues)变换。

【入门】(一)旋转向量与旋转矩阵

在opencv中两者的转换用

int cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian=0 );
/*
*src为输入的旋转向量(3x1或者1x3)或者旋转矩阵(3x3)。

*dst为输出的旋转矩阵(3x3)或者旋转向量(3x1或者1x3)。

*jacobian为可选的输出雅可比矩阵(3x9或者9x3),是输入与输出数组的偏导数。
*/

推导过程:参考https://blog.csdn.net/hongbin_xu/article/details/78929006

三、应用场景

矩阵运算显然是计算机三维坐标变换最简单方便的计算方法,因此在 opencv、opengl、工业机器人等开发中,提到位姿旋转变换,多半用的是旋转矩阵。然而,用矩阵来表示一个旋转关系有两个缺点: 
首先,通过旋转矩阵不能直观地看出旋转的方向和角度,假设给定一个旋转矩阵,要求旋转方向不变,旋转角度变成一半,那么新的旋转矩阵计算起来就比较麻烦了。 
另一方面,旋转变换本身只有3个自由度,但旋转矩阵有9个元素,因此旋转矩阵中的元素不是相互独立的,这在非线性优化中会带来问题。
参考:https://blog.csdn.net/mightbxg/article/details/79363699 

相关文章:

  • 2022-01-08
  • 2022-01-08
  • 2018-05-21
  • 2022-01-08
猜你喜欢
  • 2022-01-05
  • 2022-01-11
  • 2022-12-23
  • 2021-10-22
相关资源
相似解决方案