Você está na página 1de 45

INSTITUTO POLITCNICO DE LEIRIA

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO


EEC 3 ano Robtica e Viso Computacional

TUTORIAL N 1
PROGRAMAO OFFLINE E SIMULAO COM O ROBOTSTUDIO 6.04
ndice
1 Objetivos .................................................................................................................................. 2
2 Introduo ................................................................................................................................ 2
3 Elementos Base....................................................................................................................... 2
3.1 Verso Utilizada ................................................................................................................................. 3
3.2 Ambiente de Trabalho ........................................................................................................................ 4
3.3 Abrir e Simular um Ambiente de Trabalho Exemplo .......................................................................... 5
3.4 Criar Ambientes de Trabalho ............................................................................................................. 8
3.5 Sistemas de Coordenadas ................................................................................................................ 9
3.6 Espao de Trabalho e Alcance do Rob ......................................................................................... 10
3.7 Adicionar Ferramentas Existentes .................................................................................................... 11
3.8 Adicionar Objetos Existentes ........................................................................................................... 12
3.9 Criar e Importar Novos Objetos ....................................................................................................... 14
3.10 Modos de Visualizao .................................................................................................................... 16
3.11 Movimentar o Rob e Criar Caminhos ............................................................................................ 17
4 Criar um Workobject .............................................................................................................. 20
5 Criar um Caminho com Base nos Vrtices de um Objeto....................................................... 22
6 Criar Caminhos ao Longo das Arestas de um Objeto............................................................. 26
7 Alterao da Localizao do Espao de Trabalho Aps a Criao das Posturas e/ou do
Caminho ....................................................................................................................................... 29
8 Adicionar Sinais ao Rob ....................................................................................................... 30
9 Programao Grfica do Rob e Simulao .......................................................................... 32
10 Utilizao Direta de Cdigo RAPID .................................................................................... 37
11 Principais Instrues RAPID .............................................................................................. 40
11.1 Variveis e Constantes .................................................................................................................... 41
11.2 Controlo de Fluxo ............................................................................................................................ 42
11.3 Instrues de Movimento ................................................................................................................. 42
11.4 Entradas/Sadas (sinais) .................................................................................................................. 44
11.5 Procedimentos (Funes) com Argumentos ................................................................................... 44
11.6 Algumas Notas Finais ...................................................................................................................... 45
12 Gravao da Simulao em Vdeo ..................................................................................... 45

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 1/45


1 Objetivos
Pretende-se com este tutorial guiar o estudante na aprendizagem e aplicao de conceitos
fundamentais na utilizao de manipuladores industriais, atravs da utilizao do software
RobotStudio da ABB, nomeadamente:
Princpios bsicos (sistemas de coordenadas, espao de trabalho, alcanabilidade, etc.);
Carregar e movimentar um manipulador;
Carregar e movimentar ferramentas;
Carregar objetos existentes;
Criar e importar novos objetos;
Criar e utilizar Workobjects;
Gerar caminhos com base na geometria de objetos;
Criar e utilizar sinais para coordenar tarefas robticas;
Utilizao de cdigo RAPID;
Gravar um vdeo da simulao.
NOTA: importante que guarde o seu trabalho no final de cada seco, pois o mesmo poder ser
necessrio na seco seguinte, razo pela qual no dever fazer nenhuma seco sem ter
concludo todas as anteriores. No final dever guardar o trabalho desenvolvido, pois este, ou parte
deste, poder ser utilizado nos tutoriais seguintes.

2 Introduo
Dada a complexidade no desenvolvimento de uma tarefa automatizada com recurso a robs,
imprescindvel a utilizao de software de simulao para uma maior produtividade. Alm de reduzir
o tempo de desenvolvimento e possveis erros de conceo, permite ainda reduzir o tempo de
paragem das linhas de produo durante o processo de desenvolvimento.

O RobotStudio o software de simulao e desenvolvimento produzido e fornecido pela ABB, um


dos principais produtores de manipuladores industriais. Neste software possvel encontrar um
nmero elevado de robs desenvolvidos pela ABB, permitindo a sua utilizao imediata em
ambiente de simulao. possvel ainda controlar e monitorizar a execuo de tarefas por robs
reais, desde que as verses de software e controlador sejam compatveis.

Neste tutorial encontra uma descrio passo a passo dos principais elementos do RobotStudio, bem
como exemplos e/ou ligaes para exemplos fornecidos pelos docentes e/ou juntamente com o
software. Este tutorial foi desenvolvido de modo a que os estudantes adquiram autonomia na
procura de solues para problemas inesperados que possam surgir. Assim, ao longo deste
documento encontrar vrios ponteiros para seces de ajuda do prprio RobotStudio. Todos os
elementos que no faam parte deste tutorial, ou no sejam fornecidos juntamente com o
RobotStudio, so disponibilizados no Moodle ou num stio Web relacionado com o fabricante com
a respetiva ligao explicitamente indicada na respetiva seco deste tutorial.

3 Elementos Base
Tal como indicado nas aulas tericas, a cada manipulador robtico est associado um controlador
e uma consola, tal mostra a Figura 1.
No caso da ABB so utilizadas as seguintes terminologias (robs de outras marcas usam
terminologias semelhantes):
RAPID linguagem de programao utilizada para controlar os robs da ABB;
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 2/45
Robot manipulator corresponde ao manipulador robtico em si;
Control module corresponde ao mdulo responsvel pelo controlo dos movimentos do
rob, normalmente constitudo por um computador capaz de interpretar linguagem RAPID e
comunicar com os mdulos de acionamento;
Drive module mdulo que contm a eletrnica de potncia, capaz de receber as indicaes
do mdulo de controlo e acionar os motores das juntas do manipulador. Tipicamente um
mdulo de acionamento da ABB suporta at 9 juntas, pelo que necessrio um mdulo por
rob (o qual tem tipicamente 6 juntas);
FlexController Corresponde unidade denominada como Controlador na Figura 1, a qual
contm o mdulo de controlo, o mdulo de acionamento, e outros mdulos necessrios ao
funcionamento do ABB (por exemplo, de comunicao);
FlexPendant Consola de comando ligado ao controlador. Com um ecr, que poder ser
ttil, e teclas, esta permite de uma forma fcil a programao e controlo do manipulador
online;
Tool Ferramenta utilizada no elemento terminal do rob. A ttulo de exemplo, e tal como
poder confirmar na Figura 1, poder ser utilizada uma garra;
RobotWare designao utilizada pela ABB para se referir ao software utilizado para
controlar o rob, i.e., corresponde ao sistema instalado no controlador;
Station ambiente de trabalho, constitudo por um ou mais manipuladores robticos e
demais objetos e mecanismos.

Consola
Manipulador

Controlador

Figura 1 Manipulador robtico ABB IRB2400 existente no Laboratrio de Robtica.


ainda importante definir alguns conceitos base relacionados com a programao de robs, quer
em ambientes reais, quer em ambientes simulados:
Programao online consiste em programar um rob atravs do mdulo real do mesmo;
Programao offline consiste em programar um rob virtual atravs de um editor de texto
ou num programa de simulao;
Controlador virtual software que simula o controlador real, permitindo interagir e programar
um rob virtual como se fosse um rob real;
Sistema de coordenadas (ou frame) quer no ambiente real, quer no ambiente simulado,
torna-se bastante til a utilizao de diferentes sistemas de coordenadas para diferentes
operaes, objetos ou reas de trabalhos;

3.1 Verso Utilizada


No Laboratrio de Simulao de Sistemas (DS0.10) encontra-se instalada a verso 6.04.01 do
RobotStudio. Aconselha-se a utilizao da verso 64-bit para um melhor desempenho, caso
tenha um PC 64-bit.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 3/45


A verso do RobotStudio utilizada na UC de Robtica est disponvel para descarregar
gratuitamente no stio Web do fabricante, no entanto essa verso apenas disponibiliza todas as
funcionalidades durante 30 dias. No Moodle, Seco FAQ RobotStudio da pgina da UC de
Robtica, encontra as instrues necessrias para descarregar e instalar o RobotStudio. A ESTG
possui uma licena de campus que permite a utilizao do RobotStudio sem restries de tempo
para trabalhos acadmicos, desde que utilizada dentro do campus. Consulte a FAQ no Moodle para
mais informaes relativamente instalao e configurao do RobotStudio no seu PC.

3.2 Ambiente de Trabalho


Abra o RobotStudio, surgindo o ambiente de trabalho inicial ilustrado na Figura 2. De salientar o
cone no topo, direita, com o ponto de interrogao (tambm acessvel atravs do menu
FileHelp), o qual permite aceder ao menu de ajuda do RobotStudio. Esse menu contm vrios
itens, sendo os mais relevantes os seguintes:
RobotStudio Help acesso a um sistema de ajuda bastante completo sobre a utilizao do
RobotStudio;
RAPID Instructions, Functions and Data Types acesso descrio da linguagem de
programao, em particular das vrias funes disponveis.

Figura 2 Ambiente inicial de trabalho do RobotStudio.


Se aps a concluso do(s) tutorial(ais) tiver dvidas sobre alguma funcionalidade ou funo, este
um dos repositrios onde encontrar a informao necessria.
Nesta altura dever abrir a seco RobotStudio Help e, no separador Contents, abrir o item
Introduction to RobotStudio User Interface Ribbon, tabs and groups. Neste item ver uma
descrio resumida dos vrios blocos disponveis no ambiente de trabalho do RobotStudio, tal como
mostra a Figura 3.

Figura 3 Blocos disponveis no ambiente de trabalho do RobotStudio (retirado de RobotStudio Help).


Como pode confirmar pela ajuda fornecida pelo programa, tem-se:
File acesso s funcionalidades de sistema do RobotStudio, como criar um documento
novo, gravar, opes da aplicao, etc.;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 4/45


Home acesso as funcionalidades base do RobotStudio, nomeadamente importar sistemas,
robs, criar caminhos, etc.;
Modeling acesso criao de objetos, medidas, operaes CAD, etc.;
Simulation acesso aos comandos e controlo de simulao;
Controller acesso aos comandos de sincronizao e controlo dos controladores, sejam
estes virtuais ou reais;
RAPID acesso ao editor e depurador de cdigo RAPID;
Add-ins acesso a opes adicionais instaladas, nomeadamente controlo de soldadura,
etc..
Feche a janela de ajuda do RobotStudio.

3.3 Abrir e Simular um Ambiente de Trabalho Exemplo


Alm de incluir inmeros robs e um conjunto de ferramentas, o RobotStudio inclui ainda um
conjunto de exemplos completos de ambientes de trabalhos prontos a simular. Estes exemplos
esto armazenados num ficheiro comprimido especfico do RobotStudio, o qual permite facilmente
transferir o ambiente de trabalho entre diferentes computadores/utilizadores. O RobotStudio
disponibiliza trs funcionalidades para este fim, acessveis atravs do menu File Share (ver
Figura 4):
Pack and Go permite exportar todo um ambiente de trabalho num nico ficheiro
comprimido. Esse ficheiro poder depois ser utilizado noutro computador, ou por outro
utilizador para abrir e/ou editar esse mesmo ambiente de trabalho1;
Unpack and Work permite abrir e trabalhar num ambiente de trabalho armazenado atravs
da opo Pack and Go;
Save Station as Viewer permite guardar a estao com simulaes que tenham sido
efetuadas, permitindo visualizar as mesmas em PCs que no tenham o RobotStudio
instalado. Note que no possvel editar esse ambiente de trabalho.
NOTA: Todos os trabalhos devem ser entregues para avaliao utilizando o ficheiro obtido
atravs da opo Pack and Go. Aconselha-se ainda que os estudantes faam frequentemente
cpias de segurana do ambiente de trabalho desenvolvido usando essa opo. Sempre que
mudarem de computador devem tambm usar esta opo para copiar a estao de trabalho
entre PCs.

Figura 4 Ficheiros Pack & Go.

1Note-se que um ambiente de trabalho no RobotStudio composto por mltiplos ficheiros. A opo Pack &
Go permite criar um nico ficheiro comprimido que inclui todos esses ficheiros.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 5/45
O RobotStudio inclui alguns exemplos completos que pode experimentar, dois dos quais se
descrevem de seguida.

3.3.1 Exemplo de soldadura


1. Escolha a opo Unpack and Work clicando no menu File Share Unpack and Work e
clique em Next. De seguida navegue at ao ficheiro com o ambiente de trabalho pretendido,
neste caso disponibilizado na pasta C:\Program Files (x86)\ABB Industrial IT\Robotics
IT\RobotStudio 6.04\Samples\Stations com o nome Demo AW Station.rspag.
2. Escolha uma pasta para onde descompactar o sistema a trabalhar, por exemplo, uma pasta
em Os meus documentos (pode ser a pasta sugerida por omisso). A opo Unpack to
Solution serve para indicar ao RobotStudio que deve ser criada uma pasta especfica para
o ambiente em questo. Caso no ative esta opo, a pasta ser partilhada por outros
ambientes, tipicamente na pasta padro do RobotStudio. Embora ocupe mais espao,
aconselha-se a ativar esta opo para manter todos os ficheiros necessrios numa mesma
estrutura dentro duma pasta especfica do ambiente a trabalhar.

