INSTITUTO POLITÉCNICO DE LEIRIA
ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO EEC – 3º ano – Robótica e Visão Computacional
T
UTORIALN
º1
P
ROGRAMAÇÃO OFFLINE ES
IMULAÇÃO COM OR
OBOTS
TUDIO6.04
Índice
1 Objetivos ... 2 2 Introdução ... 2 3 Elementos Base ... 2 3.1 Versão Utilizada ... 3 3.2 Ambiente de Trabalho ... 43.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 Espaço 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 Visualização ... 16
3.11 Movimentar o Robô e Criar Caminhos ... 17
4 Criar um Workobject ... 20
5 Criar um Caminho com Base nos Vértices de um Objeto... 22
6 Criar Caminhos ao Longo das Arestas de um Objeto ... 26
7 Alteração da Localização do Espaço de Trabalho Após a Criação das Posturas e/ou do Caminho ... 29
8 Adicionar Sinais ao Robô ... 30
9 Programação Gráfica do Robô e Simulação ... 32
10 Utilização Direta de Código RAPID ... 37
11 Principais Instruções RAPID ... 40
11.1 Variáveis e Constantes ... 41
11.2 Controlo de Fluxo ... 42
11.3 Instruções de Movimento ... 42
11.4 Entradas/Saídas (sinais) ... 44
11.5 Procedimentos (Funções) com Argumentos ... 44
11.6 Algumas Notas Finais ... 45
1
Objetivos
Pretende-se com este tutorial guiar o estudante na aprendizagem e aplicação de conceitos fundamentais na utilização de manipuladores industriais, através da utilização do software RobotStudio da ABB, nomeadamente:
• Princípios básicos (sistemas de coordenadas, espaço de trabalho, alcançabilidade, 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 robóticas; • Utilização de código RAPID;
• Gravar um vídeo da simulação.
NOTA: É importante que guarde o seu trabalho no final de cada secção, pois o mesmo poderá ser necessário na secção seguinte, razão pela qual não deverá fazer nenhuma secção sem ter concluído todas as anteriores. No final deverá guardar o trabalho desenvolvido, pois este, ou parte deste, poderá ser utilizado nos tutoriais seguintes.
2
Introdução
Dada a complexidade no desenvolvimento de uma tarefa automatizada com recurso a robôs, é imprescindível a utilização de software de simulação para uma maior produtividade. Além de reduzir o tempo de desenvolvimento e possíveis erros de conceção, permite ainda reduzir o tempo de paragem das linhas de produção durante o processo de desenvolvimento.
O RobotStudio é o software de simulação e desenvolvimento produzido e fornecido pela ABB, um dos principais produtores de manipuladores industriais. Neste software é possível encontrar um número elevado de robôs desenvolvidos pela ABB, permitindo a sua utilização imediata em ambiente de simulação. É possível ainda controlar e monitorizar a execução de tarefas por robôs reais, desde que as versões de software e controlador sejam compatíveis.
Neste tutorial encontra uma descrição passo a passo dos principais elementos do RobotStudio, bem como exemplos e/ou ligações 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 soluções para problemas inesperados que possam surgir. Assim, ao longo deste documento encontrará vários ponteiros para secções de ajuda do próprio RobotStudio. Todos os elementos que não façam parte deste tutorial, ou não sejam fornecidos juntamente com o RobotStudio, são disponibilizados no Moodle ou num sítio Web relacionado com o fabricante com a respetiva ligação explicitamente indicada na respetiva secção deste tutorial.
3
Elementos Base
Tal como indicado nas aulas teóricas, a cada manipulador robótico está associado um controlador e uma consola, tal mostra a Figura 1.
No caso da ABB são utilizadas as seguintes terminologias (robôs de outras marcas usam terminologias semelhantes):
• Robot manipulator – corresponde ao manipulador robótico em si;
• Control module – corresponde ao módulo responsável pelo controlo dos movimentos do robô, normalmente constituído por um computador capaz de interpretar linguagem RAPID e comunicar com os módulos de acionamento;
• Drive module – módulo que contém a eletrónica de potência, capaz de receber as indicações do módulo de controlo e acionar os motores das juntas do manipulador. Tipicamente um módulo de acionamento da ABB suporta até 9 juntas, pelo que é necessário um módulo por robô (o qual tem tipicamente 6 juntas);
• FlexController – Corresponde à unidade denominada como “Controlador” na Figura 1, a qual contém o módulo de controlo, o módulo de acionamento, e outros módulos necessários ao funcionamento do ABB (por exemplo, de comunicação);
• FlexPendant – Consola de comando ligado ao controlador. Com um ecrã, que poderá ser tátil, e teclas, esta permite de uma forma fácil a programação e controlo do manipulador
online;
• Tool – Ferramenta utilizada no elemento terminal do robô. A título de exemplo, e tal como poderá confirmar na Figura 1, poderá ser utilizada uma garra;
• RobotWare – designação 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, constituído por um ou mais manipuladores robóticos e demais objetos e mecanismos.
Manipulador
Controlador Consola
Figura 1 – Manipulador robótico ABB IRB2400 existente no Laboratório de Robótica.
É ainda importante definir alguns conceitos base relacionados com a programação de robôs, quer em ambientes reais, quer em ambientes simulados:
• Programação online – consiste em programar um robô através do módulo real do mesmo; • Programação offline – consiste em programar um robô virtual através de um editor de texto
ou num programa de simulação;
• 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 utilização de diferentes sistemas de coordenadas para diferentes operações, objetos ou áreas de trabalhos;
3.1
Versão Utilizada
No Laboratório de Simulação de Sistemas (DS0.10) encontra-se instalada a versão 6.04.01 do RobotStudio. Aconselha-se a utilização da versão 64-bit para um melhor desempenho, caso tenha um PC 64-bit.
A versão do RobotStudio utilizada na UC de Robótica está disponível para descarregar gratuitamente no sítio Web do fabricante, no entanto essa versão apenas disponibiliza todas as funcionalidades durante 30 dias. No Moodle, Secção “FAQ – RobotStudio” da página da UC de Robótica, encontra as instruções necessárias para descarregar e instalar o RobotStudio. A ESTG possui uma licença de campus que permite a utilização do RobotStudio sem restrições de tempo para trabalhos académicos, desde que utilizada dentro do campus. Consulte a FAQ no Moodle para mais informações relativamente à instalação e configuração 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 interrogação (também acessível através do menu
FileHelp), o qual permite aceder ao menu de ajuda do RobotStudio. Esse menu contém vários
itens, sendo os mais relevantes os seguintes:
• RobotStudio Help – acesso a um sistema de ajuda bastante completo sobre a utilização do RobotStudio;
• RAPID Instructions, Functions and Data Types – acesso à descrição da linguagem de programação, em particular das várias funções disponíveis.
Figura 2 – Ambiente inicial de trabalho do RobotStudio.
Se após a conclusão do(s) tutorial(ais) tiver dúvidas sobre alguma funcionalidade ou função, este é um dos repositórios onde encontrará a informação necessária.
Nesta altura deverá abrir a secção RobotStudio Help e, no separador Contents, abrir o item
Introduction to RobotStudio User Interface Ribbon, tabs and groups. Neste item verá uma
descrição resumida dos vários blocos disponíveis no ambiente de trabalho do RobotStudio, tal como mostra a Figura 3.
Figura 3 – Blocos disponíveis 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
Home – acesso as funcionalidades base do RobotStudio, nomeadamente importar sistemas,
robôs, criar caminhos, etc.;
Modeling – acesso à criação de objetos, medidas, operações CAD, etc.;
Simulation – acesso aos comandos e controlo de simulação;
Controller – acesso aos comandos de sincronização e controlo dos controladores, sejam
estes virtuais ou reais;
RAPID – acesso ao editor e depurador de código RAPID;
Add-ins – acesso a opções adicionais instaladas, nomeadamente controlo de soldadura,
etc..
Feche a janela de ajuda do RobotStudio.
3.3
Abrir e Simular um Ambiente de Trabalho Exemplo
Além de incluir inúmeros robôs e um conjunto de ferramentas, o RobotStudio inclui ainda um conjunto de exemplos completos de ambientes de trabalhos prontos a simular. Estes exemplos estão armazenados num ficheiro comprimido específico do RobotStudio, o qual permite facilmente transferir o ambiente de trabalho entre diferentes computadores/utilizadores. O RobotStudio disponibiliza três funcionalidades para este fim, acessíveis através 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 através da opção Pack and Go;
• Save Station as Viewer – permite guardar a estação com simulações que tenham sido efetuadas, permitindo visualizar as mesmas em PCs que não tenham o RobotStudio instalado. Note que não é possível editar esse ambiente de trabalho.
NOTA: Todos os trabalhos devem ser entregues para avaliação utilizando o ficheiro obtido através da opção Pack and Go. Aconselha-se ainda que os estudantes façam frequentemente cópias de segurança do ambiente de trabalho desenvolvido usando essa opção. Sempre que mudarem de computador devem também usar esta opção para copiar a estação de trabalho entre PCs.
Figura 4 – Ficheiros Pack & Go.
1 Note-se que um ambiente de trabalho no RobotStudio é composto por múltiplos ficheiros. A opção Pack & Go permite criar um único ficheiro comprimido que inclui todos esses ficheiros.
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 opção 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 omissão). A opção “Unpack to
Solution” serve para indicar ao RobotStudio que deve ser criada uma pasta específica para
o ambiente em questão. Caso não ative esta opção, a pasta será partilhada por outros ambientes, tipicamente na pasta padrão do RobotStudio. Embora ocupe mais espaço, aconselha-se a ativar esta opção para manter todos os ficheiros necessários numa mesma estrutura dentro duma pasta específica do ambiente a trabalhar.
-
Figura 5 – Exemplo de soldadura.
3. Proceda com as opções indicadas por omissão, exceto relativamente à opção Library
Handling, onde deverá escolher a opção Load files from Pack & Go. Quando clicar em Finish
ambiente de trabalho será carregado (note que o carregamento do ambiente de trabalho usando a opção 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 dígito da esquerda o número de controladores utilizados, e o dígito da direita o número 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 operação Unpack and Work.
Neste ambiente encontra um manipulador robótico e um posicionador, estando o manipulador equipado com uma ferramenta de soldadura ABICOR Binzel.
Para iniciar a simulação do sistema, escolha o menu Simulation e pressione a opção Play. Em qualquer altura poderá utilizar o botão esquerdo do rato para selecionar objetos do ambiente de trabalho e o botão direito para aceder a opções desses mesmos objetos. A roda do rato permite aproximar e afastar, Ctrl + botão esquerdo do rato permite arrastar o ambiente e, finalmente, Ctrl + Shift + botão esquerdo do rato permite rodar o ambiente.
Feche o ambiente clicando no menu File seguido da opção Close. Note que sempre que executa uma simulação ocorrem alterações no ambiente, incluindo configuração dos robôs, posição dos
objetos, etc.. Ao selecionar a opção de guardar as alterações efetuadas, está na verdade a alterar o ambiente face ao seu formato original, mesmo que apenas tenha corrido a simulação. Assim, deverá sempre gravar o ambiente antes de efetuar uma simulação, ou selecionar a opção
Reset (menu Simulation) após a simulação e antes de gravar o ambiente, repondo este no
estado em que estava antes da simulação.
3.3.2
Exemplo de uma Linha de Produção
Abra e simule um outro exemplo fornecido, nomeadamente o exemplo “Demo Solar
Simulation.rspag”. Neste exemplo, ilustrado na Figura 6, pode ver a simulação de parte de uma
linha de produção de pequenos painéis solares. Este exemplo introduz componentes avançados de simulação, os quais permitem que o primeiro robô consiga corrigir a posição de cada uma das células ao colocar as mesmas na mesa rotativa. Este exemplo inclui ainda a simulação de tapetes (conveyors em inglês). De salientar que são utilizados dois controladores, um por robô, tal como poderá confirmar pela informação “Controller Status 2/2” no canto inferior direito.
Figura 6 – Exemplo de uma linha de produção de painéis 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 simulação com múltiplos robôs a trabalhar coordenadamente em soldadura, utilizando um único controlador, enquanto no exemplo da Figura 8 encontra dois manipuladores novamente a realizar uma operação de soldadura, mas neste caso coordenada com um posicionador, também neste caso com um único controlador.
3.4
Criar Ambientes de Trabalho
Na secção anterior teve a oportunidade de simular ambientes complexos com múltiplos robôs, já fornecidos com o RobotStudio. O primeiro passo para simular um sistema automatizado consiste na criação do mesmo no ambiente de simulação, neste caso o RobotStudio.
Note que é possível criar todo o ambiente de trabalho, incluindo objetos, no RobotStudio. No entanto a alteração de objetos criados dentro do RobotStudio é muito limitada, sendo apenas possível apagando os existentes e criando novos, ou através de funções de corte, união, etc. Não é possível, por exemplo, modificar as dimensões 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 modelação 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 dimensões incluídas.
Tal como indicado na ajuda do RobotStudio (ver RobotStudio Help Building stations Workflow for building a station), existem três 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 típica para criar o ambiente é utilizar a opção Solution with Station and Robot Controller, selecionando o manipulador que se pretende (veremos outras opções posteriormente).
Existe um canal no YouTube criado pela ABB, o qual contém um conjunto de tutoriais e guias para iniciar a utilização do RobotStudio, os quais complementam a documentação 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 estão desatualizados e não são aplicados diretamente na versão utilizadas nas aulas. De salientar ainda que, para a realização dos trabalhos e conclusão da UC não é necessário consultar esses vídeos, embora o possa fazer.
3.4.1
Criar um ambiente de trabalho com um robô e um controlador
Esta secção 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 extensões suportadas. Note que algumas geometrias não permitem operações de snap, como é o caso das criadas no Google SketchUp.
3 Poderá visualizar algumas reportagens sobre casos reais na utilização de manipuladores robóticos, em
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 inicialização do controlador, através 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 indicações fornecidas na Secção 3.3.1 ;
5. Para voltar a visualizar toda o ambiente de trabalho, clique na opção View All, disponível clicando com o botão 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 localização 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 cópia de segurança, deverá utilizar a opção 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 através do explorador do Windows que o ficheiro em causa foi criado.
3.5
Sistemas de Coordenadas
Na base de qualquer sistema que implique movimento estão os sistemas de coordenadas, também denominados de referenciais. Em manipulação robótica é usual utilizar-se múltiplos sistemas de coordenadas, relacionados entre si de forma hierárquica, tal como abordado na aula teórica. 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 típico na Figura 10):
4 O nome do robô indica que este é um modelo com 6 kg de carga máxima suportada e 1.2 m de alcance
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 múltiplas células de trabalho no mesmo ambiente, com múltiplos robôs ou mecanismos a trabalhar numa mesma célula. Nessa situação poderá haver um mesmo referencial base para os vários robôs ou mecanismos5;
Base Coordinate System – Sistema de coordenadas base associado a cada robô,
localizado por omissão 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 opção Teach Target (a descrever posteriormente). Cada robô tem um referencial por omissão 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 alteração e especificação de pontos de trabalho com base em objetos existentes. Por omissão todos os robôs possuem inicialmente um Workobject denominado wobj0, o qual é coincidente com o referencial base do robô.
A título 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 referências do mundo, de base do robô, da tarefa, bem como o Workobject por omissão (wobj0) estão coincidentes. O referencial da “ferramenta” por omissão, 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 hipotético espaço de trabalho (neste caso a face superior do cubo exibido). Note que as cores dos eixos são sempre as mesmas, isto é, os eixos X são vermelhos, os Y são verdes e os Z são azuis (XYZ ↔ RGB).
Figura 10 – Relação entre os vários referenciais. Figura 11 – Examplo the referenciais utilizados.
3.6
Espaço de Trabalho e Alcance do Robô
Para a escolha do robô a utilizar no projeto de um sistema robotizado é essencial determinar o
5 Note que não é obrigatória esta abordagem quando são utilizados múltiplos robôs. A abordagem típica é que
cada robô utilize o seu referencial base, sendo assim os movimentos independentes.
World, Base, Task,
wobj0 WorkObject_1 tool0 AW_Gun
espaço de trabalho, operações a efetuar e alcance necessário. Assim, a escolha do robô deverá ser feita apenas depois de responder a estas questões. Em termos de alcançabilidade, isto é, determinação do espaço de trabalho do robô, o RobotStudio possui uma ferramenta útil (note que o alcance do robô, bem como a carga máxima e outros dados fazem parte das especificações tipicamente disponibilizadas pelo fabricante).
Tendo por base a estação criada anteriormente (ver Figura 9) clique, no separador Layout, com o botão direito do rato no robô (IRB1600_6_120__02) e selecione a opção Show Work Envelope, resultando no ambiente de trabalho ilustrado na Figura 12. Desta forma fica bem patente quais os pontos que o robô consegue alcançar.
Figura 12 – Espaço de trabalho do manipulador
industrial em 2D. Figura 13 – Espaço de trabalho do manipulador industrial em 3D.
Após selecionada a opção Show Work Envelope, pode selecionar, no separador Work Envelope, entre mostrar o espaço de trabalho em 2D ou 3D, bem como escolher se quer ver o espaço alcançável pelo punho (não tem em conta a última ligação do robô) ou pela ferramenta (caso não tenha nenhuma ferramenta, corresponde ao elemento terminal).
Note que esta informação só por si não é suficiente, pois o facto de o robô atingir um dado ponto com uma determinada orientação não significa que o consiga com qualquer outra orientação. Assim, se o robô irá conseguir ou não atingir uma determinada postura (posição mais orientação) irá depender muito da orientação escolhida.
3.7
Adicionar Ferramentas Existentes
Esta secção detalha a adição 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 através da opção 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 omissão a ferramenta adicionada é colocada na origem do ambiente de trabalho, i.e., na posição (X,Y,Z) = (0,0,0) com orientação (RX,RY,RZ)=(0,0,0), sendo necessário 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. À questão “Do
ferramenta será colocada no punho do robô na postura certa.
Figura 14 – Escolha de uma ferramenta.
Figura 15 – Atribuição 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, visível na ponta do manipulador. Quando se adiciona uma ferramenta, o referencial utilizado passa a ser o da ferramenta. De facto poderá constatar que o espaço de trabalho do robô (Work Envelop) aumentou com a adição da ferramenta. Na prática 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, não deve criar posturas ou caminhos sem ter primeiro adicionado a ferramenta que pretende ao robô.
3.8
Adicionar Objetos Existentes
Esta secção descreve como adicionar objetos previamente criados ao ambiente de trabalho. Execute os seguintes passos:
1. Selecione a opção Home Import Geometry Browse for Geometry e escolha o objeto “Table_small.sat” disponível 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 – Adição de um objeto ao
ambiente. Figura 17 – Movimento livre. Figura 18 – Mesa centrada.
2. Selecione o objeto adicionado, i.e., a mesa, e ative a opção de movimento manual clicando em Home Move, tal como ilustra a Figura 17. Movimente a mesa para que esta fique em
ilustra a Figura 18);
NOTA: Preferencialmente deverá utilizar um movimento específico e não um movimento manual. Para tal, clique na mesa com o botão direito do rato (no ambiente de trabalho ou no separador Layout), e escolha a opção 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 espaço de trabalho do robô (Work Envelop);
3. Adicione um novo objeto através 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 através dos seguintes passos: a. Clique no objeto com o botão direito do rato; b. Escolha a opção Modify Graphic Appearance…;
c. Em Selection escolha a opção Body (ver Figura 19) e altera na opção Simple Color para laranja;
d. Repita a operação 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 botão direito do rato; g. Escolha a opção Position Place One point; h. Ative a opção Snap End7, selecionando a mesma na
barra inferior da janela do RobotStudio (ver Figura 21);
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 operação de rotação seguindo passos similares com a opção de rotação/orientação. 7 Opções semelhantes às que encontra no AutoCAD ou outro qualquer software de desenho geométrico.
Figura 19 – Alteração do aspeto gráfico do objeto.
Figura 20 – Aspeto gráfico final do objeto.
Figura 21 – Ativar a opção Snap End.
do tabuleiro da mesa, à semelhança 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 botão direito do rato e selecionando a opção
Position Rotate. Altere o referencial de coordenadas para Local, selecione o eixo dos Zs
e um ângulo de rotação de -90º e aplique a rotação;
NOTA: Na opção 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 opção Snap Object e centre o objeto através da opção de mover baseado em dois pontos (como realizado anteriormente), mas utilizando como referência pontos intermédios da peça e da mesa. No final a peça deverá estar centrada na mesa, tal como mostra a Figura 24. Tire proveito do facto de poder apenas aplicar a translação em eixos selecionados (opção Translate along these axes).
8. Guarde o trabalho.
O RobotStudio inclui não só um conjunto de objetos de interesse, mas também um conjunto de ferramentas que poderá utilizar, nomeadamente de soldadura, jato de água, etc. Estes itens estão disponíveis na pasta indicada anteriormente e também através do menu Home Import Library (embora aqui possam ter informação extra, não geométrica, adicionada). Poderá ainda clicar em
File Share Content Sharing para aceder a um conjunto de modelos (e vídeos) disponibilizados
pela comunidade e/ou para partilhar os conteúdos desenvolvidos por si.
3.9
Criar e Importar Novos Objetos
Os objetos que constituem o ambiente de trabalho podem ser desenvolvidos no próprio RobotStudio ou numa aplicação externa e posteriormente importados. Estes objetos são denominados de
geometry no RobotStudio, dado que se tratam de figuras geométricas. Quando a essas figuras
geométricas estão associadas outras características e funcionalidades próprias do RobotStudio (ferramentas, mecanismos, robôs, etc.), passam a denominar-se library (biblioteca). Tipicamente quando são importadas bibliotecas, estas mantêm a sua ligação ao ficheiro externo, sendo apenas criado um novo ficheiro se o utilizador pretender efetuar alterações à biblioteca.
Relativamente aos objetos compostos apenas por figuras geométricas, 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 poderão necessitar de uma licença extra. Com a instalação do RobotStudio é ainda disponibilizada uma ferramenta que permite converter conjuntos de ficheiros do AutoCAD numa única operação, ferramenta essa denominada de CAD Converter.
Caso o estudante se sinta confortável com um destes formatos pode desenvolver o seu ambiente de trabalho na aplicação correspondente e importá-la no RobotStudio. Caso contrário pode desenvolver o ambiente no próprio RobotStudio, embora com bastantes limitações quando comparado com aplicações específicas de modelação e desenho 3D. Lembre-se que o RobotStudio é um software de simulação na área da Robótica, não é um software de desenho.
Os passos seguintes descrevem a utilização básica do RobotStudio para criar figuras geométricas: 1. Abra a estação criada anteriormente, caso esteja fechada, e selecione a opção Modeling
Solid Box (ver Figura 25);
2. Como pode confirmar na Figura 26, na definição da posição e dimensão do paralelepípedo tem a opção de escolher qual o referencial utilizado como base (por omissão é no referencial do mundo). Neste caso pretende-se adicionar um paralelepípedo com 600 mm de lado, centrado na posição (0, 1100, 0) [mm] e orientado segundo os eixos de coordenadas. Dado que a especificação da posição do paralelepípedo se baseia num dos vértices deste, tem que introduzir as coordenadas para o vértice (-300, 800, 0) [mm] e orientação (0,0,0) para manter o alinhamento com o referencial de base. Relativamente à dimensão, se colocar apenas o comprimento, o RobotStudio assume a mesma dimensão para todos os lados.
Figura 25 – Criar um paralelepípedo. Figura 26 – Posições e dimensões na criação de um paralelepípedo.
Como pode observar pelo resultado, ilustrado na Figura 27 (após alteração da cor do material para vermelho), foi adicionado um elemento no separador Modeling, denominado Part_1. Este objeto (part) é constituído neste momento por um elemento apenas, denominado de Body.
Corner Point
3. Adicione agora uma pirâmide retangular com a mesma altura do paralelepípedo e mesmas dimensões de base, tal como ilustrado na Figura 28 (utilize a opção Snap Object para facilitar o posicionamento da pirâmide). Fica assim com dois elementos: Part_1 e Part_2.
Figura 27 – Estrutura de informação de objetos. Figura 28 – Conjunção de múltiplos objetos.
4. Caso se pretenda que os dois objetos criados sejam um só, existem várias 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 opção, desfazendo-a de seguida (undo) para voltar à situação anterior; 5. Alternativamente pode fazer a união dos dois objetos clicando em Modeling Union
seguido da seleção dos dois objetos. Esta operação resulta num objeto com um único elemento. Experimente realizar esta operação. A opção Keep Original permite guardar os objetos originais.
Existe um conjunto de formas geométricas que pode criar, bem como um conjunto de operações que pode efetuar, todas disponibilizadas a partir do menu Modeling. Estas figuras geométricas e operações são em tudo idênticas às existentes em aplicações de modelação 2D e 3D. Encontra mais informação sobre as mesmas em RobotStudio Help Modeling Tab.
NOTA: Os nomes atribuídos aos vários elementos constituintes do ambiente de trabalho podem facilmente ser editados clicando duas vezes com o botão esquerdo do rato nos mesmos, ou clicando com o botão direito do rato seguido da opção Rename. Procure atribuir sempre nomes sugestivos aos vários elementos, permitindo assim uma mais fácil reutilização, depuração e avaliação do trabalho desenvolvido.
3.10 Modos de Visualização
Por vezes alguns dos pormenores do ambiente de trabalho poderão ser mais percetíveis em diferentes modos de visualização. Em particular, poderá recorrer ao modo wireframe (modelo de arames), situação em que as superfícies serão transparentes e apenas visualizadas as arestas, tal como exemplificado na Figura 29. Para aceder a esta visualização, clique em Home Graphics Tools Representation Wireframe. Caso queira dar um aspeto mais avançado em termos de
gráficos, pode selecionar a opção Advanced Lighting no mesmo menu. No entanto tal não é aconselhado durante o desenvolvimento, pois implica um consumo mais elevado de recursos computacionais por parte do RobotStudio.
Figura 29 – Modelo de Arames.
3.11 Movimentar o Robô e Criar Caminhos
Nesta secção irá aprender os modos básicos para:• Movimentar o robô;
• Criar posturas de trabalho (tipicamente denominados em inglês por Target Point ou
Geometry Points, GPs);
• Criar um caminho a realizar pelo robô.
A forma mais simples de especificar um movimento/trajetória para um manipulador, é “ensinando-lhe” posturas de interesse, posturas essas que são depois unidas num movimento pré-configurado. A estas posturas está associada uma configuração do robô, bem como um tipo de movimento entre posturas (linear, circular ou de junta). Essas posturas são normalmente denominados em inglês por
targets, sendo o processo de as criar denominado Teach target. O caminho que une essas posturas
denomina-se em inglês de path.
Os passos que se seguem permitem de uma forma simples compreender a diferença entre um movimento de junta e um movimento linear, sendo que, para este último, é necessário que o controlador atue sobre uma ou mais juntas em simultâneo. Poderá ainda observar os valores mínimos e máximos 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 não 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 próximas do elemento terminal do robô, aconselha-se a que faça zoom
a essa zona; Figura 30 – Movimento
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 alterações da orientação do elemento terminal. Para tal selecione e arraste um dos eixos. Poderá confirmar que o robô movimenta várias juntas de modo a garantir um movimento linear segundo o eixo e direção selecionados. Note que, caso tenha selecionado uma das opções de Snap, o robô tentará ir para essas posições;
6. Desabilite a opção Jog Linear; Controlo manual (numérico) 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 à seleção feita;
8. Abra o separador de controlo e visualização numérica das
juntas clicando em Mechanism Tools Modify Mechanism Joint Jog. Surgirá um novo
separador, ilustrado na Figura 33. Também poderá aceder a esta funcionalidade, clicando com o botão direito do rato no robô, no separador Layout, seguido da opção 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, após selecionar um dos valores de junta, escrever um valor específico através do teclado. Nesse separador poderá ainda monitorizar a configuração utilizada bem como as coordenadas do Tool Center Point (TCP), i.e., as coordenadas da ferramenta;
Controlo manual (numérico) linear
10. Poderá da mesma forma ativar o controlo numérico linear, clicando em Mechanism Tools Modify Mechanism Linear Jog;
11. No novo separador poderá visualizar as coordenadas em posição (X, Y, Z) e orientação (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, incluída por omissão, denominada Home. Esta corresponde tipicamente à postura do robô em que todas as juntas estão na sua posição zero. Pode em qualquer altura colocar o robô nesta postura clicando com o botão direito do rato no robô no separador Layout, seguido da opção
Jump Home;
Figura 31 – Movimento manual linear.
Figura 32 – Selecionar o robô.
Figura 33 – Controlo manual (numérico) de juntas.
Figura 34 – Adicionar uma postura de trabalho.
Criar posturas de trabalho (targets)
13. Existem várias 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 opção Home Teach Target (se surgir um aviso sobre o uso dos referenciais “tool0”
e “wobj0”, escolha a opção “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);
14. Mova o robô atuando na junta 1 e guarde a postura alcançada 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 alcançada através da função Teach Target e cancele a opção 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 omissão: Target_10, Target_20 e Target_30. Note que pode selecionar uma ou mais posturas, 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 omissão o novo
caminho denomina-se Path_10;
18. Selecione as 3 posturas criadas anteriormente e arraste-as para o caminho criado no ponto anterior, resultando num conjunto de instruções tal como ilustra a Figura 38. Por omissão o movimento a realizar entre as várias posturas é do tipo linear, razão pela qual é utilizada a função MoveL (futuramente serão dados mais detalhes sobre esta e outras funções). Confirme que o caminho aparece no ecrã (ver Figura 40);
NOTA: O caminho que é desenhado no ecrã não corresponde necessariamente à trajetória que o robô irá descrever, pois tal depende do tipo de movimentos escolhidos e respetivos parâmetros. 19. Selecione as 3 instruções adicionadas ao caminho, clique com o botão direito do rato nessa seleção e escolha a opção
Edit Instruction. Altere o tipo de movimento de Linear (linear)
para Joint (junta) na opção Motion Type, resultando assim no conteúdo ilustrado na Figura 39;
20. Clique em Simulation Monitor, ative a opção Enable TCP trace, altere a cor Trace color para laranja e clique em OK.
Desta forma ficará marcada a posição por onde o robô passar
Figura 36 – Posturas de trabalho criadas.
Figura 37 – Criar um caminho vazio.
Figura 38 – Posturas de trabalho criadas.
Figura 39 – Caminho com movimento de juntas. Figura 35 – Adicionar uma
sempre que executar uma trajetória programada;
21. No separador Layout, clique com o botão direito do rato na postura Target_10 e escolha a opção Jump To Target;
Figura 40 – Caminho criado. Figura 41 – Caminho executado.
22. Clique com o botão direito do rato no caminho criado (Path_10) e escolha a opção Move
Along Path. O caminho gerado será carregado para o controlador virtual e executado pelo
robô. Deverá visualizar no ambiente a execução do caminho criado, ficando marcado a laranja o caminho efetivamente realizado pela ponta de ferramenta. Como pode confirmar, o caminho não corresponde às linhas retas entre as várias posturas (mais à frente voltará a abordar esta questão);
NOTA: No final da execução 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 temporário para o controlador do robô. Como no final o programa desaparece, o apontador de programa é perdido. Tal não deverá acontecer quando tiver a realizar uma simulação completa, como verá nos tutoriais futuros.
23. Para terminar guarde o ambiente desenvolvido, de preferência utilizando a opção Pack &
Go.
Note-se que as várias posturas criadas podem ser reutilizadas em múltiplos caminhos, pelo que deve dar-lhes nomes relevantes para facilitar a identificação de cada uma. Para tal basta clicar duas vezes no nome da postura cujo nome pretende alterar.
É muito importante que tenha percebido a diferença 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 realização de um movimento de junta não há qualquer garantia quanto ao trajeto realizado pelo robô, apenas que irá começar e terminar nas posturas especificadas. Tal significa que não devem ser utilizados movimentos de junta quando se realizam operações sensíveis, tais como levantar e colocar objetos, ou em aproximações a objetos, pois poderá haverá o risco de colisões. Por outro lado, a utilização de movimentos lineares deve ser evitada sempre que possível, pois além do custo computacional mais elevado para o cálculo do movimento a realizar por parte do controlador do robô, há tipicamente um custo energético e um tempo de execução 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 rápido entre a postura de partida e postura de chegada.
4
Criar um Workobject
“Workobjects”, um Workobject consiste num referencial de coordenadas que é utilizado como
origem na criação de um conjunto de posturas/caminhos tipicamente associados a um objeto, área de trabalho e operação específicos. 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 peça numa postura diferente, tudo o que terá que fazer será reajustar o Workobject. Caso não tivesse usado um Workobject nessa situação, seria necessário refazer todo o caminho e criar novamente todas as posturas associadas. É fundamental a utilização de Workobjects para cada operação, devendo sempre começar qualquer tarefa pela criação destes.
Outro conceito importante reside na escolha da configuração 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 várias configurações distintas (valores diferentes de juntas), a escolha das configurações é crucial para a execução do caminho com sucesso. Ao longo desta secção ficará mais familiarizado com este conceito.
Realize os seguintes passos:
1. Abra o ambiente de trabalho gerado no tutorial anterior; 2. Selecione a peça em cima da mesa e centre-a no
separador de visualização, clicando na mesma com o botão direito do rato e escolhendo a opção View Center. Faça zoom à peça, resultando numa visualização semelhante à da Figura 42;
3. Ative a opção Snap End ou Snap Object;
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 – Seleção dos pontos para criar um Workobject.
6. Na componente User Frame clique em Frame by points, selecione a opção Three-point e escolha os três 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);
7. Clique em Create, terminado assim a criação do Workobject. No final o referencial associado ao Workobject ficará visível, tal como ilustrado na Figura 44. Poderá inclusive seleciona-lo no separador Paths&Targets de modo a ficar mais visível. Note ainda que na secção Settings do menu Home passou a estar selecionado o Workobject agora criado;
5
Criar um Caminho com Base nos Vértices de um Objeto
Anteriormente aprendeu a criar posturas e a gerar um caminho com base nestas. Na prática interessa que as posturas criadas tenham alguma relação com a tarefa a desenvolver, tipicamente associadas a objetos a trabalhar. Esta secção mostra como pode criar um caminho com base nos vértices de um dado objeto. De salientar que as posturas geradas estarão associadas ao Workobject criado na secção anterior. Com o ambiente anterior aberto, execute os seguintes passos:
1. Selecione a opção Home Target Create Target de modo a poder criar várias posturas; 2. Escolha quatro pontos nos vértices da peça clicando nos mesmos (no sentido dos ponteiros do relógio e começando pelo vértice na origem do Workobject), tal como ilustra a Figura 45 (deverá ter a opção Snap Object ativada). Note que as posturas são 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 adição das posturas, resultando na Figura 46;
NOTA: Quando as posturas não são adicionadas usando a opção Teach target estas não incluem a configuração do robô, razão pela qual ficam com um ponto de exclamação associado na lista de posturas. Tal significa que não há ainda confirmação que a postura é de facto alcançável pelo robô, algo que será determinado nos passos seguintes.
Figura 45 – Criação de posturas num objeto. Figura 46 – Posturas criadas num objeto.
3. De modo a facilitar a perceção das posturas definidas é possível visualizar a ferramenta do robô nestas. Para tal selecione todas as posturas do Workobject criado e ative a opção
Target Tools Modify View tool at target MyTool, resultando na informação disponível
na Figura 47.
Figura 47 – Visualização da ferramenta nas posturas criadas.
Figura 48 – Posturas após primeira rotação. Figura 49 – Posturas após segunda rotação.
4. Tal como a Figura 47 mostra, as posturas escolhidas não são as ideais, pelo que têm 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 rotação X e rode
180º, obtendo o resultado ilustrado na Figura 48. Selecione agora o eixo de rotação Z e rode novamente 180º, obtendo o resultado ilustrado na Figura 49;
Figura 50 – Escolha da configuração.
5. Selecione a primeira postura do Workobject e clique em Target Tools Modify Jump To
Target8. Irá surgir uma janela para escolher a configuração desejada. Experimente as várias configurações disponíveis, escolha no final a primeira e faça Apply (não feche a janela das configurações). Na Figura 50 encontra o resultado esperado após a escolha da configuração (0,-1,0,0);
8 Poderá também aceder à opção Jump To Target clicando com o botão direito do rato na postura. Um número
6. Ative a opção 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 configuração desejada, de preferência a mesma que na postura anterior ou próxima desta. Após configurar todas as posturas feche a janela das configurações e cancele a opção View Robot at Target. Note que à medida que configura as posturas estas deixam de ter um ponto de exclamação associado, indicando que a postura foi verificada e é alcançável pelo robô;
7. Crie um novo caminho vazio e adicione estas 4 posturas a esse caminho, arrastando-as para lá;
8. Teste a execução do caminho, selecionando o mesmo e clicando em Path Tools Modify
Move Along Path, obtendo a trajetória indicada na Figura 51;
9. Como pode verificar pelo resultado obtido, o robô não executa os movimentos sempre em linha reta entre posturas consecutivas, embora o resultado seja bastante mais próximo do que o esperado, comparativamente à utilização de movimentos de juntas (MoveJ). Tal deve-se aos parâmetros utilizados para o movimento. Como não efetuou qualquer alteração a estes parâmetros, este terá sido definido com as características indicadas na barra inferior da janela do RobotStudio, nomeadamente movimentos lineares (MoveL) com velocidade de 1000 mm/s (v1000), aproximação de 100 mm (z100), a ferramenta MyTool e o Workobject
MyWorkobject (pode confirmar estes parâmetros colocando o ponteiro do rato por cima de
cada instrução de movimento). Neste caso em concreto, como definiu uma aproximação de 100 mm, assim que o robô estiver a menos de 100 mm da próxima postura, este avança para o movimento seguinte;
Figura 51 – Caminho executado com erro. Figura 52 – Caminho executado com precisão.
10. Para a trajetória a realizar, tem duas hipóteses: poderá apagar as instruções, alterar as opções 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 botão direito do rato, escolher a opção Edit Instruction. Na janela que aparece altere a opção zone de z100 para fine, a precisão máxima do robô. Clique em Apply e feche a janela;
11. Aceda novamente à opção Simulation Monitor e clique na opção Clear Trace para apagar o traçado anterior e altere a cor para magenta para ser mais visível;
12. Corra novamente o caminho criado e verifique que a trajetória realizada pela ferramenta é a apresentada na Figura 52. Verifique ainda que agora o robô para nos cantos da peça por breves instantes, algo que não acontecia no movimento anterior;
Mas qual o significado do parâmetro zone?
Como poderá confirmar na ajuda RAPID Instructions, Functions and Data types Data types
zonedata – Zone data, o parâmetro zone é do tipo zonedata. Quando esse parâmetro é fine, o robô
executa a trajetória com a precisão máxima e tipicamente esse ponto passa a ser um ponto de paragem. Quando esse parâmetro toma um dos valores indicados na Tabela 1, o movimento do robô passa a ser um movimento aproximado, em função do valor escolhido, à semelhança 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 aproximação pré-definidos
Figura 53 – Execução de um caminho.
Mas qual o significado dos valores utilizados para a escolha de uma dada configuração? Tal como descreve a secção de ajuda RobotStudio Help Introduction to RobotStudio Terms
and concepts Robot axis configurations, uma dada configuração é definida com 4 valores inteiros,
cujos significados dependem do tipo de robô. No caso dos robôs com 6 juntas em série, os três primeiros número significam: um número maior ou igual a zero corresponde a um movimento no quadrante positivo correspondente (a começar em 0 para o primeiro quadrante); um número negativo corresponde a um movimento no quadrante negativo correspondente (a começar em -1). O quarto elemento indica qual das 8 possíveis posições do punho para três casos particulares do robô (singularidades). No caso de juntas prismáticas o número inteiro indica o deslocamento em metros da junta (arredondado para baixo). Apenas se incluem na configuração as juntas que o fabricante considera relevantes para distinguir entre as várias configurações possíveis para atingir a postura final do robô, podendo variar entre robôs. A título 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 posição idêntica à da Figura 54;
Aceda ao Mechanism Joint Jog do robô, varie as juntas 1, 4 e 6 e confirme que a configuração é a esperada. Para mais informações sobre estes parâmetros, consulte a ajuda em RAPID Instructions,
Functions and Data types Data types confdata – Robot Figura 54 – Exemplo de configuração
configuration data.
Conclui-se que a escolha das configurações a utilizar pode não ser trivial, dado que podem existir duas posturas consecutivas com configurações diferentes, as quais podem ser incompatíveis, em particular se o robô estiver a realizar um movimento linear entre ambas. Uma forma de minimizar estes problemas é utilizar a configuração automática. Essa opção está disponível em Path Tools
Modify Auto Configuration e será descrita na secção seguinte. Note, no entanto, que mesmo
utilizando a configuração automática poderá não ser possível gerar um caminho entre todos os pontos definidos. Note também que o facto de o robô não conseguir realizar a configuração automática, não significa que não seja possível realizar o caminho escolhendo outras configurações. Esses casos poderão ser resolvidos alterando as configurações manualmente ou alterando as posturas, quer individualmente, quer alterando o objeto (e respetivo Workobject) movendo/orientando este para um local mais acessível por parte do manipulador ou que não implique alteração de configurações.
6
Criar Caminhos ao Longo das Arestas de um Objeto
Criar caminhos com base nos vértices de um objeto permite realizar tarefas com base na geometria destes. No entanto, para objetos com geometrias mais complexas, existem alternativas mais práticas de criar esses caminhos. Os passos seguintes ilustram esse processo:
1. Abra o ambiente final criado na alínea anterior, caso o tenha fechado, e esconda os caminhos previamente criados, Path_10 e Path_20 (estes não serão utilizados nos passos que se seguem), bem como o cubo e a pirâmide. Para tal clique nos mesmos com o botão direito do rato e desative a opção View Visible, resultando no ambiente ilustrado na Figura
55;
2. Modifique a vista de forma ficar idêntica à da Figura 55 e ative a opção Surface Selection, como mostra a Figura 56;
Figura 55 – Adição de um objeto. Figura 56 – Seleção de superfícies.
3. Selecione a opção Modeling Border around Surface;
4. Selecione a superfície da peça, tal como ilustra a Figura 57, e clique em Create seguido de
Close, criando assim uma curva ao longo do bordo da superfície selecionada, como ilustra
a Figura 58;
Figura 57 – Modo de seleção de superfície. Figura 58 – Curva criada ao longo da aresta.
Figura 59 – Seleção da fronteira de uma superfície Figura 60 – Geração de um caminho ao longo do bordo de uma superfície.
6. Com a curva selecionada clique agora em Home Path AutoPath, resultando no separador exibido na Figura 60. Faça as seguintes alterações:
a. Para o campo Reference Surface selecione a superfície superior da peça (a mesma utilizada no ponto 4);
b. Altere o campo Tolerance (desvio máximo permitido do caminho relativamente à curva) para 1 mm, verificando que o número de pontos gerados aumenta com a diminuição deste valor;
c. Altere o campo Approximation Parameters para Circular (para permitir movimentos circulares no caminho gerado e não apenas movimentos lineares). Verifique que ao alterar esta opção diminui consideravelmente o número de pontos nas zonas curvas do caminho;
Figura 61 – Caminho gerado ao longo do bordo da
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 opção 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 realização da trajetória devemos garantir uma maior compatibilidade entre posturas consecutivas. Um primeiro passo é a reorientação das mesmas. Para tal selecione a primeira postura e clique em Target Tools Modify Rotate, surgindo o separador visível
na Figura 64;
Figura 63 – Visualização da ferramenta em todas
as posturas guardadas. Figura 64 – Rotação da postura.
10. Selecione o eixo dos Zs como eixo de rotação e aplique uma rotação 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 visível na Figura 66;
Figura 65 – Postura após rotação. Figura 66 – Alinhar a orientação 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
Figura 67 – Posturas após alinhamento de
orientação. Figura 68 – Sequência de movimentos para 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 não ter sido escolhida qualquer configuração para as várias posturas. Para faze-lo rapidamente e de forma automática, selecione o caminho criado e clique em Path
Tools Modify Auto Configuration. Ser-lhe-á solicitado para escolher a configuração da
primeira postura, devendo tipicamente escolher aquela que lhe pareça mais próxima de todas as possíveis configurações ao longo do caminho, neste caso (0,-1,0,0). No final poderá confirmar na janela de mensagens (Output) que a configuração automática do caminho foi bem-sucedida;
14. No separador Paths&Targets pode visualizar a sequência de instruções de código RAPID que permite executar o caminho gerado (ver Figura 68), nomeadamente instruções MoveL para movimentos lineares e MoveC para movimentos circulares, as quais serão 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 execução do caminho);
16. Experimente ainda alterar a aproximação para z0 e/ou fine, e repetir a execução do caminho para observar mais uma vez o impacto dessa opção.
7
Alteração da Localização do Espaço de Trabalho Após a Criação
das Posturas e/ou do Caminho
Pode ocorrer que seja necessário alterar o local onde uma dada peça é operada pelo robô, já depois de ter gerado todos os caminhos com base na geometria da peça. Um exemplo típico dessa necessidade, é quando o projeto é feito no ambiente de simulação, mas depois na prática existem algumas variações face ao projeto. Neste caso a utilização de um Workobject garante que se pode proceder a essa alteração com um esforço mínimo. Os passos seguintes ilustram essa situação para o ambiente de trabalho desenvolvido na secção anterior:
1. Comece por movimentar a peça para o canto da mesa, resultando no ambiente de trabalho ilustrado na Figura 69. Como pode observar, a movimentação da peça não teve qualquer impacto no caminho previamente gerado, pelo que é necessário corrigir o caminho;