四元数(quaternion)和对偶四元数(dual quaternions)

四元数(quaternion)是三维旋转的常用表示形式

一个四元数h=w+xi+yj+zk,这里w,x,j,z∈\mathbb{R} (空心R, 表示数域,正常的R表示实数集合)

这里的i,j,k都是虚数单位,即i^2=j^2=k^2=ijk=−1.

四元数通常被写成4-D向量h= (w, x, y, z)或者 h= (w,v),其中v代表一个含有虚部的三维向量

两个单位复数的乘法可以定义2D 中的旋转

那么两个单位四元数的乘法就可以定义3D中的旋转

令p为一个要旋转的点,a为一条旋转轴而且\left | a \right |=1,θ为旋转角。

那么我们得到俩个四元数h和p'和一个旋转公式

 

 

 

其中是旋转后的点,是h的共轭四元数(虚数部分的xyz全都取相反数)[1]。

对偶四元数/双四元数(dual quaternions):

四元数是三维旋转的表示,对偶四元数则以统一的方式表示处理了旋转和平移

对偶数定义:

类似虚数,只是对偶单位的平方为0(一平方就把对偶部消掉了)

当对偶数的a和b不是一个数而是向量,那这就变成了对偶向量。

对偶四元数  本质上是四元数 ,但是他的实部w和虚部xyz都是对偶数而不是普通的实数;或者说对偶四元数本质上是对偶数,只是对偶部分和非对偶部分变成了俩四元数,

即  其中h和h’都是四元数。

正如单位四元数表示旋转一样,单位对偶四元数包含旋转R和平移t

非对偶部分h在(5)式中已有定义。对偶部分h’为下式(7)所示

参考文献:[1]J. Schmidt, F. Vogt, H. Niemann, Robust HandEye Calibration of an Endoscopic Surgery Robot Using Dual Quaternions, in Pattern Recognition. Lecture Notes in Computer Science (Springer, Berlin, 548– 556 (2003).

 

 

 

 

 

 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对偶四元数是一种扩展了传统四元数的数学概念,它在机器人学和刚体运动学中有广泛的应用。对偶四元数可以用来表示刚体的位姿和运动,同时还可以进行刚体的运动组合和变换计算。 在Matlab中,可以使用Quaternion库来进行对偶四元数的计算和操作。Quaternion库提供了一系列函数来创建、操作和转换对偶四元数。 以下是对偶四元数的一些基本操作和函数: 1. 创建对偶四元数:可以使用quaternion函数来创建对偶四元数,例如: dq = quaternion(w, x, y, z) % 创建一个对偶四元数,其中w、x、y、z分别表示实部和虚部的四个分量 2. 对偶四元数的运算:可以使用+、-、*、/等运算符进行对偶四元数的加减乘除运算,例如: dq1 + dq2 % 对偶四元数的加法 dq1 * dq2 % 对偶四元数的乘法 3. 对偶四元数的共轭:可以使用conj函数来计算对偶四元数的共轭,例如: dq_conj = conj(dq) % 计算对偶四元数的共轭 4. 对偶四元数的单位化:可以使用normalize函数将对偶四元数单位化,例如: dq_normalized = normalize(dq) % 对偶四元数的单位化 5. 对偶四元数的旋转:可以使用rotate函数将一个向量绕某个轴旋转,例如: rotated_vector = rotate(dq, vector) % 将向量vector绕对偶四元数dq表示的轴旋转 6. 对偶四元数的插值:可以使用slerp函数进行对偶四元数的插值,例如: interpolated_dq = slerp(dq1, dq2, t) % 对偶四元数dq1和dq2之间按照参数t进行插值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值