2023 RobotStudio p1 - Introduction (1)
2023 RobotStudio p1 - Introduction (1)
Part 1 – Introduction
Paulo Abreu
September 2023
This work is exclusively intended to support the classes of Robotics, of the Master Degree in
Mechanical Engineering at DEMec, FEUP. Its reproduction and/or distribution outside this scope
requires the prior written consent of the author.
Contents
1. Global vision of RobotStudio® .............................................................................................. 1
Figure 26 – Create new station (Solution with Station and Virtual Controller) ................... 21
Figure 37 – Station with robot and respective welding torch and table ........................... 28
Figure 52 – Viewing the path instructions created within the Path_10 ........................... 37
Part 1
Introduction
1.1. Introduction
RobotStudio® is a computer application that allows offline simulation and programming of ABB
robots. This application allows the creation of a virtual environment where, in addition to the
equipment supplied by ABB – robots, positioning tables, linear axes – other equipment such as
conveyor belts, grapples, automatic mechanisms can be imported and/or modelled. In this
virtual environment, there are the software tools for programming the ABB robots, with the
particularity of incorporating a virtual model of the real controller of the robot. This
functionality also includes a virtual model of the robot's programming console. This allows
programming the virtual robot in an identical way to the one the user would use if he were
programming online. In this way, it is possible to create a digital twin of a robotic cell, turning
the experience of programming a robot with this software quite realistic. The programs
developed in this software can be directly used in the real robot controller; no conversion or
post-processing is required. Thus, the created files can be transferred to the robot controller
directly, via an Ethernet connection between the computer and the robot controller or by
carrying the files via a USB stick. If the computer is connected to the robot controller, this
application, RobotStudio®, works as an interface to supervise, install, configure and program
the real robot (RobotStudio online).
RobotStudio® Tutorials 1
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
This document - RobotStudio Tutorials - is organized into several parts, with part I relating to
the introduction to this computer application. Each part consists of several lessons
accompanied by the presentation of basic concepts related to robot programming.
At the end of the set of tutorials and respective lessons, the student should:
Prerequisites for these lessons include basic knowledge of software installation, working in a
Windows environment, 3D modeling, and knowledge of functioning and operation of industrial
robots.
Generic considerations
RobotStudio® software is available for download from the ABB WEB page
(https://new.abb.com/products/robotics/robotstudio/downloads) along with tutorials,
examples, templates, and videos and other related applications (PowerPacs for RobotStudio®)
as well as links of interest.
RobotStudio® software requires a license, but it is possible to used it for free during the first
thirty days counting on the installation date. After this date, its use is limited, unless a license
is acquired from ABB. Attention is therefore drawn to this important limitation!
The RobotStudio® software has been the subject of continuous development by ABB, and there
are therefore multiple versions. In 2009 the version available was 5.12. In April 2013 version
5.15.01 was introduced. In December 2013 version 5.60 appeared and in December 2014 version
6.0 was introduced. In 2019, the nomenclature was changed and the 2019 version was made
available. This version introduced a new license management system and a new process to
deliver the robot controller software, RobotWare. This software is no longer included in
RobotStudio®, being distributed independently. The user can then choose to download and
2 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
install any version of RobotWare from the menu Add-Ins/Community/RobotApps, available
within RobotStudio®. As of the date of this edition, September 2023, the available version is
2023.2.1, introduced in September 2023. In this version the robot controller software,
RobotWare, is installed automatically with the RobotStudio installation.
Version 5.15 was the last one that is compatible with Windows XP SP3 operating system (32-bit
edition). Later versions, starting with version 5.6, already require Windows 7 SP1 or Windows
8.1 operating system. As of version 6.0.2, the recommended operating system also includes
Windows 10 (64-bit edition). In the current version, 2023.2.1, Microsoft Windows 10 Anniversary
Edition or later, 64-bit edition, is required. Note that ABB is continuously releasing new versions
of RobotStudio® but it has been verified that a wide range of features and operating structure
of RobotStudio® remain the same, so it is expected that these manuals will continue to be
useful for new versions of RobotStudio®.
For more details on RobotStudio® installation and hardware recommendations, see “Release
Notes\Articles” folder available in RobotStudio® installation file set.
The installation process described below concerns an installation carried out on a computer
with an operating system Microsoft Windows 10 Enterprise, 64bit edition, version 21H1, OS build
19043.1320. Other operating system versions and level of updates may lead to a slightly
different installation process.
Download RobotStudio®
Save the file RobotStudio_2023.2.1zip. Afterwards, proceed with the execution of this file so
that it is unzipped to a directory to be defined by the user (if the directory C:\TEMP is chosen,
the following four directories are created:
C:\TEMP\RobotStudio
RobotStudio® Tutorials 3
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
C:\TEMP\Release Notes
C:\TEMP\SLP Distributor
C:\TEMP\Utilities
Software installation
The RobotStudio® software installation starts by launching the setup.exe application, available
in the directory chosen for storing the unzipped files (C:\TEMP\RobotStudio). The window shown
in Figure 1, should then appear, and the option shown in English (United States) should be
selected.
Afterwards, the installation process starts, and after some time, the window shown in Figure
2, appears, and the option Next must be selected.
The window shown in Figure 3 should appear and you must accept the software's licensing terms
and proceed with the installation.
4 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 3 – Confirmation of software licensing conditions
The window shown in Figure 4 will appear by selecting the Accept button, which starts the
process of defining the software installation directory.
Then the window shown in Figure 5. appears. You can install in the suggested directory and
proceed. In the next window (Figure 6 ) select complete installation and continue the process.
RobotStudio® Tutorials 5
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 5 – Setting the software installation directory
The window shown in Figure 7 will appear and you should continue by pressing the Install
button. The process starts and it is expected that it will take some time to reach the next
stage. Note that, depending on the software on the computer, some other update applications
may also be installed, namely those related to Microsoft.NET.
6 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 7 – Selection for installing RobotStudio®
At the end of the installation, the window shown in Figure 8 will appear, and the Finish button
must be activated. On the desktop, the link (Figure 9) to the newly installed program will
appear.
RobotStudio® Tutorials 7
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
From this moment on, the software is available to be used, either for offline programming and
simulation of robotic cells, or for direct control of the real robot controller.
It is worth mentioning here an important aspect of using and operating the RobotStudio®
software. RobotStudio® software includes a virtual controller of the IRC5 controller that is used
by ABB robots. This virtual controller has an “operating system” which is called RobotWare,
and there are several versions of this software (RW 5.12, RW 5.6, ….RW 6.0, RW 6.12, …, RW
6.15). Up to RobotStudio® version 6.0 it was necessary to install this software independently
of the RobotStudio installation. As of version 6, this software started to be installed in an
integrated way with the RobotStudio® application. From version of RobotStudio® 2019 up to
RobotStudio® 2021 it is once again necessary to install RobotWare independently, from within
RobotStudio®, from the Add-Ins / RobotApps Menu.
For RobotStudio® 2023.2.1 version, the latest RobotWare for the IRC5 controller is version
6.15.03 (September 2023) and this software is again installed in an integrated way with the
RobotStudio® application. Never the less, it is possible to arrange and install other versions of
RobotWare for IRC5. Thus, it is possible to configure a given robotic cell in a RobotStudio 2023
environment that uses a controller with RobotWare version 6.15, for example.
To install another version of the “RobotWare for IRC5” software, open the RobotStudio®
application and access the Add-Ins tab. Then, select the Package/Gallery menu, that opens
the window (see Figure 10), select “RobotWare for IRC5” and choose the RobotWare version,
being confirmed by the Add button The file is downloaded and installed automatically. If
deemed necessary, other versions of RobotWare can be added, making them available for use
with the virtual controller.
8 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
document, RobotWare 7.10.1. If other previous versions are required, for compatibility reasons,
it is possible to install them. Multiple versions can be installed.
Please be aware that there are additional ABB applications known as PowerPacs, which can be
easily acquired through download from the official ABB website. These PowerPacs are designed
to enhance RobotStudio® by offering specialized software features tailored for specific
applications, thus expanding its capabilities. The PowerPacs currently available are:
After installing the software, you can check the existence of several files and subdirectories
from the location C:\Program Files (x86)\ABB\RobotStudio 2023, (in case the Windows
installation has the default directory C:\Program Files (x86)).
It is worth mentioning the Help files, with versions in several languages, and available in the
directory C:\Program Files (x86)\ABB\RobotStudio 2023\Help\, (see Figure 11) which can be
accessed directly or through the application RobotStudio®.
RobotStudio® Tutorials 9
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
In the RobotStudio® installation directory used (C:\TEMP\) it is also possible to find a set of
directories, in particular the “Release Notes” with additional information.
It is also worth mentioning other existing documentation, namely the one concerning the
RobotStudio® user manual, and the ones related to both the IRC5 and OmniCore controllers,
that can be downloaded (from the add-ins/Packages/Gallery) and accessed from the
RobotStudio menu Help / Documentation.
As an example, the following documents that are available from the program's Help Menu, can
also be obtained in a pdf version from the site of ABB:
A directory called RobotStudio is also created, with several folders, in the user's area of the
computer, where files created by the user, backup copies, and others will be saved by default.
An example of a possible location for this directory is in C:\Users\user_name\My
Documents\RobotStudio (obviously depending on the configuration of the computer in question
and the username selected during installation).
Start the RobotStudio® application. Typically, the application will be accessible via the desktop
icon or at the address: C:\Program Files (x86)\ABB\RobotStudio 2023\Bin\RobotStudio.exe. The
user interface that appears on the screen is shown in Figure 12. A window for activation of the
user license may also appear (Figure 13), in which the user can choose to select the Standalone
License / I want to request a trial license and follow the requested steps. Alternatively, if the
user has access to a network license, has to select the corresponding alternative and proceed
with the license activation procedure.
10 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 12 – RobotStudio® program start interface
To create a station with a robot select the option File/New/Project/ and then choose the name
of the project, the file location, activating the option to include a Robot and a Virtual
Controller. Then select the Robot model and the version of the RobotWare. It is suggested to
use the data presented in Figure 14, where the robot model is the IRB2400 20Kg 1.55m and the
RobotWare 6.15.03.00 . Then select the Create button. A window similar to the one shown in
Figure 15 will then appear on the screen.
RobotStudio® Tutorials 11
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 14 – Setting up robotic station with IRB2400 and controller
12 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
This application presents an interface with a menu layout similar to that found in Microsoft
Office. Six main areas are highlighted and shown in Figure 16, namely:
Area of tabs;
Area of project definitions and instructions: Layout, Paths&Targets and Tags
windows
Area of visualization Windows
Area of document lists.
Area of messages windows;
Area of Status bar;
Each area can have several tabs/menus/windows. The Layout, Paths&Targets and Tags windows
are available by default in the definitions and instructions area.
Tabs
Vizualization
Documents
list
Project
windows
Messages windows
Status bar
The layout shown in Figure 16, which corresponds to the Default Layout, can be changed by the
user. Also, the width of the application window conditions the visibility of the different menus
available. Whenever it is necessary to return to this format, proceed as follows: with the mouse
positioned over the menu bar, press the right mouse button and, after a Menu Customize Quick
Access Toolbar appears, select the Default Layout option (Figure 17).
RobotStudio® Tutorials 13
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 17 – Menu Customize Quick Access Toolbar
The area of tabs allows accessing the main instructions and menus available in each tab.
File – allows access to instructions related to the manipulation of files related to stations,
namely saving, saving as, opening, closing, sharing, printing; in addition, it lets you define the
way to create a new station, configure the RobotStudio® online connection to the real
controller of a robot, as well as access the Help Menu and instructions for setting program
options (see Figure 18).
14 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 18 – File tab
Home – allows access to several instructions grouped by different names, namely the following
ones (see Figure 19):
• Build Station allows access to instructions that allow building stations, inserting
robots, importing components and defining references;
• Path Programming allows defining the path programming, involving the definition of
coordinate references, the creation and teaching of target locations;
• Settings allows selecting the Task, Workobject and Tool referential to be used in the
definition of programming instructions;
• Controller allows you to synchronize the station with the virtual controller and vice
versa
• Freehand makes available the instructions for moving the robot and objects present
in the station;
• Graphics provides instructions related to aspects of visualization of station elements,
namely views and perspectives, and wireframe/surface type visualization selection.
RobotStudio® Tutorials 15
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Modeling: allows access to instructions related to the creation of objects for the station,
performing operations typical of a CAD system. In addition, it gives access to the process of
creating mechanisms and tools. The various instructions are grouped by different names,
namely the following (see Figure 20):
Create;
CAD operations;
Measure;
Freehand;
Mechanism.
Collisions;
Configure;
Simulation Control;
Monitor;
Signal Analyzer
Record Movie;
Controller: this Tab gives access to the instructions that allow configuring the controller
(virtual or real) of the station. The various instructions are grouped by different names, namely
the following ones (see Figure 22):
Access;
Controller Tools;
I/O;
Configuration;
16 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Virtual Controller;
Transfer.
Rapid: this Menu gives access to functions that allow you to edit programs written in Rapid
language (see Figure 23):
Access;
Edit;
Insert;
Find;
Controller;
Test and Debug;
Path Editor.
Add-Ins: this tab provides the menus of any additional applications that have been installed,
namely, PowerPacs (Machining, Machine Tending, …). In addition, this tab gives access to
RobotApps that are available on the ABB website and that are made available by the
RobotStudio® user community. It is also through this RobotApps tab that you can access the
ABB website in order to download other versions of RobotWare (RobotWare for IRC5 and
RobotWare for OmniCore) or to migrate from old versions of RobotWare to the current version.
This Menu is organized in the following instruction groups, but other groups may exist if other
Add-Ins have been installed:
RobotStudio® Tutorials 17
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 24 – Add-Ins tab
Remark:
The RobotStudio® application allows you to create objects to be incorporated in robotic cells,
having a CAD module with basic functions. However, it is suggested the use of other CAD
applications, namely SOLIDWORKS ®, for the development of the components to be
incorporated. These objects must be saved in *.SAT format and then imported as geometry into
RobotStudio®.
To drag the whole image (pan) press the CTRL key together with the left mouse button press
and move the mouse (Ctrl +left Key+ mouse move).
To rotate the image, press the left key and the center key of the mouse and move the mouse
simultaneously, or alternatively the center key and the right key of the mouse and move the
mouse.
To Zoom In / Out, use the central mouse button (wheel in 3-button mouse), or Ctrl+right
Key+mouse move (2-button mouse).
18 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 25 – Navigation in the graphic window using the mouse
RobotStudio® Tutorials 19
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Lesson 1 – My first station
Introduction
This first example aims at getting to know the basic functionalities of the RobotStudio®
application, allowing the familiarization with a set of elementary procedures for the creation
of a station (robotic cell), the robot's programming and its simulation. In the following lessons,
some features will be addressed with more detail, namely the ones regarding to programming
with the RAPID language. Each lesson is structured in consecutive stages, and the order of
execution of the different stages must be respected.
Remarks:
Save all files created in these lessons in a personal folder. If you use a computer shared by
others, be especially careful to avoid deleting or rewriting someone else's file.
Do not modify any original robot controller. If you want to change any controller, make a copy
from the original and use it by renaming it. Give it a private name so that it is easily recognized
by you.
1) The concepts of location (position and orientation), the coordinate systems (frames) used in
robotics and the concept of Tool Center Point (TCP) and tool frame;
2) That sometimes the same point in space can be reached by the robot with different axis
configurations;
20 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Building a robotic station
In this section, you will learn how to build a robotic cell (station), having to learn how to import
a robot and tools/objects from the existing libraries and how to associate a tool to the robot.
Follow the procedures described in the next steps.
Step 1: Create a new project for a robotic cell (Project with Virtual Controller)
Start RobotStudio®, or if it is already open, go to Menu File / New / Project so that you will
see the window shown in Figure 26. Afterwards, assign a name to the Project (Project Name),
and you can choose to keep it the default name, set the directory (Location) to store the
station and controller (you can keep the suggested locations by default). Do not forget to tick
“Include a Robot and Virtual Controller”. Then select the RobotWare version to use (you can
keep the suggested version) and set the robot model to use as the IRB2400 20Kg 1.55m. Then
activate the Create instruction.
Figure 26 – Create new station (Solution with Station and Virtual Controller)
RobotStudio® Tutorials 21
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Note: Selecting Project with Robot and Virtual Controller creates a station with a specific
robot and controller. Note that the chosen directory contains information relating to the robot's
virtual controller and the station's data, arranged into several directories.
An alternative to this process would be to create an Empty Station (instruction File / New /File/
Station / Create) then importing the model of the desired robot (using the instruction Home /
ABB Library), and then create the controller by doing Home / Build Station / Virtual
Controller / From Layout. This would be the way forward if you wanted, for example, to have
a station with a robot (or more robots) and a positioning table, to be controlled from the same
controller.
Another alternative is to create an Empty Station (instruction File / New /File / Station /
Create) and then add an existing Robot System (robot and controller), using the instruction
Home / Build Station / Virtual Controller / Existing Controller).
Let's now add an object to the station – a worktable. The file corresponding to this object
(propeller_table.rslib) is available in the C:\Program Files (x86)\ABB\RobotStudio 2023\ABB
Library\Training Objects directory. For this it is necessary to use the Import Library instruction
from the Home tab.
Proceed as follows:
Within the Home/Build Station Menu select Import Library; in the displayed window, navigate
to the Equipment directory, scroll until you see the Training Objects component group and
select the desired object (propeller_table) (see Figure 27).
The worktable is then placed on the station (see Figure 28).On the layout window it is possible
to view on the list of components this new equipment.
22 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 27 – Inserting object into the station
Next, we will modify its location, placing it in position (mm) X: 1500, Y: -225, Z: 0, Orientation
(Deg) X: 0, Y: 0, Z: 90 (relative to the reference frame World of RobotStudio Station). For this,
the functionalities of modifying the positions of objects within the station will be used.
In the Layout window, select the object “table_and_fixture_140” and, with the RMB (right
mouse button) access the Position/Set Position… instruction (see Figure 29). A new Set Position
window: table_and_fixture_140 opens close to the Layout window, and the values of the new
location must be entered and validated (see Figure 30). Note that the values entered refer to
RobotStudio® Tutorials 23
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
coordinates referring to the base station reference (World) which also serves as a reference to
the location of the robot. Once the validation is done, we will have the table in the new
position, as shown in Figure 31.
24 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 31 – Worktable placed in new position
Let's now import one of the tools – myTool.rslib – available in the program directory C:\Program
Files (x86)\ABB\RobotStudio 2023\ABB Library\Training Objects, and insert it into the station.
The import process can be carried out in a similar way as for the worktable. It may also be
possible to use the functionality of going directly to the desired directory using the instruction
Home / Build Station / Import Library /Browse for library; in the displayed window, look for
the desired tool: myTool.rslib (see Figure 32) and confirm your choice by clicking Open; confirm
that the Load Geometry check box is activated.
The tool is placed at the origin of the station reference frame, so it is not visible, since the
robot is already there. To be able to view the tool, the robot must be made invisible; for that,
RobotStudio® Tutorials 25
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
in the Layout window click on the robot icon (IRB2400_16_150_02) and with the right mouse
button, access the Menu and deactivate the Visible instruction (see Figure 33); then click on
the tool icon, (in the Layout window, see Figure 34).
Let's now attach the MyTool to the robot so that when the robot moves, the tool moves
together. To do this, proceed as follows:
26 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
In the Layout window select the object “MyTool” and, by pressing the right mouse button, a
Menu opens, selecting the instruction Attach to; then choose the object to which you want to
connect the tool, which in this case is the robot (IRB2400_16_150_02(T_ROB1) – see Figure 35.
Then the message shown in Figure 36 appears, choosing the YES option to update the position.
Once this validation is done, we will have the MyTool connected to the robot's terminal
element. As the robot was “invisible”, we must reactivate the robot's visibility. To do this, use
the mouse to select the robot, in the Layout window. Then press the right mouse button and
activate the Visible instruction. We will then have the image shown in Figure 37
RobotStudio® Tutorials 27
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 37 – Station with robot and respective welding torch and table
To save the built station, use the Save instruction. To do so, access the File Menu and select
the Save Project instruction. The project is saved in the directory
C:\Users\paulo\Documents\RobotStudio\Projects\Project_1 . Inside this directory, you'll find
numerous folders and files, encompassing both the robotic station and the virtual controller.
One of the important files is the “Project_1.rsproj”. When this file is opened, it includes all
robotic station and the virtual controller.
To close the station, use the Close Project instruction. To do so, access the File tab and select
the Close Project instruction.
28 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Lesson 2 - Moving the robot
In this lesson you will learn how to move the robot (jogging), how to create targets and paths
and how to move the robot to targets or move the robot along paths.
To open the recent created station, use the Open instruction. To do so, access the File tab and
select the Open instruction. Navigate to the directory where the station was saved, select the
file “Project_1.rsproj” and activate the Open instruction (see Figure 38).
In the tab Home / Path Programming select the instruction Other / Create Workobject (see
Figure 39). A Create Workobject window opens in the Layout window area. Edit now in the Misc
data field, the Name variable, giving it the name “Table_Ref” Then enter the values of desired
location for that frame, to be next to one the table feet (X=1475, Y=-200, Z=4, values in
millimeters); to do this, select the User Frame / Position x,y,z / Values field and enter the
desired values; validate the entered values (Accept) and activate the Create button (see Figure
42).
The result is the creation of a Workobject named Table_Ref and located at the base of one of
the feet of the worktable, as can be seen in Figure 41.
This Workobject will now be useful for defining the targets that will be programmed in the next
step. The position of the targets will be defined in relation to this newly created frame.
RobotStudio® Tutorials 29
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 39 – Workobject creation
30 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Step 3: Multiple targets creation
Let's start by creating a target at one of the top vertices of the worktable. To create targets,
use the Create target instruction. For this, in the Home / Path Programming Menu, click on
the Target instruction and select Create Target (see Figure 44); close to the Layout window
will open a Create Target window, as shown in Figure 45(a); as the vertex is in the position
(X=0, Y=0, Z=304, expressed in the referential Table_Ref) and if you want to have the
referential rotated 180º (in the Y axis) in relation to the referential Table_Ref, the displayed
values must be entered in Figure 45(b); then the target creation must be validated, activating
the Create button (Figure 45(c)); attention is drawn to the following two aspects:
The target's Reference field must be changed from the default value “World” to the
value “Workobject”;
The Target name field allows editing its value, having been chosen to keep the value
suggested by the program (Target_10).
RobotStudio® Tutorials 31
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
a) (b) (c)
After creating this target, let's now examine its location. For this purpose use the instruction
Examine; in the Paths&Targets window, on the Target_10 icon, click with the right mouse
button to open the menu window; select View / Examine (Figure 44).
32 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
We can then see the robot tool on that same target. For this use the View Tool at Target
instruction; in the Paths&Targets window, on the Target_10 icon, press the right mouse button
to open the menu window; select View Tool at Target, press again and activate the desired
tool, which in this case is the MyTool Figure 45). To disable this feature, click on View Tool at
Target again.
We can also see the robot with the tool on the defined target. To do this, use the View Robot
at Target instruction; in the Paths&Targets window, on the Target_10 icon, press the right
mouse button to open the menu window; select View Robot at Target, (see Figure 46). To
disable this feature, click on View Robot at Target again.
RobotStudio® Tutorials 33
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 46 – Instruction View Robot at Target
Let's now create 3 more targets, on the other 3 vertices of the tabletop. We will use a process
similar to the previous one, assuming that we know the coordinates of the 3 vertices in the
table frame (Table_Ref). For that, in the Home / Path Programming Menu, click on the Target
instruction and select Create Target in order to open the Create Target window, as shown in
Figure 47 (a); input data for 1st vertex location (position: -300, 0, 304, orientation: 0, 180, 0);
activating the Add button now, the image shown in Figure 49 (a) appears; then input the data
for the 2nd vertex (position: -300,400, 304, orientation: 0, 180, 0) and activate the Add button
(see Figure 47 (b) ); repeat the procedure for the 3rd vertex (position: 0, 400, 304, orientation:
0, 180, 0) and finally activate the Create button (see Figure 47 (c)). The 3 new targets are then
created: Target_20, Target_30, Target_40.
The four targets created can be seen in Figure 48. Note that in the Output window, the
information regarding the last 3 targets created, is referred that there is no robot configuration
for each of the targets. This however does not prevent us from being able to move the robot
to each of the defined targets. When a path is created, it is necessary to assign a configuration
of robot axes to each of the targets, which will be done in the following steps.
It should be noted that there are other ways to create targets, in addition to the input of
coordinates, which take advantage of the geometric definition of objects. Thus, targets can be
defined on vertices or midpoints of edges, where the use of the SnapMode instruction, available
on the status bar, is very useful.
34 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 48 – Viewing the four created targets
To view the robot at a given target we can use the instruction Jump To Target. To do this, in
the Paths&Targets window, on the Target_10 icon, press the right mouse button to open the
menu window; select Jump To Target (see Figure 49). The robot will position its active tool
on the chosen target, but it will be necessary to choose a robot configuration to adopt for that
target. If you want to define/modify the assigned configuration, select the target in question
and activate the Configurations instruction, which opens a window that displays the possible
configurations for the respective target and allows selecting one of them. Now repeat these
operations to be able to assign the settings to the other targets previously defined. Use the
same configuration adopted for Target_10. The configuration for each target can also be
automatically assigned, using the Auto Configuration instruction, from the moment a path that
uses these targets is defined (as at the moment no path has been defined, this instruction
cannot be used!)
RobotStudio® Tutorials 35
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure 49 – Jump to target and selecting Robot Configurations
To view the robot in its home position, we can use the Jump Home instruction. To do this, in
Layout window, over the robot icon, press the right mouse button to open the menu window;
select Move To Pose /Jump Home (see Figure 50). The robot will then move to its starting
position. You can also create other locations (poses) and use this instruction to move the robot
to those locations.
36 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Step 6: Path creation (Create Path)
Based on the 4 targets created, let's now create a path, in order to allow the robot to make a
continuous movement between these targets. Let's start by creating an Empty Path. For this,
in the tab Home / Path Programming, click on the instruction Path / Empty Path; this will
create a path, which can be seen in the Paths&Targets window (see Figure 51). Next, we will
select the four targets and drag them into the path created. Proceed as follows:
in the Paths&Targets window, press on Target_10, keep the Shift key pressed, and press
on Target_40 (all 4 targets are selected)
click on the selected targets and keeping the mouse button pressed, drag the mouse
pointer over Path_10 and release.
Thus, 4 movement instructions will be created, inside Path_10, as can be seen in Figure 52.
RobotStudio® Tutorials 37
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Bearing in mind that the settings for each of the targets had already been assigned, it is now
possible to simulate the robot's movement. However, if a configuration had not yet been
assigned to each target, it could be done automatically, using the Auto configuration
instruction. Then proceed as follows: in the Paths&Targets window, position the mouse over
Path_10 and, by clicking on the right mouse button, open the Instructions Menu, selecting the
instruction Auto Configuration / All move instructions (Figure 53).
After completing this operation, the robot performs a simulation of the movement along the
path using the 4 defined targets.
Another alternative would be to individually define the configuration for each target. For this
purpose, the Configurations instruction is available
It is worth noting at this point that the creation of Path_10 resulted in the use of linear motion
instructions. This can be confirmed by verifying that the instructions contained in the definition
of Path_10 (MoveL) correspond to linear movements, that is, the robot must use a linear
interpolation to move to each of the defined targets. The values used in the definition of the
movement instructions are previously defined, and can be edited from the status bar, as shown
in Figure 54. Anyway, the movement instructions can be edited and modified, without
interfering with the targets that were already defined.
38 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Step 7: Move Along Path
To move the robot along the created path, use the Move Along Path instruction. Then proceed
as follows: in the Paths&Targets window, position the mouse over Path_10 and, by pressing the
right mouse button, open the Instruction Menu, selecting the Move Along Path instruction (see
Figure 55).
The robot's movement along the Path is achieved, as long as the robot can fulfill the first of
the instructions of that path, which assumes a linear movement (MoveL) from the point where
the robot is to Target_10. It can happen that, for example, with the robot in its HomePosition,
the controller cannot perform the linear interpolation from that position to the first target. To
overcome this problem, you can choose to modify the program so that the first motion
instruction of the Path is of type MoveJ (point-to-point interpolation), using the Edit Instruction
and selecting Motion Type as Joint. Another alternative could be to place the robot in a position
close to Target_10, before executing the Move Along Path instruction.
Save the project. To do this, use the File/Save Project As instruction to be able to give it a
new name (Project_2).
RobotStudio® Tutorials 39
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Reference Documents
40 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
ANNEX A – Basic Concepts
RobotStudio® Tutorials 41
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
ANNEX A – Basic Concepts
A.1.1. Introduction
This section provides a brief introduction to the use and definition of coordinate systems that
are frequently used for programming robots in RobotStudio®.
In RobotStudio® we can define different coordinate systems (frames). Frame is the visual
representation of a coordinate system in RobotStudio®. Each frame refers to a location in
space, characterized by a coordinate system with 3 orthogonal axes, which corresponds to a
point in three-dimensional space (X, Y, Z) and an orientation (X,Y,Z). Each of these frames
has an editable name that can be viewed by a color coordinate system where the red color is
associated with the axis X, the green color axis Y and the blue color to axis Z.
Coordinate systems (frames) can be associated with certain objects or particular locations of
these same objects (for example, vertices), allowing to establish the relative positioning of the
different objects of a station.
Coordinate systems have a hierarchical structure, where the origin of each coordinate system
is defined relative to a reference frame of its predecessor. Below is a description of the most
used coordinate systems, starting at the top of this hierarchy.
42 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
RS-WCS World Coordinate System in RobotStudio (World)
TCP(R1) Tool Center Point of robot 1
TCP(R2) Tool Center Point of robot 2
BF(R1) Base Frame of robot system 1
BF(R2) Base Frame of robot system 2
P1 Robot target 1
P2 Robot target 2
TF1 Task Frame of robot system 1
TF2 Task Frame of robot system 2
Wobj Workobject
Figure A. 1 – Frames in RobotStudio®: WCS and others
Task Frame
The task coordinate system (Task Frame) is used to coordinate the positioning of elements
that make up a station that uses multiple robots and mechanisms. The use of one Task Frame
makes it possible to coordinate the relative positioning of several mechanisms (robots or
positioners) that perform a common task. The use of several Task Frames are employed when
working with several mechanisms that perform independent tasks. The Task Frame referential
can thus be seen as representing the origin of the world coordinate system of the real controller
of a robot, in the same way that the RS-WCS world coordinate system represents the origin of
the workspace in the RobotStudio® software environment (see Figure A.2). For stations with
two robot controllers, it is possible to use two Task Frames, each associated to each robot
controller (Figure A.3). For MultiMove systems it is used only one Task Frame (Figure A.4).
RobotStudio® Tutorials 43
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.2 – One Task Frame (TF) for two robots
Figure A.3 – Two Task Frames (TF) for two robots (Multiple robot systems)
44 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Remark: in the examples of stations that will be discussed, only one task will be used, so the
Task Frame will overlap with the robot Base Frame –Figure A.5.
Figure A.5 – Task Frame (TF), overlapping with Base Frame (BF)
Base Frame
On a RobotStudio® station and on the physical controller, each robot has a Base Frame, which
is located at the base of the robot (see Figure A.6).
Tool Frame
The tool coordinate system, sometimes referred to as the TCP coordinate system or Tool
Frame, is the coordinate system whose origin is associated with the tool center point (TCP). As
a robot can move different tools (clamps, welding torches, grippers, ...) several TCPs can be
defined for the same robot, with the respective frame associated with each one. The TCP is
usually defined somewhere on the tool, i.e., at the center of the grip or top of the welding
torch (Figure A.7 e Figure A.8).
RobotStudio® Tutorials 45
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Note that the TCP is a point and the Tool Frame is a coordinated system with its origin at the
TCP.
When a program is executed, the robot moves its TCP (the selected TCP) to the programmed
positions. Also, when a robot is programmed to describe a certain trajectory (linear or circular),
it is also the TCP that describes that linear trajectory at the speed that has been programmed.
All robots have a pre-defined TCP, located in the robot's end effector. Its associated frame is
called tool0 (see Figure A.9). The origin is located at the center of the robot's end effector
(robot flange). The X axis points in the opposite direction to a control hole in the flange. The
Z axis points away from the flange, being perpendicular to the flange surface. This tool frame,
tool0, is fixed, and cannot be changed.
46 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.9 – Tool frame tool0
RobotStudio® Tutorials 47
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.12 – Definition of a UCS associated Figure A.13 – Definition of a UCS
with a Target associated with the robot Base Frame
Workobject
An important concept in RobotStudio® is that of “Workobject”. A Workobject is a coordinate
system that represents the physical location (position and orientation) of an object on the
station. The Workobject is therefore associated with a coordinate system (Workobject
Coordinate System). However, the definition of a Workobject implies the specification of two
coordinate systems: the User Frame (defined in relation to the Task Frame) and the Object
Frame (defined in relation to the User Frame) being the latter dependent on the first
(hierarchical structure) – see Figure A.14.
48 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
defined by two frames allows for greater flexibility in its definition and editing, making it easier
to adjust the program if the object is moved or if a new object is introduced. These Workobject
coordinate systems are also useful when you want to move the robot in directions associated
with the geometry of the objects. Thus, it is possible to jog the robot by selecting the desired
frame of the Workobject. Workobjects should always be defined as global variables to be
available to all modules in the program.
Before analyzing the process of defining a Workobject, it is necessary to review the concept of
Frame and the way in which it is defined.
The other option to create a Frame from three points (Frame from Three Points instruction)
is to specify the position of the origin, a point on the X axis and a point on the XY plane, or
specify two points on the X axis and one point on the Y axis (see Figure A.17). In the same way,
after the creation of the Frame, it becomes listed in the Layout window.
RobotStudio® Tutorials 49
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.15 – Definition of a Frame
In the process of converting a Frame into a Workobject (Figure A.18), the Frame is no longer
included in the Layout window and the Workobject definition appears in the Paths&Targets
window (see Figure A.19). The created Workobject is then defined by two Frames User Frame
and Object Frame. User Frame coordinates are the original Frame coordinates used for its
definition, expressed in the Task Frame referential. Object Frame coordinates are null
(Object Frame overlaps with User Frame). These data can be seen using the Modify
Workobject instruction – see Figure A.20.
50 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.18 – Convert Frame to Workobject
The other process of creating a Workobject is its definition. Thus, activating the Create
Workobject instruction (tab Home / Path Programming / Other / Create Workobject opens
RobotStudio® Tutorials 51
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
the window shown in Figure A.21, allowing the user to define the location of the User Frame
and the Object Frame. Note that the User Frame is defined in relation to the Task Frame and
the Object Frame is defined in relation to the User Frame. In this Workobject definition
window, other parameters that dictate the behavior of the Workobject are defined, namely if
the Workobject must be moved by the robot or if it is fixed in space.
The use of Workobjects allows an easy adjustment of the robot program, using an offset, if the
position of an object needs to be modified. Thus, Workobjects can be used to calibrate
programs performed by an offline process. If the real location of the part relative to the robot
does not completely match the location defined with the offline program, simply adjust the
location of the Workobject.
The user can define various coordinate systems associated with objects existing on the station
by defining different Workobjects.
A robot can work with different workstations, which are placed in different locations (positions
and orientations). If in each workstation the taught targets are defined based on the respective
Workobject, if for some reason it is necessary to reposition the workstation, it will be enough
to redefine the User Frame of the Workobject and all programmed positions will be
automatically adjusted, without the need for reprogramming. Remember that these coordinate
systems (Workobjects) are defined relative to the Task Frame coordinate system (see Figure
A.22).
52 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.22 – Use of distinct Workobject
When programming a robot, all Targets are defined based on a certain Workobject, being
related to the Object Frame of that Workobject. If no other Workobject is specified, the targets
will be related to the default Workobject, Wobj0, which matches the Task Frame. Note that
the Workobject Wobj0 is predefined and cannot be changed.
User Frame
It is a coordinate system defined by the user, within the scope of the definition of a Workobject,
as seen above. The user can define several User Frame systems, each one associated with the
definition of a Workobject. The User Frame is defined in relation to the Task Frame
coordinate system.
• definition of three points (two points on the X axis and one point on the Y axis)
Object Frame
It is a coordinate system defined by the user, within the scope of the definition of a Workobject,
as seen above. The user can define several Object Frames, each one defined in relation to a
User Frame, within the scope of the definition of a Workobject.
• definition of three points (two points on the X axis and one point on the Y axis).
RobotStudio® Tutorials 53
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
A.1.3. Robot repositioning and coordinate systems
When creating a new station in RobotStudio® with a single robot, the various frames have the
following layout (Figure A.23):
If you move the robot's location (via the Set Position instruction) to another position, for
example to X=1000, Y=0, Z=0 (in the World frame) (see Figure A.24), the user is asked to confirm
that pretends to modify the Task Frame, so that it remains coincident with the robot's Base
Frame. If confirmed, the new locations of the frames are given by:
54 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.24 – Changing the robot's position in the workspace
If, when changing the robot's location (using the Set Position instruction), the user chooses not
to modify the Task Frame, so that it remains coincident with the World Coordinate System and
updates the controller configuration (doing a restart to the controller) (Figure A.25), the new
location of the different frames becomes:
Figure A.25 – Changing the robot position without changing the Task Frame
RobotStudio® Tutorials 55
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
If now the user moves the Task Frame to the position X=1500, Y=0, Z=0 (expressed in the
World frame), using the Set Task Frame instruction, the user can confirm that he does not
want to modify the Base Frame, so that it remains in the same position (X=1000,Y=0,Z=0)
(Figure A.26). If you do so, the new location of the frames is given by, after a controller reset:
Figure A.26 – Changing the Task Frame without moving the Base Frame
Typically, when using a cell with a single robot, the Base Frame and the Task Frame must
match, and the Workobject wobj0 matches with the Task Frame. Thus, when you want to
place the robot on top of a pedestal, the Task Frame must be adjusted using the Set Task
Frame instruction and confirming that you also want to move the Base Frame (Figure A.27)).
In this way, the wobj0 is automatically repositioned overlapping with the Task Frame (see
Figure A.28). Thus, it can be verified that the wobj0 frame is always coincident with the Task
Frame.
56 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Figure A.27 – Modification of the Task Frame for placing robot on a pedestal
RobotStudio® Tutorials 57
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
A.2. Targets and Paths
A.2.1. Introduction
In RobotStudio®, when you want to program a robot, it is necessary to specify the targets and
the paths that the robot must visit/follow. When the RobotStudio® station is synchronized with
its virtual controller, programs, written in RAPID language, are automatically created from
previously defined targets and paths defined within the station.
A.2.2. Targets
A Target is a location in space that the robot must reach. A Target is defined in relation to a
given Workobject and is associated with a specific configuration that the robot must have to
position itself on that target. A Target therefore contains the following information:
A.2.3. Paths
A Path is made up of a set of Targets that must be visited in a certain sequential order. Thus,
a Path consists of a sequence of motion instructions that allow the robot to move along a set
of targets.
Paths, defined in the station environment, are converted to procedures when they are
synchronized with the virtual controller.
58 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
Move instructions
• A reference to a target
• A reference to a Workobject
Action instructions
An action instruction is a RAPID language instruction that can be used to set or modify various
parameters. Action instructions can be inserted, before, after or between move instructions.
Axis Configuration
Each target is defined and stored, and can be seen as a frame to be reached by the robot tool's
frame. When the controller calculates the position of the various axes of the robot in order to
reach the intended target, it often finds more than one possible solution for the configuration
of the axes (see Figure A.29).
In order to distinguish the different configurations, all targets have a value for the configuration
that specifies the quadrant in which each robot axis must be located.
For targets that are created after moving the robot to a certain location by jogging, the current
robot configuration is used and stored within that target. Targets that are specified by inputting
coordinates or whose positions and orientations are calculated, have a default value of the axis
configuration parameter (0,0,0,0), which may mean that the robot will not be able to reach
RobotStudio® Tutorials 59
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
the specified target. This means that after creating a Target with this mode, it is necessary to
find a valid configuration for the robot in order to reach that target. For this purpose, there
are automatic and manual procedures that allow finding a solution, as will be seen later.
Remark: When targets are created by processes other than the robot's jogging, the most likely
is that the robot will not be able to reach those targets with the default setting. Even if all
targets in a path have valid configurations, you may encounter problems when moving the robot
along the path, as the robot may not be able to move from one configuration to another. This
typically happens when it is necessary for the robot to move one of its axes more than 90º,
during linear movements. This problem stems from the controller's inability to automatically
find a solution for the robot's inverse kinematics problem.
To solve these problems, you can assign a valid configuration for each target and use an
instruction to check if the robot can move along the path. You can also turn off the
configuration monitoring instruction (ConfJ \off or ConfL \off), which allows you to ignore the
configurations stored in the targets and let the robot controller find the appropriate
configurations (see point 2.9 of the RobotStudio® p3- programming II document .pdf). Note
that if ConfJ \On the robot moves to the programmed position, orientation and axis
configuration. However, it may turn out that it is not possible to obtain a uniform path without
reorientation movements taking place. In other cases, valid configurations may not exist, so it
may be necessary to reposition the objects, reorient the targets (if acceptable for the process)
or even the need to introduce new targets in order to change the configuration of the robot
axes so that it can reach the intended targets.
The first value (0) specifies the position of the first axis: somewhere in the 1st positive
quadrant (between 0 and 90 degrees)
The second value (-1) specifies the position of axis 4: somewhere in the first negative
quadrant (between 0 and -90 degrees)
The third value (2) specifies the position of axis 6: somewhere in the 3rd positive
quadrant (between 180 and 270 degrees)
The fourth value (1) specifies the position of an X axis, a virtual axis, used to specify
the wrist center relative to the other axes.
60 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023
For a better understanding, it is worth referring to the confdata definition structure, which is
an integral part of the definition of a target. Thus, this four-component vector is defined by:
Being confname the name of the variable, and the other variables depending on the physical
configuration of the robot (serial, articulated, scara, cartesian or parallel) and on the number
and type of axis (linear or rotation)
With:
Depending on the model and physical configuration of a robot, and for a given target (position
and orientation), there may be different configurations that the robot can adopt. Figure A.30
shows the robot IRB2400 positioned in its HomePosition, for which there are four possible
configurations. For this purpose, four targets were defined that have the same definition of
position and orientation, differing only on adopted the configuration:
CONST robtarget
Target_10:=[[928,0,1412.5],[0.5,0,0.866025404,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_20:=[[928,0,1412.5],[0.5,0,0.866025404,0],[0,-2,-
2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_30:=[[928,0,1412.5],[0.5,0,0.866025404,0],[-2,0,-
2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_40:=[[928,0,1412.5],[0.5,0,0.866025404,0],[-2,-
2,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
RobotStudio® Tutorials 61
Part 1 - Introduction, Edition 1.2
Paulo Abreu, September 2023
Confdata [0,0,0,0] Confdata [0,-2,-2,0]
62 RobotStudio® Tutorials
Part 1 – Introduction, Edition 1.2
Paulo Abreu, September 2023