Robot cell
EASY-ROB Robot Simulation Tool

Copyright © 1996 by Stefan Anton


EASY-ROB Tutorial
The EASY-ROB Tutorial guides you through the program user panel and gives you a quick overview about the capabilities in EASY-ROB. All images in this tutorial are screen shots. The text besides the images will explain the current state and the possibilities you have. Follow the suggested links, and the tutorial leads you to the next action. In the centre of the user panel is the Menue selection window. From here, you can start every action in EASY-ROB. I suggest that you download this HTML document and read it offline. Start the Tutorial | EASY-ROB Homepage.
Have fun ...
Stefan
EASY-ROB Start Tutorial
EASY-ROB Start Image When you start EASY-ROB, this image appears on your screen. In the middle is the green world coorsys. The floor, a cobweb, is rendered in wire frame.
The bottom line is the Command Line. The mouse cursor moves along this line. Click with the left mouse button to start an action.
For example click the MENUE button.
EASY-ROB Start image | Command Line | MENUE | Top |


EASY-ROB Command line
cmdl1 cmdl1 cmdl1 cmdl1 cmdl1 cmdl1 cmdl1
cmdl1 appears if the Cartesian mode is active
| ADJ. | MENUE | EXIT or Top |

F1 Key			online help, press F1 any time for help
-1 +1 ... -6 +6  [7-12]	move the robot in joint space
-X +X ...-C +C  Cnfg 1	move the robot in Cartesian space,
			current robot configuration is one
AX			switch to joint mode
KART			switch to Cartesian mode
Adj.			goto the Adjustment line (world view etc.)
Menue			open the MENUE window for more functions
EXIT			Exit EASY-ROB
-+_*			increase or decrease the moving step of robot

EASY-ROB Adjustment line
adj1 adj1 adj1 adj1 adj1 adj1 adj1 adj1 adj1
| MENUE | QUIT | Top |

F1 Key		online help, press F1 any time for help
-X +X ...-Z +Z	translate or rotate the 'activated' (cyan coloured) state
Zoompoint	activate 'Zoompoint'
trn_world	activate 'translate world view'
trn_base	activate 'translate base view'
rot_world	activate 'rotate world view'
Refr		refresh the screen
Menue		open the MENUE window for more functions
Quit		return to the Command line
-+_*		zoom in "+","*" or out "-","_"

EASY-ROB Menu
EASY-ROB Menu Tool Data
Robot Motion & Kinematics | DH | Universal |
Robot Program
Save
Delete
Load
Run
3D-CAD
Miscellaneous
Exit EASY-ROB
Quit

| Top |

F1 Key			online help, press F1 any time for help
Tool Data		enter the TCP values
Save			save the current work
Delete			delete the current work
Load			load a new robot, tool, view, cell, etc.
Miscellaneous		activate additional functions
Exit EASY-ROB		bye
Quit			goto Command line or Adjustment line

EASY-ROB 3D CAD
EASY-ROB 3D_CAD The 3D CAD allows you to create basic geometries.
Select a colour and the render for your body and give the location (XYZ ABC).
Definition: ABC = RotX*RotY*RotZ
The 17. Move body by mouse allows you to modify the bodies location by the mouse very easily.
3D-CAD Menu | MENUE | Top |


EASY-ROB 3D CAD Create new Body
EASY-ROB 3D_CAD Create The 3D CAD Create Menu prompts you to select a body you like to create
Block
Pyramid
Pyramid X
Cylinder
Cone
Sphere
Composition of all bodies Arc gun

3D-CAD Create new Body Menu | MENUE | Top |


EASY-ROB 3D_CAD Block Block
A block is determined by its X-,Y- and Z-length. Each body has reference position (light cyan coloured coorsys) and a position (cyan coloured coorsys) frame. The position frame is related to the reference position frame.

EASY-ROB 3D_CAD Pyramide Pyramid
A pyramid is determined by its X- and Y-length and the height in Z-direction.
Values dx and dy shift the top of the pyramid.

EASY-ROB 3D_CAD Pyramid X Pyramid X
A pyramid X is determined by its X- and Y-length for the bottom, its X- and Y-length for top and the height in Z-direction.
Values dx and dy shift the top of the pyramid.

EASY-ROB 3D_CAD Cylinder Cylinder
A cylinder is determined by its bottom and top radius, 2 heights and a scaling value in y direction.
Values dx and dy shift the top of the cylinder.

