G l o s s a r y :
->
Above (see
Maneuver)
Axes directions
->
Below (see
Maneuver)
->
Block interference (see
Collision)
->
Building (see
Joint coordinates)
Cartesian coordinates
Collision
->
Controller (see
Teach-in)
Current point
Defined/Undefined point information
->
Elbow (see
Joint coordinates)
->
Engaging (see
Reorbiting)
->
Hot spots (see
Teach-in)
dyBOT application
Housing
Initial trajectory
Joint coordinates
->
LeftY (see
Maneuver)
->
Major joints (see
Joint coordinates)
Maneuver
->
Minor joints (see
Joint coordinates)
->
Orbit (see
Reorbiting)
Part
->
Pitch (see
Cartesian coordinates)
Processed trajectory
Processing
Project file
Reorbiting
->
Retracting (see
Reorbiting)
->
RightY (see
Maneuver)
Robot
->
Roll (see
Cartesian coordinates)
Selection
->
Shape (or
Robot shape) (see
Joint coordinates)
->
Shoulder (see
Joint coordinates)
->
Solving (see
Joint coordinates)
->
Spinning (see
Joint coordinates)
->
T point (see
Teach-in)
Teach-in
Tool
->
Tool coordinates (see
Cartesian coordinates)
Toolholder
Trajectory
Trajectory optimization
->
World coordinates (see
Cartesian coordinates)
->
Wrist (see
Joint coordinates)
->
Yaw (see
Cartesian coordinates)
Jacques Basaldúa (c) 2000
Axes directions
This configurable coordinate system is shown at the current point. If no tool direction information is defined for that point,
it is the only thing that shows which is the current point. The arrow indicates the X axis.
The online help shows this with graphics.
Download.
To the top
Cartesian coordinates
Called so in honor of the french philosopher and mathematician
R. Descartes, it denotes that it is defined by three coordinates X, Y, Z in space referred to a TTT (perpendicular 3 axes reference system). In
dyBOT the term is used indistinctly for:
3 axes defining a point in space.
5 axes define a point plus a tool direction (Yaw
& Pitch)
6 axes define a point, a tool direction & the
rotation of the toolholder (Roll)
There are three types of coordinates in any robot system:
World coordinates are 3, 5 or 6 axes ABSOLUTE coordinates.
Tool coordinates are 3 axes RELATIVE to the cutting point. They are used to define toolholders or to move the robot
along the tool.
Joint coordinates are the angles of the robot's
joints. Unlike World and Tool coordinates, Joint coordinates are not Cartesian.
The online help shows this with graphics.
Download.
To the top
Collision
In solid parametric CAD this is most commonly known
as block interference. In dyBOT
the term "collision" has some important differences that require some explanation.
The robot in
dyBOT is just a simplified model of the physical robot. Therefore, block interference
of the model's blocks does not have much interest and, anyway, the robot is designed not to interfere with itself. (This is more a joint range problem.)
What may require some attention is: Is the equipment mounted on the toolholder colliding with the robot? Is the robot itself
colliding with some part that is fixed inside the housing?
In our case, collisions are always user defined.
You will have to tell the program what points in space (world) or in the toolholder equipment (tool) have to be verified, and with
what blocks (or with all blocks). Defining this is called creating collision clauses.
When a collision clause is found true, if done by the user, it is displayed as above. The program itself will consider such
positions as not attainable when it plans movement.
The online help shows this with graphics.
Download.
To the top
Current point
In
dyBOT there always is a current point, if you select Edit current point
you can edit most of the point record. The joint values are edited with
Edit current point as joints.
The lower left corner of the screen (when nothing
is selected) shows the number of the current point. Many commands are applied to the current point, others are applied to the selection and others to
the whole trajectory.
To the top
Defined/Undefined point information
This is how undefined point information is showed. A point can have the following information.
3 axes: Undefined Yaw, Pitch & Roll and undefined Joints. Only axes directions are shown to indicate where the
current point is.
5 axes: Undefined Roll and undefined Joints.
A small tool (configured inside the Toolholder structure) is drawn to show the current point.
6 axes: Undefined Joints. The toolholder is shown at the current point, no robot is defined.
12 axes: Nothing is undefined. The toolholder and the robot are shown.
The online help shows this with graphics.
Download.
To the top
dyBOT application
Is an application that uses
dyBOT through OLE-automation. It can be written in any popular language such
as: Microsoft Visual Basic, Borland-Delphi or any other language supporting OLE-automation.
It can either keep dyBOT
as it is, adding new commands to it, or have its own user interface and use dyBOT's mathematical
and file handling kernel internally.
Writing dyBOT
applications requires a different version of dyBOT
called an OLE2 server version.
To the top
Housing
The housing is a fixed structure that contains everything.
It is defined in World coordinates and displayed in a specific color than can be changed inside the "view" menu.
One housing is required in any project. Housing definitions
can be stored as separate files with the .vHO extension. Unlike the robot and the toolholder, no calculations use the housing. (If you want
dyBOT to check collisions between the robot and the housing you have to specify
that as clauses.
See.)
The housing also defines:
a) Zoom limit size (if everything is contained inside it)
b) The initial viewing point
c) If the robot has to be displayed upside down or in the upright position.
To the top
Initial trajectory
dyBOT has three memory buffers containing trajectories: Initial, part
and processed. (Part is optional) Initial is where you import and edit. Once your editing efforts are complete, you process the result. Processing
creates the processed buffer.
Sometimes the processed trajectory may require some
edition after processing. The processed trajectory is a copy of the initial trajectory but containing more points because it is fragmented. The edition
effort has to be made on the initial trajectory, since processing clears the processed trajectory. Everything you import goes to the initial trajectory,
trajectory optimization also applies to the initial trajectory.
To the top
Joint coordinates
Joint coordinates are the real coordinates corresponding
to the position of the six axes (angles, not Cartesian axes) of the robot.
The online help shows this with graphics.
Download.
Therefore, Joint coordinates fully and unambiguously
define both: the robot and the toolholder. Any set of six values can be built and it defines one and only one robot and toolholder, unless:
a) Some value(s) is (are) out of the valid range for the robot.
b) Some
collision clause is found true (see above).
Obtaining the Cartesian values X, Y, Z,
Yaw, Pitch & Roll from the Joints is called building, the opposite
(obtaining the joints from the Cartesian coordinates) is called solving.
When building, one set of 6 joint values always produces one set of 6 Cartesian values. (It may be an invalid set, but it still
is one set.)
When solving, one set of 6 Cartesian values can produce any of the following:
a) No solution at all. Imagine for instance the distance to the point is bigger than the full robot length.
b) An infinite set of J1 solutions. The robot wrist is placed on the rotation axis of J1 so the robot can be built for any
valid J1 value.
c) An infinite set of J4 solutions. The arm 2 is
aligned with the Y-tool axis. J4 and J6 are therefore redundant. For any w, J4+w and J6-w define the same solution.
d) b) and c) combined.
e) A finite set of (up to) 64 valid solutions:
2 solutions placing the shoulder on either side called: LeftY and RightY
2 solutions placing the elbow on either side called: Above and Below
2 solutions in J4 (-360..0) and J4 (0..+360)
2 solutions in J5 (positive and negative) (with
complementary J4/6)
4 solutions in J6 (-720..-360), , ,(360..720)
Major joints (J1, J2 & J3) define the robot shape. That is: the position of the shoulder
(rotation center of J2), the elbow (rotation center of J3) and the wrist (rotation center of J5).
Moving minor joints (J4, J5 & J6) with fixed major joints is called spinning.
Although the arm 2 rotates around itself (around J4), spinning does not change the robot shape (fixed shoulder, fixed elbow
and fixed wrist).
(The first 4 solutions (related with major joints) are referred to as
shape solutions, while the other 16 solutions (related with minor joints) are referred to as joint solutions
or spinning solutions.)
The transition of one solution to an other can be
done continuously (over a point that is the intersection of both solution paths) or done with a
maneuver.
To the top
Maneuver
A maneuver is a rapid movement (in Joints) done because
the robot needs to switch between completely different solutions to complete the work.
Maneuvers (like solutions) can be shape maneuvers:
RightY <->
LeftY
Above <-> Below
Or joint maneuvers:
Example: retrocede (in the direction of the tool) spinning J4 360 degrees (around the arm 2)
engaging and continuing.
The online help shows this with graphics.
Download.
To the top
Part
As mentioned, dyBOT
has three memory buffers containing trajectories: Initial, part and processed. Part is a copy of an initial trajectory (created
with Convert initial trajectory to part
or pasted from the clipboard) but without drawing the non-entity movements.
When you see the initial trajectory, you see the
movement from an entity to the next one with a dashed line of a different color. When you convert this to part, you just see the entities and nothing
between them.
Parts are just drawings. Parts can be used to draw
internal details of your housing since, unlike housing definitions, they can be imported in standard formats.
Parts can be copied point by point to create a new trajectory.
To the top
Processed trajectory
As mentioned,
dyBOT has three memory buffers containing trajectories: Initial, part
and processed. (Part is optional) Initial is where you import and edit. Once your editing efforts are complete, you process the result. Processing
creates the processed buffer.
If processing was successful, the trajectory buffer
will contain the whole trajectory with fully defined robot (joint) information. If you get major errors like: "The point is out of range", and wish to
move the whole part, you should do this in the initial buffer and process again.
You can always use Display statistics or
Abstract the project
to check for possible errors in the processed buffer. <F10> and <Ctrl>-<F10>(for
backwards), if you are editing the processed buffer, moves the robot continuously for verification. Try holding the
<Shift>, the <Ctrl> or the <Alt> keys during replay.
Sometimes you may do some corrections directly on the processed buffer as it is the case when you edit joint movement.
The robot always executes the contents of the processed buffer.
To the top
Processing
Processing is the conversion of the
initial trajectory (i.e. the description of the movement that has been imported or created,
with few, if any, robot shape information) into the processed trajectory (i.e. the final solution (joint information) for every point, including
the movement between points).
Processing is an automatic feature. It is controlled by
Processing options and it may complete
error free or finish with a processing error.
To the top
Project file
Or just project, is a single file containing everything
required to completely define your work.
The project includes:
A housing, a
robot, a toolholder, three trajectories (called initial, processed and part),
important options: process options and import options, and user preferences such as: colors, current zoom position, viewing options and
default values for some dialogs. This is completed with a control data record
identifying the author, company, remarks and more.
The project file is stored in .vPR
format. This is a proprietary file format that you will not find in other programs.
No standard file format exists including this information. Some of these records can be viewed (or printed) using the function
Abstract the project.
Current .vPR
files will always be supported by future versions of dyBOT,
even if the format may evolve in order to support new features.
To the top
Reorbiting
The rapid movement from one entity to the next one requires
some attention. Usually, when 5 axes information is defined inside dyBOT
because the imported trajectory does not contain tool direction information, the rapid movement has to be divided in three basic movements:
a) retracting in the direction of the tool at the origin point
b) the rapid movement itself
c) engaging in the direction of the tool
at the destination point
When both directions are parallel, all these movements
are lines. When the tool direction is referred in alignment to a point (usually the T-point), the rapid movement is an arc, or more generally,
if the distance from both points to the reference point is different, a spiral (called orbit). This trajectory is called an orbit because
those 3-D spirals are "orbit looking", they are not elliptical arcs.
Orbits are created automatically by:
Tool direction (Yaw, Pitch) / Set and
Align selected points with the T-point.
To the top
Robot
This is the basic part of this program. In
dyBOT the robot is just the "moving structure", clearly separated from the toolholder
and the tool.
A robot is a complex structure (a structure made
of structures) organized, at the root level, in six sections:
a) Robot name
b) Joints limits and directions
c) Robot dimensions
d) Robot blocks
e) Output file grammar
f) Robot dynamics
The full definition of a robot is saved as a separate file, with the extension .vBT
for later use in other projects.
The structure is explained below under customization guide.
To the top
Selection
Most of the edition commands: copy,
paste, delete, move, scale, rotate and many more, have effect on a group of points that is indicated by little
highlighted boxes as in the image above.
The online help shows this with graphics.
Download.
This group of points is called the selection. When
something is selected, the lower left corner of the screen shows how many points are selected.
You can select or unselect, by point, by window and by range. The last selection change can be undone if you did a mistake.
To the top
Teach-in
Teach-in is the most interactive way to edit points,
insert new points, move the selection, create tool directions, and much more.
Basic issues:
Teach-in controller (upper left corner), Teach-in hot spots (little white points that show a hint
if you stop the mouse cursor on them), T-point (the point that you move, jog, fix robot shape, etc. in red),
Current point (in white-red dashed line).
Read
Teach-in fundamentals to learn more details.
The online help shows this with graphics.
Download.
To the top
Tool
In order to make the program easier to use, this (even
if it belongs to the toolholder) is separated inside Process options
under basic options.
This way, you can change such things as: tool length,
spindle speed, and home position without modifying your robot or toolholder.
The tool length is just a difference from a reference tool (the tool for which the toolholder was designed) and the actual tool.
Consider tool length as the distance to the trajectory, no matter if the real tool is longer (as it happens when cutting with a
tool) or shorter (welding or jet-cutting).
To the top
Toolholder
This is the definition of all the equipment that is
mounted on the robot.
Like a robot, it is a complex structure (a structure made of structures).
The full definition of a toolholder is saved as a separate file, with the extension .vTH
for later use in other projects.
The structure is explained in the Customization guide.
To the top
Trajectory
Unlike in most CAD systems, in
dyBOT the order in which entities (lines, arcs, curves) are stored and the direction
in which they are created (if a line starts at one point and goes to another, or just the opposite) is meaningful, and never changes unless indicated
explicitly.
As a consequence, all points have a number
and the terms next point and previous point really mean the order in which the robot will reach the points. Even selection can be made by number.
A trajectory is a drawing in which all the points are strictly ordered and that order IS meaningful. Points can be any of
the following: 3 axes, 5 axes, 6 axes or 12 axes (Joints + Cartesian).
The order can be created/modified.
a) Fully automatically. (Trajectory optimization)
b) By groups. (Select a range, cut, go to different
point & paste)
c) Point by point. 3D "digitalization" of a part:
<right-click> (=go to point) + <ctrl>-<P> (=push point)
d) Insert before & insert after (see
Teach-in)
To the top
Trajectory optimization
As mentioned in
Q&A (What CAD systems does dyBOT
support?) CAD drawings are not created thinking about the order and sense of their entities. (See the left part of the drawing above). If we draw
a line from one entity to the next one, we see a disorder. Once optimized (right part of the same image) we see a good solution organizing the entities.
See Optimize the initial trajectory for more.
The online help shows this with graphics.
Download.
To the top