Как оценить скорость точки между двумя кадрами с учетом 3D-координат и угла между двумя сегментами?

#geometry #physics #angle

#геометрия #физика #угол

Вопрос:

Я работаю над данными о походке, которые имеют 3D-координаты положения для 15 суставов на кадр. Я пытаюсь оценить скорость голеностопного сустава, но я не знаю, как найти по кадрам. Заданная частота кадров составляет 30 кадров в секунду. Также я хочу найти углы между двумя сегментами, скажем, бедром и голенью одной и той же ноги.

Комментарии:

1. для скорости вычислите среднюю точку p(i) = (p0(i) p1(i))/2 кости, которую вы хотите для каждого кадра i , а затем vel(i) = (p(i)-p(i-1))*30.0; измените угол между кадрами acos(dot( p1(i)-p0(i) , p1(i-1)-p0(i-1) )); , однако, если вам нужен знак, используйте atan2 для каждого последующего кадра (i, i-1) отдельно и вычтите результаты…

2. @Spektre Спасибо. Я пытался использовать acos (точка (v1, v2) / норма (v1) * норма (v2)), но у него нет подписанных углов. Но я думаю, что atan2 даст мне лучшие углы. Для скорости предложенный метод имеет смысл для меня сейчас.

3. хм, на втором уроке atan2 не будет работать в 3D… поэтому вам нужно использовать acos(dot... и определять направление по-разному… однако в 3D это не так просто, сначала вам нужно определить, что означает положительный и отрицательный угол, исходя из того, что используется точка или перекрестное произведение… итак, сначала вам понадобится дополнительная информация, например, некоторая опорная плоскость или правило…

4. @Spektre Я прочитал несколько статей по анализу походки, в которых рассматриваются сагиттальная, корональная и поперечная плоскости, расположенные в центре тела. Но чтобы убрать эти плоскости, я не знаю, с чего начать. Я могу взять перекрестные произведения, чтобы найти нормали к плоскости, но между какими векторами я должен взять перекрестное произведение? Также что касается расчета скорости, должен ли я брать расстояние между двумя кадрами, расположенными на расстоянии 30 (начиная с 30 кадров в секунду), или просто расстояние между двумя последовательными кадрами (например, между 3-м и 4-м кадрами)?

5. 1. вам нужно что-то зафиксировать. На что зависит от того, что вы делаете и какова ваша система координат… например, вы можете использовать нормаль к плоскости земли и правило правой руки или вектор вверх или что-то еще… существует бесконечное количество возможностей, и ни одна из них не является неправильной или правильной, это просто вопрос того, что вы будете рассматривать как положительный и отрицательный угол. 2. два последовательных кадра, поскольку вы получили 30 кадров в секунду, что означает, что период (или время обновления) между кадрами равен 1/30 [sec] и vel = delta_pos / delta_time = (p(i)-p(i-1))/(1/30.0) = (p(i)-p(i-1))*30.0;