EASY-ROB 3D_CAD Cone Cone
A cone is determined by its radius, the height and a scaling value in y direction.
Values dx and dy shift the top of the cone.

EASY-ROB 3D_CAD Sphere Sphere
A sphere is determined by its radius and a scaling value.


EASY-ROB 3D_CAD Arc gun Arc gun
The Arc gun is a composition off the basic bodies available in EASY-ROB
| Top | MENUE | 3D CAD |



EASY-ROB Robot Motion & Kinematic
EASY-ROB Robot & Kinematic EASY-ROB allows you to generate different robot kinematics types (DH,Universal). This is a composition of basic bodies available in EASY-ROB. You can move the robot in joint and Cartesian space. If the Cartesian mode is active, you can move the robot related to the TCP frame or the world frame. ( a frame is similar to a coorsys). The reachability is checked all the time. A message appears if the robot's location is out of reach.
Robot with back link | MENUE | Top |

EASY-ROB Robot & Kinematic The blue coorsys presents the TCP (Tool Center Point) of the robot. You can modify the Tool Data every time. If you give a new Cartesian location (XYZ ABC) the robot interpolates in a straight line moving to the new location if this location is reachable. If not, a message appears and this location is rejected. You can also give new joint values (in [m] and/or [deg]) for the robot. The robot interpolates in synchro PTP (Point to Point) to the new joint values.
Robot in wire frame | MENUE | Top |

EASY-ROB Position EASY-ROB Switch Menue The Switch ON-OFF Menu allows you to switch ON and OFF different things, like the output window for the position, show the robot TCP track, the render mode (wire or flat), etc.
The left window Show joint & position data displays the current joint values, Cartesain location and the configuration of the loaded robot. If the travel ranges are exceeded, the joint values of these axis are red coloured (see joint 4 and 5). The Position is the TCP location related to the robot's base. If a robot's program is executed, the total time (Time), the time for the current move command (Tipo), the stepsize (dt) and the current override are displayed.

| MENUE | Top |

EASY-ROB Robot Coorsys EASY-ROB Robot Coorsys When you switch ON the robot coorsys, the robot joint coorsys are displayed in yellow colour. A yellow coloured coorsys determines an active robot joint. Green coloured coorsys determines passive joints like the back link. This is very helpful to understand a robot kinematics, specially when you use the DH or the Universal kinematics notation to design your own robot.
| MENUE | Top |

PTP, LIN, Configuration
EASY-ROB Robot EASY-ROB Lin Move EASY-ROB Lin Move These images show another robot with 6 DOF (Degrees Of Freedom). The TCP-Track is switched to ON (green colour). The robot was moved in straight line in -Y direction related to its TCP coorsys (blue colour). The right image shows a PTP move to a new configuration. The final location is the same. This robot kinemartics type has 8 configurations, i.e. 8 different sets of joint values for one Cartesian location. The inverse kinematics in EASY-ROB calculates all possibilities for this kinematics.

| MENUE | Top |


EASY-ROB Robot Kinematic
EASY-ROB Kinematic EASY-ROB Backlink

The kinematics input window allows you to modify the lengths for this back link robot. This robot is a RRR:RRR type. The Transformation 'T' from the robots base-'b' to the robot tipframe 't' is:
bTt =	RotZ(q1) * Trans(l1x,l1y,l1z) *		// to joint 2   
	RotY(q2) * Trans(l2x,l2y,l2z) *		// to joint 3
	RotY(q3) * Trans(l3x,l3y,l3z) *		// to joint 4,5 and 6
	RotZ(q4) * RotY(q5) * RotZ(q6) * Trans(0,0,l6z);
The lengths l1, l2, l3 and l6z belong to the active joints. The backlink (two joints) are passive joints. A passive joint has a mathematically dependency to an active joint. In this case, the back link depends on the joint values of the active joint 2 and 3. The passive joint 2 is attached to the active joint 2. The passive joint 3 is also attached to the active joint 3 and is shifted transitional by (Jnt.3z..x) related to the coorsys of joint 3.
| MENUE | Top |


EASY-ROB DH (Denavit & Hartenberg) Kinematic
EASY-ROB DH Manutec EASY-ROB DH Kin The DH parameter allows you to describe a robot kinematics with only 4 values for each robot joint.
These 4 values are
Theta (Tz | Rz)	Translation or Rotation in Z-direction
D (Tz)		Translation in Z-direction
A (Tax)		Translation in X'-direction
Alfa (RCS)	Rotation about X'-direction
EASY-ROB allows you to describe a robot kinematics by using the DH notation up to 12 DOF and guides you through the following steps.

