Robotics 3

Page 1

Robotics 3 Coursework 1 Programming using VAL+ TUTOR: Tony Roberts

STUDENT NAME: Arvydas Gordejevas

STUDENT NO: 2602021

SUBMISSION DATE: 11th January 2011


Introduction A company that mass-produces household crockery is seeking an automated handling solution for packaging eggcups. As a representative from Staubli Unimation you have been approached for a solution, which involves the use of a RX90 articulate robot arm. The following data has been supplied: Eggcup measurements: Diameter: 30mm Height: 50mm Weight: 4 ounces (1 ounce = 28.3495231 grams) = 113.39809 grams = 0.113398 kg The eggcups are packed into a shallow cardboard container, which will hold 25 units equally spaced. They are supplied to the loading station via a conveyor system. As the robot will be loading one eggcup at a time the loading position on the conveyor is assumed to be for the purposes of the program, constant. General Specification of Staubli RX901 This reliable and robust assembly of the 6 joints of the Staubli robot is associated with an innovative counting system allows the absolute position of the robot to be known at all times. The arm assembly is sufficiently flexible and is able to perform a great variety of applications. Nominal payload: 6 kg Maximum payload: 11 kg Arm reach: 985 mm Accuracy in repetition: 0.02 mm Mounting: Floor, ceiling. As from Figure 1 we can see clearly the measurements of the Staubli RX90 robot arm. And from this we can organise our workspace. And the first thing to consider would be the length of the robot arm that can be reached is 900mm (not counting 85mm as this part belongs to end-effector and our work will be done in vertical movement).

Figure 11 RX90 robot arm dimension

1

http://www.eurobots.net/desc/id/61/Staubli-RX90-control-CS7M-robots-en.html Other Robots - Staubli RX90 control CS7M

2|Page


Part A In order to write a program in VAL + that will allow the robot to load 25 eggcups into a single container, we need to know the measurements of that container. In other words: we need to create one. We know that a single container holds 25 units of eggcups; therefore it will be spaced equally in an array of 5 rows by 5 columns. To find out what would be the distance between the holes of the eggcups we would need to know the shape and the size of the gripper (end effector). As an object is round in my consideration we would need a gripper to be within 3 ends, similar to Figure 22. As with ordinary gripper (Figure 33), the eggcup could slip away or can be grabbed not in a centre, in which way it could make a complications when placing an eggcup into the hole of the container. Of course ordinary gripper (Figure 3) have been proven that it can be used for picking up and placing round subjects, but what probably I am trying to say is that gripper, Figure 2, would do the job in this situation more accurately.

Figure 22

Figure 33

OK, let’s make a gap between eggcups in the container 20mm, considering that there will be enough space for a gripper to fit in and to release an object. Shallow cardboard container measurements: Diameter of the hole for an eggcup: 30mm Distance between eggcups from their corners: 20mm Distance between eggcups from their centre: 50mm Distance between the first eggcup hole and the 5th, from their centre: 50 x 4 = 200mm Measurements are equal for x and y axis. 2 3

http://picasaweb.google.com/sambouchard418/RobotiqAdaptiveGripper# http://www.realautomation.ca/robotgripper.htm

3|Page


To avoid any collisions with the materials on a container we going to start placing eggcups from top left hand side corner and working back finishing every single row first before moving one column down till the last of the 25th eggcup is placed at the bottom right hand side corner. Considering that conveyer, of the loading eggcups, is placed on the right hand side. Before we write the program, the RX90 workspace has to be defined. Therefore, the RX90 robot coordinates in 3 dimensional is (0, 0, 0). Pick up point of the eggcups (450, 0, 0), choosing 450mm as it’s the length of the robot first part (please see Figure 1 (A)). Shallow cardboard container: first hole at the top left hand side (0, 650, 0); last hole at the bottom right hand side (200, 450, 0). All coordinates are in mm.

Shallow cardboard container

RX 90

EGGCUP PICK UP POINT

Let’s put all the coordinates into precision points which are marked by ‘#’: #start – (0, 0, 1405). This point is taken when the RX90 is fully extended upright. #eggcup – (0, 450, 100). This point is taken when the RX90 arm is 100mm above the eggcup pick up point. #container – (0, 650, 100). This point is taken when the RX90 arm is 100mm above the first hole of the shallow cardboard container.

4|Page


Programming in VAL +

DISABLE CP

% Disable Continuous Path; enabling point to point mode

SPEED 80, ALWAYS

% Program speed; ‘ALWAYS’ overwrites monitor speed

TOOL gripper_1

% if there is more than one size gripper it needs to be able distinguish those different sizes

ACCEL 50, 50

% Controls acceleration and deceleration

OPENI

% Open the robot gripper; I – open immediately

BREAK

% Suspend program execution until the current motion completes

MOVE #start

% ‘#’ - precision point (J1, J2 ... J6 = angles); to set up robot

