找出手部运动的相对速度.Matlab

时间:2014-05-10 15:44:33

标签: matlab 3d velocity direction calculus

问题在于身体运动。所以我有一个函数必须考虑关节的速度(3d点)j4相对于关节j3(3d点)并假设值为1 iff由从j1(3d点)到j2(3d点)的线段确定的方向上的该速度分量高于阈值θ。所述速度分量也可以看作是关节j4相对于由法向量(由j1和j2给出)和锚定关节j3确定的平面的有符号一维速度。

例如,我想检查右手腕是否向上移动。所以j4 =右手腕,j3 =胸部,j2 =胸部,j1 =腹部。我必须在从j1到j2的直线方向上找到j4的j3的相对速度。我怎样才能做到这一点??

2 个答案:

答案 0 :(得分:0)

这更像是一个数学/物理问题,而不是一个编程问题。一旦你弄明白背后的数学(提示:查找“relative velocity”),实现它的代码将非常简单。

在你的情况下,你想要的是j4相对于j3的速度(即v(j4 | j3))。这是由:

v(j4 | j3) = v(j4) - v(j3)

然后我会把它留作练习来找到j1-> j2方向的速度。

答案 1 :(得分:0)

我找到了解决方案。首先,我找到每个轴的j3和j4的速度 - x,y,z - 。然后我找到每个轴相对于j4的j3速度。然后因为我有每帧的法向量n(xn,yn,zn),我为序列的每个帧找到一个标量值。这意味着我找到一个变量v(i)= dot(velocity_j4_j3(:,i),normal(:,i),其中i是帧,并且:表示x,y,z分量。结果给出的值仅为1正确的方向。指向法线的方向。在此之前,值是正确的和相反的方向。