1th step
EASY-ROB AJnt
Specify or modify the number of joints for the robot.
In this case 2. active Jnt 1 RZ means that this robot has one joint, which is rotational about Z-direction.
2nd step
EASY-ROB DH 7TZ
Select if this joint is translational or rotational about Z-direction.
3rd step
EASY-ROB DH DATA
Enter the DH parameter:
Theta, D, A, Alfa
. . .
its done.

Kinematic Information
EASY-ROB DH INF1 This window gives you information about the current robot kinematics. The robot has 6 active joints (6 DOF), each active joint is rotational about Z-direction and the robot has no passive joints.

EASY-ROB DH INF2
This window gives more detailed information about the DH parameter for each active joint.
| MENUE | Top |


EASY-ROB Universal Kinematic
EASY-ROB Univ Temp
'uni_temp.rob'
EASY-ROB Univ Kin A universal robot kinematics type is very similar to the DH kinematics. The different is that each joint can translate or rotate about X-, Y- or Z-direction.
The robot 'uni_temp' has one active joint (red coloured in flat) and three passive joints (grey coloured in wire frame). Each passive joints is mathematically dependent to this one active joint.
Modify the values for the 2. Passive Joints.

Passive Joints
EASY-ROB Univ PJnt Passive joint number 1 is rotational about Z-direction 'RZ', is inside the kinematics chain 'C' and is attached to the active joint number '0', which is the robot base.
Passive joint number 3 is attached to the active joint number '1' and is also inside the kinematics chain 'C'.

EASY-ROB Univ PJn2 The title shows the current values 'RZC0' for this passive joint
1. Type is T or R, Direction is X-,Y- or Z-direction.
2. Chain spec. is inside 'C' or outside '_' the kinematics chain.
3. Attach to active joint prompts you to enter an active joint number.
4. Math. Jnt. dependency prompts you to specify a math. function.
5. Geometric Data for the transformation to the next joint in the kinematics chain.

EASY-ROB Univ PJGE Geometric Data
Enter the values for this passive joint no. 1 to the next joint in the kinematics chain.

Kinematic Information for the 'uni_temp' robot
EASY-ROB UNI INF1 This window gives you information about the robot kinematics. The 'uni_temp' robot has 1 active joint (1 DOF), which is rotational about Z-direction and has 3 passive joints.

Each passive joint is mathematically dependent to the active joint no 1.
pJ(1): f1 will call the function f1 from the er_kin.dll.
pJ(2): +1 will rotate with the same angle like active joint 1.
pJ(3): f2 will call the function f2 from the er_kin.dll.
| MENUE | Top |


Run a robot program
EASY-ROB Run Menue 1. Run Program will execute the current loaded program.
2. Run Joint Recording will execute the current loaded joint recording.
3. Load Program will load a program for the robot.
4. Load Joint Recording will load a joint recording for the robot.
5. Run Program Settings will set program run values, like 'debug'.


EASY-ROB Run Prg
When the program is executed, at the bottom of the screen the last 5 program commands are displayed. The bottom line Go Stop ... Step Help allows you to stop, continue, quit, etc. the simulation any time.
'+' and '-' increases and decreases the simulation speed.
| MENUE | Top |


Robot Program
EASY-ROB provides many program commands.
Contents
0. Preface
1. Robot motion and process commands
2. ERC (Easy Rob Commands)
3. Example program
| MENUE | Top |


0. Preface

For program generation you can use the EASY-ROB program generator,
or use an editor. Each Program has following basic structure.

PROGRAMFILE
! This is my program
; hello easy-rob
config 1
...
! call a function
call my_fct()
ENDPROGRAMFILE

FCT my_fct()
! do s.th.
ENDFCT

Tips:
- Set a robot configuration first for determined robot
  behaviour
- If you generate a program while editing the program file
  and you like to save the current robots location, then
  you have to "open the program file for append".

  Open File for append
  MENUE - ROBOT PROGRAM - Open Program for append
  allows you to save CONFIG, PTP or LIN commands

  Edit the program file
  MENUE - ROBOT PROGRAM - EDIT current created Program
  choose your preferred editor in the configuration file

  Load program file
  MENUE - ROBOT PROGRAM - LOAD Program
  allows you to execute current created program for test
  !!! Quit the Program Execution, otherwise the program
  file is not closed

Program Contents



1. Robot motion and process commands

