home *** CD-ROM | disk | FTP | other *** search
- Dir : src
- RCCL source directory
-
-
- Data Structures.
-
- Set of Joint Variables
-
- A set of Joint variables if a string expressing the arm configuration and
- six (sometimes seven or more) joint variables expressed in their range.
- When the set of joint variables is calculated, the string expresses the
- configurations changes, when T6 is determined, the string is built.
-
- Transforms
-
- Transforms have a name, a value, a type, and an age. The name is a string,
- the value four vectors, the type a function, and the age an integer. The
- age is the last time the transform has been used, if it is functionally
- defined evaluating the function more than one time within a sample period
- can be avoided. Transforms are individual entities, they can be pointed to
- but have no pointers.
-
- Terms
-
- A terms is an elements of an equation. A term has a pointer to the user's
- provided transform, a pointer to an internal alternate transform, and a
- pointer to an internal old transform, the value it had before being
- changed. When is transform is of type 'hold', the three values occupy
- three different memory locations and can be distinct values. When a
- transform is of type 'varb', 'const', or functional, the three values are
- the same user supplied transform and the term's three pointers are
- identical. If it is of type 'varb', a value change causes the equation it
- belongs to to be changed. If is 'const' its value should not change. If
- it is functional, the associated function will be evaluated each time
- sample of the equation evaluation and the function is expected to change
- the value. A term has a boolean to indicate in which member of the
- equation it belong to. A term has a queue header to be able to queue the
- successive values of the hold transforms. A term has pointer to the next
- term in the equation and a pointer to the previous. Terms are not known
- from the user.
-
- Position Equations
-
- An equation is a doubly linked ring of terms. At least one of the terms is
- the T6 term in the lhs, and one term is in the rhs. A position equation
- has a name, a termination code set when it has been moved to, a scalar that
- goes from 0 to 1 minus eps during the motion, and event when it is reached.
- Internally to the system, a position equation has also four predicates to
- indicate if the canonical equation has a COORD part, a TOOL part and is
- these parts are functional or not. It has also a pointer to the T6 term, a
- pointer to the TOOL term (that determines the tool frame on its left), and
- a pointer to the POS term between the COORD and the TOOL part. Knowing a
- term permits to solve the equation for a transform without knowing which
- equation nor transform.
- The solve functions take three arguments, the result : a transform, and two
- terms. The result is the value of a partial path in the graph. If the two
- terms are the same, the equation is solved for this term. Two functions
- cover all the cases : one path or another, the direct or the inverse.
-
- Motion Records
-
- A motion record has a final acceleration time (possibly null), a segment
- time (if null time is left to the system computations), a pointer to the
- position equation (if null use the last one), a motion mode (cart joint),
- an arm configuration change, a pointer to a term whose transform has to be
- updated (if null none), a pointer to a monitor background function (if null
- none), a new sample rate (if zero keep the last). A motion record has also
- an object mass to carry, a force limit selection word and values, a comply
- specification word and values, a maximum differential motion selection word
- and values, and a distance modifier selection word and values. Motion
- records are queued are the user's level and dequeued at interrupt level.
-
- Differential Motions and Generalized Forces
-
- A diff motion or a force is a set of two vectors.
-
- Queues
-
- A queue is a singly linked list of items. An item has a pointer to the
- next and a variable value part. A queue has a head with two pointers :
- 'get' where items are taken out of the queue and 'put' where they are
- entered. When the queue is empty, 'put' and 'get' are null. The last item
- in the queue is mark with a null pointer. The function 'queue' returns a
- pointer to a free area where the value must be copied. The function
- 'dequeue' returns a pointer to where the values can be copied from or
- returns a null pointer if the queue is empty.
-
-
- Trajectory Generation
-
- Regardless of the motion mode, the trajectory generator keep track of T6
- and J6. It also maintains the COORD, the TOOL and the POS part of the
- equation. The POS part cannot be functional because it has to be solved
- for. In comply mode, still regardless of the motion type, it maintains the
- COMPLY part.
-
- The trajectory generator implements the methods described by Prof. R.
- Paul in "Robot Manipulators: Mathematics, Programming, and Control", MIT
- Press 1981 with the following additions :
-
- Cart to Joint transition :
- Joint value set in point B is obtained by linear extrapolation of the value
- set in point A given the velocity and the transition time.
-
- Joint to Cart transition :
- T6 in point B is obtained by extrapolation of the drive parameters from
- last T6 of previous motion and T6 in A.
-
- Cart to Cart transition with moving frames :
- Velocity caused by the moving frames is assumed to be continuous. T6 in B
- is recomputed at the beginning of the transition as well as T6 in A with
- previous equation because they have moved (if there is no moving coordinate
- frame COORD and TOOL are not revaluated). Then the classic method is
- applied and POS in A and B are calculated using T6 in A and B. The T6 in B
- has been kept from time t-1 and the extra velocity cause by the moving
- frames of last equation can be derived. A set of differential drive
- parameters is derived and will be involved in the final transition
- polynomial. The second point of the transition, a similar method is
- applied to obtain the extra velocity of the moving frames of the new
- equation. The differential parameters are used in a third order polynomial
- added to the regular quartic polynomial. The derivative of this polynomial
- at the beginning of the transition is chosen as to compensate the extra
- velocities and is zero at the end. The value of the polynomial is zero at
- each end. This method is complicated but allows to deal with moving frames
- moving at speeds of the same order of magnitude as the robot capabilities.
- Trajectories can be different from one path to another and do not need to
- connect. If the same moving frame is used across path segments, extra
- velocities cancel each other and the tracking is not affected.
-
- Joint to Joint transition with moving frames :
- Second point of the transition, extra velocity is derived the same way as
- above and the expected position at the end of the path estimated.
-
- Whenever the motion is interrupted of the arm is comply mode, the
- extrapolation method is used, according to each case.
-
- When the current equation has 'hold' transforms, the value is kept at the
- end of the path segment.
-
-
- Sat Nov 5 17:25:36 EST 1983
-
- The file moves.c has been modified as to guarantee that the data in the
- queue is valid when it is dequeued. The free area is first allocated, data
- copied into, and then entered into the queue. A slight modification had to
- be done to the file manip.h. Old versions are kept under the name moves.bad
- and manip.bad in the corresponding directories.
-