What I Learned at KUKA College: Robot Programming 1 Training Course Overview
Isaac Maw posted on November 02, 2018 |
Robot programming: so easy, a writer could do it?

Whether buying a new robot or on-boarding new personnel to operate an existing robotic cell, most robot manufacturers offer a training program, and encourage their customers to use it. Industrial robots are generally programmed in proprietary languages, and concepts such as robot safety are essential for personnel working with the robot.

However, customers who haven’t experienced one of these training courses may wonder if these courses are worthwhile. We’ve all had to attend a mandatory training seminar that amounted to little more than a boring slideshow and a photocopied certificate.

To investigate the value of a hands-on robotics training course, engineering.com reached out to KUKA College. KUKA has 25 training centers worldwide, with KUKA College USA located in Shelby Township, Michigan. I attended KUKA College Canada, which is located near Toronto, Ontario.

KUKA College’s course offerings include robot operation training, which prepares personnel who will be working with the robot, but not writing the programs it will execute. These courses include information on robot safety, selecting programs and stopping and starting the robot. The teach pendant on most industrial robots, KUKA robots included, is able to restrict access to certain functions, allowing companies to assign different permissions to different users.

For personnel who will be writing those programs, KUKA College offers Robot Programming 1 and 2. Programming 1 covers everything the operator courses cover, plus the programming and commissioning basics. Level 2 is more advanced, delving into programming via PLC, and giving more information about specialized applications such as arc welding.

KUKA can also teach courses according to a company’s specific needs, but these courses are available by request only.

I enrolled in Programming 1. The course spans a full 40-hour week, mixing classroom learning and lab practice, with students programming KUKA KR3 Agilus robots set up in special education cells. The course covers the KRC4 controller, but courses in the older KRC2 programming are also available. At the time of this writing, the KRC4 Robot Programming 1 course costs $2,575 CAD.

Certificate and Training Materials

Shown here: 250-page Robot Programming 1 textbook, two quick-reference guides

At the end of the week, students complete a written exam and those who pass receive a certificate. This certification is a definite boon to the resumé of any automation specialist or robot programmer requiring KUKA experience.

Students are given a 250-page textbook, as well as two small quick-reference guides to the robot operation basics and KRL programming language. Students also receive a digital copy of the current commissioning guide, a 43-page PDF guide to setting up and commissioning a KUKA robot.

This material is extremely valuable, since most robot manufacturers—including KUKA—protect their copyrighted training material quite vigilantly and don’t allow it to be distributed illegally online. Having these resources on hand for an employee to reference could help avoid an expensive support call or costly downtime.

Who Attends KUKA College?

Students practice working with robots in the lab.

The training courses are attended by:

  • manufacturing personnel at all levels: executives, engineers, operators
  • automation integrators and distributors
  • students

My class included:

  • two technicians from a Steel Ducting Supplier, looking to learn about arc welding robots
  • A junior engineer on-boarding at a small automation integrator company
  • Two self-taught programmers experienced with a previous KUKA controller version
  • Me, a writer with only basic programming experience in Python and Java

Robot Programming 1: Topics Covered

KUKA College includes hands-on time with robots in the lab, as well as class time.

On the first day of the course, the instructor asked about the particular applications each student was interested in learning. Throughout the course, he gave application-specific information to help align the course material to the needs of the students. For example, in my class, the steel ducting technicians would be working with an arc welding cell. When the instructor taught how to set the tool center point (TCP), he reiterated that this step was critical in welding applications, since control of the angle of the gun is critical in welding.

More information on the content of Robot Programming 1 is available on the KUKA college website.

The balance of this review will focus on what I learned in the course.

Structure of a KUKA Robot System

KUKA Ready2_educate training cell.

This unit covers everything from the definition and components of a robot, including the manipulator, the control cabinet and the smartPAD teach pendant. This unit also covers robot safety.

Moving the Robot