BEGIN - program starts here, this is default

PROGRAMFILE - indicator for the interpreter.
  PROGRAMFILE must be in each first program line

END or ENDPROGRAMFILE - indicate the end of a program

FCT - indicator for the interpreter.
  The function definition starts here
  values: string
  example: FCT my_fct()

ENDFCT - indicator for the interpreter.
  This determines the end of the function

CALL - will execute the function call
  values: string
  example: CALL my_fct()

CONFIG - set the robot configuration. The next motion command (PTP or LIN)
  should be a PTP move.
  (a robot cannot change its configuration during LIN move)
  values: integer
  example: config 1

PTP_AX - move the robot to the target joint position in PTP mode.
  The number of values is the DOF of the robot.
  values: float's
  example: PTP_AX  30.0 -90.0 20.0   0.5 0.0 -0.3
	for a RRR:TTT robot with 6 DOF
	PTP_AX  30.0 -90 will keep the values of the last 4 joints.

PTP - move the robot to the target position in PTP mode.
  The target position is related to the
  BASE position.
  ABC is RotA * RotB * RotC
  values: X Y Z   A B C
  example: PTP  0.1 0.2 0.3   30.0 -60.0 180.0
	     X = 0.1  Y = 0.1  Z = 0.1 unit [m]
	     A = 30   B = -60  C = 180 unit [deg]

LIN - move the robot to the target position in LIN (straight) mode.
  The target position is related to the
  BASE position.
  ABC is RotA * RotB * RotC
  values: X Y Z   A B C
  example: LIN  0.1 0.2 0.3   30.0 -60.0 180.0
	     X = 0.1  Y = 0.1  Z = 0.1 unit [m]
	     A = 30   B = -60  C = 180 unit [deg]

MSG - message to program window
  values: string
  example: MSG I enjoy robotics

WAIT - wait for some seconds
  value: seconds
  example: WAIT 2.0

ERC - Easy Rob Command, see below

PTP_REL - moves the robot relative to the current TCP location in PTP mode.
  values: dX dY dZ   A B C
  example: PTP_REL  0 0.2 0   30 0 0

LIN_REL - moves the robot relative to the current TCP location in LIN mode.
  values: dX dY dZ   A B C
  example: LIN_REL  0 0.2 0   30 0 0

TOOL - set the Tool Data, the TCP location related to the robots tip.
  values: X Y Z   A B C
  example: TOOL  0 0 0.2   30 0 0

BASE_PRG - set the origin of the program base
  values: X Y Z   A B C
  example: BASE_PRG  0 0 0.2   0 0 0

BASE_PRG_REL - shift the origin of the PROGRAM_BASE with respect to the
  PROGRAM_BASE coorsys.
  The new PROGRAM_BASE is: PROGRAM_BASE = PROGRAM_BASE * BASE_PRG_REL
  values: X Y Z   A B C
  example: BASE_PRG_REL  0 0 0.2   0 0 0

BASE - set the base frame for target points
  values: X Y Z   A B C
  example: BASE  0 0 0.2   0 0 0

  The final TCP location of a robot is:
  BASE_PRG * BASE * target_location.

BASE_REL - shift the origin of the BASE with respect to the
  BASE coorsys.
  The new BASE is: BASE = BASE * BASE_REL
  values: X Y Z   A B C
  example: BASE_REL  0 0 0.2   0 0 0

SPEED_CP - set the speed for continuous path motion in [m/s]
  values: float
  example: SPEED_CP  0.375

SPEED_PTP - set the speed for PTP motions in [deg/s] and
  the orientation speed for continuous path motion.
  values: float
  example: SPEED_PTP  30.0

OV_PRO - set the programmed overrride in percent
  Allowed values are 1..200
  values: float
  example: OV_PRO  50.0

Program Contents



2. ERC (Easy Rob Commands)

The following command are used with ERC command parameter_list

Examples:
   ERC TRACK ON
   ERC IPO_STEP 0.5
   ERC RENDER FLAT
   ...

SET_DEFAULTS
- set program window ON
- set robot visibility ON
- set robot coorsys OFF
- set tool visibility ON
- set bodies visibility ON
- set world coorsys visibility ON

TRACK - set track on robot TCP on or off
  syntax: ERC TRACK ON/OFF

IPO_STEP - set the interpolation time step , unit [sec]
  syntax: ERC IPO_STEP 0.25

