% The beginnings of a proper glossary file. Not really finished
% yet.

\chapter{Glossary}

The following terms are used commonly when discussing the RCCL/RCI system
(this list will grow with time as we think of things to add):

\refitem{\it active (task)}
Designation of an RCI control task that is running (i.e., the RCI task
monitor is executing the task control function whenever it becomes
runnable). Control tasks are activated with the primitive {\tt rciStart()}.

\refitem{\it abort}
This is the condition raised by a call to {\tt rciAbort()}, which 
causes all control tasks to be released and a signal to be sent to
the planning task.

\refitem{\it arbiter CPU}
The main UNIX host CPU.

\refitem{\it auxiliary CPU}
Another CPU on the same bus as the UNIX host which can be dedicated
to running RCI control tasks.

\refitem{\it control function}
Main control function associated with an RCI control task, called 
repeatedly by the RCI task monitor while the task is active.
Sometimes referred to as the control function.

\refitem{\it control session}
Period during which an RCI control task is active; i.e., between when
it is activated and released.

\refitem{\it control task}
An RCI task created with a call to {\tt rciCreate()}.

\refitem{\it idle (task)}
Designation of an RCI control task that is not active (i.e., not running).
Task are set active with the call {\tt rciStart()}. They are set idle
either with the call {\tt rciRelease()}, or when an abort happens.

\refitem{\it monitor}
RCI system code that runs on each CPU and is responsible for calling the
various control level task functions. 

\refitem{\tt moper}
The communication program running on the robot controller that serves
as a data concentrator between the RCI host and the various robot joints,
sensors, and output devices. 

\refitem{\it object frame}
An imaginary manipulator in a RCCL program, created with a call
to {\tt rcclCreate()}, that is not connected to a real robot but is just a
frame in space that can be moved around with the usual motion control 
primitives.

\refitem{\it planning level}
The main UNIX level of an RCCL/RCI program.

\refitem{\it planning task}
Same as the {\it planning level}, above.

\refitem{\it polling interrupt}
A UNIX device interrupt which activates the RCI task monitor 
on the arbiter CPU; the task monitor will then execute any RCI control tasks
which are runnable.
Polling interrupts are necessary on the 
aribter CPU because the task monitor cannot run in a loop as it does on the
auxiliary CPUs. The device associated with the polling interrupt must have RCI
support configured into its UNIX device driver.

\refitem{\it release function}
Control level function that is called once when an RCI task is released.

\refitem{\it release (task)}
Deactivating an RCI control task. The task monitor is instructed not to
execute the task any more, and the task's release function is called.

\refitem{\it robot descriptor}
Pointer the structure {\tt RCI\_RBT} which is used as a handle to obtain
information about a robot attached to an RCI task. The robot descriptor is
commonly given the name {\tt rbt}.
See {\tt man RCI\_RBT}.

\refitem{\it startup function}
Control level function that is called once when an RCI task is started up.

\refitem{\it task descriptor}
Pointer the structure {\tt RCI\_DESC} which is used as a handle to obtain
information about an RCI control task. The task descriptor is
commonly given the name {\tt td}.

\refitem{\it task control block}
The structure {\tt RCI\_TCB}, which contains run-time parameters
directly related to task control and execution (such as its sample
rate and control functions). A pointer to the TCB may be obtained
from the task descriptor {\tt td}  with the macro {\tt TASKTCB(td)}.
See {\tt man RCI\_TCB}.