-
Figura 5 Exemplo de soldadura.
3. Proceda com as opes indicadas por omisso, exceto relativamente opo Library
Handling, onde dever escolher a opo Load files from Pack & Go. Quando clicar em Finish
ambiente de trabalho ser carregado (note que o carregamento do ambiente de trabalho
usando a opo Unpack and Work pode demorar algum tempo, podendo surgir alguns
avisos, os quais podem ser ignorados). No final dever surgir um ambiente semelhante ao
da Figura 5. No canto inferior direito pode visualizar Controller status: 1/1, sendo o dgito
da esquerda o nmero de controladores utilizados, e o dgito da direita o nmero de
controladores ativos.
NOTA: Procure utilizar e desenvolver um dado ambiente de trabalho sempre na mesma pasta, no
mesmo PC, para assim evitar gastar tempo com a operao Unpack and Work.
Neste ambiente encontra um manipulador robtico e um posicionador, estando o manipulador
equipado com uma ferramenta de soldadura ABICOR Binzel.
Para iniciar a simulao do sistema, escolha o menu Simulation e pressione a opo Play. Em
qualquer altura poder utilizar o boto esquerdo do rato para selecionar objetos do ambiente de
trabalho e o boto direito para aceder a opes desses mesmos objetos. A roda do rato permite
aproximar e afastar, Ctrl + boto esquerdo do rato permite arrastar o ambiente e, finalmente, Ctrl +
Shift + boto esquerdo do rato permite rodar o ambiente.
Feche o ambiente clicando no menu File seguido da opo Close. Note que sempre que executa
uma simulao ocorrem alteraes no ambiente, incluindo configurao dos robs, posio dos

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 6/45


objetos, etc.. Ao selecionar a opo de guardar as alteraes efetuadas, est na verdade a alterar
o ambiente face ao seu formato original, mesmo que apenas tenha corrido a simulao. Assim,
dever sempre gravar o ambiente antes de efetuar uma simulao, ou selecionar a opo
Reset (menu Simulation) aps a simulao e antes de gravar o ambiente, repondo este no
estado em que estava antes da simulao.

3.3.2 Exemplo de uma Linha de Produo


Abra e simule um outro exemplo fornecido, nomeadamente o exemplo Demo Solar
Simulation.rspag. Neste exemplo, ilustrado na Figura 6, pode ver a simulao de parte de uma
linha de produo de pequenos painis solares. Este exemplo introduz componentes avanados de
simulao, os quais permitem que o primeiro rob consiga corrigir a posio de cada uma das
clulas ao colocar as mesmas na mesa rotativa. Este exemplo inclui ainda a simulao de tapetes
(conveyors em ingls). De salientar que so utilizados dois controladores, um por rob, tal como
poder confirmar pela informao Controller Status 2/2 no canto inferior direito.

Figura 6 Exemplo de uma linha de produo de painis solares.


Simule este exemplo e veja o mesmo a correr.

3.3.3 Outros exemplos


Na pasta Samples\Stations (onde encontra os exemplos anteriores) encontra ainda os exemplos
Demo FlexLoader.rspag (Figura 7) e Demo Exhaust Pipe.rspag (Figura 8).

Figura 7 FlexLoader. Figura 8 Exhaust Pipe.


No exemplo da Figura 7 encontra uma simulao com mltiplos robs a trabalhar coordenadamente
em soldadura, utilizando um nico controlador, enquanto no exemplo da Figura 8 encontra dois
manipuladores novamente a realizar uma operao de soldadura, mas neste caso coordenada com
um posicionador, tambm neste caso com um nico controlador.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 7/45


3.4 Criar Ambientes de Trabalho
Na seco anterior teve a oportunidade de simular ambientes complexos com mltiplos robs, j
fornecidos com o RobotStudio. O primeiro passo para simular um sistema automatizado consiste
na criao do mesmo no ambiente de simulao, neste caso o RobotStudio.
Note que possvel criar todo o ambiente de trabalho, incluindo objetos, no RobotStudio. No entanto
a alterao de objetos criados dentro do RobotStudio muito limitada, sendo apenas possvel
apagando os existentes e criando novos, ou atravs de funes de corte, unio, etc. No possvel,
por exemplo, modificar as dimenses de um cubo criado previamente, alterando apenas as
propriedades deste. Como tal poder optar por criar o ambiente e/ou objetos deste num sistema de
modelao 3D (ex. Autocad, Inventor, SolidWorks, Google ShetchUp, etc.) para importar no
RobotStudio2.
NOTA: De modo a acelerar o processo de desenvolvimento dever sempre projetar
previamente (por exemplo, em papel), o ambiente de trabalho a simular com todas as
dimenses includas.
Tal como indicado na ajuda do RobotStudio (ver RobotStudio Help Building stations Workflow
for building a station), existem trs formas de criar um novo ambiente de trabalho (menu File
New):
Solution with Empty Station cria um novo ambiente de trabalho completamente vazio numa
pasta isolada;
Solution with Station and Robot Controller cria um novo ambiente de trabalho apenas com
um rob e um controlador, de acordo com o modelo escolhido, numa pasta isolada;
Empty Station cria um novo ambiente de trabalho completamente vazio.
A forma tpica para criar o ambiente utilizar a opo Solution with Station and Robot Controller,
selecionando o manipulador que se pretende (veremos outras opes posteriormente).
Existe um canal no YouTube criado pela ABB, o qual contm um conjunto de tutoriais e guias para
iniciar a utilizao do RobotStudio, os quais complementam a documentao fornecida pelos
docentes e pela ajuda do RobotStudio. Poder aceder a esse canal em3:
http://www.youtube.com/user/RobotStudio
Note no entanto que uma boa parte dos tutoriais disponibilizados naquele canal esto
desatualizados e no so aplicados diretamente na verso utilizadas nas aulas. De salientar ainda
que, para a realizao dos trabalhos e concluso da UC no necessrio consultar esses vdeos,
embora o possa fazer.

3.4.1 Criar um ambiente de trabalho com um rob e um controlador


Esta seco demonstra como criar um novo ambiente de trabalho com um nico rob e um
controlador:
1. Clique File New Solution with Station and Robot Controller (pode demorar na 1 vez

2 Para verificar quais os tipos de ficheiros suportados para importar objetos 3D para o RobotStudio, clique em
Home Import Geometry Browse for Geometry e confirme na nova janela as extenses suportadas. Note
que algumas geometrias no permitem operaes de snap, como o caso das criadas no Google SketchUp.
3 Poder visualizar algumas reportagens sobre casos reais na utilizao de manipuladores robticos, em

particular do ambiente de simulao RobotStudio.


2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 8/45
que corre);
2. Selecione um rob em Robot model, por exemplo o IRB1600_6kg_1.2m4, o nome a atribuir
ao ambiente de trabalho (Solution Name), o nome a atribuir ao controlador (Controller
Name), a pasta onde quer gravar e clique em Create;
3. Durante o arranque pode confirmar a inicializao do controlador, atravs da passagem a
verde do estado do controlador (canto inferior direito da janela principal);
4. Pode fazer zoom, pan e rodar o ambiente seguindo as indicaes fornecidas na Seco
3.3.1 ;
5. Para voltar a visualizar toda o ambiente de trabalho, clique na opo View All, disponvel
clicando com o boto direito do rato no ambiente (ver Figura 9);

Figura 9 Visualizar todo o ambiente de trabalho.


6. Para gravar o ambiente de trabalho criado, clique em File Save Station ou Save Station
As, caso pretenda alterar o nome e/ou a localizao do mesmo e atribua um nome ao
ambiente;
7. Pode confirmar que o ambiente foi gravado com sucesso verificando a mensagem que
aparece no separador Output (na parte inferior da janela do RobotStudio);
Caso queira exportar o ambiente de trabalho desenvolvido, quer para o abrir noutro PC, quer para
ficar com uma cpia de segurana, dever utilizar a opo Pack & Go, seguindo os seguintes
passos:
1. File Share Pack and Go;
2. Escolha um nome e local para o ficheiro a armazenar e clique em OK. Nesta altura poder
confirmar atravs do explorador do Windows que o ficheiro em causa foi criado.

3.5 Sistemas de Coordenadas


Na base de qualquer sistema que implique movimento esto os sistemas de coordenadas, tambm
denominados de referenciais. Em manipulao robtica usual utilizar-se mltiplos sistemas de
coordenadas, relacionados entre si de forma hierrquica, tal como abordado na aula terica.
Como detalha a ajuda do RobotStudio (RobotStudio Help Introduction to RobotStudio Terms
and Concepts Coordinate Systems), definem-se os seguintes sistemas de coordenadas (ver
exemplo tpico na Figura 10):

4O nome do rob indica que este um modelo com 6 kg de carga mxima suportada e 1.2 m de alcance
mximo.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 9/45
World Coordinate System Este o referencial do mundo, que serve de base a todo o
ambiente de trabalho. Sempre que alguma coordenada especificada em coordenadas do
mundo, a este referencial que se refere;
Task Frame Coordinate System Este referencial, definido relativamente ao referencial
anterior, pode ser usado como referencial base de uma dada tarefa. sobretudo til se
houver mltiplas clulas de trabalho no mesmo ambiente, com mltiplos robs ou
mecanismos a trabalhar numa mesma clula. Nessa situao poder haver um mesmo
referencial base para os vrios robs ou mecanismos5;
Base Coordinate System Sistema de coordenadas base associado a cada rob,
localizado por omisso no centro da base do mesmo, junto ao plano de apoio da sua base;
Tool Center Point Coordinate System (TCP) Referencial associado ferramenta.
Tipicamente o local onde a ferramenta dever trabalhar ser especificado para que o TCP
fique coincidente com essa postura, sendo essa postura a que armazenada durante a
opo Teach Target (a descrever posteriormente). Cada rob tem um referencial por omisso
denominado tool0, inicialmente localizado no extremo do punho;
Workobject Coordinate System O Workobject um referencial auxiliar que pode servir
de base a uma qualquer zona de trabalho, facilitando a alterao e especificao de pontos
de trabalho com base em objetos existentes. Por omisso todos os robs possuem
inicialmente um Workobject denominado wobj0, o qual coincidente com o referencial base
do rob.
A ttulo de exemplo pode observar um conjunto de referenciais na Figura 11 num ambiente
semelhante ao que ir criar ao longo deste tutorial. Neste exemplo os referncias do mundo, de
base do rob, da tarefa, bem como o Workobject por omisso (wobj0) esto coincidentes. O
referencial da ferramenta por omisso, tool0, encontra-se no extremo do punho. O referencial
AW_Gun corresponde ao referencial associado ferramenta inserida no rob. Neste exemplo foi
ainda adicionado um novo Workobject (Workobject_1), associado a um hipottico espao de
trabalho (neste caso a face superior do cubo exibido). Note que as cores dos eixos so sempre as
mesmas, isto , os eixos X so vermelhos, os Y so verdes e os Z so azuis (XYZ RGB).

tool0 AW_Gun

World, Base, Task,


WorkObject_1
wobj0

Figura 10 Relao entre os vrios referenciais. Figura 11 Examplo the referenciais utilizados.

3.6 Espao de Trabalho e Alcance do Rob


Para a escolha do rob a utilizar no projeto de um sistema robotizado essencial determinar o

5Note que no obrigatria esta abordagem quando so utilizados mltiplos robs. A abordagem tpica que
cada rob utilize o seu referencial base, sendo assim os movimentos independentes.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 10/45
espao de trabalho, operaes a efetuar e alcance necessrio. Assim, a escolha do rob dever ser
feita apenas depois de responder a estas questes. Em termos de alcanabilidade, isto ,
determinao do espao de trabalho do rob, o RobotStudio possui uma ferramenta til (note que
o alcance do rob, bem como a carga mxima e outros dados fazem parte das especificaes
tipicamente disponibilizadas pelo fabricante).

Tendo por base a estao criada anteriormente (ver Figura 9) clique, no separador Layout, com o
boto direito do rato no rob (IRB1600_6_120__02) e selecione a opo Show Work Envelope,
resultando no ambiente de trabalho ilustrado na Figura 12. Desta forma fica bem patente quais os
pontos que o rob consegue alcanar.

Figura 12 Espao de trabalho do manipulador Figura 13 Espao de trabalho do manipulador


industrial em 2D. industrial em 3D.
Aps selecionada a opo Show Work Envelope, pode selecionar, no separador Work Envelope,
entre mostrar o espao de trabalho em 2D ou 3D, bem como escolher se quer ver o espao
alcanvel pelo punho (no tem em conta a ltima ligao do rob) ou pela ferramenta (caso no
tenha nenhuma ferramenta, corresponde ao elemento terminal).