LOAD - load a tool, robot, view, body or recording file
  syntax:
  ERC LOAD TOOL my_tool
    the extension *.tol in this case is appended automatically
  ERC LOAD ROBOT my_robot
    the extension *.rob in this case is appended automatically
  ERC LOAD VIEW my_view
    the extension *.viw in this case is appended automatically
  ERC LOAD RECORDING my_rec
    the extension *.rec in this case is appended automatically
  ERC LOAD BODY my_body
    the extension *.bod in this case is appended automatically

RENDER - set render to wireframe or flat
  syntax: ERC RENDER WIRE/FLAT

ORTHOGRAFIC - set the orthographic view on or off
  syntax: ERC ORTHOGRAFIC ON/OFF

STOP - stop program execution until mouse click or any key
  syntax: ERC STOP txt is default

ROBOTJOINTS - display the robot joint on or off
  syntax: ERC ROBOTJOINTS ON/OFF

ROBOTPOSITION - display the robot Cartesian location
  "robot base to TCP" on or off
  syntax: ERC ROBOTPOSITION ON/OFF

FLOOR - set floor visibility on or off
  syntax: ERC FLOOR ON/OFF

FLOOR_RENDER - set floor render wire or flat
  syntax: ERC FLOOR_RENDER WIRE/FLAT

ROBOT_BASE - set the robots base location related the world coorsys.
  The robots base will interpolate to its new base.

  It's a robot on a gantry now

  values: X Y Z   A B C
  example: ERC ROBOT_BASE  0 0 0.2   0 0 0

ROBOT_BASE_REL
- shift the ROBOT_BASE
- shift the origin of the ROBOT_BASE with respect to the
  ROBOT_BASE coorsys.
  The new ROBOT_BASE is: ROBOT_BASE = ROBOT_BASE * ROBOT_BASE_REL
  values: X Y Z   A B C
  example: ERC ROBOT_BASE_REL  0 0 0.2   0 0 0

GRAB - grab a body to the robot's tip
  syntax: ERC GRAB BODY my_body

RELEASE - release a body from the robot's tip
  syntax: ERC RELEASE BODY my_body

GRAB BODY_GRP - grab all bodies from the group: BODY to the robot's tip
  syntax: ERC GRAB BODY_GRP

RELEASE BODY_GRP - release all bodies from the group: BODY to the robot's tip
  syntax: ERC RELEASE BODY_GRP

TCP_COORSYS - set tcp_coorsys on or off
  syntax: ERC TCP_COORSYS ON/OFF

BASE_COORSYS - set base_coorsys on or off
  syntax: ERC BASE_COORSYS ON/OFF

PRG_WIN - set program window on or off
  syntax: ERC PRG_WIN ON/OFF

DISPLAY_ROBOT - set robot visibility on or off
  syntax: ERC DISPLAY_ROBOT ON/OFF

DISPLAY_TOOL - set tool visibility on or off
  syntax: ERC DISPLAY_TOOL ON/OFF

DISPLAY_BODYS - set bodys visibility on or off
  syntax: ERC DISPLAY_BODYS ON/OFF

DISPLAY_ROBOT_COORSYS - set robot's joint coorsys visibility on or off
  syntax: ERC DISPLAY_ROBOT_COORSYS ON/OFF

RUN_RECORDING - run currently loaded joint recording file
  syntax: ERC RUN_RECORDING [my_rec]
  example:
    ERC LOAD RECORDING my_rec
    ERC RUN_RECORDING
  or
    ERC RUN_RECORDING my_rec
    will load an run my_rec

Program Contents



3. Example program

PROGRAMFILE
! prgfln ..\simrob\my_proj\uni_tmpl.prg 
ERC TRACK ON
erc floor off
erc load view uni_tmpl
TOOL  0 0.15 0 0 0 0
MSG -
MSG using the f1- and f2-fct from the er_kin.dll
MSG -
speed_ptp 20.0
PTP_AX         720.0000
TOOL  0 -0.15 0 0 0 0
PTP_AX           0.0000
ENDPROGRAMFILE

Program Contents

| MENUE | Top |


Download the EASY-ROB Tutorial

er_tutor.exe (~115KB) is a selfextracting archive.
Copy this file to your EASY_ROB directory, if EASY-ROB is already installed. If not, it does not matter where this file resides on your system. When you unpack with the -d option the directory .\er_tutor\ is created.
Start your Web Browser and open the er_tutor.htm file.

- download here -

| Top |


Last revised on 06-07-1996 at 12:00:00 by Stefan Anton