ROSEKINS(9)

πŸ“¦
version 2.9.4 Β· 2 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

🌹 ROSEKINS(9) β€” Kinematics for a Rose Engine 🌹

okay bestie, welcome to the Kernel Developer's Manual entry for rosekins πŸ’– it's a kinematics component, it lives in section 9, and it's literally here to make your rose engine go brrr in the good way πŸŽ€


✨ NAME ✨

rosekins β€” Kinematics for a rose engine πŸ¦‹

no cap, that's the whole vibe. it does the math so your machine can carve pretty petals 🌸


✨ SYNOPSIS ✨

loadrt rosekins

that's it. one line. she's lowkey minimal πŸ’… load the realtime component and you're in business.


🌈 KINEMATICS 🌈

here's the joint lineup, bestie β€” three joints, and each one has a very specific job 🫢

  • joint_0 β€” linear, 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)
not me stressing that joint_2 is the workholding spindle and not a tool-holding highspeed spindle 😭 like yes they're both called spindles and yes that's confusing, and no, they are not the same thing, periodt.

πŸŽ€ PINS πŸŽ€

these are the HAL pins she gives you. three of them. all float outs. all iconic ✨

  • rosekins.revolutions β€” float out. Count of crossings of the negative X axis. Clockwise crossings increment revolutions by 1, counterclockwise crossings decrement by 1. πŸ”„

(yes she really does count both directions β€” clockwise goes up, counterclockwise goes down, it's giving very much a running tally πŸ’€)

  • rosekins.theta_degrees β€” float out. Principal value for arctan(Y/X). πŸ“
  • rosekins.bigtheta_degrees β€” float out. Accumulated angle (theta + revolutions * 360). πŸŒ€

so like, theta_degrees is the moment, and bigtheta_degrees is the whole story β€” the accumulated angle, theta plus revolutions times 360. main character energy fr fr πŸ‘‘


πŸ’œ NOTES πŸ’œ

okay so, story time, let's actually understand this 🌸

Theta is the principal value of arctan(Y/X). But β€” and this is the important part β€” joint_2 angle values are not limited to principal values of arctan(Y/X). they accumulate continuously as the spindle is rotated. πŸ”₯ so instead of snapping back around every time you cross the axis, the angle just keeps on growing, living its best continuous life. HAL pins are provided for the principal value and a count of the number of revolutions, so you get both the instant reading and the running total πŸ’–

The transverse motion is exactly perpendicular to the spindle. now, plot twist: in a traditional rose engine, the transverse motion is created by 'rocking' the headstock about a pivot. πŸ™ˆ but β€” a typical pivot length combined with the limited amount of X travel in a real machine make the perpendicular approximation a reasonable model. so like, it's not technically perpendicular in real life, but the approximation is good enough that nobody's mad about it. slay πŸŽ€


⭐ SEE ALSO ⭐

the original page doesn't list any SEE ALSO refs, so like… there's nothing to see here bestie. go read the LinuxCNC docs instead πŸ’…


and that's the whole page, no cap πŸ’– this one's from the Kinematics Component corner of the LinuxCNC Documentation, and it's dated ROSEKINS(9) β€” so go forth, load your realtime component, and let those revolutions cross the negative X axis in whatever direction your heart desires πŸ¦‹βœ¨ ily, bye 🫢