rcclSetModes(3)

NAME
rcclSetModes, rcclClearModes, rcclPutModes, rcclGetModes, rcclGetActiveModes -- set operating modes for an RCCL manipulator.

USAGE
#include <rccl.h>

unsigned long rcclSetModes (mnp, mask)
  MANIP *mnp;
  unsigned long mask;

unsigned long rcclClearModes (mnp, mask)
  MANIP *mnp;
  unsigned long mask;

unsigned long rcclPutModes (mnp, mask)
  MANIP *mnp;
  unsigned long mask;

unsigned long rcclGetModes (mnp, mask)
  MANIP *mnp;
  unsigned long mask;

unsigned long rcclGetActiveModes (mnp, mask)
  MANIP *mnp;
  unsigned long mask;

ARGUMENTS

mask --
    Bitmask describing the operating modes to be set or cleared.

mnp --
    Manipulator reference structure.

RESTRICTIONS
rcclSetModes(), rcclClearModes(), and rcclPutModes() must be called from the planning level.

DESCRIPTION
It is possible to control certain operating characteristics of an RCCL manipulator by setting or clearing various mode bits.

rcclSetModes() sets the indicated mode bits for a particular manipulator and returns a mask describing their previous settings.

rcclClearModes() clears the indicated mode bits for a particular manipulator and returns a mask describing their previous settings.

rcclPutModes() sets all of the modes bits to the indicated value and returns a mask describing their previous settings.

rcclGetModes() returns the settings of the mode bits specified by mask. rcclGetModes(~0) will return all the mode settings.

Some mode bits do not take effect (after being changed) until the start of the next requested motion. Because of this, it is important to be able to obtain the mode bit settings for the currently executing manipulator motion.

rcclGetActiveModes() returns the settings of the mode bits specified by mask, for the motion currently executing on the manipulator.

The mode bits are defined in <rccl.h>. The ones currently implemented are:

TRACKING_MODE --
    Causes RCCL to continue tracking the most recently specified motion target after all motions have been executed. If tracking mode is not enabled, then when all motion requests have been executed, the manipulator halts at the last target position. If tracking mode is enabled, then the trajectory generator instead issues another motion request (with an indefinite time duration) to the last target position, which will continue to track this target position. The overall effect is similiar to a stop() command. The tracking motion will terminate as soon as another motion request is received for the manipulator. A change of this mode bit takes effect immediately. Its default setting is 0.

INTEGRATE_MODE --
    Enables integration in the robot's servo controllers. This increases the static positioning accuracy but may also increase control behaviours such as overshoot. Integration is not defined for virtual manipulators, and may not be implemented for real robots on some systems. A change of this mode bit takes effect immediately. Its default setting is 0.

T6O_EVAL --
    Enables updating of the j6o and t6o fields in the MANIP data structure. j6o is the observed value of the manipulator joint values, read back from the robot controller each control cycle. t6o is the observed value of the manipulator T6 transform, computed by doing forward kinematics on j6o. The updating is optional since it can be time-consuming (for instance, it will add another millisecond or so to the trajectory computation time on a microVAX). Integration is not defined for virtual manipulators. A change of this mode bit takes effect immediately. Its default setting is 0.

GRAVITY_FEEDFORWARD --
    Causes the trajectory generator to compute the gravity loading torques for the manipulator joints (and possibly other dynamic terms as well) and feed them forward to the servo controllers. Gravity feedforward is not defined for virtual manipulators, and may not be implemented for real robots on some systems. A change of this mode bit takes effect immediately. Its default setting is 0.

COMPLETE_AT_TB --
    Causes the trajectory generator to use the midpoint of the transition between motions as the "official" motion start/stop time. Otherwise, the official start/stop time is taken to be the beginning of the transition between motions. The official start/stop time is when the previous motion is considered to end and the next motion is considered to begin. It is the point at which values examined by such routines as motionStatus(), motionStartCode(), and motionStopCode() will be updated. It is also the point at which transform evaluations requested by updateTrans() will take place. A change of this mode bit takes effect at the start of the next requested motion. Its default setting is 1.

DIAGNOSTICS
rcclSetModes(), rcclClearModes(), and rcclPutModes() will abort the program if called from the control level.

SEE ALSO
rcclCreate(3), MANIP(3).