Note que esta informao s por si no suficiente, pois o facto de o rob atingir um dado ponto
com uma determinada orientao no significa que o consiga com qualquer outra orientao. Assim,
se o rob ir conseguir ou no atingir uma determinada postura (posio mais orientao) ir
depender muito da orientao escolhida.

3.7 Adicionar Ferramentas Existentes


Esta seco detalha a adio de ferramentas ao manipulador. A ferramenta uma parte crucial de
um manipulador, sendo a sua escolha dependente da tarefa a executar. As ferramentas podem ser
desenvolvidas parte, no RobotStudio e/ou num programa de CAD (a ver num tutorial futuro), para
posteriormente serem importadas e adicionadas a um rob. Execute os seguintes passos:
1. Abra o ambiente de trabalho criado no ponto anterior, caso o tenha fechado;
2. Adicione uma ferramenta atravs da opo Home Import Library Equipment (a primeira
vez que acede a este menu pode demorar algum tempo) seguida da escolha da ferramenta
MyTool, tal como ilustrado na Figura 14;
3. Por omisso a ferramenta adicionada colocada na origem do ambiente de trabalho, i.e.,
na posio (X,Y,Z) = (0,0,0) com orientao (RX,RY,RZ)=(0,0,0), sendo necessrio adiciona-
la ao rob. Para tal, no separador Layout selecione a ferramenta adicionada, MyTool, e
arraste-a para o rob (no mesmo separador), tal como ilustrado na Figura 15. questo Do
you want to update the position of MyTool? responda Yes, de forma a garantir que a

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 11/45


ferramenta ser colocada no punho do rob na postura certa.

Figura 14 Escolha de uma ferramenta. Figura 15 Atribuio de uma ferramenta ao rob.


NOTA: Quando adiciona um manipulador ao ambiente de trabalho, o sistema de coordenadas que
considerado nos movimentos deste o do elemento terminal, visvel na ponta do manipulador.
Quando se adiciona uma ferramenta, o referencial utilizado passa a ser o da ferramenta. De facto
poder constatar que o espao de trabalho do rob (Work Envelop) aumentou com a adio da
ferramenta. Na prtica o que acontece que o referencial base da ferramenta feito coincidir com
o referencial do elemento terminal do rob, passando o sistema de coordenadas utilizado nos
movimentos do rob a ser o da (ponta da) ferramenta. Assim, quando criar posturas e caminhos, tal
deve ser efetuado considerando sempre a ferramenta, isto , no desenvolvimento de um
ambiente de trabalho, no deve criar posturas ou caminhos sem ter primeiro adicionado a
ferramenta que pretende ao rob.

3.8 Adicionar Objetos Existentes


Esta seco descreve como adicionar objetos previamente criados ao ambiente de trabalho.
Execute os seguintes passos:
1. Selecione a opo Home Import Geometry Browse for Geometry e escolha o objeto
Table_small.sat disponvel na pasta C:\Program Files (x86)\ABB Industrial IT\Robotics
IT\RobotStudio 6.04\ABB Library\Training Objects, resultando no ambiente ilustrado na
Figura 16;

Figura 16 Adio de um objeto ao Figura 17 Movimento livre. Figura 18 Mesa


ambiente. centrada.
2. Selecione o objeto adicionado, i.e., a mesa, e ative a opo de movimento manual clicando
em Home Move, tal como ilustra a Figura 17. Movimente a mesa para que esta fique em
frente ao rob, sensivelmente ao centro deste e dentro do espao de trabalho, tal como
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 12/45
ilustra a Figura 18);
NOTA: Preferencialmente dever utilizar um movimento especfico e no um movimento
manual. Para tal, clique na mesa com o boto direito do rato (no ambiente de trabalho ou no
separador Layout), e escolha a opo Position Set Position. Em coordenadas do mundo
(World) introduza as coordenadas (X,Y,Z) = (700, -375, 0) [mm]. Clique em Apply6 e confirme
que a mesa fica dentro do espao de trabalho do rob (Work Envelop);
3. Adicione um novo objeto atravs de Home Import Geometry Browse for Geometry e
da escolha do ficheiro C:\Program Files (x86)\ABB Industrial IT\Robotics IT\RobotStudio
6.04\ABB Library\Training Objects\Curve_thing.sat;
4. Altere o aspeto do objeto atravs dos seguintes passos:
a. Clique no objeto com o boto direito do rato;
b. Escolha a opo Modify Graphic Appearance;

Figura 19 Alterao do aspeto grfico do Figura 20 Aspeto grfico final do objeto.


objeto.
c. Em Selection escolha a opo Body (ver Figura 19) e altera na opo Simple Color
para laranja;
d. Repita a operao para a componente maior do objeto, com a cor castanha,
resultando no aspeto ilustrado na Figura 20.
e. Clique em OK para terminar.
5. Coloque este ltimo objeto em cima da mesa utilizando um
movimento baseado em dois pontos, origem e destino, como
detalhado nos seguintes passos:
f. Clique no objeto com o boto direito do rato;
g. Escolha a opo Position Place One point;
h. Ative a opo Snap End7, selecionando a mesma na Figura 21 Ativar a opo
barra inferior da janela do RobotStudio (ver Figura 21); Snap End.
i. Clique num dos campos das coordenadas do ponto de origem (Primary Point - From)
e depois clique num canto inferior do objeto. Depois clique num dos campos das
coordenadas do ponto destino (Primary Point - To) e clique um canto correspondente

6 Pode ainda aplicar uma operao de rotao seguindo passos similares com a opo de rotao/orientao.
7 Opes semelhantes s que encontra no AutoCAD ou outro qualquer software de desenho geomtrico.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 13/45
do tabuleiro da mesa, semelhana do ilustrado na Figura 22;

Figura 22 Movimento de um objeto usando dois pontos.


j. Clique em Apply resultando no ambiente ilustrado na Figura 23.
6. Rode o objeto clicando no mesmo com o boto direito do rato e selecionando a opo
Position Rotate. Altere o referencial de coordenadas para Local, selecione o eixo dos Zs
e um ngulo de rotao de -90 e aplique a rotao;
NOTA: Na opo Rotate poder rodar em torno de um eixo definido por si, ou em torno de um
eixo de coordenadas pr-definido, tal como aconteceu neste caso.

Figura 23 Objeto deslocado. Figura 24 Postura final do objeto.


7. Altere em Snap Mode para a opo Snap Object e centre o objeto atravs da opo de
mover baseado em dois pontos (como realizado anteriormente), mas utilizando como
referncia pontos intermdios da pea e da mesa. No final a pea dever estar centrada na
mesa, tal como mostra a Figura 24. Tire proveito do facto de poder apenas aplicar a
translao em eixos selecionados (opo Translate along these axes).
8. Guarde o trabalho.
O RobotStudio inclui no s um conjunto de objetos de interesse, mas tambm um conjunto de
ferramentas que poder utilizar, nomeadamente de soldadura, jato de gua, etc. Estes itens esto
disponveis na pasta indicada anteriormente e tambm atravs do menu Home Import Library
(embora aqui possam ter informao extra, no geomtrica, adicionada). Poder ainda clicar em
File Share Content Sharing para aceder a um conjunto de modelos (e vdeos) disponibilizados
pela comunidade e/ou para partilhar os contedos desenvolvidos por si.

3.9 Criar e Importar Novos Objetos


Os objetos que constituem o ambiente de trabalho podem ser desenvolvidos no prprio RobotStudio
ou numa aplicao externa e posteriormente importados. Estes objetos so denominados de
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 14/45
geometry no RobotStudio, dado que se tratam de figuras geomtricas. Quando a essas figuras
geomtricas esto associadas outras caractersticas e funcionalidades prprias do RobotStudio
(ferramentas, mecanismos, robs, etc.), passam a denominar-se library (biblioteca). Tipicamente
quando so importadas bibliotecas, estas mantm a sua ligao ao ficheiro externo, sendo apenas
criado um novo ficheiro se o utilizador pretender efetuar alteraes biblioteca.

Relativamente aos objetos compostos apenas por figuras geomtricas, o RobotStudio permite
importar um conjunto de formatos diferentes, nomeadamente sat, igs/iges, stp/step/p21, vda/vdafs,
model/exp, CATPart/CATProduct, prt/asm, ipt, wrl/vrml/vrml1/vrml2, jt, stl, ply, 3ds e dae (aceda
lista completa fazendo Home Import Geometry Browse for Geometry). Note no entanto que
alguns formatos podero necessitar de uma licena extra. Com a instalao do RobotStudio ainda
disponibilizada uma ferramenta que permite converter conjuntos de ficheiros do AutoCAD numa
nica operao, ferramenta essa denominada de CAD Converter.

Caso o estudante se sinta confortvel com um destes formatos pode desenvolver o seu ambiente
de trabalho na aplicao correspondente e import-la no RobotStudio. Caso contrrio pode
desenvolver o ambiente no prprio RobotStudio, embora com bastantes limitaes quando
comparado com aplicaes especficas de modelao e desenho 3D. Lembre-se que o RobotStudio
um software de simulao na rea da Robtica, no um software de desenho.

Os passos seguintes descrevem a utilizao bsica do RobotStudio para criar figuras geomtricas:
1. Abra a estao criada anteriormente, caso esteja fechada, e selecione a opo Modeling
Solid Box (ver Figura 25);
2. Como pode confirmar na Figura 26, na definio da posio e dimenso do paraleleppedo
tem a opo de escolher qual o referencial utilizado como base (por omisso no referencial
do mundo). Neste caso pretende-se adicionar um paraleleppedo com 600 mm de lado,
centrado na posio (0, 1100, 0) [mm] e orientado segundo os eixos de coordenadas. Dado
que a especificao da posio do paraleleppedo se baseia num dos vrtices deste, tem
que introduzir as coordenadas para o vrtice (-300, 800, 0) [mm] e orientao (0,0,0) para
manter o alinhamento com o referencial de base. Relativamente dimenso, se colocar
apenas o comprimento, o RobotStudio assume a mesma dimenso para todos os lados.

Corner
Point

Figura 25 Criar um paraleleppedo. Figura 26 Posies e dimenses na criao de


um paraleleppedo.
Como pode observar pelo resultado, ilustrado na Figura 27 (aps alterao da cor do material para
vermelho), foi adicionado um elemento no separador Modeling, denominado Part_1. Este objeto
(part) constitudo neste momento por um elemento apenas, denominado de Body.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 15/45


3. Adicione agora uma pirmide retangular com a mesma altura do paraleleppedo e mesmas
dimenses de base, tal como ilustrado na Figura 28 (utilize a opo Snap Object para facilitar
o posicionamento da pirmide). Fica assim com dois elementos: Part_1 e Part_2.

Figura 27 Estrutura de informao de objetos. Figura 28 Conjuno de mltiplos objetos.


4. Caso se pretenda que os dois objetos criados sejam um s, existem vrias alternativas. A
mais simples consiste em arrastar um dos elementos (Body) para o outro objeto, no
separador Modelling. Neste ficam apenas com um objeto formado por dois elementos
distintos. Cada um dos elementos pode ser selecionado de forma independente.
Experimente esta opo, desfazendo-a de seguida (undo) para voltar situao anterior;
5. Alternativamente pode fazer a unio dos dois objetos clicando em Modeling Union
seguido da seleo dos dois objetos. Esta operao resulta num objeto com um nico
elemento. Experimente realizar esta operao. A opo Keep Original permite guardar os
objetos originais.
Existe um conjunto de formas geomtricas que pode criar, bem como um conjunto de operaes
que pode efetuar, todas disponibilizadas a partir do menu Modeling. Estas figuras geomtricas e
operaes so em tudo idnticas s existentes em aplicaes de modelao 2D e 3D. Encontra
mais informao sobre as mesmas em RobotStudio Help Modeling Tab.

NOTA: Os nomes atribudos aos vrios elementos constituintes do ambiente de trabalho podem
facilmente ser editados clicando duas vezes com o boto esquerdo do rato nos mesmos, ou clicando
com o boto direito do rato seguido da opo Rename. Procure atribuir sempre nomes sugestivos
aos vrios elementos, permitindo assim uma mais fcil reutilizao, depurao e avaliao do
trabalho desenvolvido.

3.10 Modos de Visualizao


Por vezes alguns dos pormenores do ambiente de trabalho podero ser mais percetveis em
diferentes modos de visualizao. Em particular, poder recorrer ao modo wireframe (modelo de
arames), situao em que as superfcies sero transparentes e apenas visualizadas as arestas, tal
como exemplificado na Figura 29. Para aceder a esta visualizao, clique em Home Graphics
Tools Representation Wireframe. Caso queira dar um aspeto mais avanado em termos de
grficos, pode selecionar a opo Advanced Lighting no mesmo menu. No entanto tal no
aconselhado durante o desenvolvimento, pois implica um consumo mais elevado de recursos
computacionais por parte do RobotStudio.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 16/45


