基于手臂和手部角度的前臂姿势预测

Forearm posture prediction based on arm and hand angles

我有 2 个传感器:在一只上臂和一只手上,每个传感器都给我它在全局 3d 中的位置的四元数(或欧拉角)space,你有什么想法吗,我怎么能找到前臂位置? 例如,我需要这个值来解决问题: 当我把手放在table上并向上移动我的上臂(像翅膀)时,程序认为我的手和上臂一起向上移动。

您描述的情况听起来像是 inverse kinematics 问题。实际上,这是根据其自由端的所需位置(末端执行器).

与其自己解决这个数学难题,不如看看 Unity's own inverse kinematics 的实现。但是,如果您不能将游戏中的对象调整为 Animator.

,这可能不可行

您也可以自己编写解决方案。为这个问题创建一个通用的解决方案在数学上是极其复杂的——但是你有一些额外的信息可供你使用:手和上臂的实际角度和位置。如果您指定前臂长度或上臂长度(您甚至可以通过数学推导,由您决定!),那么一些简单的线性代数应该足以满足您的目的(前提是您的传感器读数正确)。

如果指定前臂长度 FL,则需要找到沿上臂方向向量(距手的距离为 FL)的交点(肘部)。或者,如果您指定上臂长度 UL,则只需将 UL/2 向下移动上臂的方向向量(因为该位置位于上臂的中间)即可获得肘部位置。

在这两种情况下,一旦你有了肘部位置,就很容易获得前臂位置和角度。这是问题的可视化图表: