Motion Instructions Lab

From Industrial Robotics & Automation - Fanuc Teach Pendant Programming

This page details a Lab experiment intended to demonstrate the use of FANUC's HandlingTool motion instructions. For details on motion instruction syntax, see the information page Motion Instructions.

What are Motion Instructions?

The robot is simply a computer that can interact with the physical world. For it to perform tasks as we desire them, we need to tell the robot the processes involved in doing so.

The FANUC motion instructions involve teaching the destination point(s), the type of motion to reach it, the speed it will move, the termination type, and any other special actions or considerations to take in the process of moving to the destination.

Motion Instructions:

Motion Type Path Taken Usage:
Linear A straight line from the current position to the destination Whenever the path taken is required to be straight and without deviation
Joint The most efficient method of reconfiguring the joints to reach the destination Since Joint moves are faster, this motion type should be used whenever it doesn’t matter what path it takes to reach the destination. The robot will still consider DCS zones, linear speed settings, and operational limits.
Circular A circular path that begins at the current position, reaches the first point taught, and continues to the second point taught. These are known as midpoint and endpoint. Whenever the path needs to be a radius around an arbitrary center. The path is calculated much like a linear move in that it must follow the curved line made by the circle.

Prerequisite Knowledge:

Required Preliminary Setup:

  • A Pointer Tool with the Active Tool Frame pre-taught to tip. (May use tool from Tool Frame Lab)
  • Medium-Sized Box
  • Paper at Back of Lab
  • Robot at HOME Position

Linear, Joint, and Circular


Start by opening the Select screen with the SELECT button on the keypad.


This screen lists all available programs on the robot. We will be making our own from scratch, so you’ll want to hit the softkey CREATE.

A utility will pop up titled “Create Teach Pendant Program”

The first thing you need to do is name it. On the bottom right, several text-entry options will appear. You will hit “Options/Keybd”.

This will add a KEYBOARD softkey on the rightmost side. Hit it.

Type in the name of the program you are creating. For this lab, you will name it with the following syntax:

Semester Underscore YourName
S2 _ MIKE

No spaces are allowed in program names, and they must always start with a letter. They can contain letters, numbers, and the underscore character.

Hit the EDIT softkey (not the physical key) to finish the creation of the new program file. This will open the blank file that is your new program.

Notice the name of your program is at the top, and there’s one instruction in your program, the [End]. End will always be at the end of your program, to tell the controller it is finished.

Hit the POINT softkey to open a selection of default motion instructions. These are our starting point for adding motion instructions.

*The default motion options can be edited to make programming points easier, but that process is outside the scope of this lab.

Select the first option, which is a Joint move.

You may select it by touching it on screen, hitting the corresponding number on the keypad, or scrolling up and down with the arrow keys and hitting enter on your selection. It’s each user’s personal preference.

*We use a Joint motion type for the first point because the robot may be at any point in its envelope. A joint move doesn’t have the requirement of moving in a straight line, so it can easily and quickly reach the first point without encountering DCS errors.

By selecting that option, we have added a motion instruction to our program.

Notice the position number, P[1] was added to the program.

*Position numbers will be added in order as new ones are created. By default, that position number contains our robot’s current coordinates.

The robot is not currently aligned with our first point, so we will need to overwrite it by jogging the robot to that point and, while our motion instruction is selected (all the way to the left, the line number), hold shift and hit the softkey TOUCHUP.

*Only jog in X,Y, and Z in this lab, to prevent the tool from changing orientation.

*Notice the @ symbol on our line. This means that the robot is currently “at” the coordinates taught to that line. This is useful when stepping through our program later on, to debug or fix bad points.

Now that we’ve taught that point where we want it, we can look at the rest of the line. 5% speed is pretty low, the robot can move considerably faster than that, even in our safe teaching mode.

Select the 5 in 5% and type in 50 on the number pad.

Every time a numerical value is entered, you will need to press the ENTER key to confirm it, or the value won’t be changed in the program.

Once the speed is entered and confirmed, the termination type will be selected. If you were to change it, you would hit the [CHOICE] softkey and select the new type you want.

Since FINE is the correct choice for this program, we will leave it.

This motion instruction is now complete. If we were to add another instruction now, it would overwrite the one we just placed. To add a second one, select the bottom line of the program, [END]
Once again, hit the POINT softkey to bring up the default motion menu. This time select one of the lines that begin with L, which is for linear moves.

Set your linear speeds to 212mm/s by selecting the speed variable and typing it in.

*Remember to hit enter after typing it in.

Jog the robot to the second point on your lab sheet, make sure your second motion instruction is selected (all the way to the left, the line number) and hit TOUCHUP.

Set the termination types to FINE, if not already selected, by cursoring to the termination type and hitting softkey CHOICE.

Repeat this process, adding a linear point for every dot on your lab sheet up until you reach the beginning of the half circle.

You should have 5 total lines of motion instructions now. A joint move to the first position, and 4 linear moves to the second through fifth position.

A circular instruction is a bit different than Joint and Linear.

Start by putting down another linear instruction with POINT, we will change it to circular next.

Select the L in your 6th instruction line and press the softkey CHOICE.

There are 4 motion types available on our robots. Select the third option, Circular.

Notice the circular instruction contains two separate points. The first point will automatically be filled as the next position number, P[6].

*The two points are required for the robot’s processor to calculate how big the circle half is and where it will end. To do this, we teach the midpoint and the endpoint. Circular instructions can be used to create up to 180 degrees of a circle.

Jog the robot to the midpoint of the circle, select line 6 (all the way to the left) and hit TOUCHUP

Select the line after line 6 that contains the next point, and jog the robot to the end of the circle. Hit TOUCHUP.

Set its speed to 212mm/s.

While we aren’t yet finished with our program, we may wish to test it out just to make sure that circular instruction worked.

Scroll all the way up to line 1.

Hit the STEP key on the keypad so the Step indicator at the top left of the screen turns YELLOW.

Make sure the robot’s bed is clear so the robot cannot reach you, other students, or loose objects on the bed.

Adjust the speed of the robot with the speed keys on the keypad to 10%, indicated by the number on the top right of the screen.

*We turn the speed down and step mode on for safety.

Hold SHIFT, clear all alarms with RESET, and press the FWD key.

No picture has been made yet for this step. The robot will complete one line of instruction each time you strike the FWD key (while holding SHIFT), and the haptic feedback on the teach pendant will vibrate once it reaches its destination. Pay careful attention to the robot’s path and destination points as you go.

Keep stepping forward with FWD until you reach the end of the circle, to ensure your program was correctly taught.

*Any points that weren’t taught correctly can be selected and taught again with TOUCHUP after jogging the robot to the correct position.

After finishing stepping through, select [END] again and add another linear POINT.

*The last destination point is back to where we started. This means it has already been recorded as P[1], so we don’t have to teach another.

No picture has been made yet for this step. Select P[8] in that line and type 1 on the keypad. Press ENTER. Set its speed to 212mm/s.

Now the program ends where it began. Once again select line 1 and step through the program with SHIFT + FWD.

Once you are sure your program is functioning correctly, hit STEP to allow the program to run continuously. The Step indicator at the top will turn green. Select line 1 and run it through again.

Once you are sure everything is good, adjust speed to 100% and run it again.

*Congratulations, you have made your first motion program!