Figura 29 Modelo de Arames.

3.11 Movimentar o Rob e Criar Caminhos


Nesta seco ir aprender os modos bsicos para:
Movimentar o rob;
Criar posturas de trabalho (tipicamente denominados em ingls por Target Point ou
Geometry Points, GPs);
Criar um caminho a realizar pelo rob.
A forma mais simples de especificar um movimento/trajetria para um manipulador, ensinando-
lhe posturas de interesse, posturas essas que so depois unidas num movimento pr-configurado.
A estas posturas est associada uma configurao do rob, bem como um tipo de movimento entre
posturas (linear, circular ou de junta). Essas posturas so normalmente denominados em ingls por
targets, sendo o processo de as criar denominado Teach target. O caminho que une essas posturas
denomina-se em ingls de path.
Os passos que se seguem permitem de uma forma simples compreender a diferena entre um
movimento de junta e um movimento linear, sendo que, para este ltimo, necessrio que o
controlador atue sobre uma ou mais juntas em simultneo. Poder ainda observar os valores
mnimos e mximos de cada junta, os quais limitam o movimento do manipulador em si. Realize os
seguintes passos:
1. Abra o ambiente de trabalho criado anteriormente, caso ainda no esteja aberto;
Movimento de Juntas (manual)
2. Selecione movimento manual de juntas, clicando em Home
Freehand Jog Joint (ver Figura 30);
3. Neste modo, quando seleciona uma junta, esta fica marcada.
Experimente selecionar cada uma das seis juntas do rob e
moviment-las com o rato. Para testar as juntas mais prximas
do elemento terminal do rob, aconselha-se a que faa zoom
a essa zona; Figura 30 Movimento
manual de juntas.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 17/45


Movimento Linear (manual)
4. Selecione agora movimento manual linear, clicando em Home
Freehand Jog Linear (ver Figura 31);
5. Neste modo poder movimentar o rob sem que ocorram
alteraes da orientao do elemento terminal. Para tal
selecione e arraste um dos eixos. Poder confirmar que o
rob movimenta vrias juntas de modo a garantir um
movimento linear segundo o eixo e direo selecionados. Figura 31 Movimento
Note que, caso tenha selecionado uma das opes de Snap, manual linear.
o rob tentar ir para essas posies;
6. Desabilite a opo Jog Linear;
Controlo manual (numrico) de juntas
7. No separador Layout selecione o rob IRB1600_6_120__02
(ver Figura 32), aparecendo um novo menu de topo,
Mechanism Tools, correspondente seleo feita;
Figura 32 Selecionar o
8. Abra o separador de controlo e visualizao numrica das rob.
juntas clicando em Mechanism Tools Modify Mechanism Joint Jog. Surgir um novo
separador, ilustrado na Figura 33. Tambm poder aceder a esta funcionalidade, clicando
com o boto direito do rato no rob, no separador Layout, seguido da opo Mechanism
Joint Jog;
9. Neste separador poder controlar e visualizar o valor de cada
junta do rob. Poder arrastar os valores com o rato, clicar nas
setas ou, aps selecionar um dos valores de junta, escrever
um valor especfico atravs do teclado. Nesse separador
poder ainda monitorizar a configurao utilizada bem como
as coordenadas do Tool Center Point (TCP), i.e., as Figura 33 Controlo manual
coordenadas da ferramenta; (numrico) de juntas.
Controlo manual (numrico) linear
10. Poder da mesma forma ativar o controlo numrico linear, clicando em Mechanism Tools
Modify Mechanism Linear Jog;
11. No novo separador poder visualizar as coordenadas em posio (X, Y, Z) e orientao (RX,
RY e RZ) do elemento terminal de acordo com o referencial escolhido;
Movimento para a postura Home
12. O rob pode possuir um conjunto de posturas armazenadas,
sendo uma destas, includa por omisso, denominada Home.
Esta corresponde tipicamente postura do rob em que
todas as juntas esto na sua posio zero. Pode em qualquer
altura colocar o rob nesta postura clicando com o boto
direito do rato no rob no separador Layout, seguido da opo
Jump Home;
Figura 34 Adicionar uma
postura de trabalho.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 18/45


Criar posturas de trabalho (targets)
13. Existem vrias formas de criar posturas de trabalho. Uma delas consiste em colocar a
ferramenta do rob na postura pretendida, gravando de seguida essa postura. Para tal,
mantenha o rob na postura Home (ponto anterior) e selecione a opo Home Teach
Target (se surgir um aviso sobre o uso dos referenciais tool0
e wobj0, escolha a opo Yes), como mostra a Figura 34.
Note que esta postura foi adicionada considerando a tarefa,
Workobject e ferramenta definidos em Settings do separador
Home (ver Figura 35);
Figura 35 Adicionar uma
14. Mova o rob atuando na junta 1 e guarde a postura alcanada postura de trabalho.
executando de novo Home Teach Target;
15. Mova o rob utilizando um movimento linear ao longo do eixo
dos Zs negativo, seguido de um movimento linear horizontal ao
longo de X positivo. Guarde a nova postura alcanada atravs
da funo Teach Target e cancele a opo de mover o rob;
16. Escolha o separador Paths&Targets e expanda as propriedades
do rob de modo a visualizar as posturas criadas anteriormente,
tal como mostra a Figura 36. Confirme que foram criadas 3
posturas com os nomes por omisso: Target_10, Target_20 e Figura 36 Posturas de
Target_30. Note que pode selecionar uma ou mais posturas, trabalho criadas.
ficando estas evidenciadas no ambiente;
Criar um caminho
17. Adicione um novo caminho (vazio) ao rob executando Home
Path Empty Path (ver Figura 37). Por omisso o novo
caminho denomina-se Path_10;
Figura 37 Criar um caminho
18. Selecione as 3 posturas criadas anteriormente e arraste-as vazio.
para o caminho criado no ponto anterior, resultando num
conjunto de instrues tal como ilustra a Figura 38. Por
omisso o movimento a realizar entre as vrias posturas do
tipo linear, razo pela qual utilizada a funo MoveL
(futuramente sero dados mais detalhes sobre esta e outras
funes). Confirme que o caminho aparece no ecr (ver
Figura 40);
NOTA: O caminho que desenhado no ecr no corresponde
necessariamente trajetria que o rob ir descrever, pois tal
depende do tipo de movimentos escolhidos e respetivos parmetros.
19. Selecione as 3 instrues adicionadas ao caminho, clique Figura 38 Posturas de
com o boto direito do rato nessa seleo e escolha a opo trabalho criadas.
Edit Instruction. Altere o tipo de movimento de Linear (linear)
para Joint (junta) na opo Motion Type, resultando assim no
contedo ilustrado na Figura 39;
20. Clique em Simulation Monitor, ative a opo Enable TCP
trace, altere a cor Trace color para laranja e clique em OK.
Desta forma ficar marcada a posio por onde o rob passar Figura 39 Caminho com
movimento de juntas.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 19/45
sempre que executar uma trajetria programada;
21. No separador Layout, clique com o boto direito do rato na postura Target_10 e escolha a
opo Jump To Target;

Figura 40 Caminho criado. Figura 41 Caminho executado.


22. Clique com o boto direito do rato no caminho criado (Path_10) e escolha a opo Move
Along Path. O caminho gerado ser carregado para o controlador virtual e executado pelo
rob. Dever visualizar no ambiente a execuo do caminho criado, ficando marcado a
laranja o caminho efetivamente realizado pela ponta de ferramenta. Como pode confirmar,
o caminho no corresponde s linhas retas entre as vrias posturas (mais frente voltar a
abordar esta questo);
NOTA: No final da execuo do movimento anterior ir surgir o erro Program pointer has been reset
na janela de Output do RobotStudio. Esse erro esperado e resulta do facto de, para testar o
caminho, ter sido criado e carregado um programa temporrio para o controlador do rob. Como no
final o programa desaparece, o apontador de programa perdido. Tal no dever acontecer quando
tiver a realizar uma simulao completa, como ver nos tutoriais futuros.
23. Para terminar guarde o ambiente desenvolvido, de preferncia utilizando a opo Pack &
Go.
Note-se que as vrias posturas criadas podem ser reutilizadas em mltiplos caminhos, pelo que
deve dar-lhes nomes relevantes para facilitar a identificao de cada uma. Para tal basta clicar duas
vezes no nome da postura cujo nome pretende alterar.
muito importante que tenha percebido a diferena entre um movimento de junta e um movimento
linear. Enquanto num movimento linear a ferramenta realiza uma linha reta entre o ponto anterior e
o ponto objetivo, na realizao de um movimento de junta no h qualquer garantia quanto ao trajeto
realizado pelo rob, apenas que ir comear e terminar nas posturas especificadas. Tal significa
que no devem ser utilizados movimentos de junta quando se realizam operaes sensveis, tais
como levantar e colocar objetos, ou em aproximaes a objetos, pois poder haver o risco de
colises. Por outro lado, a utilizao de movimentos lineares deve ser evitada sempre que possvel,
pois alm do custo computacional mais elevado para o clculo do movimento a realizar por parte
do controlador do rob, h tipicamente um custo energtico e um tempo de execuo superior
quando comparado com o movimento de junta para as mesmas duas posturas de origem e destino.
Num movimento de junta o rob escolhe o caminho mais rpido entre a postura de partida e postura
de chegada.

4 Criar um Workobject
Tal como detalhado na ajuda do RobotStudio, na seco How to program robots, item
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 20/45
Workobjects, um Workobject consiste num referencial de coordenadas que utilizado como
origem na criao de um conjunto de posturas/caminhos tipicamente associados a um objeto, rea
de trabalho e operao especficos. Considere que criou um caminho ao longo das arestas de um
dado objeto e que esse caminho tem por base um Workobject. Caso pretenda processar a pea
numa postura diferente, tudo o que ter que fazer ser reajustar o Workobject. Caso no tivesse
usado um Workobject nessa situao, seria necessrio refazer todo o caminho e criar novamente
todas as posturas associadas. fundamental a utilizao de Workobjects para cada operao,
devendo sempre comear qualquer tarefa pela criao destes.
Outro conceito importante reside na escolha da configurao com que cada postura atingida num
dado caminho. Embora tipicamente um manipulador, em particular um com seis juntas, seja capaz
de atingir a mesma postura com vrias configuraes distintas (valores diferentes de juntas), a
escolha das configuraes crucial para a execuo do caminho com sucesso. Ao longo desta
seco ficar mais familiarizado com este conceito.
Realize os seguintes passos:
1. Abra o ambiente de trabalho gerado no tutorial anterior;
2. Selecione a pea em cima da mesa e centre-a no
separador de visualizao, clicando na mesma com o
boto direito do rato e escolhendo a opo View Center.
Faa zoom pea, resultando numa visualizao
semelhante da Figura 42;
3. Ative a opo Snap End ou Snap Object;
Figura 42 Visualizao da pea.
4. Clique em Home Other Create Workobject;
5. Modifique o nome do Workobject de Workobject_1 para MyWorkobject (procure sempre que
estes nomes sejam sugestivos);

Figura 43 Seleo dos pontos para criar um Workobject.


6. Na componente User Frame clique em Frame by points, selecione a opo Three-point e
escolha os trs pontos que definem o referencial associado ao plano de trabalho
(Workobject), tal como ilustra a Figura 43. O primeiro ponto corresponde origem do
Workobject, o segundo um ponto ao longo do eixo X (positivo) e o terceiro um ponto ao
longo do eixo Y (positivo);

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 21/45


7. Clique em Create, terminado assim a criao do Workobject.
No final o referencial associado ao Workobject ficar visvel, tal
como ilustrado na Figura 44. Poder inclusive seleciona-lo no
separador Paths&Targets de modo a ficar mais visvel. Note
ainda que na seco Settings do menu Home passou a estar
selecionado o Workobject agora criado; Figura 44 Workobject.

5 Criar um Caminho com Base nos Vrtices de um Objeto


Anteriormente aprendeu a criar posturas e a gerar um caminho com base nestas. Na prtica
interessa que as posturas criadas tenham alguma relao com a tarefa a desenvolver, tipicamente
associadas a objetos a trabalhar. Esta seco mostra como pode criar um caminho com base nos
vrtices de um dado objeto. De salientar que as posturas geradas estaro associadas ao Workobject
criado na seco anterior. Com o ambiente anterior aberto, execute os seguintes passos:
1. Selecione a opo Home Target Create Target de modo a poder criar vrias posturas;
2. Escolha quatro pontos nos vrtices da pea clicando nos mesmos (no sentido dos ponteiros
do relgio e comeando pelo vrtice na origem do Workobject), tal como ilustra a Figura 45
(dever ter a opo Snap Object ativada). Note que as posturas so automaticamente
adicionadas lista esquerda. Confirme que o Workobject selecionado o MyWorkobject,
que a ferramenta selecionada a ferramenta MyTool e clique em Create para terminar a
adio das posturas, resultando na Figura 46;
NOTA: Quando as posturas no so adicionadas usando a opo Teach target estas no incluem
a configurao do rob, razo pela qual ficam com um ponto de exclamao associado na lista de
posturas. Tal significa que no h ainda confirmao que a postura de facto alcanvel pelo rob,
algo que ser determinado nos passos seguintes.

