Getting angular velocities #195
-
Following examples in the documentation, I had no difficulty taking my marker data and turning it into frames, and from frames into Eueler joint angles. I'm sure that I can use numpy to get a derivative if I want, but it would be great to know if there is a best practice way to do this within the toolkit and whether there are any gotchas I should be aware of. Thanks, |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
I'm glad to know that you got your joint angles easily. Now, for joint angular velocities, I have a small good news, but a more serious bad news for you. Good news: It is very easy to derivate a TimeSeries directly in Kinetics Toolkit using ktk.filters.deriv. Bad news: In almost every case, we cannot simply derivate the Euler angles to obtain the angular velocity. The three Euler angles are highly dependent one to the other. Therefore, as changing one Euler angle usually affects at least one another, then the angular speed on a given axis is also dependent of the angular speed on the other axes. I don't know of any method to obtain joint velocities that is simple, intuitive, and general. You can take a look at this paper where they calculated these velocities first by calculating a velocity matrix, then mapped this matrix to the axes corresponding to their Euler angle convention: Slawinski, J., Bonnefoy, A., Ontanon, G., Leveque, J.M., Miller, C., Riquet, A., Chèze, L., Dumas, R., 2010. Segment-interaction in sprint start: Analysis of 3D angular velocity and kinetic energy in elite sprinters. Journal of Biomechanics 43, 1494–1502. https://doi.org/10.1016/j.jbiomech.2010.01.044 To my understanding, this method needs the three rotation axes to be orthogonal, which means it works for cardan angles (XYZ, XZY, etc.) but would not make sense for proper Euler angles (ZYZ, XZX, etc.) in which case it would be very difficult to interpret anyway. Good luck! 😁 |
Beta Was this translation helpful? Give feedback.
Hi @opherdonchin
I'm glad to know that you got your joint angles easily. Now, for joint angular velocities, I have a small good news, but a more serious bad news for you.
Good news: It is very easy to derivate a TimeSeries directly in Kinetics Toolkit using ktk.filters.deriv.
Bad news: In almost every case, we cannot simply derivate the Euler angles to obtain the angular velocity. The three Euler angles are highly dependent one to the other. Therefore, as changing one Euler angle usually affects at least one another, then the angular speed on a given axis is also dependent of the angular speed on the other axes. I don't know of any method to obtain joint velocities that is simple, intuiti…