Students begin this unit in the classroom, learning how to interpret messages on the pendant and select operating modes. KUKA robots have four operating modes:

  • T1 (Manual Reduced Velocity)
    • This mode is for test operation. The robot moves at a maximum velocity of 250mm/s.
    • This mode allows jogging.
  • T2 (Manual High Velocity)
    • This mode is intended for testing programs. It allows the robot to move at the programmed velocity.
    • Jogging is not possible.
  • AUT (Automatic)
    • This mode is for normal operation of the robot without an external higher-level controller (PLC).
    • Robot moves at programmed velocity.
    • Jogging is not possible.
  • EXT (Automatic external)
    • Allows the robot to operate under PLC control.

In general, the T1 and T2 modes are for setup tasks (programming, moving the robot) while AUT modes are for operating the robot.

Students then begin working with the robot in the lab setting. First, we learned how to jog the robot by moving each axis individually. Next, we learned how to navigate coordinate systems.

Coordinate Systems

Coordinate systems reassign the axis direction frame of reference. Out of the box, the default coordinate system is derived from the base of the robot, called ROBROOT. In this system, X direction is toward the front of the robot base, y is to the side of the robot and Z is up. The WORLD coordinate system is identical to ROBROOT, but can be reassigned. For example, WORLD coordinate system can be aligned with the production line. The robot can also use the other systems: BASE, FLANGE and TOOL.

BASE coordinate system is freely definable. Typically, it is used to define the robot’s workspace. For example, if the robot needs to move in alignment with a conveyor belt, the conveyor would be used to set the BASE coordinate system, so that the origin would be one corner of the belt. Using BASE would allow the robot to move smoothly in parallel with the conveyor, even if it was not aligned with the robot.

The TOOL and BASE coordinate systems are the most important. Calibrating the TOOL coordinate system allows the robot to move according to the orientation of the tool. For example, if the robot’s tool was an arc welding gun, the tool orientation and angle is very important in the path programming. If the programmer used the WORLD coordinate system to jog the robot while programming the toolpath, it would be very difficult to get the angle right—a lot like drawing a diagonal line on an Etch-a-Sketch. Using the TOOL coordinate system sets the coordinate origin at the tool center point (TCP). Now, jogging the robot in the X direction moves the tool forward. This allows for simpler, more precise programming.

Calibration and Start-Up

asdfDuring commissioning of the robot, several parameters must be calibrated, including the coordinate systems mentioned above. One of the most important calibration steps is mastering of the robot axes. This must be performed during commissioning, as well as following maintenance work.

Briefly, mastering is the process by which the robot controller “knows” the position of its axes. Without mastering, the robot could not take advantage of its high pose and path accuracy.

To master a KUKA robot, a reference value (e.g. 0°) is assigned to every axis. To achieve this, the robot is positioned in a specific pre-mastering position, according to white indicator marks on each robot axis. When the position is accurately set, the axis position is saved as the mastering position. KUKA has a device for this called the Electronic Mastering Device (EMD), which uses a small gauge pin to locate a notch in the casting of the robot, accurately located at the mastering position. The EMD is the most accurate and fast way to master a KUKA robot(within 5-10 minutes).

Initial commissioning also includes setup for loads on the robot. A robot can be loaded in several ways, including at the flange, as well as supplementary loads at the elbow, the upper arm and the base of the robot. These loads affect the acceleration control, torque monitoring, collision detection and other functions of the robot.

Robot Path Programming

This unit introduces KRL, the KUKA Robot Language. KRL is a proprietary language that all KUKA non-collaborative robots use.

KRL is very similar in syntax to Python. An example program looks like this:


PTP P1 Vel=100% PDAT1 Tool[2] Base [4]

PTP P2 Vel=100% PDAT2 Tool[2] Base [4]

WAIT FOR IN 10 ‘Part in Position’

PTP P3 Vel=100% PDAT3 Tool[2] Base [4]

LIN P4 Vel=100% CPDAT4 Tool[2] Base [4]


In this sample program, the robot makes two path movements, waits for a signal from input 10 (such as a PLC input from a proximity sensor or similar), then makes two path movements. This action takes place on a loop.

The program above shows that path movements include PTP and LIN. These indicate the type of motion the robot will perform.

Point to Point (PTP) motion allows the robot to move from one set of coordinates to another. PTP motion is the fastest option, but the robot will follow an unpredictable path and the axes may change orientations.