Figura 45 Criao de posturas num objeto. Figura 46 Posturas criadas num objeto.
3. De modo a facilitar a perceo das posturas definidas possvel visualizar a ferramenta do
rob nestas. Para tal selecione todas as posturas do Workobject criado e ative a opo
Target Tools Modify View tool at target MyTool, resultando na informao disponvel
na Figura 47.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 22/45


Figura 47 Visualizao da ferramenta nas posturas criadas.

Figura 48 Posturas aps primeira rotao. Figura 49 Posturas aps segunda rotao.
4. Tal como a Figura 47 mostra, as posturas escolhidas no so as ideais, pelo que tm de ser
alteradas. Para tal, mantendo todas as posturas selecionadas, clique em Target Tools
Modify Rotate. Com o referencial local selecionado, selecione o eixo de rotao X e rode
180, obtendo o resultado ilustrado na Figura 48. Selecione agora o eixo de rotao Z e rode
novamente 180, obtendo o resultado ilustrado na Figura 49;

Figura 50 Escolha da configurao.


5. Selecione a primeira postura do Workobject e clique em Target Tools Modify Jump To
Target8. Ir surgir uma janela para escolher a configurao desejada. Experimente as vrias
configuraes disponveis, escolha no final a primeira e faa Apply (no feche a janela das
configuraes). Na Figura 50 encontra o resultado esperado aps a escolha da configurao
(0,-1,0,0);

8Poder tambm aceder opo Jump To Target clicando com o boto direito do rato na postura. Um nmero
razovel das opes disponveis nos menus est tambm disponvel por esta via.
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 23/45
6. Ative a opo Target Tools Modify View Robot at Target de modo a visualizar o rob
na postura selecionada. Selecione uma postura de cada vez das 4 criadas para o Workobject
e escolha a configurao desejada, de preferncia a mesma que na postura anterior ou
prxima desta. Aps configurar todas as posturas feche a janela das configuraes e cancele
a opo View Robot at Target. Note que medida que configura as posturas estas deixam
de ter um ponto de exclamao associado, indicando que a postura foi verificada e
alcanvel pelo rob;
7. Crie um novo caminho vazio e adicione estas 4 posturas a esse caminho, arrastando-as
para l;
8. Teste a execuo do caminho, selecionando o mesmo e clicando em Path Tools Modify
Move Along Path, obtendo a trajetria indicada na Figura 51;
9. Como pode verificar pelo resultado obtido, o rob no executa os movimentos sempre em
linha reta entre posturas consecutivas, embora o resultado seja bastante mais prximo do
que o esperado, comparativamente utilizao de movimentos de juntas (MoveJ). Tal deve-
se aos parmetros utilizados para o movimento. Como no efetuou qualquer alterao a
estes parmetros, este ter sido definido com as caractersticas indicadas na barra inferior
da janela do RobotStudio, nomeadamente movimentos lineares (MoveL) com velocidade de
1000 mm/s (v1000), aproximao de 100 mm (z100), a ferramenta MyTool e o Workobject
MyWorkobject (pode confirmar estes parmetros colocando o ponteiro do rato por cima de
cada instruo de movimento). Neste caso em concreto, como definiu uma aproximao de
100 mm, assim que o rob estiver a menos de 100 mm da prxima postura, este avana
para o movimento seguinte;

Figura 51 Caminho executado com erro. Figura 52 Caminho executado com preciso.
10. Para a trajetria a realizar, tem duas hipteses: poder apagar as instrues, alterar as
opes na barra inferior da janela do RobotStudio e voltar a adiciona-las; alternativamente
pode selecionar todos os movimentos no separador Paths&Targets e, clicando com o boto
direito do rato, escolher a opo Edit Instruction. Na janela que aparece altere a opo zone
de z100 para fine, a preciso mxima do rob. Clique em Apply e feche a janela;
11. Aceda novamente opo Simulation Monitor e clique na opo Clear Trace para apagar
o traado anterior e altere a cor para magenta para ser mais visvel;
12. Corra novamente o caminho criado e verifique que a trajetria realizada pela ferramenta a
apresentada na Figura 52. Verifique ainda que agora o rob para nos cantos da pea por
breves instantes, algo que no acontecia no movimento anterior;
13. Grave o ambiente criado.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 24/45


Mas qual o significado do parmetro zone?
Como poder confirmar na ajuda RAPID Instructions, Functions and Data types Data types
zonedata Zone data, o parmetro zone do tipo zonedata. Quando esse parmetro fine, o rob
executa a trajetria com a preciso mxima e tipicamente esse ponto passa a ser um ponto de
paragem. Quando esse parmetro toma um dos valores indicados na Tabela 1, o movimento do
rob passa a ser um movimento aproximado, em funo do valor escolhido, semelhana do
exemplo ilustrado na Figura 53.
Path zone
Name TCP path Orientation Ext. axis
z0 0.3 mm 0.3 mm 0.3 mm
z1 1 mm 1 mm 1 mm
z5 5 mm 8 mm 8 mm
z10 10 mm 15 mm 15 mm
z15 15 mm 23 mm 23 mm
z20 20 mm 30 mm 30 mm
z30 30 mm 45 mm 45 mm
z40 40 mm 60 mm 60 mm
z50 50 mm 75 mm 75 mm
z60 60 mm 90 mm 90 mm
z80 80 mm 120 mm 120 mm
z100 100 mm 150 mm 150 mm
z150 150 mm 225 mm 225 mm
z200 200 mm 300 mm 300 mm

Tabela 1 Dados de aproximao pr- Figura 53 Execuo de um caminho.


definidos
Mas qual o significado dos valores utilizados para a escolha de uma dada configurao?
Tal como descreve a seco de ajuda RobotStudio Help Introduction to RobotStudio Terms
and concepts Robot axis configurations, uma dada configurao definida com 4 valores inteiros,
cujos significados dependem do tipo de rob. No caso dos robs com 6 juntas em srie, os trs
primeiros nmero significam: um nmero maior ou igual a zero corresponde a um movimento no
quadrante positivo correspondente (a comear em 0 para o primeiro quadrante); um nmero
negativo corresponde a um movimento no quadrante negativo correspondente (a comear em -1).
O quarto elemento indica qual das 8 possveis posies do punho para trs casos particulares do
rob (singularidades). No caso de juntas prismticas o nmero inteiro indica o deslocamento em
metros da junta (arredondado para baixo). Apenas se incluem na configurao as juntas que o
fabricante considera relevantes para distinguir entre as vrias configuraes possveis para atingir
a postura final do rob, podendo variar entre robs. A ttulo de exemplo, considere o valor [0 -1 2 1]
para um rob IRB 140:
O primeiro valor, 0, diz respeito primeira junta (base), indicando um ngulo entre 0 e 90
(1 quadrante positivo);
O segundo valor, -1, corresponde a um ngulo para a quarta junta entre 0 e -90 (1
quadrante negativo);
O terceiro valor, 2, corresponde a um ngulo para a sexta
junta entre 180 e 270 (3 quadrante positivo);
O quarto valor, 1, indica que o punho estaria numa posio
idntica da Figura 54;
Aceda ao Mechanism Joint Jog do rob, varie as juntas 1, 4 e 6 e
confirme que a configurao a esperada. Para mais informaes
sobre estes parmetros, consulte a ajuda em RAPID Instructions,
Functions and Data types Data types confdata Robot Figura 54 Exemplo de
configurao
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 25/45
configuration data.
Conclui-se que a escolha das configuraes a utilizar pode no ser trivial, dado que podem existir
duas posturas consecutivas com configuraes diferentes, as quais podem ser incompatveis, em
particular se o rob estiver a realizar um movimento linear entre ambas. Uma forma de minimizar
estes problemas utilizar a configurao automtica. Essa opo est disponvel em Path Tools
Modify Auto Configuration e ser descrita na seco seguinte. Note, no entanto, que mesmo
utilizando a configurao automtica poder no ser possvel gerar um caminho entre todos os
pontos definidos. Note tambm que o facto de o rob no conseguir realizar a configurao
automtica, no significa que no seja possvel realizar o caminho escolhendo outras configuraes.
Esses casos podero ser resolvidos alterando as configuraes manualmente ou alterando as
posturas, quer individualmente, quer alterando o objeto (e respetivo Workobject)
movendo/orientando este para um local mais acessvel por parte do manipulador ou que no
implique alterao de configuraes.

6 Criar Caminhos ao Longo das Arestas de um Objeto


Criar caminhos com base nos vrtices de um objeto permite realizar tarefas com base na geometria
destes. No entanto, para objetos com geometrias mais complexas, existem alternativas mais
prticas de criar esses caminhos. Os passos seguintes ilustram esse processo:
1. Abra o ambiente final criado na alnea anterior, caso o tenha fechado, e esconda os
caminhos previamente criados, Path_10 e Path_20 (estes no sero utilizados nos passos
que se seguem), bem como o cubo e a pirmide. Para tal clique nos mesmos com o boto
direito do rato e desative a opo View Visible, resultando no ambiente ilustrado na Figura
55;
2. Modifique a vista de forma ficar idntica da Figura 55 e ative a opo Surface Selection,
como mostra a Figura 56;

Figura 55 Adio de um objeto. Figura 56 Seleo de superfcies.


3. Selecione a opo Modeling Border around Surface;
4. Selecione a superfcie da pea, tal como ilustra a Figura 57, e clique em Create seguido de
Close, criando assim uma curva ao longo do bordo da superfcie selecionada, como ilustra
a Figura 58;
5. Ative a opo Curve Selection (ver a Figura 59) e selecione a curva criada no ponto anterior;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 26/45


Figura 57 Modo de seleo de superfcie. Figura 58 Curva criada ao longo da aresta.

Figura 59 Seleo da fronteira de uma superfcie Figura 60 Gerao de um caminho ao longo do


bordo de uma superfcie.
6. Com a curva selecionada clique agora em Home Path AutoPath, resultando no
separador exibido na Figura 60. Faa as seguintes alteraes:
a. Para o campo Reference Surface selecione a superfcie superior da pea (a mesma
utilizada no ponto 4);
b. Altere o campo Tolerance (desvio mximo permitido do caminho relativamente
curva) para 1 mm, verificando que o nmero de pontos gerados aumenta com a
diminuio deste valor;
c. Altere o campo Approximation Parameters para Circular (para permitir movimentos
circulares no caminho gerado e no apenas movimentos lineares). Verifique que ao
alterar esta opo diminui consideravelmente o nmero de pontos nas zonas curvas
do caminho;

Figura 61 Caminho gerado ao longo do bordo da Figura 62 Visualizao da ferramenta numa


superfcie. postura.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 27/45


d. Clique em Create resultando em 10 posturas criadas e um caminho, tal como mostra
a Figura 61;
7. Selecione a primeira postura guardada e ative a opo Target Tools Modify View Tool
at Target MyTool, de modo a vizualisar a postura da ferramenta (Figura 62);
8. Selecione todas as posturas guardadas, visualizando assim a ferramenta em todas as
posturas geradas (Figura 63);
9. Para permitir que o rob realize o caminho pretendido de forma suave e minimizando
problemas na realizao da trajetria devemos garantir uma maior compatibilidade entre
posturas consecutivas. Um primeiro passo a reorientao das mesmas. Para tal selecione
a primeira postura e clique em Target Tools Modify Rotate, surgindo o separador visvel
na Figura 64;

Figura 63 Visualizao da ferramenta em todas Figura 64 Rotao da postura.


as posturas guardadas.
10. Selecione o eixo dos Zs como eixo de rotao e aplique uma rotao de -90 no referencial
local, resultando na postura indicada na Figura 65;
11. Selecione agora todas as posturas exceto a primeira e clique em Target Tools Modify
Align Target Orientation surgindo o separador visvel na Figura 66;

Figura 65 Postura aps rotao. Figura 66 Alinhar a orientao de um conjunto de


posturas.
12. Selecione para o campo Reference a primeira postura e escolha alinhar todas as posturas
com a primeira segundo o eixo do X (Align Axis) mantendo o eixo dos Z inalterado (Lock
Axis). Clique em Apply e selecione novamente todas as posturas para confirmar que obteve
o resultado ilustrado na Figura 67;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 28/45


