transDiff(3)

NAME
transDiff, transForce -- RCCL routines to transform velocities or forces into a different coordinate frame.

USAGE
#include <robotTypes.h>    /* included as part of <rccl.h> */

DIFF *transDiff (dr, d1, tr)
  DIFF *dr, *d1;
  TRSF *tr;

FORCE *transForce (fr, f1, tr)
  FORCE *fr, f1;
  TRSF *tr;

ARGUMENTS

dr --
    Transformed velocity vector.

d1 --
    Initial velocity vector.

fr --
    Transformed force vector.

f1 --
    Initial force vector.

tr --
    4X4 homogeneous transform from the initial frame to the new frame.

DESCRIPTION
transDiff() takes a differential motion (i.e., velocity) vector and computes its value with respect to a different coordinate frame. The location of the new frame with respect to the original frame is given by the transform tr. If the 3 X3 rotational submatrix of tr is given by R, and the translational vector of tr is given by p, then this routine performs the following calculation:
                        T       T
                     [ R   (pXR) ]
                dr = [        T  ] d1
                     [ 0     R   ]

where p XR denotes the three column vectors formed by taking the cross product of p with each column of R.

transForce() takes a force vector and computes its value with respect to a different coordinate frame. The location of the new frame with respect to the original frame is given by the transform tr. If the 3 X3 rotational submatrix of tr is given by R, and the translational vector of tr is given by p, then this is done with the following calculation:
                          T
                     [   R     0  ]
                fr = [      T   T ] f1
                     [ (pXR)   R  ]

Both routines return a pointer to their result argument.

SEE ALSO
diffToTrsf(3), trsfToDiff(3).