Continuous path motion programming is also possible, called CP motion. In CP motion, the robot is guided from the start point to the end point with constant velocity, defined path and defined orientation. This type of motion includes Linear (LIN) and Circular (CIRC). Linear (LIN) motion is a straight line. Circular(CIRC) is used for a defined curved path. 

Here is a short video clip I recorded during the course, showing the simple program I and a classmate wrote, tracing the contour line on the plate using the pen tool.

Approximate Positioning: Save Wear and Cycle Time

In motion programming, the robot follows a connect-the-dots path from point to point. By default, the robot will hit these points as accurately as possible, known as exact positioning. To achieve this, the robot must brake and accelerate at each point.

The path can be optimized for time and wear on the robot through the use of approximate positioning. Under this type of motion command, the point coordinates are not addressed exactly. Approximate positioning is enabled by adding the CONT label to the motion command.

An example of how PTP and CP motions would be used is in an arc welding application. PTP would be used to move the robot from the home position to the beginning of the weld line. LIN or CIRC would be used to follow the weld, as CP motions move the TCP at a defined velocity, path and orientation.  

The majority of the course is spent programming the KUKA training cell to follow a contour pattern on a test plate, similar to the programming of a small parts gluing application.

After working through the above material and developing our own contour programs, the remainder of the week was spent adding complexity to the basic path following program. We briefly covered the KUKA robot collision detection and torque monitoring features. We also learned how to control the gripper using the KUKA.GripperTech technology package. While anything can be programmed the hard way, most robotics vendors sell technology packages, sometimes called apps or plugins, for convenience and time-savings.

The course also covered troubleshooting lost or corrupt programs in the controller’s Windows operating system, archiving and restoring programs and tracking modifications and state changes using the log file. These skills are likely among the most valuable things learned in the course, because being able to restore a robot’s program could save hours of downtime and a service call.


The fundamental way to develop a simple path program into a more useful program is by adding logic. Students with basic prior programming experience will find this unit familiar. KRL logic commands are very similar to those in Python. Conditional commands are IF/THEN/ELSE, and loops include the basic LOOP, as well as counting loop FOR, and rejecting loop WHILE, all identical to Python commands. WAIT FOR and WAIT SEC command the robot to wait for an event or for a set time period. KRL can also SWITCH between multiple cases, which is useful for a multiple-choice type scenario. For example, a robot performing a sorting task may use SWITCH/CASE to place different objects in different locations. SWITCH/CASE statements follow this example:

SWITCH Sort_Parts

     CASE 1


     CASE n





Like logic commands, KRL variable types, arrays and arithmetic operators will all look familiar for Python users, although Python does not really require variable declaration or initialization, while KRL requires all variables to be declared using DECL statements at the top of the program. However, Python and KRL both use local and global variables.

Structuring, Linking and Externally Controlling Programs

Flowchart showing structure of a procedure which calls several subprograms.

Flowchart showing structure of a procedure which calls several subprograms.

After students grasped the broader capabilities of KRL programming, we were taught how to put those programs to work together, enabling automation of more complex tasks. This stage of the course is when students really start to understand what the robot is capable of when programmed correctly.

We created separate programs for several smaller tasks, such as picking a pen tool in the gripper, placing the pen tool back in the fixture and using a hook tool. Next, we learned how to call these subprograms within a master program for the cell. Finally, we learned how to use simulated PLC inputs and outputs (in the form of bat switches and indicator LEDs) to control and signal subprograms.

By the end of the course, students have built several reliable programs that perform different tasks within the cell, and can start, stop and switch the robot’s program during operation via an external controller.

Who Should Take the Robot Programming Course?


Like KUKA College, many of the other major industrial robot vendors, including FANUC Training, Yaskawa Motoman Academy and ABB University, offer training academy programs. While the tuition, time and travel costs are not insignificant for some companies, the value of having well-trained personnel in-house for even the most basic robotics implementations far outstrips the cost. In addition, upskilling workers opens the door to cost savings on future automation projects.

For more information on starting a robotics deployment project, check out How to Pick, Pitch and Purchase Your First Industrial Robot.

Recommended For You