---
name: "rosekins"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rosekins"
---

# rosekins(9)

Kinematics for a rose engine

## NAME

rosekins - Kinematics for a rose engine

## SYNOPSIS

**loadrt rosekins**

## KINEMATICS

   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)

## PINS

- **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)

## NOTES

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.