Figura 67 Posturas aps alinhamento de Figura 68 Sequncia de movimentos para
orientao. executar o caminho.
13. Como pode confirmar observando a lista de posturas, estas apresentam um sinal de aviso.
Se colocar (sem clicar) o rato por cima da postura poder constatar que o aviso se deve ao
facto de ainda no ter sido escolhida qualquer configurao para as vrias posturas. Para
faze-lo rapidamente e de forma automtica, selecione o caminho criado e clique em Path
Tools Modify Auto Configuration. Ser-lhe- solicitado para escolher a configurao da
primeira postura, devendo tipicamente escolher aquela que lhe parea mais prxima de
todas as possveis configuraes ao longo do caminho, neste caso (0,-1,0,0). No final poder
confirmar na janela de mensagens (Output) que a configurao automtica do caminho foi
bem-sucedida;
14. No separador Paths&Targets pode visualizar a sequncia de instrues de cdigo RAPID
que permite executar o caminho gerado (ver Figura 68), nomeadamente instrues MoveL
para movimentos lineares e MoveC para movimentos circulares, as quais sero estudadas
em mais detalhe posteriormente;
15. Para terminar confirme que o rob consegue executar o caminho com sucesso. Para tal
dever selecionar o caminho e clicar em Path Tools Modify Move Along Path. Dever
ver o rob a executar o caminho gerado (note que poder demorar alguns segundos at que
o rob inicie a execuo do caminho);
16. Experimente ainda alterar a aproximao para z0 e/ou fine, e repetir a execuo do caminho
para observar mais uma vez o impacto dessa opo.

7 Alterao da Localizao do Espao de Trabalho Aps a Criao


das Posturas e/ou do Caminho
Pode ocorrer que seja necessrio alterar o local onde uma dada pea operada pelo rob, j depois
de ter gerado todos os caminhos com base na geometria da pea. Um exemplo tpico dessa
necessidade, quando o projeto feito no ambiente de simulao, mas depois na prtica existem
algumas variaes face ao projeto. Neste caso a utilizao de um Workobject garante que se pode
proceder a essa alterao com um esforo mnimo. Os passos seguintes ilustram essa situao
para o ambiente de trabalho desenvolvido na seco anterior:
1. Comece por movimentar a pea para o canto da mesa, resultando no ambiente de trabalho
ilustrado na Figura 69. Como pode observar, a movimentao da pea no teve qualquer
impacto no caminho previamente gerado, pelo que necessrio corrigir o caminho;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 29/45


Figura 69 Alterao da posio do objeto de
Figura 70 Seleo do Workobject.
trabalho.
2. Dado que o caminho foi gerado tendo por base o Workobject definido previamente, para que
o caminho fique correto basta atualizar o Workobject. Para tal selecione o Workobject
utilizado para definir as posturas (ver Figura 70) e clique em Workobject Tools Modify
Modify Workobject. Na janela de definies que surge, semelhana do que aconteceu
aquando da criao deste, altere as propriedades do User Frame procedendo da mesma
forma de quando criou o Workobject (ver Figura 43). Clique em Apply, sendo todo o caminho
corrigido e de novo coincidente com o bordo utilizado anteriormente, tal como mostra a
Figura 71;
3. Observando a lista de posturas e caminhos criados (ver Figura 72) conclui-se que se perdeu
a configurao efetuada anteriormente. Tal de esperar, dado que as posturas foram todas
alteradas, pelo que necessrio reconfigurar todas as posturas;
4. Para reconfigurar o caminho execute novamente a autoconfigurao. Execute no final a
funo Move Along Path para o caminho gerado de modo a confirmar a correta configurao
do mesmo;
5. Guarde o trabalho.

Figura 71 Alterao do Workobject. Figura 72 Caminho desconfigurado.


Nesta seco teve oportunidade de confirmar as vantagens associadas utilizao de Workobjects
associados aos objetos ou espaos de trabalho. Caso no tivesse utilizado um Workobject nesta
situao, teria que ter criado novamente todos os pontos um a um e gerado o caminho novamente,
o que seria um processo mais moroso face atualizao do Workobject, mesmo num caso simples
como este.

8 Adicionar Sinais ao Rob


A interao entre robs e/ou autmatos normalmente baseada em mdulos bastante conhecidos

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 30/45


e utilizados (DeviceNet, EtherCat, Ethernet/IP, etc.). No entanto a interao com os sensores e
atuadores tipicamente bastante mais simples, funcionando atravs de sinais analgicos e/ou
digitais (naturalmente que tambm possvel que a interao com os autmatos seja feita com
recurso a entradas/sadas digitais e/ou analgicas). Qualquer manipulador industrial pode estar
equipado com um conjunto de entradas/sadas digitais e/ou analgicas. Os sinais so tipicamente
utilizados para medir valores de sensores e acionar atuadores (ou pr-acionadores), semelhana
do que acontece com os autmatos. A leitura dos sensores permite tomar decises, alterando assim
os atuadores que so acionados. Os sinais podem ainda ser utilizados para coordenao simples
entre mltiplos robs, embora haja outras formas mais avanadas de o fazer, como o caso da
opo MultiMove da ABB. No entanto este tipo de abordagem mais avanada no est disponvel
para coordenar robs de diferentes fabricantes.
Esta seco descreve os passos necessrios para adicionar sinais a um rob. Tal poderia facilmente
expandir-se para qualquer outro tipo de utilizao de sinais digitais. Note, no entanto, que este
exemplo em particular no tem por base nenhum caso especfico, mas somente exemplificar a
utilizao de sinais.
Considere-se um rob que apenas arranca quando uma determinada entrada ficar com o nvel alto,
e que ativa uma sada quando terminar o movimento. Assim, necessrio adicionar esses sinais
ao rob, dado que por omisso este no vem configurado com qualquer sada ou entrada no
ambiente de simulao.
1. Abra o ambiente de trabalho criado anteriormente, caso o tenha fechado, selecione o rob
no separador Layout e clique na opo Controller Configuration Editor I/O;
2. necessrio adicionar os sinais a utilizar no rob, neste caso a sada digital
doOperationEnded e a entrada digital diStartOperation. Para adicionar um sinal, com o
painel de configurao do sistema I/O, clique no tipo Signal com o boto direito do rato e
selecione a opo New Signal. Atribua um nome ao sinal (Name), escolha o tipo de sinal
pretendido (Type of Signal), deixe a opo Assigned to Device livre (dado que um sinal do
controlador virtual), atribua uma descrio em Signal Identification Label e altere o Access
Level para All. A alterao do tipo de acesso sobretudo relevante para as sadas, pois caso
contrrio no poderamos forar o valor das sadas manualmente a partir do simulador. Na
Figura 74 encontra um exemplo para o sinal doOperationEnded (para mais informaes
sobre os vrios parmetros consulte RobotStudio Help Controller Tab Configuration
Editor);

Figura 73 Adicionar um sinal. Figura 74 Configurao de um sinal virtual.


3. Na janela Configuration I/O System selecione o tipo Signal e confirme que os sinais esto
corretamente adicionados. Caso no estejam, poder clicar com o boto direito do rato,
selecionar a opo Edit Signal(s) e proceder s alteraes pretendidas. Nesta visualizao

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 31/45


pode tambm adicionar novos sinais atravs do boto direito do rato e da opo New
Signal;

Figura 75 Sinais adicionados.


4. Feche o separador de configurao das entradas/sadas, clique com o boto direito do rato
no rob (no separador Controller), escolha a opo Restart Restart (Warmstart) e clique
em OK para reiniciar o controlador e aplicar as alteraes efetuadas;
NOTA: No menu Restart tem vrias opes, as quais so detalhadas em RobotStudio Help
Controller tab Features for both virtual and controllers. Tipicamente dever utilizar a opo Restart
(Warmstart), apenas disponvel para controladores virtuais, pois permite reiniciar o controlador
carregando novas configuraes do mesmo. Caso tenha algum problema com o controlador, esta
a opo a usar.
5. Faa uma cpia de segurana dos parmetros do rob atravs da opo Controller Save
Parameters (opo junto a Configuration Editor). Caso queira usar a configurao criada
num outro rob ou simulao poder carregar estes parmetros, cujos ficheiros tm a
extenso *.cfg;

9 Programao Grfica do Rob e Simulao


Para melhor exemplificar a utilizao de sinais, ir
utilizar-se dois robs coordenados por
entradas/sadas. De modo a acelerar o
desenvolvimento deste tutorial, est disponvel no
Moodle uma estao de trabalho do RobotStudio j
preparada. Relativamente ao que se fez acima, foi
adicionado um rob semelhante com as mesmas
entradas e sadas, bem como os movimentos
necessrios para cada rob, semelhantes aos
movimentos criados anteriormente.
Colocados todos os elementos no ambiente de Figura 76 Ambiente fornecido com dois
trabalho, interessa agora programar os robs para robs.
executar a tarefa em questo. A programao do
rob e a configurao da simulao pode ser puramente grfica, ou pode incluir edio de cdigo.
Nesta seco descreve-se o mtodo puramente grfico, enquanto na seco seguinte se aborda a
utilizao/edio direta de cdigo.
1. Abra o ambiente de trabalho indicado acima;
NOTA: No RobotStudio o separador Paths&Targets do ambiente de trabalho diz respeito edio
do ambiente mas no necessariamente informao que est armazenada no controlador do rob.
Assim, para que esta informao esteja disponvel no controlador virtual do rob, necessrio
carregar essa informao para o controlador. Caso se utilizasse um rob real teria que se proceder
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 32/45
da mesma forma, mas nesse caso a sincronizao seria feita para o controlador real em vez de ser
feita para o controlador virtual.
2. No separador Paths&Targets clique com o boto direito do rato no controlador
IRB1600_6kg_1.2m_1 seguido de Synchronize to RAPID, surgindo a janela da Figura 77.
Mantenha todos os mdulos selecionados para que sejam todos sincronizados e clique em
OK. Repita a mesma operao para o controlador IRB1600_6kg_1.2m;

Figura 77 Sincronizao para o Controlador Figura 78 Configurao da simulao.


Virtual.
NOTA: A sincronizao tanto pode ser feita do ambiente de trabalho para o controlador virtual, como
pode ser feita tambm no sentido contrrio. Em qualquer dos casos pode escolher sincronizar
apenas uma parte da informao. Alis, aconselhvel que escolha apenas a informao
indispensvel a sincronizar (neste caso foi a primeira sincronizao, da terem sido escolhidos todos
os componentes). Dever ter cuidado com esta operao, em particular quando editar o cdigo
diretamente, pois a mesma substitui os programas no controlador virtual ou no ambiente de trabalho,
dependendo do sentido da sincronizao.
3. Concluda a sincronizao com o controlador virtual, clique em Simulation Simulation
Setup, surgindo a janela da Figura 78;
4. Selecione a tarefa T_ROB1 para o controlador IRB1600_6kg_1.2m e, na opo Entry point,
escolha o caminho Path_Part_surf, tal como mostra a Figura 79. Repita o procedimento para
a tarefa T_ROB1 do controlador IRB1600_6kg_1.2m_1. Com estas configuraes est a
definir qual a funo com que cada controlador deve arrancar, isto , qual a funo de base
que este ir correr;

Figura 79 Especificao do caminho a executar. Figura 80 Configurao do modo de simulao.


5. Ainda nesta janela, selecione o controlador IRB1600_6kg_1.2m_1 (nesta altura as opes
Continuous e Single Cycle ficam disponveis, tal como mostra a Figura 80). Se selecionar
Continuous os caminhos especificados sero realizados de forma cclica, continuamente.
Se selecionar Single Cycle os caminhos sero executados apenas uma vez. Mantenha
selecionada a opo Single Cycle em cada controlador e clique em Close;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 33/45


6. Clique em Simulation Play e confirme que os robs executam os caminhos especificados;
Neste momento tem uma simulao completa a correr, com ambos os robs a executar caminhos
semelhantes, sendo que o IRB1600_6kg_1.2m_1 executa os movimentos a metade da velocidade
do rob IRB1600_6kg_1.2m. No entanto, como pode observar, no se verifica qualquer
coordenao entre os robs, havendo mesmo coliso entre estes. Para tal necessrio incluir na
programao do rob instrues para ler as suas entradas e atuar nas suas sadas. Os passos
seguintes iro garantir que um rob no realiza a aproximao pea enquanto o outro rob no
terminar a sua operao.
7. Com a opo IRB_1600_6kg_1.2m T_ROB1 selecionada em Home Settings, clique com
o boto direito do rato na primeira instruo do caminho Path_Part_surf do rob
IRB1600_6kg_1.2m e escolha a opo Insert Action Instruction. No separador Create
Action Instruction utilize as opes indicadas na Figura 81 e clique em Create. Desta forma
adiciona a instruo WaitDI da linguagem RAPID, a qual permite esperar que uma sada
digital atinja um determinado valor. Neste caso especificou-se a entrada diStartOperation
com o valor 1;

Figura 81 Instruo WaitDI. Figura 82 Instruo SetDO.


