1. Home
  2. Knowledge Base
  3. Basic UR – Lesson 1 – Teach Waypoints.

Basic UR – Lesson 1 – Teach Waypoints.

GUI Programming environment – in Polyscope.

From wherever you are in the menus – Press “File” and “Exit” to return to the Main menu.

universal-robots-zacobria-file-menu-exit

At Main menu – Choose Program Robot – and select “Empty Program”.

universal-robots-zacobria-file-main-menu

universal-robots-zacobria-file-main-menu-new-program

Which leads you to the program screen which properly in the future will be the screen you will be at most of the time. This is where you build up your program and test run it.

universal-robots-zacobria-program-block-empty

universal-robots-zacobria-program-block-empty-zoom-in

The left side is the program window where the program statements will be inserted line by line downwards.

At the moment the program block is empty and empty. That’s why the test is yellow because nothing is defined. We can also it says “unnamed” because we have not loaded or named any program at this moment, but very soon we will make a small program.

In the middle there are 3 tabs – Command – Graphics – Structure. We are actually in the Command tab already and that’s why it is highlighted.

universal-robots-zacobria-dash-board-controls

universal-robots-zacobria-dash-board-speed-controls

Below is 4 control buttons which looks like a CD player which we will use when we start our program later. There is also a “Speed” indicator from where the speed of the robot program can be manipulated to be used during commissioning and troubleshooting (This is not intended to control the speed of the robot during live run which will be explained later).

MoveJ, MoveL and MoveP.

The robot can be programmed in different ways. From the Polyscope GUI which is an onscreen method or remotely by script programming. In this chapter we use the user friendly touch screen GUI method.

The UR is a 6 axis robot with 6 rotating motors. Therefore the nature of a move is a rounded move.
The joints are connected with the aluminium tubes and can be compared to an arm. So it is important to understand that a move by the robot and its arms tend to be circular in nature because the arm is solid. Maybe think of a cars window viper to visualize this nature.

universal-robots-zacobria-joint-move

For the robot to move from A to B it is obvious that it is necessary to use a circular move if only one axis is observed for example the base.

(Later we will see that if more axes are used then it is possible to make this move linear).

The robot has three main ways of calculating how to move from Waypoint to Waypoint which is a Non linear movement “MoveJ” – a linear movement “MoveL” and a circular movement (MoveC) which is under a Process move “MoveP”. The “J” indicates the rounded nonlinear move mode and the “L” indicate the linear move mode. The non linear (MoveJ) is the default and the most commonly used and the one to recommend using if it is not absolutely a must to use a linear move. The difference is the way the robot calculates and how to move to next position. In the non linear (MoveJ) method the robot might seem to take a slight bended route from point A to point B – this is because of the physical construction of the robot – the lengths or “arms” and “wrists” combined with when the motors are turning. This is normally not an issue in normal pick and place operation and can easy be overcome by inserting more waypoints – like mentioned above.

But if you want the have an absolutely perfect linear move from point A to point B it is possible by using linear move (MoveL). However the downside to this that turns and smooth bends now become more difficult to perform. In pick and place you properly need to go in and out up and down and around most of the time and a linear move is not important – so MoveJ is recommend to use in most pick and place applications.

MoveJ (Joint Move – Non Linear Movements).

universal-robots-zacobria-program-command-tab

universal-robots-zacobria-program-structure-tab

The “Command” tab and the “Structure” tab is properly the most used tabs on the robot control and programming the robot is a frequent use of “Command” and “Structure” tab.

Press the “Structure” tab. This brings you to the first of 3 different programming menus “Basic – Advanced – Wizards” to choose from when we build up our program.

The very first thing we need to do I robot programming is to define our path and movement for the robot. This is done by defining Waypoints (positions). So we define the positions the robot has to go through rather than the actual path. In other words we choose a position e.g. “A” and next position e.g. “B” and then the robot will calculate how to come from “A” to “B”. (Not to be confused with that the robot records the path we moved the robot by hand or by control.

Start programming.

Let’s get started to program and now choose a Waypoint. Press the “Waypoint” button.

universal-robots-zacobria-program-menu

universal-robots-zacobria-program-waypoint-button

Notice – if this is the very first entry into the program then the robot will prompt an error messages that says “Waypoint has to be under a Move”.

universal-robots-zacobria-program-move-message

So we need to go back to the program screen – Press OK to acknowledge the messages.

universal-robots-zacobria-program-empty-line

We need to be in the section where we can insert program lines – so point and press on the “empty” word so it becomes highlighted.

universal-robots-zacobria-program-menu

Now again Press the “Waypoint button”.

universal-robots-zacobria-program-waypoint-line

Notice how a “MoveJ” and “Waypoint” has been inserted and it starts looking like a program tree. The statements are still yellow because we have not defined the position of this Waypoint.
MoveJ is the default and that’s why this is automatically chosen for us here. Later MoveL will be explained.

Program “Home” position.

This first Waypoint is also what becomes this user program “Home” position and this can be anywhere and therefore different as to the robot home position discussed in the Move Screen.

We need to define each Waypoint we insert into out program. Point and press on the Waypoint we want to define – in this case there is only one because we just started programming. Press the “Command” tab.

universal-robots-zacobria-program-question-mark-button

universal-robots-zacobria-program-set-this-waypoint-button

Because we have pointed out the Waypoint in the program tree we now get this screen with a big “?” question mark – like it is asking us where should this waypoint be ?
So we need to set. Press the “Set this Waypoint” button.

universal-robots-zacobria-move-screen

This brings us the Move Screen. We can choose to use the Move Screen to move the robot into position by pressing the arrow keys on the bars.

universal-robots-zacobria-teach-pendant-back

universal-robots-zacobria-teach-pendant-back_teach-button

Teaching button.

But the arrow keys are more useful when we need to fine adjust our Waypoints. Here in the beginning to define our rough positions it is faster to use the “Teach in mode” by moving the robot by hand.
On the back side of the monitor there is a small button. Hold the monitor as shown on the photo with one hand because then it is easy the watch and handle the monitor and also to press the button on the back of the monitor.

universal-robots-zacobria-move-screen-teach-button

The “Teach” block in the Move Screen has the same function as the black button on back of the monitor i.e. to release the robot breaks for manual manipulation into position.

universal-robots-zacobria-hold-robot-teach-pendant-press-button

This small black button releases the breaks on the robot and you can now move the robot into position by moving with your other hand – a little effort has to be made to move it because we also don’t want to drop on the floor. (This can still happen if a heavy tool is mounted on the robot head and the payload has not been set).

Hold the robot first and then Press and keep pressing the black button on the back of the monitor and grab the robot and start moving into your desired position.

universal-robots-zacobria-hold-robot-teach-pendant-press-button-move

universal-robots-zacobria-hold-robot-teach-pendant-press-button-move-2

universal-robots-zacobria-hold-robot-teach-pendant-press-button-move-3

universal-robots-zacobria-hold-robot-teach-pendant-press-button-stop-move

When you are happy with the position then release the black button on the monitor again.

universal-robots-zacobria-move-screen-ok

While we were manually manipulating the robot around with our hand we had the Move Screen on the monitor. Press the “OK” button in the lower right corner of the Move Screen which takes you back to the Program window.

universal-robots-zacobria-program-waypoint-line-green

Notice how the Waypoint and the other symbols turned green because now we have defined the statement which is the Waypoint. Actually we already have a very small program because all symbols are on green, but a program with only one Waypoint is not funny to look at because it will not move the robot.

So let’s define one more Waypoint.

universal-robots-zacobria-program-structure-tab

universal-robots-zacobria-program-waypoint-button

Press “Structure” to go to our program object menu. Choose “Waypoint” again.

universal-robots-zacobria-program-waypoint-second-line

The second Waypoint has entered into the program, but it is still yellow because it is undefined, make sure you have highlighted the yellow Waypoint statement.

universal-robots-zacobria-program-command-tab

Press “Command” to define the Waypoint.

universal-robots-zacobria-program-set-this-waypoint-button

Press “Set this waypoint” which brings up the Move Screen.

universal-robots-zacobria-move-screen-up

This time we just choose to move the tool head upwards with the “Up” arrow key.

universal-robots-zacobria-hold-robot-teach-pendant-press-button-up-move

Keep pressing the “Up” key until the robot reaches a desired position and the release the “Up” key in the Move Screen.

universal-robots-zacobria-move-screen-ok-small

Press “OK” on the Move Screen to go back to the Program tree window. Now we have two green Waypoint in our program.

universal-robots-zacobria-program-waypoint-second-line-green

The controller software checks the syntax for us automatically and that’s why we have green symbols which mean our syntax and method is OK.

universal-robots-zacobria-dash-board-controls

We are ready to test run our first program. Press the “Start” button (The triangle symbol). The program does not start executing right away because we left the robot in the Waypoint 2 position whereas Waypoint 1 is our “Home” position. Before we can start the running the program we need to bring the robot to this “Home” position – and therefore a Screen appear when we can move the robot either automatically or manually.

universal-robots-zacobria-auto-move-screen

Notice how the button in the lower right corner has a red “X” and says “Cancel” because the robot is not yet in the “Home” position. The graphic also shows how the robot has to move from its current position to the “Home” position.

Make sure the robot is free from nearby obstacles.
Press and keep pressing the “Auto” button and observe the robot movements towards the “Home” position.

universal-robots-zacobria-auto-move

“Auto” is the easiest if the robot is free fro obstacles, but if we need to guide the robot we can also choose the manual method.

universal-robots-zacobria-hold-robot-teach-pendant-press-button-stop-move

This programs “Home” Position.

universal-robots-zacobria-auto-move-screen-ok

When the robot reaches the “Home” position the button in the lower right corner of the Screen goes from “Cancel” to “OK”. When it says “OK” the Press ok.

universal-robots-zacobria-program-waypoint-second-line-green-big

Program tree Screen.

After pressing the “OK” button the program tree Screen reappear, but the robot is still not moving, but now it is in the “Home” position and can be started.

universal-robots-zacobria-dash-board-controls

Press Start (The black triangle symbol).

universal-robots-zacobria-hold-robot-teach-pendant-press-button-stop-move

universal-robots-zacobria-hold-robot-teach-pendant-press-button-up-move

The robot runs the program by it self from Waypoint_1 to Waypoint_2 continuously. This is just an Up and Down movement.

universal-robots-zacobria-dash-board-controls-stop

You can stop the program execution.

universal-robots-zacobria-dash-board-controls-pause

You can pause the program execution.

universal-robots-zacobria-dash-board-controls-play

You can restart the program execution. You can control the speed during test run.

universal-robots-zacobria-program-waypoint-second-line-green-1

universal-robots-zacobria-program-waypoint-second-line-green

Notice how you can follow the program execution during the program run so you now where in the program the robot is.

universal-robots-zacobria-dash-board-speed-controls-100

universal-robots-zacobria-dash-board-speed-controls

The Speed regulator is useful for testing. During normal Run it is better control you speed in you program because the Speed regulator will slow down everything in the program inclusive of wait statements.

Disclaimer: While the Zacobria Pte. Ltd. believes that information and guidance provided is correct, parties must rely upon their skill and judgement when making use of them. Zacobria Pte. Ltd. assumes no liability for loss or damage caused by error or omission, whether such an error or omission is the result of negligence or any other cause. Where reference is made to legislation it is not to be considered as legal advice. Any and all such liability is disclaimed.

If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.

Author:
By Zacobria Lars Skovsgaard
Accredited Universal Robots support Centre and Forum.

Also check out the CB3 forum



Was this article helpful?

13 comments

      1. Thanks for your quick reply.

        Sorry I was not clear. Can this Universal Robot GUI programming run a Simulation of the robot motion after teaching say 3 way points? I tried to do this without being connected to a UR controller and it always gives me an error “C207A0: Fieldbus Input disconnected”. I tried it both by checking “Real robot” and “Simulation”. I would like to press the play button and see the robot simulated motion from the first way point to the last way point without being hooked up to a robot controller. Is this possible? If so, is it possible to show me how?

        Your help and assistance is greatly appreciated.

        1. Just to add, I am able to “Move robot here” to each of the 3 way points and they all have a green colour circle next to it.

          1. Hi Sean

            Thanks for your question.

            Are you using a real robot and only want to run a simulation on the real robot GUI) ?

            If you are using a real robot – the physical robot grey cable still needs to be connected – and then it is possible to run a simulation and the robot only show the moves in the Graphics tab – the robot is standing still – the program is running and the Graphics is showing the robot move – (only showing – the real robot does not move).

            Or are you using only a simulator on a PC ?

            Then you cannot connect a real robot to a simulator on a PC, but you can run a simulation of the program and the Graphics tab will show the robot moves in Graphics representation.

            Author:
            By Zacobria Lars Skovsgaard
            Accredited Universal Robots support Centre and Forum.

            Also check out the CB3 forum

          2. Hi Lars,

            Thanks for your reply. I dont seem to have the option to directly reply to your message. So I am replying here.

            I am not using a real robot. I was hoping to just use a simulator on the PC. The graphics tab seems to show the robot in the various pose of the way point but not a smooth transition. I was hoping to see it move in a smooth transition and also be able to, for example, trigger certain I/Os when it reached a particular way point. I would like to visualize I/Os going high and low as it reaches various way points. Is this possible? If so, could you show me? Thanks.

            Best regards,

            Sean

          3. Hi Sean

            The movements shows OK on my simulator, it might be hard to see the movements when comparing a virtual 2D screen with a real robot.

            Yes output (simulated) can be set and reset just like on a real robot – and input can also be simulated. Both Input and Output has to be observed and manipulted in the I/O tab.

            To set an output when it reaches a waypoint – just use 2 “Set” command after the waypoint statement.

            Regards
            Lars

      2. Dear Mr. zacobria,

        I’m using a real robot and trying to run a program from HAL. I’m receiving the following error message:
        Protective Stop
        C207A0: Fieldbus input disconnected

        Any idea the reason why?

        1. Dear Victor

          Thanks for the question.

          Can be that the Ethernet/IP adapter (under the Installation tab) has been unintentionally enabled is it is not used or responding ?

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum


  1. Is it possible to slow downthe speed between 2 waypoint through an another thread ? I need to be able to slow down the robot during a movement if a DigitalIn is up

Leave a Reply

Your email address will not be published. Required fields are marked *