Measuring Crank Rotation Angle

I am running a cycling study where I am hoping to be able to plot all of my force and moment functions with respect to the percent of the cycle rotation. This means that I will need to have the rotation angle of the pedal for every time step that I have data. I am confused about how to set up this rotational measure organizer because measuring the rotation of the pedal about its own axis is not what I want. I want the rotation angle of the pedal about the center of rotation of the bike pedal. [The rotation of the crank with respect to the bike.] I do not have any kinematic markers for the position of the bike axis, so I can’t get the rotation of the pedal segment with respect to the axis marker’s coordinate system. Do you have any suggestions for how I might find and output my desired rotation measure?


That is a good question. It is not easy to find the crank angle with no markers on the bike or the crank rotation axis.

But the information is implicitly there in the marker motion. The pedal marker moves in a circle, which has a center of rotation and a plane of rotation.

Thus, this is a good example for the use of parameter identification in AnyBody. AnyBody can use the information from the marker motion to find both the crank rotation axis/orientation and the crank arm length.

All that is needed is a reasonable starting guess for the center of rotation. The two images shows the result before and after optimization.

After this, you can directly read the crank angle from the revolute crank joint object.

I have attached a small model that shows the concept:

(Load “crank-rotation.any” and run the operation “Main.OptKinStudy.ParameterOptimization”)