8. Repita o processo para adicionar uma instruo a seguir ltima instruo do caminho com
os dados indicados na Figura 82. A instruo SetDO com o parmetro doOperationEnded e
valor 1 ser utilizada para sinalizar que a operao terminou;
9. Repita o processo para adicionar no final do caminho, a instruo WaitDI com o valor 0 para
a entrada diStartOperation e, aps a instruo WaitDI diStartOperation 1, a instruo SetDO
com a sada doOperationEnded e o valor 0. No final dever ter um caminho idntico ao
ilustrado na Figura 83;
10. Repita o processo para o segundo rob, resultando no caminho ilustrado na Figura 84;
11. Dado que foram efetuadas alteraes ao caminho necessrio voltar a sincronizar este com
o controlador virtual. Para tal, para o controlador IRB1600_6kg_1.2m, clique com o boto
direito do rato em cima do caminho Path_Part_surf e escolha a opo Synchronize to
RAPID, surgindo a janela da Figura 85. Clique OK para terminar a sincronizao. Note
que ao iniciar a sincronizao clicando diretamente num caminho especfico,
automaticamente selecionado apenas esse caminho para sincronizao;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 34/45


Figura 83 Caminho final do Figura 84 Caminho final do
IRB1600_6kg_1.2m. IRB1600_6kg_1.2m_1.

Figura 85 Sincronizao do caminho Path_Part_surf.


12. Repita o procedimento de sincronizao para o IRB1600_6kg_1.2m_1;
13. Corra novamente a simulao clicando em Simulation Play e Confirme que nada
acontece. Nada acontece porque ambos os robs esto espera que uma entrada seja
ativada, o que no est a ser feito neste momento. Clique em Simulation Stop para parar
a simulao;
14. Clique em Simulation I/O Simulator para aceder ao painel de entradas/sadas do
controlador, tal como mostra a Figura 86;

Figura 86 Simulador de entradas/sadas. Figura 87 Listas de sinais do utilizador.


15. Para o sistema IRB1600_6kg_1.2m escolha a opo User List em Filter e clique em Edit
Lists, surgindo uma janela idntica da Figura 87. Clique em New List, atribua um nome
(por exemplo, User) e adicione os sinais diStartOperation e doOperationEnded, tal como

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 35/45


mostra a Figura 88. Clique em OK e repita o procedimento para o sistema
IRB1600_6kg_1.2m_1. No final dever visualizar direta os sinais adicionados, tal mostra
a Figura 89;

Figura 88 Lista final de sinais do utilizador. Figura 89 Simulador de E/S com lista de utilizador.
16. Inicie novamente a simulao (Simulation Play) e force a entrada diStartOperation a 1
para o sistema IRB_1600_6kg_1.2m. Verifique que o rob executa a trajetria e ativa a sada
diOperationEnded no final. Repita as operaes para o outro rob e verifique o mesmo
comportamento;
17. Embora j seja possvel controlar a operao de ambos os robs, estes no executam ainda
as operaes de forma coordenada, pois falta ainda interligar os robs. Clique em Simulation
Station Logic, resultando na janela da Figura 90. Esta janela permite definir a lgica de
funcionamento de alto nvel da estao de trabalho, incluindo ligaes entre controladores
e outros dispositivos;
18. Neste caso apenas existem dois controladores/robs em termos de equipamento ativo, o
que pode ser confirmado clicando no separador Design, como mostra a Figura 91. Para
interligar os mesmos, aceda ao separador Signals and Connections e clique em Add I/O
Connections. Na janela que aparece escolha as opes como mostra a Figura 92 e clique
em OK;

Figura 90 Lgica da estao. Figura 91 Diagrama de blocos da estao.


19. Repita a operao, mas agora para adicionar a ligao entre a sada doOperationEnded do
controlador IRB1600_6kg_1.2m_1 entrada diStartOperation do controlador
IRB1600_6kg_1.2m;
20. Clique no separador Design para verificar as ligaes adicionadas (poder arrastar os blocos
para ter uma melhor visualizao das ligaes). Tipicamente as ligaes tambm podem ser
adicionadas a partir deste separador, simplesmente arrastando sadas para entradas;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 36/45


Figura 92 Adio de uma ligao. Figura 93 Diagrama de blocos da estao.
21. Se arrancar a simulao aps estas ligaes feitas, os robs iro continuar parados, pois
embora as ligaes estejam feitas, ambos iro ficar espera de um sinal positivo na sua
entrada para poder iniciar o movimento. No entanto basta que ative (atravs do I/O
Simulator) a entrada de um dos robs para automaticamente o processo se desenrolar
infinitamente;
Mesmo conseguindo ter solucionado o problema, ainda necessrio o utilizador simular uma
entrada, o que no desejvel. Para evitar esse problema poder-se-ia adicionar no ambiente grfico
a ativao da sada de um dos robs no arranque, provocando o incio do movimento do outro rob.
No entanto essa no a abordagem aconselhada, sendo prefervel editar diretamente o cdigo
RAPID, como mostra a seco seguinte.

10 Utilizao Direta de Cdigo RAPID


Neste momento j capaz de criar uma simulao completa com vrios robs/controladores, mas
considerando um nico fio de execuo, pr-programado pelo utilizador graficamente. Como ser
de esperar, nem sempre desejvel ou sequer possvel que assim seja, sendo til em determinadas
situaes ter sistemas com execuo mais complexas. Estas sequncias de operao,
implementados diretamente em cdigo, podem ser baseados em variveis internas ou nos valores
das entradas/sadas do rob. No caso particular dos robs da ABB, a linguagem utilizada denomina-
se de linguagem RAPID. No menu de ajuda do RobotStudio encontra uma ligao para RAPID
RAPID Instructions, Functions and Data types, onde encontra uma descrio de todas as funes
que podem ser utilizadas em linguagem RAPID.

Nesta seco ter oportunidade de interagir diretamente com o cdigo RAPID e ficar a conhecer as
principais funes deste. Para informao mais detalhada dessas e outras funes dever consultar
a ajuda RAPID indicada acima.
Com os prximos passos pretende-se perceber como feito o acesso ao cdigo RAPID. O cdigo
ser ainda alterado para que o rob esteja a operar continuamente, sem que para tal seja necessrio
alterar a configurao da simulao ou forar manualmente uma entrada do rob.
1. Abra o ambiente criado na seco anterior, caso no esteja aberto;
2. V a Simulation Simulation Setup e confirme que a opo Single Cycle est selecionada
para ambos os controladores;
3. No I/O Simulator verifique que todas as entradas e sadas que foram adicionadas a ambos
os controladores esto a 0.
4. Arranque a simulao, situao em que os robs devero ficar parados espera da entrada
digital a 1, como mostra a Figura 94;

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 37/45


5. Clique no menu RAPID, surgindo o ambiente ilustrado na Figura 94;
6. Selecione o menu Controller e faa duplo clique em IRB1600_6kg_1.2m_1 RAPID
T_ROB1 Module1, surgindo o programa em cdigo RAPID associado ao mdulo Module1
do controlador (ver Figura 95);

Figura 94 Acesso ao menu RAPID. Figura 95 Cdigo RAPID.


7. Observando o novo separador T_ROB1/Module1, pode confirmar que j existe um programa
no controlador. Esse cdigo existe no controlador devido sincronizao efetuada
anteriormente. Todos os caminhos que foram selecionados, bem como as posturas utilizadas
por esses caminhos, foram adicionados ao cdigo RAPID. Pode ainda verificar a instruo
de cdigo atualmente a ser executada, marcada por uma seta amarela, e a instruo atual
de movimento (entretanto j concluda), marcada por um pequeno rob. Como se pode
confirmar, o rob est espera da ativao duma entrada. Verifique que o mesmo se passa
para o outro rob;
Um programa em RAPID pode ser separado em vrios mdulos, correspondendo cada mdulo a
um ficheiro, tal como acontece, por exemplo, em linguagem C. Aqui usar-se- sempre apenas um
mdulo.

O mdulo gerado automaticamente pelo RobotStudio com base nas posturas e caminhos criados
tem tipicamente atribudo o nome Module1. A linha de cdigo MODULE Module1 no incio do ficheiro
identifica isso mesmo, isto , o incio do mdulo denominado Module1. Pode igualmente verificar
que o mdulo terminado com a instruo ENDMODULE.
Imediatamente aps o incio do mdulo encontra a definio das posturas definidas no ambiente
grfico do RobotStudio, sendo estas constantes (CONST) do tipo robtarget. Estes valores no
devero ser editados diretamente em cdigo.
De seguida encontra procedimentos (funes), cujo incio e fim esto identificados pelas instrues
PROC funo() e ENDPROC, respetivamente. Estes procedimentos so o equivalente s funes
em linguagem C, podendo tambm ter argumentos. A funo main, tal como em linguagem C,
corresponde funo principal, sendo esta a funo chamada quando o cdigo arranca. Quando
esta funo terminar o programa termina a sua execuo. Neste momento esta funo no existe,
pois no foi ainda definida, dado que foi definida a funo Path_Part_surf como sendo a funo de
arranque (caso nada seja feito, por omisso a funo main a funo principal, de arranque).
8. No cdigo gerado pode confirmar que existem uma funo, Path_Part_surf(), a qual
corresponde exatamente aos caminhos criados anteriormente no ambiente grfico;
9. Para resolver o problema de ser necessrio ativar uma entrada para o sistema arrancar,
basta agora adicionar essa instruo diretamente no cdigo RAPID. De facto, para ter
maiores garantias no arranque, devem sempre confirmar o estado inicial do sistema e

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 38/45


garantir as condies iniciais, tal como em automao. Assim, adicione a funo main() de
modo a que fique como mostra a Figura 96 e a Figura 97, para os robs IRB1600_6kg_1.2m
e IRB1600_6kg_1.2m_1, respetivamente. Note que ao comear a escrever uma dada
instruo de cdigo, automaticamente lhe sugerido como terminar a mesma. Este auxlio
programao tipo de qualquer editor de cdigo recente, sendo bastante til para evitar
erros. As instrues iniciadas com ! so comentrios e devero ser includos no cdigo
sempre que necessrios. Dever tambm utiliza-los na documentao das funes. De
salientar ainda que o ciclo WHILE TRUE DO, que termina na instruo ENDWHILE, serve
para ter um ciclo de funcionamento infinito, e que as vrias variveis utilizadas foram
definidas no incio do programa. Pode, no entanto, definir variveis em cada funo, tal como
acontece noutras linguagens de programao. As funes sero explicadas em mais
pormenor mais frente neste tutorial.

PROC main()
! Ir para a postura base
MoveJ Home,v1000,z50,MyTool\WObj:=wobj0;
! Garantir condies iniciais
SetDO doOperationEnded,0;
WaitDI diStartOperation,0;
! Entrar no ciclo infinito
WHILE TRUE DO
Path_Part_surf;
ENDWHILE
ENDPROC

Figura 96 Funo main() para o rob IRB1600_6kg_1.2m.

PROC main()
! Ir para a postura base
MoveJ Home,v1000,z50,MyTool\WObj:=wobj0;
! Garantir condies iniciais
SetDO doOperationEnded,0;
WaitDI diStartOperation,0;
! Dar ordem de arranque ao outro rob
SetDO doOperationEnded,1;
! Entrar no ciclo infinito
WHILE TRUE DO
Path_Part_surf;
ENDWHILE
ENDPROC

Figura 97 Funo main()para o rob IRB1600_6kg_1.2m_1.


10. Apague a instruo inicial para movimentar para a postura Home da funo Path_Part_surf
em ambos os controladores, dado que essa instruo foi includa na funo main;
11. Neste momento efetuou as alteraes propostas, mas as mesmas no foram ainda
aplicadas ao controlador. Para tal dever clicar em RAPID Apply (All Changes),
atualizando assim o cdigo em ambos os controladores;
12. Aceda a Simulation Simulation Setup e altere em T_ROB1, para ambos os controladores,
a opo Entry point para main. Desta forma os controladores volta ao funcionamento padro,
isto , em que a funo main a funo principal, com a qual o controlador inicia. Clique em
Close;
13. Corra novamente a simulao clicando em Simulation Play e verifique que corre como
esperado. Confirme que os robs executam os caminhos ao longo das arestas, mas um de
cada vez;
As alteraes agora efetuadas ocorreram diretamente no cdigo RAPID e foram aplicadas ao
controlador, no entanto no esto disponveis ainda no ambiente de trabalho grfico.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 39/45


14. Aceda ao menu Home e abra o separador Paths&Targets. Verificando os caminhos, pode
confirmar que no contm as alteraes efetuadas diretamente no RAPID. Para sincronizar
a informao no ambiente grfico com a informao no controlador (virtual), escolha um dos
controladores e aceda a RAPID Synchronize Synchronize to Station. Na janela que
aparece escolha apenas o que foi modificado, isto , o caminho que alterou e a funo main,
tal como mostra a Figura 99, e clique em OK. Repita o processo para o outro controlador;

