dodal.devices.motors#
Classes
Six-axis goniometer with a standard xyz stage and three axes of rotation: kappa, phi and omega. |
|
For these devices, the following co-ordinates are typical but not enforced: - z is horizontal & parallel to the direction of beam travel - y is vertical and antiparallel to the force of gravity - x is the cross product of y🞬z |
|
Functions
|
Given a signal that controls a motor in a rotation axis and two other signals controlling motors on a pair of orthogonal axes, these axes being in the rotating frame of reference created by the first axis, create a derived signal that is a projection of the two axes in the non-rotating frame of reference. |
- dodal.devices.motors.create_axis_perp_to_rotation(motor_theta: Motor, motor_i: Motor, motor_j: Motor)[source]#
Given a signal that controls a motor in a rotation axis and two other signals controlling motors on a pair of orthogonal axes, these axes being in the rotating frame of reference created by the first axis, create a derived signal that is a projection of the two axes in the non-rotating frame of reference.
The projection is onto the axis defined by i when the rotation angle is 0 and defined by j when the angle is at 90.
The usual use case for this is translating from sample space to lab space. For example, if you have a sample that is mounted on a goniometer to the right hand side of an OAV view this can provide an axis that will move the sample up/down in that view regardless of the omega orientation of the sample.
- Parameters:
motor_theta (Motor) – this is the rotation axis of the sample.
motor_i (Motor) – this is the axis that, when the sample is at 0 deg rotation, a move here is entirely parallel with the derived axis.
motor_j (Motor) – this is the axis that, when the sample is at 90 deg rotation, a move here is entirely parallel with the derived axis.