Sunday, December 21, 2014

Taubman College Agilus Workcell Operating Procedure

by Mark Meier

This post is an overview of the procedure for operating the Agilus robotics workcell in the Taubman College Fab Lab.

The Agilus Workcell

This Agilus workcell is used for teaching introductory robotics at Taubman College. It consists of a fixture for holding the robots, a worktable with removable panels, and two industrial robots: Kuka model KR 6 R900 SIXX (KR AGILUS). The robots are named Mitey and Titey. Mitey is mounted below the table. Titey is mounted above the table.

Each robot consists of the following components:
  • Manipulator: The robot arm and the associated electrical hookups. 
  • Robot Controller: The computer hardware located below the table. 
  • SmartPAD: The hand hand device for interacting with the robot. 
  • Connecting Cables: The cables connecting the manipulator to the controller. 
  • Software: The software consists of KUKA System Software and Windows XPe. 


Any discussion of working with the robots begins with safety. Safe operation of the robots relies on several things:
  • Awareness of the environment the robot is moving within: Make sure the path is clear of computers, building materials, and especially people(!) before jogging the robot or running programs. If you are only working with one robot, move the other one well out of the way. The work envelopes overlap so if you are not paying attention it's easy to have them collide. 
  • Simulation of the robot path prior to running programs: It is essential you software simulate the path the robot will move through prior to running the code on the robot itself. 
  • Start your program slowly: When you first run a program make sure to turn the speed of the program way down (say 10% to start with). After you verify that the path is clear of obstruction and there are no collisions with the table, the other robot, or your classmates, you can speed it up. 

Turning the Robots On and Off

Normally the robots are left running. That is the controller stays booted up and running. When you are done using them you can simply put the stylus back in the teach pendant, put the pendant into the holder, and that's it.

If you find a robot has been turned off  simply click the power switch on its controller (there is one for each robot). The robot will boot up in under a minute.

Workcell Coordinate System

The two robots in the workcell use the same coordinate system with the axes directions as shown below. It is important to understand this coordinate system when jogging and when designing programs for the robot:

The X axis is parallel to the front face of the table, with positive X values increasing to the right. 
The Y axis is from front to back, with positive Y values increasing toward the wall. 
The Z axis is vertical, with positive Z values increasing toward the ceiling. 

See the section below for the origin location. 

Units, Origin and a 3D Model for Simulation

When you work with robot toolpath programming software such as Kuka|prc or Super Matter Tools, you should use the Metric system in your Rhino files. Configure your file to use "Small Objects - Millimeters" as your template (choose File > New from the pull-down menus, then select the template). 

(See Common Metric Conversions for access to conversion values between Imperial and Metric). 

There is a 3D model of the workcell you can use inside your projects. If you use Super Matter Tools it can be automatically inserted from the interface. Choose DualKR6R900SIXX_UofM from the Work Cell drop-down. Then click the Import WorkCell Geometry button. 

If you use Kuka|prc then you can get it from my Google Drive and insert it into your model: AgilusWorkcellModel

The origin of the 3D model of the workcell is directly beneath Mitey, at 38mm below the top of the aluminum rails of the table surface. 

Teach Pendant / SmartPAD

You interact with the robot through its teach pendant. Kuka refers to this as its SmartPAD. These are hand held devices with a number of push button keys, knobs and a display.

The display is a touch screen so you can use your fingers. However, the buttons are small and it is usually easier to use the stylus stored in the back of the pendant case.

Below are the main buttons used on the controller. These diagrams and notes are excerpted from the Kuka User Guide.

The most important controls are highlighted in bold below: 
  1. Button for disconnecting the teach pendant. 
  2. Keyswitch for calling the connection manager. The switch can only be turned if the key is inserted.
  3. EMERGENCY STOP button. Stops the robot in hazardous situations. The EMERGENCY STOP button locks itself in place when it is pressed.
  4. Space Mouse: For moving the robot manually.
  5. Jog keys: For moving the robot manually.
  6. Key for setting the program override
  7. Key for setting the jog override
  8. Main menu key: Shows the menu items on the smartHMI
  9. Status keys. The status keys are used primarily for setting parameters in technology packages. Their exact function depends on the technology packages installed.
  10. Start key: The Start key is used to start a program.
  11. Start backwards key: The Start backwards key is used to start a program backwards. The program is executed step by step.
  12. STOP key: The STOP key is used to stop a program that is running.
  13. Keyboard key. Displays the keyboard. It is generally not necessary to press this key to display the keyboard, as the pendant detects when keyboard input is required and displays the keyboard automatically.

