rosekins − Kinematics for a rose engine
transverse (perpendicular to spindle)
joint_1 linear, longitudinal (parallel to spindle identity to z)
joint_2 rotary, spindle (workholding, not tool holding, e.g.
not a highspeed spindle)
rosekins.revolutions float out
Count of crossings of the negative X axis. Clockwise crossings increment revolutions by 1, Counterclockwise crossings decrement by 1
rosekins.theta_degrees float out
Principal value for arctan(Y/X)
rosekins.bigtheta_degrees float out
Accumulated angle (theta + revolutions * 360)
Theta is the principal value of arctan(Y/X). Joint_2 angle values are not limited to principal values of arctan(Y/X) but accumulate continuously as the spindle is rotated. Hal pins are provided for the principal value and a count of the number of revolutions.
The transverse motion is exactly perpendicular to the spindle. In a traditional rose engine, the transverse motion is created by ´rocking´ the headstock about a pivot. A typical pivot length combined with the limited amount of X travel in a real machine make the perpendicular approximation a reasonable model.