3D数学基础——四元数旋转公式的证明

文章出处: http://blog.csdn.net/ynnmnm/article/details/5568333

 

命题:设四元数 = a*i + b*j + c*k ,且 ^2 = -1 ;对于任意四元数 ,以 为轴正向旋转(右手坐标系 中逆时针方向,左手坐标系中顺时针方向)θ角度,得到向量 ’ ,则: ’ = r ^(-1) ,其中 r = cos( θ /2) + sin( θ/2) * u 。


证明: *r ^(-1) = 1 = r ^(-1) * r   ...... ( 1 )

在方程( 1 )两边同时乘以 的共轭 *,可以得到:

*=  r ^(-1) * r * r * = r ^(-1) * |r| ^2  ...... ( 2 )

又由: |r| ^2 = (cos( θ /2))^2 + (sin( θ /2))^2* ( a^2 + b^2 + c^2 ) = 1

得 ^(-1)= r */ |r| ^2 = r * = cos( θ /2) - sin( θ /2) * u

 

如图所示, 设四元数 与 垂直,与 ,p 共面,且 ^2 = -1 ;四元数u * v ,则v , w 组成一个直角坐标系。

  

p = s * u + t * v

r^(-1) = (cos(θ/2)sin(θ/2) * u ) * ( s * u + t * ) * (cos(θ/2) - sin(θ/2) * u )

 = ( s * cos(θ/2)* u + t* cos(θ/2)*v - s* sin(θ/2) + t* sin(θ/2)*w ) * (cos(θ/2) - sin(θ/2) * u )

 = s* (cos(θ/2))^2* u + t* (cos(θ/2))^2*v - s* sin(θ/2)* cos(θ/2) + t* sin(θ/2)* cos(θ/2)*w

   + s* sin(θ/2)* cos(θ/2) + t* sin(θ/2)* cos(θ/2)*w - s*(sin(θ/2))^2*u - t*(sin(θ/2))^2*v

 = s*u + t* cos(θ)*v + t* sin(θ)*w

 

由此可知,p’是由pu正向旋转θ角度而得。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
open3d是一个用于处理三维数据(点云、三维模型等)的开源库。点云配准是将两个或多个点云数据进行对齐的过程,以便在一个全局坐标系下进行比较、分析或重建。其中,四元数法是一种常用的点云配准方法。 四元数是一种用四个实数表示的扩充复数,可以用于描述旋转变换。在点云配准中,使用四元数法是因为其具有以下优势: 第一,四元数具有紧凑的表示形式,只需要四个实数即可表示旋转变换,相较于旋转矩阵的九个实数表示方式节省了存储空间,降低了计算复杂度。 第二,四元数法能够有效地避免了“万向锁”问题。万向锁是指在使用欧拉角进行坐标变换时,由于旋转过程中会出现奇点,导致旋转角度无法精确表示的问题。而四元数法不会出现这个问题,具有更好的数值稳定性。 在open3d中,点云配准的四元数法通常有以下几个步骤: 首先,计算两个点云之间的特征描述子,例如FPFH(Fast Point Feature Histograms)或SHOT(Signature of Histograms of Orientations)。这些描述子能够表示点云的局部几何信息。 然后,根据特征描述子的相似性,寻找初始的点对应关系。 接下来,通过最小化点云之间的误差指标,例如最小化点到平面的距离或最小化点到点的距离,来优化点对应关系,并计算出旋转矩阵。 将旋转矩阵转换为四元数表示,即可完成点云的配准过程。 四元数法是open3d中常用的点云配准方法之一,其能够高效地实现点云的准确对齐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值