\subsection{Tangent Arm/Sine Arm}

This is an MX motor driver to move a tangent arm or sine arm pseudomotor.

\textbf{IMPORTANT:} The moving motor position and the arm length must both be
specified using the \textit{same} user units, while the angle offset must
be specified in radians.  Thus, if the moving motor position is
specified in micrometers, then the arm length must be specified
in micrometers as well.

If you want to specify the angle offset in degrees rather than in
radians, the simplest way is to create a 'translation\_mtr' record
containing only the raw angle offset motor.  Then, set a scale factor
in the translation motor record that converts from radians to degrees.

A tangent arm consists of two arms that are connected at a pivot point
as follows:
\begin{verbatim}

                                        *
                                  B  *
                                  *
                               *  |
                            *     |
                         *        |
                      *           |  m
                   *              |
                *                 |
             *  \  theta          |
          *-----------------------+------
          ^           a           A
          |
          |
     pivot point
\end{verbatim}

A linear motor is attached to the fixed arm at point A and then moves
a push rod that pushes the moving arm at point B.  In this geometry,
the position of the moving motor, m, is related to the angle theta by
the relationship
$$
\tan(\theta) = {{m}\over{a}}
$$
where a is the distance of the motor on the arm it is attached to
from the pivot point.  The important consideration here is that the
linear motion is perpendicular to the fixed arm.

A sine arm is similar except that the linear motion is now perpendicular
to the moving arm:
\begin{verbatim}

                                        *
                                     *
                                  *
                            B  *
                            *
                         *   \
                      *       \
                   *           \ m
                *               \
             *  \  theta         \
          *-----------------------+------
          ^           a           A
          |
          |
     pivot point

\end{verbatim}

This changes the equation to the form
$$
\sin(\theta) = {{m}\over{a}}
$$
hence the name ``sine arm''.

Note: The 'tangent\_arm' and 'sine\_arm' drivers share the same code and
distinguished in the driver code by their different driver types,
namely, MXT\_MTR\_TANGENT\_ARM and MXT\_MTR\_SINE\_ARM.

