\input manualMacros.tex
\manBegin
\manPageInfo{RCI Reference Manual}{}{}
\manTitle{pumaUpdateVar}{3}
\manSection{NAME}
{\rightskip=0ptplus1fil
{\tt \manName{pumaUpdateVar}},
{\tt \manName{pumaUpdateJacob}}
-- RCI routines to maintain the VAR structure for the PUMA.
}
\manSection{USAGE}
\cverbatim
#include <puma_kynvar.h>

pumaUpdateVar (var, kyn, j6)
   PUMA_VAR *var;
   PUMA_KYN *kyn;
   flost *j6;

pumaUpdateJacob (var, kyn)
   PUMA_VAR *var;
   PUMA_KYN *kyn;
@endcverbatim
\manSection{ARGUMENTS}
\manItem{{\tt var} --}
VAR structure for the PUMA.
\manItem{{\tt kyn} --}
Structure defining kinematic constants for the PUMA.
\manItem{{\tt j6} --}
Joint angles, in radians.
\manSection{DESCRIPTION}
These routines update entries in the VAR structure for the PUMA robot.
The VAR structure contains control variables which depend on robot
position, such as the sines and cosines of the joint angles, and various
coefficients related to the Jacobian. 
The routines may be called from any part of an RCI program.

{\tt pumaUpdateVar()} instantiates all the entries in {\tt var} for
the given set of joint angles.

{\tt pumaUpdateJacob()} instantiates all the entries in {\tt var} execpt
for the sines and cosines of the angles, which are assumed to have be
obtained elsewhere (such as a by-product of the kinematic routines).

RCI control tasks can obtain pointers to the {\tt kyn} and {\tt var}
structures from fields in the {\tt RCI_RBT} structure (q.v.).
Non-RCI programs can obtains pointers to the structures be calling
{\tt get_jls()}, {\tt get_kyn()}, and {\tt get_var()} (q.v.),
with the name of the desired robot.

When obtaining pointers to {\tt PUMA_KYN} or {\tt PUMA_VAR} structures,
it is necessary to cast them appropriately since both the access routines
and the fields in {\tt RCI_RBT} declare them to be {\tt void*}.
\manSection{SEE ALSO}
\rightskip=0ptplus1fil
{\tt get_kyn()}, {\tt get_var()}, {\tt RCI_RBT()}, {\tt pumaJacobian}.
\manEnd
\end