SET eggcup_1 = SHIFT (#eggcup BY 0, 0, -50)

% A position of picking up an eggcup (considering that the end-effector picking point is calculated right)

FOR j = 0 TO 4

% y-axis points

FOR i = 0 TO 4

% x-axis points

SET container_1 = SHIFT (#container BY 50*i, -50*j, 0)

% landing position above the container

SET container_2 = SHIFT (#container BY 50*i, -50*j, -50) % in place position of an eggcup (considering that an end-effector is not longer than 45mm, so it won’t collide with an eggcup when it’s released and is moved away from the placing point) SPEED 80

% Speed is high when not handling eggcups

ACCEL 100, 50

% Acceleration and deceleration is high when not handling eggcups

MOVE #eggcup

% Moving above eggcup pick up point

SPEED 20

% Speed is slow to pick up an eggcup

ACCEL 100, 50

% Acceleration and deceleration is low for picking up an eggcup, although the speed is already slow and a gripper is empty, the acceleration and deceleration can be a bit faster. Changing only deceleration so it won’t overshoot.

MOVE eggcup_1

% Lower it down to pick up an eggcup

BREAK

% Suspend program execution until the current motion completes

CLOSEI

% Close the robot gripper; I – close immediately 5|Page


BREAK

% Suspend program execution until the current motion completes

SPEED 40

% Speed is slower when handling an eggcup

ACCEL 50, 50

% Acceleration and deceleration is a bit slower, although most of the speed is reduced already

MOVE #eggcup

% Lifting an eggcup

MOVE container_1

% Moving an eggcup to the landing position above the container

SPEED 30

% Speed for handling an eggcup

ACCEL 50, 50

% Acceleration and deceleration for handling an eggcup

MOVE container_2

% Place an eggcup

BREAK

% Suspend program execution until the current motion completes

OPENI

% Open the robot gripper; I – open immediately

BREAK

% Suspend program execution until the current motion completes

SPEED 80

% Speed is high when not handling eggcups

ACCEL 100, 50

% Acceleration and deceleration is high when not handling eggcups

MOVE container_1

% Moving gripper away

END

% Ends the first loop

END

% Ends the second loop

MOVE #start

% Returns to the start point (set up point)

END

% Ends the program

The program is written in VAL + which allows the robot to load 25 eggcups into a single shallow cardboard container. It fully documents every line of the program from start to the end. Assumptions have also been made: 1. End-effector is right to pick up an eggcup which would always keep it in a centre of an endeffector, so there won’t be any mistakes in dropping off, or overshooting a bit, in which case it could make a problem in placing eggcups. 2. Also end-effector isn’t longer than 45mm, so it won’t hit eggcups when approaching and leaving. And there is enough space for a gripper to fit in a container, so it won’t hit other surrounding eggcups when placing one of them and leaving. 3. The cardboard container world frame is equal to local frame. Otherwise location of a local frame needs to be found in a world frame using TRANS. 4. 3 Precision points have been programmed, therefore coordinates doesn’t need to be repeated. 5. At the end of the program end-effector is closed. 6|Page


6. Gripper is set to pick up an object in a right height, in other words it’s calculated in exact point the ‘fingers’ would meet.

Part B 1. Improving effectiveness ‘in process’ can be done using sensors/sensing systems, this would also make a robot more autonomous. 1. First of all it is very important safety around the robot workspace, therefore sensors like laser barrier or pressure mat need to be installed around the robot. 2. Second, it is good to have sensors in a robot joints which could tell if it had a collision with anything and stop it from further damaging an object or itself. 3. Third, eggcups pick up point could have a sensor like an ultrasound, which could let the robot know if an eggcup have any fault, in this case it will tell for a robot what to do next: to reject, or to accept it. Same sensor could let the robot know if an object is in a place, in this case telling the robot to wait for a part to arrive. 4. Pick up point could have a sensor to count how many eggcups been picked up and from there subtracting a number of faulty eggcups, or wrong materials. 5. End-effector could have a sensor telling when the part, in this case eggcup, is in a right location to close the gripper. 6. Gripper could have a pressure sensor to sense when enough pressure is applied, so it can be more controlled in handling an object and stop from any damaging the gripper could cause. All this and even more of the sensors could be installed and programmed, for example stopping conveyer belt placing an eggcups in a pickup point until the point is clear. Letting know when the container of 25 eggcups is full. All this will make robot work much more accurate and it can also help to speed up in work process. Plus, less supervision needed.

2. In order to make the same robot arm removing the packed containers from the workcell it would mean some changes and some considerations to be made. 1. Shallow cardboard container will need to be stiffer for picking up and removing with all 25 eggcups placed inside. 2. End-effector might need to be changed in a right one for its task. 3. Considering the maximum weight that robot arm can carry, which is 6kg. 4. The reach of the robot arm will tell how far it can be placed, which is 985mm. 5. Using sensors, or even a counter is enough to let conveyer belt know when to remove the packaging and replace with an empty one. A robot arm, which been mentioned, but maybe haven’t been given a name at a time, in all this documentation, is ‘Staubli RX90’. 7|Page


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.