Figura 99 Aplicao das alteraes introduzidas no cdigo.


15. Aceda novamente ao separador Paths&Targets do
menu Home e confirme que os caminhos esto
coerentes com a informao submetida diretamente
em cdigo RAPID (ver Figura 98);
Como pode constatar pelo exemplo anterior, no caso
particular da funo main(), a informao disponibilizada no Figura 98 Resultado da
sincronizao.
ambiente grfico (ver Figura 98) no corresponde
exatamente informao introduzida anteriormente no cdigo RAPID (ver Figura 96) em termos
visuais. Tal deve-se ao facto de no ambiente grfico apenas poder incluir instrues de movimento
e aes, no podendo incluir instrues como declarao de variveis ou lgica de programao
(ciclos, testes de valor, etc.). Por esta razo importante que apenas use o ambiente grfico para
criar posturas e caminhos, deixando o resto da programao para o cdigo RAPID, tendo ateno
informao que sincroniza entre ambos.

A conjugao da criao de caminhos no ambiente grfico, com a edio direta do cdigo RAPID,
permite criar simulaes mais complexas, aliando uma fcil e prtica criao de caminhos com a
utilizao de um conjunto vasto de instrues disponibilizadas pela linguagem RAPID,
semelhana de uma outra qualquer linguagem de programao (por exemplo, C). assim possvel
criar execues alternativas com base em, por exemplo, informao de sensores ou ordens
externas.

11 Principais Instrues RAPID


Tal como indicado anteriormente, em RobotStudio Help RAPID Instructions, Functions and Data
types encontra a descrio detalhada de todas as funes RAPID existentes. Em RobotStudio Help
Additional Resources RAPID Overview encontra uma introduo ao RAPID. Nesta seco
procura-se documentar as principais instrues, devendo consultar os documentos acima para mais
detalhes.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 40/45


11.1 Variveis e Constantes
A linguagem RAPID inclui os seguintes quatro tipos de dados fundamentais:
num tipo de dado numrico, inteiro ou decimal;
dnum tipo de dado numrico, inteiro ou decimal, com o dobro da preciso de num;
string cadeia de carateres (texto);
bool tipo booleano, podendo ser FALSE ou TRUE

EXEMPLO: Declarar variveis do tipo num e atribuir valores


VAR num length;
VAR dnum pi;
VAR string name;
VAR bool finished
length := 10;
pi := 3.141592653589793;
name := "John"
finished := TRUE;

11.1.1 Variveis persistentes


A linguagem RAPID permite criar variveis persistentes. Estas variveis mantm o seu valor mesmo
aps terminar e reiniciar o programa. Estas devem ter um valor atribudo inicialmente.

EXEMPLO: Declarar uma varivel persistente


PERS num nbr := 1;

11.1.2 Constantes
Constantes so variveis cujo valor atribudo na declarao e no pode ser alterado
posteriormente.

EXEMPLO: Declarao de constantes


CONST num gravity := 9.81;
CONST string greating := "Hello"

11.1.3 Operadores
Tal como em C, esto disponveis operadores numricos e relacionais. Os operadores numricos
bsicos so os mesmos da linguagem C, isto :
+: adio;
-: subtrao;
*: multiplicao;
/: diviso.
Relativamente aos operadores relacionais, so em tudo semelhantes aos da linguagem C:
=: comparao de igualdade;
<: comparador menor;
>: comparador maior;
<=: comparador menor ou igual;
>=: comparador maior ou igual;
<>: comparador de no igualdade;
tambm possvel utilizar o operador + para concatenao de cadeias de caracteres

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 41/45


EXEMPLO: Concatenao de cadeias de caractres
VAR string firstname := "John";
VAR string lastname := "Smith";
VAR string fullname;
fullname := firstname + " " + lastname;
A varivel fullname contm no final o texto "John Smith".

11.2 Controlo de Fluxo


A linguagem RAPID inclui as principais instrues de controlado de fluxo, como o caso das
instrues IF/ELSE, TEST e ciclos FOR e WHILE. Encontra abaixo alguns exemplos da aplicao
destas instrues.

EXEMPLO: Utilizao da instruo IF/ELSE


VAR num time := 38.7;
IF time < 40 THEN
TPWrite "Part produced at fast rate";
ELSEIF time < 60 THEN
TPWrite "Part produced at average rate";
ELSE
TPWrite "Part produced at slow rate";
ENDIF
NOTA: A funo TPWrite utilizada para escrever texto na consola do rob.

EXEMPLO: Utilizao de um ciclo FOR


FOR i FROM 1 TO 5 DO
TPWrite "Hello";
ENDFOR

EXEMPLO: Utilizao de um ciclo WHILE


VAR num sum := 0;
VAR num i := 0;
WHILE sum <= 100 DO
i := i + 1;
sum := sum + i;
ENDWHILE

EXEMPLO: Utilizao da instruo TEST


TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
DEFAULT :
TPWrite "Illegal choice";
ENDTEST
A instruo TEST em tudo semelhante instruo SWITCH em linguagem C.

11.3 Instrues de Movimento


Existem trs principais instrues para movimentar o rob para uma determinada postura
previamente definida: MoveL, MoveJ e MoveC.
As instrues MoveL e MoveJ so utlizadas de forma semelhante mas tm implicaes muito
diferentes. Enquanto a instruo MoveL implica um movimento ao longo da linha reta que une a

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 42/45


postura inicial e a postura final, a instruo MoveJ apenas garante que o rob ir atingir a postura
destino, no dando qualquer garantia do caminho executado para l chegar.
Nos exemplos seguintes descreve-se a principal funcionalidade destas duas funes. Para uma
descrio completa da utilizao destas duas funes, consulte a ajuda do RAPID mencionada
anteriormente.

EXEMPLO: Utilizao das instrues MoveL e MoveJ


MoveL Target_10,v1000,z100,MyTool\WObj:=wobj0;
MoveJ Target_10,v1000,z100,MyTool\WObj:=wobj0;
Neste exemplo em concreto temos a movimentao para uma mesma postura utilizando um
movimento linear (MoveL) e um movimento de juntas (MoveJ). O significado destes argumentos
o que se segue:
Target_10: primeiro argumento, corresponde postura a atingir;
V1000: segundo argumento, corresponde velocidade em mm/s, neste caso 1000 mm/s;
Z100: terceiro argumento, corresponde zonedata, tal como explicado no final na Seco 5,
estando relacionado com a aproximao postura indicada;
MyTool: quarto argumento, indica qual a ferramenta a utilizar, isto , no fundo indica qual o
referencial a utilizar para chegar postura objetivo;
WObj:=wobj0: quinto argumento, opcional, corresponde ao Workobject utilizado;
A instruo MoveC utilizada para realizar um movimento circular, sendo a sua utilizao muito
semelhante das instrues anteriores. A principal diferena a incluso de uma segunda postura.
Veja-se o exemplo que se segue.

EXEMPLO: Utilizao das instrues MoveC


MoveC Target_90,Target_100,v100,fine,MyTool\WObj:=MyWorkobject;

Neste exemplo o rob parte da postura onde se encontrar e realiza uma trajetria circular que passa
pela postura Target_90 e termina na postura Target_100.

11.3.1 Movimento relativo


Na seco acima descreveram-se movimentos absolutos, mas possvel realizar movimentos
relativos quer postura atual do rob, quer a posturas predefinidas. Um exemplo de aplicao til
deste tipo de movimentos, o caso da paletizao. Basta criar a postura associada ao primeiro
ponto da palete, e todos os restantes podem ser descritos de forma automtica relativamente a
esse, sem terem de ser criados previamente. As principais instrues na linguagem RAPID para
este tipo de movimentos so as instrues Offs e RelTool.

A instruo Offs permite criar uma postura relativamente a outra.

EXEMPLO: Utilizao da instruo Offs


MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1;
p3 := Offs (p1, 5, 10, 15);

Na primeira instruo utiliza-se a instruo Offs para movimentar o rob para uma postura 10 mm
acima em z relativamente postura p2. Na segunda instruo guardada na varivel p3 uma
postura definida relativamente postura p1.

A instruo RelTool semelhante instruo Offs mas permite definir uma orientao alm de um
deslocamento. Veja-se um exemplo.

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 43/45


EXEMPLO: Utilizao da instruo Offs
MoveL RelTool (p1, 0, 0, 0 \Rx:=25 \Ry:=25 \Rz:=25), v100, fine, tool1;

Neste exemplo solicitado ao rob para se mover para p1 com um deslocamento de 0 mm em X,


Y e Z, e com uma reorientao de 25 relativamente orientao em torno de X, Y e Z. Note-se que
os parmetros de definio da orientao so opcionais, razo pela qual esto escritos na forma
\Rx:=.

11.4 Entradas/Sadas (sinais)


As principais instrues para ler e escrever de sinais so SetDO e WaitDI. As entradas podem ainda
ser utilizadas diretamente em instrues relacionais. Veja-se os exemplos que se seguem.

EXEMPLO: Utilizao da instruo SetDO


SetDO doMechanismControl,0;

Esta instruo atualiza o valor da sada doMechanismControl para o valor 0. Note-se que possvel
incluir outros argumentos, como por exemplo um atraso. Consulte a documentao do RAPID para
mais informao.

EXEMPLO: Utilizao da instruo WaitDI


WaitDI diDoorClosed,1;

Esta instruo bloqueia a execuo do programa at que a entrada diDoorClosed tenha o valor 1.
possvel especificar um tempo mximo de espera (consulte a documentao do RAPID para mais
informao).

EXEMPLO: Teste de entradas


IF diDoorClosed = 1 THEN
MoveL p10, v1000, fine, tPen;
ENDIF

Neste caso s se a entrada diDoorClosed tiver o valor 1 que a instruo de movimentao


executada.

11.5 Procedimentos (Funes) com Argumentos


Tal como em C, possvel ter funes com argumentos. Veja o seguinte exemplo para perceber
como o fazer.

EXEMPLO: Procedimento com argumentos


PERS tooldata tPen:= ...
CONST robtarget p10:= ...
PROC main()
! Call the procedure draw_square
draw_square 100;
draw_square 200;
draw_square 300;
draw_square 400;
ENDPROC
PROC draw_square(num side_size)
2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 44/45
VAR robtarget p20;
VAR robtarget p30;
VAR robtarget p40;
! p20 is set to p10 with an offset on the y value
p20 := Offs(p10, 0, side_size, 0);
p30 := Offs(p10, side_size, side_size, 0);
p40 := Offs(p10, side_size, 0, 0);
MoveL p10, v200, fine, tPen;
MoveL p20, v200, fine, tPen;
MoveL p30, v200, fine, tPen;
MoveL p40, v200, fine, tPen;
MoveL p10, v200, fine, tPen;
ENDPROC

11.6 Algumas Notas Finais


Todas as instrues devem terminar com ponto e vrgula (;). Existem um conjunto enorme de
funes, quer de movimento, quer para outros fins, as quais no foram descritas aqui. Estas
encontram-se descritas em detalhe na documentao do RAPID referida anteriormente. Note no
entanto que as funes definidas aqui devero ser suficientes para a maioria das aplicaes.

12 Gravao da Simulao em Vdeo


A gravao da simulao em formato vdeo bastante acessvel no RobotStudio e muito til para
mostrar o trabalho desenvolvido. Para tal basta configurar a gravao atravs da opo Simulation
Recorder Settings (ver Figura 100). As opes disponveis para a gravao de vdeo dependem
dos CODECs instalados no sistema operativo. Tenha o cuidado de selecionar uma pasta para a
gravao do vdeo para a qual tenha permisses de escrita e espao suficiente em disco. Sugere-
se, se possvel, que altere a extenso selecionada para MP4 e o CODEC utilizado para H.264,
gerando assim um ficheiro com uma taxa de compresso mais elevada, logo mais pequeno.

Figura 100 Configurao da gravao de vdeo.


Aps configurada a gravao do vdeo, tem trs opes para o modo como esta feita, todas
acessveis no menu Simulation:
Record Simulation Quando ativada inicia automaticamente a gravao de vdeo da
prxima simulao (opo pretendida para a entrega do trabalho de avaliao);
Record Application Inicia imediatamente a gravao de toda a janela do RobotStudio;
Record Graphics Inicia imediatamente a gravao da clula de trabalho do RobotStudio;
A gravao pode ser terminada a qualquer instante atravs da opo Stop Recording ou terminando
a simulao, dependendo da opo escolhida anteriormente.
Por ltimo, e independentemente da completa disponibilidade do docente e da documentao
fornecida, salienta-se novamente a importncia de recorrer ao manual do RobotStudio e do RAPID
para esclarecimento, nomeadamente relativamente a funes RAPID (argumentos, tipo de dados,
etc.).

2016/2017 2 Semestre, EEC, RVC Hugo Costelha e Carlos Simplcio 45/45