1. 四元数与双四元数:三维空间变换的数学本质
在计算机图形学、机器人学和物理仿真领域,我们经常需要处理三维空间中的刚体运动。传统方法使用欧拉角或旋转矩阵表示旋转,用向量表示平移,但这种分离表示方式在数学处理和实际应用中存在诸多不便。四元数(Quaternion)和它的扩展形式双四元数(Dual Quaternion)为解决这些问题提供了优雅的数学工具。
四元数是三维旋转的"黄金标准",而双四元数则是刚体运动的"全能选手"。
1.1 四元数的基本概念
四元数是对复数的扩展,由William Rowan Hamilton于1843年提出。一个四元数可以表示为:
q = w + xi + yj + zk
其中:
- w是实部(标量部分)
- (x,y,z)是虚部(向量部分)
- i,j,k是满足i²=j²=k²=ijk=-1的虚数单位
在三维旋转应用中,我们通常使用单位四元数(模长为1),因为它可以简洁地表示任意旋转:
q = (cos(θ/2), u_x·sin(θ/2), u_y·sin(θ/2), u_z·sin(θ/2))
这里θ是旋转角度,u=(u_x,u_y,u_z)是旋转轴的单位向量。
1.2 四元数的优势
相比欧拉角和旋转矩阵,四元数具有以下优势:
- 紧凑性:只需4个参数(相比旋转矩阵的9个)
- 无万向节死锁:避免了欧拉角的奇异性问题
- 插值平滑:球面线性插值(SLERP)保持恒定角速度
- 计算高效:组合旋转只需四元数乘法
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 从四元数到双四元数:刚体运动的统一表示
2.1 SE(3)空间与刚体运动
三维空间中的刚体运动属于特殊欧几里得群SE(3),包含旋转和平移两种基本变换。传统表示方法使用旋转矩阵R∈SO(3)和平移向量t∈R³:
x' = R·x + t
这种表示虽然直观,但在数学处理和计算上存在不便,特别是在需要连续变换或插值时。
2.2 双四元数的定义
双四元数是四元数的扩展,引入了双数(Dual Number)的概念。一个双四元数可以表示为:
q̂ = q_r + ε·q_d
其中:
- q_r是实部(表示旋转的四元数)
- q_d是双部(编码平移的四元数)
- ε是双数单位,满足ε²=0但ε≠0
单位双四元数(用于表示刚体运动)需要满
