Math 带速率匹配的四元数插值

Math 带速率匹配的四元数插值,math,physics,interpolation,quaternions,kinematics,Math,Physics,Interpolation,Quaternions,Kinematics,我有一个物体w/和方向,以及关于每个体轴的旋转速率。我需要找到一个从这个状态到第二个状态的平滑过渡,并使用一组不同的速率。此外,我对绕每个轴旋转/加速的速度有限制 我已经研究了四元数slerp,虽然我可以使用它们在状态之间平滑插值,但我看不到一种简单的方法可以将速率匹配引入其中 这感觉像是一个微分方程和路径规划的练习,但我不确定如何准确地描述这个问题,以便现有的算法能够解决它 任何有助于解决这一问题的算法建议和/或与这些算法一起解决问题的技巧都将不胜感激 [编辑-以下是我正在处理的问题类型的示例

我有一个物体w/和方向,以及关于每个体轴的旋转速率。我需要找到一个从这个状态到第二个状态的平滑过渡,并使用一组不同的速率。此外,我对绕每个轴旋转/加速的速度有限制

我已经研究了四元数slerp,虽然我可以使用它们在状态之间平滑插值,但我看不到一种简单的方法可以将速率匹配引入其中

这感觉像是一个微分方程和路径规划的练习,但我不确定如何准确地描述这个问题,以便现有的算法能够解决它

任何有助于解决这一问题的算法建议和/或与这些算法一起解决问题的技巧都将不胜感激

[编辑-以下是我正在处理的问题类型的示例]


想象一下,直升机上的一名炮手需要在直升机飞行时跟踪目标。为了便于论证,他需要在目标从地平线升起到不在视线中的时间内都在目标上。这个目标的相对速率不是恒定的,但我假设通过几个“速率匹配”机动的聚合,我可以很好地近似这个跟踪。我可以计算任意点所需的火炮方位和跟踪速率,它只是从一些离散的方位和速率生成一个轮廓,这让我感到困惑


谢谢

首先,围绕每个轴的旋转速率应组成一个旋转速率向量,即w=[w_x w_u y w_z]^T。然后可以将旋转幅度与旋转轴分开。震级为w|mag=w/| w |。然后,轴是单位向量u=w/w_mag。然后,您可以通过使用您最喜欢的表示形式(即旋转矩阵、四元数)合成增量旋转来更新总旋转。如果开始旋转为R_0,递增旋转由R_incw_mag*dt定义,则遵循以下组合规则:

R_1 = R_0 * R_inc

R_k+1 = R_k * R_inc

享受。

用一种不那么抽象的方式来描述这个问题可能是值得的。你在旋转什么样的物体?我知道“w”和动作开始和结束时的部件,以及方向。我可以使用四元数非常容易地找到过渡四元数,它为我提供旋转角度和轴,使我从开始状态到结束状态。我感到困惑的是在机动开始和结束时匹配速率。我在你最初的回复中遗漏了什么吗?所以你知道开始和结束的方向。同时给出了起始速率和终止速率。开始速率和结束速率是否具有相同的角度和轴?我在上面的回答暗示了他们有。他们没有。。。如果他们这样做了,那就容易多了,不是吗;想象一下,直升机上的一名炮手需要在直升机飞行时跟踪目标。为了便于论证,他需要在目标从地平线升起到不在视线中的时间内都在目标上。这个目标的相对速率不是恒定的,但我假设通过几个“速率匹配”机动的聚合,我可以很好地近似这个跟踪。我可以计算任意点所需的火炮方位和跟踪速率,它只是从一些离散的方位和速率生成一个轮廓,这让我感到困惑。这有帮助吗?所以在t=0时,你知道方向,R_i和转动速率w_i,在t=t时,你知道方向,R_f和转动速率w_f。你想知道如何表示在0和t之间的每个t=i*dt的方向。我们假设角加速度在这个间隔上是恒定的吗?