Note: These pendants cost about $9,000 each so please be careful in handling them. When done place them back in the storage bracket. And make sure to store the stylus in the case.

Push up on the foam to lift the bottom of the pendant over the lower rail, and twist it into place.

Logging In

Before you can fully operate the robots you'll need to log in. This lets you copy files and execute programs on the robot. To do so follow these steps:

Press the Main Menu key on the bottom right edge of the pendant (it's also available in the upper left corner of the display):

Choose Configuration > User Group.

Press the Log on button at the bottom of the screen:

From the Select a user section choose Expert. Then using the virtual keyboard enter the password which is kuka. Don't tell anyone the password - it is top secret... hardy, har, har. Then press the Enter key as shown.

As long as you continue to use the teach pendant you'll remain logged on. After about 5 minutes of inactivity you'll be logged off automatically. If you find you can't perform certain operations (for example loading programs) you likely need to log back in again.

Online Help

Even though you have access to the magnificent user guide you are now reading you may require more information. You can easily access the documentation for the robot using the following steps:

Press the Main Menu key on the bottom right edge of the pendant:

Choose Help > Documentation > System Software from the touch screen:

Choose the category you'd like to view, for example Operation.

Use the buttons at the bottom of the display to move through the pages. There is a lot of good information contained in the online help. 

Jogging the Robot

Manually moving the robot is referred to as Jogging. There are several ways of jogging the robot:
  • Cartesian Jogging: The Tool Center Point (TCP) is jogged in the positive or negative direction along the axes of a coordinate system.
  • Axis-specific Jogging: Each axis (A1 through A6) can be moved individually in a positive and negative direction.
  • Tool Jogging: The TCP is moved in the coordinate system of the tool. 
I find it most convenient to use the jog keys on the right hand side of the pendant (rather than the 3D mouse which is not as intuitive and is not covered in this discussion):

World Coordinates

To jog using World Coordinates click the on screen icon just above the axes labels. A pop up menu appears to let you choose mode. Click on the World icon:

The labels change to X, Y, Z, A, B and C.

Press and hold any one of the Enabling Switches located on the back of the pendant (labelled 1, 3 and 5 in the following illustration). The display labels turn green to indicate they are active. Then press the corresponding jog keys on the right side of the pendant to move in either the + or - direction for that axes.

Jogging in this mode will keep the orientation of the tool the same. Only the position will change.

  • X, Y, and Z move along those world axes. 
  • A rotates about world Z. B rotates about world Y. C rotates about world X. The right-hand rule determines the + or - direction. 

Axes Mode

To work in Axes mode select Axes from the pop-up menu. The labels now read A1, A2, A3, A4, A5 and A6. Axis A1 is the base of the manipulator and axis A6 is the wrist. Axes A1, A2 and A3 are referred to as Positioning Axes. Axes A4, A5, and A6 are referred to as Orientation Axes.

Press and hold any one of the Enabling Switches. The labels turn green to indicate they are active. Then press the corresponding jog keys to rotate in either the + or - direction of that joint.

If you are in a tight situation and not sure which way to move (+ or -), refer to the manipulator itself. Each joint is labelled on the arm along with arrows which show you the + and - directions.

Tool Mode

In tool mode the controls read X, Y, Z, A, B, C. The XYZ controls move in the tool space. This is easiest to visualize using the Teach Tool. The teach tool has the X, Y and Z axes shown in Red, Green and Blue.

When you jog in X, the robot travels directly along the Red axis (along the axis of the red stick). Likewise if you jog in tool Z the robot will move along the Blue axis.
The A, B and C controls rotate the robot around the Z, Y and X axes respectively. So for example if you jog in the A direction the robot will rotate around the Z axis of the tool. That is the blue axis will remain in the same location in space but the other axes will rotate around it.

Jogging Incremental Selection

Normally you are set to jog continuously. That is, as long as you press the + or - keys the robot will continue to move. You can change this so the robot moves a fixed distance or angular amount each time. To do so click the Incremental Jogging Mode button as shown below:

You can choose between Continuous, 100mm/10 degrees, 10mm/3 degrees, 1mm/1 degree, and 0.1mm/0.0005 degrees.

If you find that the robot doesn't seem to move as you use the jog keys - it may be set to use one of the slowest settings. Change it back to Continuous.

Copying Program Files to the Controller

(For guidance on generating code for the robots using Kuka|prc see Robot Programming with Kuka|prc.)

To get your program from your computer to the robot controller you'll need a USB flash drive.

Plug your drive into any of the the USB slots on the controller as shown below:

You copy programs from the USB to the controller using the Navigator file manager. If the Navigator is not showing, make sure to cancel the currently running program.

Click on the R at the top of the display and choose Cancel program from the menu.

If necessary press the Main Menu key to clear the main menu from the display. You should now see the Navigator display:

The plugged in USB Disk will be shown at the bottom of the folders list. The robot program files folder is at the top of the list (KRC:\)

Open the USB DISK (E:\) folder, navigate to the file you wish to copy. Note: You need to fully open folders on the left panel of the Navigator. You can't double-click them on the right panel as you can in Windows Explorer.

With the file you wish to copy selected, press the Edit button on the lower right of the display. From the menu presented choose Copy. These items are highlighted below in red.

Navigate to the folder to store your program. Files are stored in a subfolder of robot root:
KRC:\ (this is the one with the orange robot icon at the top of the list)

For my students in ARCH409 and ARCH509 create a folder for your group beneath this folder:

So you'd have:
R1\Program\SRC\409\group name

To Paste the file follow these steps:

Select the destination folder on the left. Click on the right side of the explorer in the file list for that folder. Click the Edit button at the bottom of the screen and choose Paste. 

In the example below the file is being pasted into the meier folder. 

You need to Select the program to make it available to run. 

Select the file on the right side of the Navigator. Press the Select button. The program's KRL code will appear and you can now run it. 

Important Note: Files in the system must be uniquely named. This is not just in one directory as you’d expect. It is across ALL directories. This means two things:
  • When choosing a filename use something to make it unique. For example don’t use something like "Project1". Everyone in the class could name it Project1. Better to use something like your group name followed the project name and number. 
  • When you are finished with a project, delete the files from the controller. Simply select the file in the Explorer and choose Edit > Delete. This will keep it from getting cluttered in the future. 
If there are errors in your code the icon will appear with a X through it as shown below.

To see the errors click the Error list button at the bottom of the interface. When you do the errors will be listed as shown below:

Controlling the Program Execution

After you've selected the program to run the KRL code will appear in the display.

Set the program playback speed slow at first. You can do this by pressing the + or - keys next to the playback icon. You'll see the current speed at the top of the display:

Hold one of the Enabling Switches and press the Play key on the left of the pendant.

To Pause the running program simply release the Enabling Switch.

To Resume a paused program hold one of the enabling switches and press the Play key.

To Restart the running program from the beginning choose Reset program from the menu as shown below:

Program Run Mode

You can also step the code along one line at a time. That is, halt after every instruction in the code rather than run them continuously. Click the button that looks like a small man located between the tool selector and the playback/job speed controls to see the options. These are:

  • Go: The program is executed through to the end without stopping.
  • Motion: The program is executed with a stop after each motion block. The Start key must be pressed again for each motion block.
  • Single Step: The program is executed with a stop after each program line. Program lines that cannot
  • be seen and blank lines are also taken into consideration. The Start key must be pressed again for each line. Single Step is only available to the user group “Expert”.
  • Backward: This program run mode is automatically selected if the Start backwards key is pressed. 

Installing the Grippers

It's a common operation with the robots to grip parts. To do this the pneumatic gripper tools are used. Each user is responsible for creating their own gripper fingers. The fingers are the part that is screwed to the gripper tool making it uniquly suited to the parts you wish to grab.

Custom fingers can be easily 3D printed in ABS plastic for about $10-$15 for a pair. You can download a Rhino file of the NURBS and Mesh model of these fingers here.

The grippers fingers are screwed to the gripper assembly using M3 screws, two screws per finger. This lets you slide the fingers back and forth and adjust the width of the part that's gripped. In the example pictured below the screws are 8mm in length.

It is sometimes useful to add double sided foam tape to the gripper fingers. This gives them a bit of cushion during the grip. Keep the outside face of the tape covered so it is not sticky!

The entire gripper tool is screwed to the toolplate using four M6 screws.

The gripper is operated by air pressure. The air hoses connect to the robot arm as shown below. First, remove the red plugs that are in the holes. Be sure to put these back when you are done - if they are missing air will leak as soon as the wall valve is turned. Simply press the ends of the air hoses into the holes shown. To release them you need to press on the blue ring surrounding the hole, then when pressed in (it doesn't move much at all) pull the hose free.

You turn the air pressure on from the wall valve.

There is about 3PSI of air pressure.

Manually Clamping or Releasing the Grippers

Normally the gripper is operated under program control. However sometimes you’ll need to clamp and unclamp them manually. Follow this procedure to do so:

From the Main Menu select Display > Input/output > Digital I/O:

From the dialog presented click on items 1 (gripper_close) or 4 (gripper_open) and click the Value button to toggle it's state. If it appears in red the value is True. Note: You need to enable only one of those items at a time. So turn one off before turning the other one on. 

Installing a Tool

When you want to add a custom tool you'll have to add data about it to the Tool table stored by the robot. You'll also have to let the robot know which tool is in use.

To configure a tool follow these steps:

Select the tool you want to configure from the tool selector at the top of the display. For example, if you want to configure tool 3, first make that the active one.

From the Main Menu choose Start-up > Calibrate > Tool > Numeric input:

Here you can begin to enter the data about the tool; its number and name. Then press Next. 

Then you enter the distance and angular offset from the tool plate origin. See the diagram below (from the Kuka|prc user interface) to explain the X, Y, Z, A, B, and C values. 

The distances are measured from the center of the face plate of the robot. The surface labeled with - + 6 is the one to measure from. The plastic tool plate which attaches on top of this face is 10.5mm thick and should be included in your measurement. That is, add 10.5mm to the overall length of the tool you attach. 

The values are entered on the following screen: 

Verify the data you entered is correct and then press Save. Once saved you can click the [X] on the left to close the panel. 

You can now choose the tool from the Tool/base status indicator. After clicking the tool number the following menu will appear:

Select the tool you wish to use from the drop-down. This should correspond to the tool number specified in your program code.

FAQ: Common Problems and Solutions

Problem: You plug in a USB key but it doesn't show up in the list of drives.

Solution: You are likely not logged in. Log in as Expert (see steps above) and then your drive will appear. 

Problem: You go to run your program and the robot says "Submit Interpreter is Not Active". 

Solution: Click on the S button at the top of the pendant display. Choose Select/start button from the SUBMIT Interpreter dialog. You'll then be able to run your code.  

Problem: The pendant is not attached to the robot you wish to use. 

Solution: Press the white button on the top of the pendant. 

A dialog will appear on the display. You have 25 seconds to plug the pendant into the other controller. Do this by twisting the color on the pendant connector until it releases. 

Plug it into the other robot with the white dot on the connector facing up. It'll click into the place. The pendant will reboot and you'll be back to work in a few seconds.

Problem: Your program simulates perfectly. Yet when you go to run it on the robot it stops right away and won't run. 

Solution: This is likely a tool definition problem. Make sure that the values you used to define the tool in Kuka|prc or SMT exactly match those entered on the pendent. A common mistake is to only enter the Z length. If you don't enter A, B and C to match you'll surely have problems.

Problem: Your program simulates correctly in Kuka|prc but it won't run at the robot - nothing happens!

Solution: You are likely in simulation mode. In that mode the programs runs but it doesn't actually move the robot. To fix this uncheck all the boxes on the Roboteam screen. If the Roboteam screen isn't showing press the button on the left side which toggles its display. See the image above which has the settings correctly configured.

Problem: The program or jogging stops with the message: Stop due to workspace violation.

Solution: The problem is the TCP has been moved beyond the workspace volume. For example it got too close to the table, or it moved beyond the borders of the table. As a safety precaution the robot stops its motion in these conditions. To restore normal operation follow these steps:

Make sure you are logged in as Expert.

From the Main Menu choose Configuration > Miscellaneous > Workspace monitoring > Override.

Press the Confirm all button to clear the error.

You can now jog back into the valid workspace region. You may need to modify your code if a running program generated the message.

Problem: The pendant is operating the wrong robot!

Solution: You need to set it so it's operating the robot you want! You can tell which robot is set to work by looking at the label at the top of the pendant. Below East is currently set:

To change robots turn the key switch at the top of the pendant - rotate it to the right. This will bring up the list of available robots. Below is shown the correct configuration for using East. Note that it is selected (blue dot appears). A checkbox appears in the control on the right (small button with two robots shown). There is no checkbox in the same control associated with West. Make sure T1 is selected under East. These settings are all shown in red below:

Once you have it set as shown above turn the key at the top of the pendant to the left. This will close up the robot selection screen. You are now controlling the East robot.

Problem: The hold an enabling switch doesn't activate the robot.

Solution: You likely need to clear the errors from both robots, East and West. Using the key switch discussed above activate West. Use the Confirm All button to clear any error messages. Switch back to East. Do the same to clear any errors. You should now be good to go.

Problem: The robot won't operate with an error about the Ethernet Driver.

Solution: You need to be logged in as Expert. From the main menu select Display > Input/outputs > IO drivers:

A dialog will appear. Press the Reset button to fix the problem.