Geometry 在给定三维坐标和两段之间的角度的情况下,如何估计两帧之间点的速度?

Geometry 在给定三维坐标和两段之间的角度的情况下,如何估计两帧之间点的速度?,geometry,physics,angle,Geometry,Physics,Angle,我正在研究步态数据,它有每帧15个关节的三维位置坐标。我试图估计踝关节的速度,但我不知道如何在帧之间找到。给定帧速率为30 fps。我还想找到两段之间的角度,比如说大腿和同一条腿的小腿。对于速度,计算每帧所需骨骼的中点p(I)=(p0(I)+p1(I))/2,然后vel(I)=(p(I)-p(I-1))*30.0帧间角度变化为acos(点(p1(i)-p0(i),p1(i-1)-p0(i-1))但是,如果您需要签名一个,请分别为每个后续帧(i,i-1)使用atan2并减去结果…@Spektre谢

我正在研究步态数据,它有每帧15个关节的三维位置坐标。我试图估计踝关节的速度,但我不知道如何在帧之间找到。给定帧速率为30 fps。我还想找到两段之间的角度,比如说大腿和同一条腿的小腿。

对于速度,计算每帧所需骨骼的中点
p(I)=(p0(I)+p1(I))/2
,然后
vel(I)=(p(I)-p(I-1))*30.0帧间角度变化为
acos(点(p1(i)-p0(i),p1(i-1)-p0(i-1))但是,如果您需要签名一个,请分别为每个后续帧(i,i-1)使用atan2并减去结果…@Spektre谢谢。我尝试使用acos(点(v1,v2)/norm(v1)*norm(v2)),但它没有符号角度。但我认为atan2会给我更好的角度。对于速度,建议的方法现在对我来说是有意义的。第二次练习时,所教的
atan2
在3D中不起作用。。。因此,您需要使用
acos(点…
并以不同的方式确定方向…但是在3D中,你首先需要确定正角度和负角度是什么意思,或者利用点或叉积…所以你首先需要一些额外的信息,比如一些参考平面或规则…@Spektre我读了一些关于步态分析的论文,其中去掉了S位于身体中心的矢状面、冠状面和横切面。但要取出这些平面,我不知道从何处开始。我可以取叉积来找到平面法线,但在哪些向量之间我应该取叉积?关于速度计算,我是否必须取两帧之间的距离,距离为30(从30 fps开始)或两个连续帧之间的距离(如第3帧和第4帧之间)?1.你需要锁定一些东西。锁定什么取决于你在做什么以及你的坐标系是什么…例如,你可以使用地平面法向和右手法则或上向量或其他任何东西…有无限的可能性,没有错误或正确的,这只是你将考虑的正负角度的问题e、 2.两个连续的帧,以30fps表示帧之间的周期(或更新时间)为
1/30[sec]
vel=delta_pos/delta_time=(p(i)-p(i-1))/(1/30.0)=(p(i)-p(i-1))*30.0;