2018 Dissertacao Felipe Macedo

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 147

INSTITUTO MILITAR DE ENGENHARIA

FELIPE ALVARES DE AZEVEDO MACEDO

ROBÔ MOTOMAN MH5F: MODELAGEM, SIMULAÇÃO E


PROGRAMAÇÃO AUXILIADAS POR COMPUTADOR

Dissertação de Mestrado apresentada ao Programa de Pós-


Graduação em Engenharia Mecânica do Instituto Militar de
Engenharia, como requisito parcial para obtenção do título
de Mestre em Ciências em Engenharia Mecânica.

Orientador: Prof. Luiz Paulo Gomes Ribeiro - Dr. Eng.

Rio de Janeiro
2018
AGRADECIMENTOS

Gostaria de agradecer em primeiro lugar a minha família, por não medirem esforços ao me
apoiarem e incentivarem durante essa etapa da minha vida. Minha mãe Marcia Macedo e meu
pai Francisco Macedo por todo o amor, carinho e dedicação, e meu irmão André Macedo pelo
companheirismo e momentos de descontração.
Minha namorada Larissa Damazio e família, por todo carinho e incentivo durante este
período.
Ao meu orientador Luiz Paulo Gomes Ribeiro, que sempre buscou a melhor forma para
transmitir seus conhecimentos, fundamentais para a conclusão dessa dissertação, pelo incentivo
e confiança.
Ao IME, pela estrutura oferecida, fundamental para o desenvolvimento dessa dissertação,
e pela oportunidade que me foi dada de ingressar e me formar no mestrado.
A família IDR Lab, Felyppe Laborde, Rafael Rosenberg, Michel Alba, Bruno Galhardo,
Leonardo Marques, Alexandre Soares e Leandro Almeida, que esteve sempre unida, dando,
quando necessário, assistência e momentos de descontração e diversão.
Aos professores que me fizerem crescer, intelectual e pessoalmente, através de seus ensi-
namentos.
A todos os funcionários do Instituto Militar de Engenharia que, de alguma forma, colabo-
raram com esta etapa que se encerra.
A CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior), pelo suporte
financeiro durante o mestrado.
E a todos que de alguma maneira contribuíram para o meu crescimento durante esta cami-
nhada.

4
“No que diz respeito ao empenho, ao compromisso, ao
esforço, à dedicação, não existe meio termo. Ou você faz
uma coisa bem feita ou não faz.”

Ayrton Senna

5
SUMÁRIO

LISTA DE ILUSTRAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

LISTA DE ABREVIATURAS E SÍMBOLOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Formulação do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1 O que é a Robótica? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 A Industria e os Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Programação de Robôs Industriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4 Laboratório Virtual - VL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Definição de um Laboratório Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 Laboratório virtual: vantagens e desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5 Critério para avaliação de VLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6 Conceitos de Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3 METODOLOGIA PARA DESENVOLVIMENTO DO CAMPS . . . . . . . . . . . . 43


3.1 Estabelecer e identificar os conceitos principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 Posição de Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2 Modos de movimentação e velocidades de manipulação do Robô . . . . . . . . . . . . . . . 45
3.1.3 Nuvem de pontos e pontos característicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1.4 Criação e desenvolvimento de JOBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1.4.1 Tipos de trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1.4.2 Abertura e fechamento da garra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1.4.3 Capacidade de depurar o JOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 Identificação dos elementos básicos, operações e relações . . . . . . . . . . . . . . . . . . . . . 50
3.3 Modelo formal para o VL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6
3.3.1 Modelagem do robô e dos componentes de cenário . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.1.1 Teoria dos Helicoides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.1.2 Modelagem do robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.1.3 Modelagem do cenário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.2 Modelagem do PP do CAMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4 identificação de abordagem orientada a objeto na programação . . . . . . . . . . . . . . . . . 64
3.5 Implementação de exemplos da vida real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4 IMPLEMENTAÇÃO COMPUTACIONAL E SIMULAÇÃO . . . . . . . . . . . . . . . 67


4.1 Movimentação Junta a Junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2 Criação da “nuvem” de pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Acionamento de Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4 Envio do robô para HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5 Criação de JOBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Comandos MOVJ, MOVL, DOUT e TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.7 Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.7.1 Cabeçalho do JOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5 ESTUDO DE CASO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.1 Definição e Características Básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2 Planejamento do experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.2.1 Padronização das atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.2.2 Sessão de Coding Dojo com o CAMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.3 Avaliação realizada pelos alunos participantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.4 Resultados e análise dos indicadores quantitativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.5 Resultados e análise dos indicadores Qualitativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6 CONCLUSÕES E PERSPECTIVAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1 Recapitulação sintetizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2 Contribuições Científicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4 Perspectivas para trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7 REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7
8 APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.1 Apêndice 1: Teoria dos Helicoides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.1.1 O Helicoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.1.2 Rotação Helicoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.1.2.1 Ângulos de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1.3 Deslocamento Helicoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.1.4 Método dos Deslocamentos dos Helicoides Sucessivos . . . . . . . . . . . . . . . . . . . . . . . . 117
8.1.5 Modelagem do Robô Motoman MH5F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.1.5.1 Passo 1: Identificar corpos, juntas e eixos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.1.5.2 Passo 2: Identificar parâmetros do Helicoide de cada junta . . . . . . . . . . . . . . . . . . . . . 120
8.1.5.3 Passo 3: Determinar a MTH de cada junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.1.5.4 Passo 4: Aplicação do Método dos Deslocamentos dos Helicoides Sucessivos . . . . 123
8.1.5.5 Passo 5: Aplicação de Chasles e ângulos de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2 Apêndice 2: Modelagem do robô Motoman MH5F pela Convenção de
Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2.1 Determinar parâmetros de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2.2 Determinar as Matrizes de Transformação Homogeneas (MTH) . . . . . . . . . . . . . . . . 128
8.2.3 Determinar a composição da MTH de cada junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.2.4 Determinar as MTH de base e ferramenta (passo opcional) . . . . . . . . . . . . . . . . . . . . . 128
8.3 Apêndice 3: Teoria dos Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.3.1 Matriz de incidência, ou Matriz dos Circuitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4 Apêndice 4: Cinemática Diferencial e Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.1 Cinemática Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.1.1 Aplicação do Método de Kirchhoff-Davies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.4.2 Cinemática Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.5 Apêndice 5: Comandos da linguagem INFORM III . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.6 Apêndice 6: Cenário CIM–Mecatrime do Laboratório Virtual . . . . . . . . . . . . . . . . . . 143

8
LISTA DE ILUSTRAÇÕES

FIG.2.1 Áreas de conhecimento e robótica. (Adaptado de MACEDO & RIBEIRO


(2015)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
FIG.2.2 Sistema robótico. (Adaptado de SICILIANO et al. (2009)) . . . . . . . . . . . . . . . . . 27
FIG.2.3 Objetivos de desempenho. (Adaptado de SLACK et al. (2002)) . . . . . . . . . . . . . 29
FIG.2.4 Tipos de juntas elementares. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
FIG.2.5 Punho Esférico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
FIG.2.6 Programming Pendant (PP) do MH5F. (YASKAWA, 2014b) . . . . . . . . . . . . . . . 33
FIG.2.7 Programação on-line realizada por aluno do IME. (Autoria própria) . . . . . . . . . 34
FIG.2.8 Programação Off-line com o software MotoSim. (YASKAWA, 2017) . . . . . . . . 35
FIG.2.9 RE e níveis de abstração. (CHIKOFSKY & CROSS, 1990) . . . . . . . . . . . . . . . . 41

FIG.3.1 Sequencia da tarefa de Pick-and-Place. (Autoria própria) . . . . . . . . . . . . . . . . . . 45


FIG.3.2 Tipos de movimentação. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
FIG.3.3 Sentido do sistema de coordenadas da ferramenta. (Autoria própria) . . . . . . . . . 47
FIG.3.4 Pontos característicos de manipulação de robôs. (Autoria própria) . . . . . . . . . . . 48
FIG.3.5 Trajetórias obtidas via MOVJ e MOVL. (Autoria própria) . . . . . . . . . . . . . . . . . . 49
FIG.3.6 Procedimento de fechar ou abrir a garra do MH5F. (Autoria própria) . . . . . . . . 50
FIG.3.7 Deslocamento helicoidal. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
FIG.3.8 Eixos dos helicoides de um manipulador. (Adaptado de TSAI (1999)) . . . . . . . 55
FIG.3.9 Procedimento para modelagem pelo MDHS. (Autoria Própria) . . . . . . . . . . . . . . 55
FIG.3.10 Datasheet do Motoman MH5F. (Adaptado de YASKAWA (2017)) . . . . . . . . . . 56
FIG.3.11 Marcações dos sentidos das juntas do robô. (Autoria Própria). . . . . . . . . . . . . . . 56
FIG.3.12 Referencial da ferramenta. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
FIG.3.13 Ajuste de origem do modelo. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
FIG.3.14 Origem referencial fixo do MH5F. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . 59
FIG.3.15 CVP de um componente. (Adaptado de MACEDO et al. (2018)) . . . . . . . . . . . . 60
FIG.3.16 CVP de um cenário com mais de um componente. (Autoria própria) . . . . . . . . . 60
FIG.3.17 Obtenção do vetor s0 através do SolidWorks. (MACEDO et al., 2018) . . . . . . . 61
FIG.3.18 Resultado da modelagem do cenário no CAMPS. (Autoria própria) . . . . . . . . . . 61
FIG.3.19 Comparação entre o PP real e o modelo obtido . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
FIG.3.20 PP recriado para ser utilizado em telas de computador. (Autoria própria) . . . . . 63
FIG.3.21 Diagrama de classes utilizado no CAMPS. (Autoria própria) . . . . . . . . . . . . . . . 64

9
FIG.3.22 Representação compacta das CVAs. (Adaptado de SANTOS (2018)) . . . . . . . . 66

FIG.4.1 Modo Junta: atuação nas juntas SL. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . 67


FIG.4.2 Modo Junta: atuação nas juntas URBT. (Autoria própria) . . . . . . . . . . . . . . . . . . 68
FIG.4.3 Procedimento para movimentação do robô. (Autoria própria) . . . . . . . . . . . . . . . 68
FIG.4.4 Passos iniciais para criação de pontos. (Autoria própria) . . . . . . . . . . . . . . . . . . . 69
FIG.4.5 Passos complementares para criação de pontos. (Autoria própria) . . . . . . . . . . . 70
FIG.4.6 Esfera que identifica um ponto no cenário virtual. (Autoria própria) . . . . . . . . . 71
FIG.4.7 Eventos do menu de universal outputs. (Autoria própria) . . . . . . . . . . . . . . . . . . 72
FIG.4.8 Procedimento envio para HOME: início. (Autoria própria) . . . . . . . . . . . . . . . . . 73
FIG.4.9 Procedimento envio para HOME: fim. (Autoria própria) . . . . . . . . . . . . . . . . . . . 74
FIG.4.10 Passos iniciais para criação de JOBs. (Autoria própria) . . . . . . . . . . . . . . . . . . . . 75
FIG.4.11 Passos complementares para criação de JOBs. (Autoria própria) . . . . . . . . . . . . 76
FIG.4.12 Habilitando menu INFORM LIST. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . 77
FIG.4.13 Desenvolvimento de um JOB: comandos DOUT, TIMER e MOVJ. (Au-
toria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
FIG.4.14 Desenvolvimento de um JOB: comando MOVL. (Autoria própria) . . . . . . . . . . . 79
FIG.4.15 Resultado do desenvolvimento de um JOB. (Autoria própria) . . . . . . . . . . . . . . . 80
FIG.4.16 Fluxo de comandos para criar um JOB. (Autoria própria) . . . . . . . . . . . . . . . . . . 80
FIG.4.17 Esquema da linguagem INFORM III implementado. (Autoria própria) . . . . . . . 82

FIG.5.1 Tela inicial do PP. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89


FIG.5.2 Tempo de programação com e sem o uso prévio do CAMPS. (Autoria
própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
FIG.5.3 Histograma do resultado do experimento. (Autoria própria) . . . . . . . . . . . . . . . . 96
FIG.5.4 Resultado do questionário de feedback de avaliação. (Autoria própria) . . . . . . . 98

FIG.8.1 Representação da rotação de um helicoide. (Adaptado de TSAI (1999)) . . . . . . 110


FIG.8.2 Projeção de SP P2r sobre SP P1 . (Adaptado de TSAI (1999)) . . . . . . . . . . . . . . . 111
FIG.8.3 Representação de movimento helicoidal. (Adaptado de TSAI (1999)) . . . . . . . . 115
FIG.8.4 Representação dos Deslocamentos dos Helicoides Sucessivos. (Adap-
tado de TSAI (1999)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
FIG.8.5 Procedimento para modelagem pelo MDHS. (Autoria Própria) . . . . . . . . . . . . . . 118
FIG.8.6 Posição final do robô com Junta U = −30. (Autoria própria) . . . . . . . . . . . . . . . 119
FIG.8.7 Criação de um modelo esquemático. (Autoria Própria) . . . . . . . . . . . . . . . . . . . . 119

10
FIG.8.8 Identificação dos corpos, juntas e eixos das juntas. (Autoria própria) . . . . . . . . . 120
FIG.8.9 Modelo esquemático usando a Teoria dos Helicoides . . . . . . . . . . . . . . . . . . . . . . 120
FIG.8.10 Definição do vetor s0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
FIG.8.11 Referencial da ferramenta. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
FIG.8.12 Validação dos resultados para U = −30◦ . (Autoria própria) . . . . . . . . . . . . . . . . 124
FIG.8.13 Parâmetros de DH. (SICILIANO et al., 2009) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
FIG.8.14 Modelagem do MH5F pela convenção de DH. (Autoria própria) . . . . . . . . . . . . 127
FIG.8.15 Definição de Vértices e Arestas. (Autoria própria) . . . . . . . . . . . . . . . . . . . . . . . . 130
FIG.8.16 Multigrafo com três Arestas ou caminhos paralelos. (Autoria própria) . . . . . . . . 131
FIG.8.17 Grafo orientado com sentido horário. (Autoria própria) . . . . . . . . . . . . . . . . . . . . 131
FIG.8.18 Representação do fechamento de cadeia do MH5F. (Autoria própria) . . . . . . . . 135
FIG.8.19 Cenário desenvolvido do CIM - MecatrIME. (Autoria própria) . . . . . . . . . . . . . . 146

11
LISTA DE TABELAS

TAB.2.1 Classificação dos tipos de robôs industriais (SICILIANO et al., 2009) . . . . . . . 30


TAB.2.2 Classificação dos tipos de robôs industriais (Continuação) (SICILIANO
et al., 2009) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

TAB.3.1 Componentes dos vetores s e s0 do Motoman MH5F . . . . . . . . . . . . . . . . . . . . . . 57


TAB.3.2 Parâmetros de posicionamento do cenário do CAMPS . . . . . . . . . . . . . . . . . . . . . 62

TAB.4.1 Fator de conversão de grau para pulsos por junta do MH5F . . . . . . . . . . . . . . . . 83


TAB.4.2 Fragmento de código com pontos em pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
TAB.4.3 Código gerado em arquivo .JBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

TAB.5.1 Lista de etapas da atividade no robô Motoman MH5F. . . . . . . . . . . . . . . . . . . . . . 88


TAB.5.2 Questionário realizado para obter o feedback do aluno . . . . . . . . . . . . . . . . . . . . 92
TAB.5.3 Questionário realizado para obter o feedback do aluno (Continuação) . . . . . . . . 93
TAB.5.4 Tempos de programação do G1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
TAB.5.5 Tempos de programação do G2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
TAB.5.6 Tempo médio e porcentual de redução de tempo entre ambos os grupos,
com e sem uso prévio do CAMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

TAB.8.1 Parâmetros s e s0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


TAB.8.2 MTH de cada junta (genérica e para SLURBT = [0, 0, −30, 0, 0, 0]T . . . . . . . . . 122
TAB.8.3 Resolução Cinemática para a posição com U = −30◦ . . . . . . . . . . . . . . . . . . . . . 124
TAB.8.4 Parâmetros de Denavit-Hartenberg do Motoman MH5F . . . . . . . . . . . . . . . . . . . 128
TAB.8.5 MTH de cada junta por DH (genérica e para L= −30o ) . . . . . . . . . . . . . . . . . . . . 129
TAB.8.6 Instruções (MOTION). (Adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . . 140
TAB.8.7 Instruções (IN/OUT) (adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . . . . 141
TAB.8.8 Instruções (CONTROL) (adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . 141
TAB.8.9 Instruções (SHIFT) (adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . . . . . 142
TAB.8.10 Instruções (ARITH) (adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . . . . . 142
TAB.8.11 Instruções (DEVICE) (adaptado de YASKAWA (2014a)) . . . . . . . . . . . . . . . . . . 142
TAB.8.12 Localização CIM–Mecatrime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
TAB.8.13 Localização CIM–Mecatrime (Continuação) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
TAB.8.14 Localização CIM–Mecatrime (Continuação) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

12
LISTA DE ABREVIATURAS E SÍMBOLOS

ABREVIATURAS

CAD - Computer-Aided Design


CAMPS - Computer-Aided Motoman MH5F robot Programming System
CARPA - Computer-Aided Serial Robots Programming, Modelling and Sim-
ulation Analysis
CIM - Computer-Integrated Manufacturing
CVA - Cadeias Virtuais de Assur
CVP - Cadeias Virtuais de Posicionamento
CVT - Cadeias Virtuais de Tool
CJ - Cadeias das Juntas
CVJ - Cadeias Virtuais das Juntas
CVM - Cadeias Virtuais de Move
CVF - Cadeias Virtuais de Fechamento
DH - Denavit-Hartenberg
DOF - Degree of Freedom
END - Estratégia Nacional de Defesa
FE - Forward Engineering
GUI - Graphical User Interface
G1 - Grupo do experimento que não usou previamente o CAMPS
G2 - Grupo do experimento que usou previamente o CAMPS
IDR Lab - Industrial and Defense Robotics Laboratory
IFR - International Federation of Robotics
IHM - Interface Homem-Máquina
IME - Instituto Militar de Engenharia
Indústria 4.0 - Quarta Revolução Industrial
INFORM III - Linguagem de programação nativa do robô Motoman MH5F
JOB - Denominação dada pela Motoman para o programa do robô
MDHS - Método dos Deslocamentos dos Helicoides Sucessívos
MecatrIME - Laboratório de Mecatrônica do IME
MTH - Matriz de Transformação Homogênea

13
OOP - Object Oriented Programming
OSHA - Occupational Safety and Health Administration
P - Junta Prismática
PD&I - Pesquisa, Desenvolvimento e Inovação
PP - Programming Pendant
PPGMEC - Programa de Pós-Graduação em Engenharia Mecânica
R - Junta de Revolução
RE - Reverse Engineering
RUR - Rossum’s Universal Robots
SCARA - Selective Compliance Assembly Robot Arm
SLURBT - Swing, Lower arm, Upper arm, Rotational, Bend, Twist
SLURBT - sigla com 6 letras associadas às 6 juntas do MH5F, da base à fer-
ramenta
TCP - Tool Center Point
TPU - Teach Pendant Unit
VL - Virtual Laboratories
VR - Virtual Reality

SÍMBOLOS

A - Referencial Absoluto
B - Referencial Móvel
(x, y, z) - Sistema de eixos coordenados do Referencial Absoluto
(u, v, w) - Sistema de eixos coordenados do Referencial Móvel
O - Origem do Referencial Absoluto
Q - Origem do Referencial Móvel
pA - Ponto em A em relação ao Referencial Absoluto
pB - Ponto em B em relação ao Referencial Móvel
A
RB - Matriz de Rotação
qxA - Translação em relação ao Referencial Absoluto ao longo do eixo na direção x
qyA - Translação em relação ao Referencial Absoluto ao longo do eixo na direção y
qzA - Translação em relação ao Referencial Absoluto ao longo do eixo na direção z
p̃A - Ponto P em relação ao Referencial Absoluto (A) representado na forma homogênea

14
p̃B - Ponto P em relação ao Referencial Móvel (B) representado na forma homogênea
TBA - Matriz de Transformação Homogênea
Tf - Matriz de Transformação Homogênea de ajuste da ferramenta
Tr - Matriz de Transformação Homogênea Resultante das Juntas
Ttot - Matriz de Transformação Homogênea Resultante com ajuste da ferramenta
s - Vetor unitário do eixo helicoidal de cada junta em relação ao referencial absoluto
sRef - Vetor unitário do eixo helicoidal de cada junta em relação ao referencial absoluto da
posição de referência
s0 - Vetor posição em relação ao referencial absoluto
s0Ref - Vetor posição em relação ao referencial absoluto da posição de referência
d˙ - Movimento de translação ao longo do eixo do helicoide
$n - Helicoide da n-ésima junta
Xf - Eixo X do sistema de coordenadas da ferramenta
Yf - Eixo Y do sistema de coordenadas da ferramenta
Zf - Eixo Z do sistema de coordenadas da ferramenta
θ - Movimento de rotação em torno do eixo do helicoide
t - Translação ao longo do eixo do helicoide
cθ - Abreviatura utilizada para cosseno de θ
sθ - Abreviatura utilizada para seno de θ

15
RESUMO

O dinamismo da economia do século XXI fomentou uma maior demanda por novas tec-
nologias, capazes de melhorar os processos de fabricação, objetivando produtos mais compe-
titivos. Uma dessas tecnologias é o robô industrial, considerado o sistema mecatrônico mais
vendido do mundo na atualidade, e estratégico por países tecnologicamente desenvolvidos.
Entretanto, a utilização de manipuladores robóticos traz consigo não somente vantagens, ou
seja, existem complexidades associadas ao risco que o dispositivo oferece aos operadores, e
às etapas de: planejamento; programação; sincronização; calibração e testes, o que demanda
tempo e pessoal qualificado. Assim sendo, existem desafios e oportunidades de melhorias vol-
tadas ao Ensino, Pesquisa, Desenvolvimento e Inovação (EPD&I). De modo a contribuir para
o treinamento de novos operadores, diminuindo os riscos inerentes e o tempo gasto nas eta-
pas associadas ao planejamento e programação, esta dissertação propõe um Laboratório Vir-
tual (VL), intitulado CAMPS (Computer-Aided Motoman MH5F robot Programming System),
que enquadra-se como ferramenta de ensino intermediária às aulas teóricas e práticas no robô
real. O CAMPS possui um ambiente gráfico capaz de representar o robô Motoman MH5F e
seus movimentos em um cenário 3D, além do Programming Pendant (PP), dispositivo utilizado
para sua programação. A metodologia utilizada ampara-se em Engenharia Reversa (RE), para
garantir maior similaridade com o equipamento real; na Teoria dos Helicoides, como ferramenta
matemática para resolução cinemática do robô; e da Programação Orientada a Objetos (OOP)
com classes bem definidas, auxiliando a implementação de problemas complexos. Para análise
de efetividade do CAMPS é proposto um Estudo de Caso no treinamento de alunos de gra-
duação em Engenharia Mecânica, onde a turma foi dividida em dois grupos, onde o primeiro
realizou o treinamento convencional, sem o uso do simulador, enquanto o segundo utilizou o
VL de previamente ao treinamento com o MH5F. Como resultado, são apresentados uma re-
dução nos indicadores do tempo de programação e uma pesquisa de satisfação, o que permitiu
validar o VL proposto como ferramenta de auxílio ao treinamento de novos programadores.

Palavras-chave: Laboratório Virtual. Motoman MH5F. Teoria dos Helicoides. CAMPS.


Robótica industrial. Programação Off-line.

16
ABSTRACT

The dynamism of the 21st century’s economy fomented a higher demand for new tech-
nologies, capable of enhancing the manufacturing processes, aiming for more competitive prod-
ucts. One of this technologies is the industrial robot, which is today considered the best selling
mechatronic system, and strategic to technologically developed countries. However, the use of
robotic manipulators brings not only advantages but complexities related to the risk that this
equipment offers to its operators, and also, to the: planning; programming; synchronization;
calibration and tests phases, which require time and human resources. Therefore, there are
challenges and improvement opportunities in Education, Research, Development and Innova-
tion (ERDI). This dissertation intent to contribute to the training of new operators, reducing the
inherent risks, and the time spent on the planning and programming phases, thus, it is proposed
a Virtual Laboratory (VL), entitle CAMPS (Computer-Aided Motoman MH5F robot Program-
ming System), that fits as an intermediate learning tool between the theoretical and practical
classes using the real robot. The CAMPS has a 3D graphical environment capable to represent
the Motoman MH5F robot and its movements, besides the Programming Pendant (PP), a device
used to do its programming. It is used a methodology based on Reverse Engineering (RE), to
ensure the highest similarity possible to the real equipment; Screw Theory, as a mathematical
tool to solve the robot kinematics; and, Object-Oriented Programming (OOP) with classes well
defined, assisting the implementation of complex problems. In the end, it is proposed a study
case on the training of Mechanical Engineering students to analyze the CAMPS effectiveness.
The class was divided into two groups, where the first one performed the conventional train-
ing without the use of the VL, whereas the second group used the CAMPS previously to the
practical class, with the real robot. As a result, it is presented a reduction in the indicators of
programming time and a satisfaction research, which allowed to validate the proposed VL as a
training aid tool to new robot programmers.

Keywords: Virtual Laboratory. Motoman MH5F. Screw Theory. CAMPS. Industrial Robotic.
On-line Programming. Off-line Programming.

17
1 INTRODUÇÃO

Esta dissertação apresenta contribuição na área de Robótica Industrial, no aumento da efi-


ciência e da segurança do processo de ensino e aprendizagem de novos operadores de robôs
industriais. Utiliza-se a Teoria dos Helicoides para modelagem, simulação e programação do
robô industrial Yaskawa Motoman MH5F, de forma a desenvolver um Laboratório Virtual, ou
seja, uma ferramenta computacional auxiliar de ensino, que simula um robô real. Este capítulo
está dividido em seções, iniciando com a motivação na Seção 1.1, onde encontra-se uma con-
textualização que considera a globalização como agente de um cenário de alta competitividade
entre produtos, o que fomenta a Pesquisa, Desenvolvimento e Inovação (PD&I) em soluções
tecnológicas para auferir vantagens estratégicas às Indústrias. Na Seção 1.2 são apresentados
problemas e oportunidades de melhorias associados a implementação de robôs industriais e
na Seção 1.3 os objetivos gerais e específicos, que esta dissertação visa apresentar como con-
tribuição científica em Robótica Industrial. Finalmente a Seção 1.4 apresenta a organização e a
estrutura de capítulos desta dissertação.

1.1 MOTIVAÇÃO

A globalização e o rápido avanço tecnológico, principalmente na comunicação e no trans-


porte, culminou em uma maior facilidade na importação e exportação de mercadorias nos dias
de hoje. Empresas que originalmente concorriam em mercados nacionais, passam a ter seus pro-
dutos competindo com os de empresas internacionais. Por esse motivo, a necessidade pesquisa
e desenvolvimento de produtos inovadores, de forma a conquistar a preferência dos consumi-
dores, cresceu substancialmente. Segundo SLACK et al. (2002), a vulnerabilidade de um pro-
duto começa a despontar quando uma empresa concorrente lança um produto similar, com preço
de mercado inferior, capaz de exercer a mesma função sem perda de qualidade e confiabilidade.
Este cenário de alta competitividade pode se agravar ainda mais, quando o produto concorrente
possui menor tempo de entrega, melhor adequação às necessidades do cliente ou, ainda, quando
proporciona inovações a cada versão produzida.
Diante deste contexto tão desafiador, surge a necessidade de aumentar a robustez dos pro-
cessos de fabricação. Como uma maneira de auxiliar as empresas a terem uma melhor produ-
tividade, SLACK et al. (2002) propuseram cinco objetivos de desempenho da produção, sendo

18
eles: tornar a produção mais rápida, confiável, econômica, flexível e garantir um padrão de
qualidade, no mínimo, igual ou superior aos concorrentes.
Um recurso bastante utilizado nos países tecnologicamente desenvolvidos é a automação
dos processos de fabricação. Dentro dos três tipos de automação existentes: rígida, flexível e
programável; o robô industrial, ou manipulador robótico, é um componente tipicamente uti-
lizado (SICILIANO et al., 2009), sendo capaz de atender aos objetivos propostos por SLACK
et al. (2002) e possibilitar a substituição dos seres humanos em atividades perigosas, insalubres
e repetitivas (SICILIANO et al., 2009).
Tais motivos, despertaram no mundo um grande interesse na utilização do robô industrial,
considerando-o estratégico pelas indústrias de países como: China, Coreia do Sul, Japão, EUA
e Alemanha, que, de acordo com a IFR (International Federation of Robotics), em 2016, juntos,
integraram aos seus processos de fabricação, cerca de 74% do total de 294.312 novas unidades
de robôs instaladas no mundo. (IFR, 2017)
Apesar da grande importância da robotização nas indústrias, o Brasil, em 2016, teve uma
participação irrisória se comparado com o mercado mundial. Ao que diz respeito à instalações
de robôs industriais, o país é responsável por, somente, 0,41% do total, representando 1207
unidades instaladas. A situação se agrava ainda mais, se comparado com o ano anterior, quando
o Brasil havia instalado 1407 unidades, representando uma redução de 14,2% (IFR, 2017).
O incentivo político é fundamental ao que tange a expansão do mercado de robôs industriais
nos países. Como exemplo, o Japão, EUA, Europa e China já se movimentaram, e através
de programas de incentivo, ou discursos (New Robotic Strategy, National Robotics Initiative,
SPARC e o China Manufacturing 2025, respectivamente), à respeito da adoção desse tipo de
tecnologia (YASUDA, 2017). Um reflexo pode ser visto na IFR (2017), onde a China, que
já era maior compradora de robôs industriais durante 3 anos consecutivos, teve um aumento
de 27% se comparado à 2016, atingindo um total de 87.000 unidades instaladas. Entretanto,
existem indícios preliminares de que em 2017 o país tenha superado as expectativas e tido um
crescimento de 58%, batendo outro recorde (IFR, 2018).
No entanto, a utilização de robôs industriais também traz consigo desafios e oportunidades
de melhorias, devido à alta complexidade associada às etapas de planejamento, programação,
sincronização e calibração, que, na falta de recursos humanos qualificados para integrá-los aos
processos de fabricação, podem inviabilizar sua utilização. No Brasil, a qualificação profis-
sional se torna especialmente relevante, primeiro, pelo fato da falta do trabalhador especializado
ser a principal barreira externa que a indústria brasileira enfrenta na implementação de tecnolo-

19
gias relacionadas com a Indústria 4.0, como é o caso do manipulador robótico (CNI, 2016), e
segundo, pelo alto risco de acidentes associado à operação desses equipamentos.
Ratificando o supracitado, a OSHA (Occupational Safety and Health Administration), órgão
norte-americano com finalidade de registrar acidentes de trabalho, monitora os acidentes rela-
cionados à utilização de robôs industriais desde 1984 nos Estados Unidos. Com base em seus
dados, foi possível analisar que até 2018 ocorreram 38 acidentes de trabalhos relacionados a
robôs industriais, dentre eles 27 fatais, sendo que 44,7%(17/38) do total ocorreram durante a
operação de manutenção ou em situações de contato inevitável com o equipamento (OSHA,
2018).
Em vista disso, surgem inúmeras oportunidades em PD&I, voltados na capacitação de novos
profissionais e operadores de robôs industriais, face à importância que a correta implementação,
de forma segura, e o impacto que esse tipo de equipamento, em quantidade considerável, traria
para o desenvolvimento da indústria, seja civil ou de defesa, e, no desenvolvimento da economia
do país.
Dada a importância do incentivo à esse tipo de tecnologia para o desenvolvimento do pais, o
Instituto Militar de Engenharia (IME) investiu na infraestrutura de dois laboratórios, o Laborató-
rio de Robótica Industrial e de Defesa (IDR Lab) e o Laboratório de Mecatrônica (MecatrIME),
os quais tem como objetivo genérico: especializar e aperfeiçoar recursos humanos, e promover
a PD&I em sistemas mecatrônicos de aplicação dual, ou seja, militar e civil, em consonância
com a Missão do IME (IDRLAB, 2018; MECATRIME, 2018; IME, 2018).
Por se tratar de uma dissertação de mestrado realizada dentro IDR Lab, no Programa de Pós-
Graduação em Engenharia Mecânica (PPGMEC) do IME, tem caráter dual, e buscou amparo
no segundo eixo estruturante da Estratégia Nacional de Defesa (END), que diz respeito a ações
que contribuam para à reorganização da Base Industrial de Defesa, assegurando que os produtos
de necessidade por parte das Forças Armadas apoiem-se em tecnologias de domínio nacional,
de preferência às de emprego dual (END, 2012).

1.2 FORMULAÇÃO DO PROBLEMA

Apesar de todas as vantagens estratégicas auferidas pela utilização do robô industrial, ainda
é necessário vencer a complexidade associada às etapas de planejamento e programação, para
viabilizar a utilização de manipuladores robóticos nas indústrias. O tempo associado a etapa de
programação de uma tarefa é muito superior ao da respectiva execução pelo robô, e necessita
de pessoal especializado. Programar robôs industriais basicamente consiste em "ensinar" as

20
posições desejadas do efetuador final, muitas vezes utilizando o próprio equipamento, e associá-
las a uma sequência lógica de comandos que permitem ao robô realizar a tarefa.
Esse procedimento pode ser realizado de duas maneiras: (1) através da programação off-
line, que consiste na utilização de softwares específicos e modelos 3D da célula de trabalho e
do robô para a programação da tarefa, ou: (2) através da programação on-line que necessita
do próprio equipamento e, neste caso, enquanto em processo de programação, o robô industrial
naturalmente deixa de executar suas respectivas atividades, podendo parar toda uma linha de
produção (NOF, 1999).
Todavia, apesar da programação off-line oferecer qualidades, segundo YASUDA (2017) a
programação on-line através de um programming pendant (PP) - dispositivo comumente uti-
lizado para a manipulação e programação do robô - é, ainda, o procedimento convencional-
mente utilizado para ensinar as tarefas dos robôs industriais. Além disso, mesmo com o avanço
dos anos e os PPs terem ficado mais ergonômicos, se comparados aos primeiros, não houve
mudança significativa no processo de ensino da tarefa pelo método on-line, que é dependente
da experiência do operador e se torna uma barreira quando este possui pouca, ou nenhuma ex-
periência prévia. Portanto, o treinamento e capacitação profissional se torna uma necessidade e
mais uma vez relevante (YASUDA, 2017).
O Laboratório MecatrIME possui seis robôs industriais Motoman modelo MH5F, disponíveis
em seu Sistema de Manufatura Integrado por Computador (Computer-Integrated Manufactur-
ing System - CIM). Todavia, a quantidade de botões multifuncionais e comandos específicos
disponíveis no PP para programação torna o processo de treinamento desgastante, tanto para
o aluno, quanto para o instrutor, e potencialmente perigoso para o estudante que, inicialmente,
não possui experiência prévia, e para equipamento que pela falta de conhecimento por parte do
aluno, corre um maior risco de ser danificado.
O uso de simuladores é uma prática bastante utilizada pelas principais montadoras de robôs
industriais para a implementação de seus robôs nas linhas de produção, principalmente, por uti-
lizar a programação off-line para agilizar este processo. SANTOS (2017) desenvolveu um pro-
tótipo computacional intitulado CARPA (Computer-Aided Serial Robots Programming, Mod-
elling and Simulation Analysis) capaz de simular robôs industriais genéricos, com o auxílio de
um ambiente gráfico, passível de visualização do robô. É possível inserir modelos de CAD 3D
de robôs, fazendo com que o resultado das simulações seja visualizado de forma ainda mais
fiel a realidade, entretanto, por se tratar de um software de programação genérico, não possui
capacidade de geração automática de código, como os softwares de programação off-line.

21
Diante da alta importância estratégica e considerando o risco em potencial destes sistemas
mecatrônicos, os processos de aprendizagem, treinamento, manutenção e atualização dos ope-
radores de robôs industriais ganham ainda mais em importância e atenção. Assim, objetivando
auferir vantagens competitivas e diminuir, ou evitar, acidentes de trabalho em potencial associa-
dos, a utilização de Laboratórios Virtuais (Virtual Laboratories - VLs) é proposta por MOODY
et al. (2016), como uma alternativa segura e efetiva para o treinamento de estudantes aos con-
ceitos de robótica industrial. A ideia central é disponibilizar um ambiente virtual que inclua
as características físicas elementares e modelos 3D dos robôs e do ambiente que os rodeiam,
assim como outros elementos que permitam aumentar a experiência de operação real dos ma-
nipuladores robóticos.
Segundo POTKONJAK et al. (2010) e JARA et al. (2011b), a combinação de um curso ini-
ciando com aulas teóricas, em sala de aula, com o auxilio de VLs, de forma a preparar o aluno
para o laboratório real apresentado no final do curso, proporcionam melhores resultados edu-
cacionais, além de prover, principalmente nas fases iniciais do treinamento com VL, segurança
aos aprendizes e preservação do equipamento real.
Desta forma, a formulação do problema que esta dissertação almeja contribuir em nível de
solução é a seguinte: como fomentar e aumentar a eficiência do ensino e aprendizagem de
novos operadores de robôs industriais? Assim, ela deseja contribuir no preparo de alunos
e futuros programadores de forma mais eficiente que a convencional, além de prover maior
segurança. Consequentemente, o melhor preparo destes profissionais tem maior potencial de
impactar de forma positiva em contexto nacional, onde as indústrias carecem de pessoal quali-
ficado.
Essa dissertação intitulada: Robô Motoman MH5F: modelagem, simulação e programação
auxiliadas por computador, se enquadra na linha de pesquisa do Laboratório de Robótica Indus-
trial e de Defesa, mais especificamente na modelagem e implementação da cinemática de robôs
industriais em ambientes computacionais, onde duas dissertações de mestrado foram defendidas
(SANTOS, 2017), (SANTOS, 2018).

1.3 OBJETIVOS

Tendo em vista importância da robótica no cenário mundial, a necessidade de tempo e os


riscos associados às fases iniciais de treinamento no que tange a programação on-line, esta
dissertação tem como objetivo geral:

22
1. partir do programa CARPA, desenvolvido no IDR Lab do IME, com o código aberto,
sendo capaz de adaptar e inserir novas funcionalidades objetivando a criação de um am-
biente para o auxílio ao treinamento do Robô Motoman MH5F, de modo a contribuir
para aumentar a efetividade do ensino, aprendizagem e treinamento de novos operadores,
oferecendo uma alternativa com baixo custo, alta similaridade e realidade, e que reduza o
tempo de treinamento, além de contribuir com o aumento da segurança.

Como objetivos específicos, esta dissertação almeja:

1. obter a resolução cinemática do robô modelado utilizando como ferramenta matemática


para a localização de multicorpos no espaço, a Teoria dos Helicoides, mais especifica-
mente através do Método dos Deslocamentos dos Helicoides Sucessivos, para a cinemá-
tica direta, e o método de Kirchhoff-Davies, para cinemática inversa;

2. implementar computacionalmente os comandos disponíveis pelo controlador FS100, res-


ponsável pelo controle do Motoman MH5F, viabilizando o treinamento da programação
on-line do robô utilizado, a partir da utilização do programa nas fases iniciais de treina-
mento, de modo a reduzir o risco de acidentes nesse primeiro contato com robô real, e
com finalidade de diminuir o tempo necessário de sua utilização;

3. criar um protocolo que gere automaticamente o código da tarefa programada, na lin-


guagem nativa do robô, possibilitando sua leitura pelo MH5F real, e ser um passo inicial
para o desenvolvimento de um software de programação off-line.

Como resultado da dissertação é apresentado o Laboratório Virtual intitulado CAMPS (Com-


puter-Aided Motoman MH5F robot Programming System) que fornece um módulo básico de
treinamento para tarefas de pick-and-place. Adicionalmente foi realizado um estudo de caso
com alunos do 5o ano de Engenharia Mecânica do IME cursando a disciplina de Introdução
à Mecatrônica, com propósito de avaliar a efetividade do uso do CAMPS na habilitação dos
estudantes ao robô MH5F.

1.4 ORGANIZAÇÃO DO TRABALHO

Esta seção destina-se a apresentar a estrutura e organização desta dissertação. Iniciando por
este capítulo, onde estão formalizados os objetivos, seguindo o Capítulo 2 onde é feita uma
revisão bibliográfica sobre a Robótica Industrial e definições em relação a robótica e VLs, além

23
de conceitos básicos de Engenharia Reversa. O Capítulo 3 apresenta a Teoria dos Helicoides,
aplicado à modelagem e simulação de robôs seriais. O Capítulo 4 diz respeito à implementação
computacional, explicação detalhada dos comandos implementados, bem como o protocolo de
salvamento no formato .JBI para ser lido no robô real. Já no Capítulo 5, foi realizado um estudo
de caso, utilizando o VL como ferramenta intermediária de ensino, entre as aulas teóricas e
práticas no MH5F, de forma a levantar indicadores, quantitativos e qualitativos, da efetividade
do CAMPS no aprendizado de programação on-line. Finalmente, no Capítulo 6, é feita uma
recapitulação sintetizada do que foi apresentado nesta dissertação, bem como suas contribuições
científicas e perspectivas para trabalhos futuros.

24
2 REVISÃO BIBLIOGRÁFICA

Neste Capítulo é feita uma revisão bibliográfica a respeito da Robótica Industrial, apresen-
tando conceitos introdutórios, porém necessários, além de definições relativas a Laboratórios
Virtuais (VL), bem como, o processo de Engenharia Reversa que é utilizado para o desenvolvi-
mento do VL.

2.1 O QUE É A ROBÓTICA?

De acordo com SICILIANO et al. (2009) a origem da robótica como é conhecida nos dias
de hoje, se deu em 1920 quando o termo robô (robot) foi apresentado pelo dramaturgo checo
Karel Capek, em sua peça R.U.R (Rossum’s Universal Robots) em referência ao termo robota,
que significa trabalho escravo nas línguas eslavas. A peça retrata os robôs como máquinas que
se aparentavam com os seres humanos, mas que trabalhavam incansavelmente, e acabaram se
voltando contra seus criadores, tentando assim, aniquilar a raça humana.
Vinte anos depois na década de 1940, a imagem do robô como um artefato mecânico teve
seu início quando o russo Isaac Asimov, conhecido escritor de ficção científica, reapresentou o
robô como um artefato de aparência humana desprovido de sentimentos. Seu comportamento
era determinado por um “cérebro” eletrônico programado por um humano. A partir disso, o
termo robótica foi então introduzido por Asimov como a ciência que estuda os robôs, e dessa
forma, foram estabelecidas pelo altor as três leis fundamentais da robótica:

1. um robô não deve machucar um ser humano, ou permitir que ele sofra algum mal;

2. um robô deve obedecer as ordens dadas por um ser humano, a menos que elas entrem em
conflito com a primeira lei;

3. e a última, um robô deve proteger sua própria existência, desde que, se proteger não entre
em conflito, tanto com a primeira, quanto com a segunda lei.

Neste cenário de ficção científica, essas leis são admissíveis, lógicas e desejáveis, entre-
tanto, a tecnologia da atualidade ainda precisa evoluir para idealiza-las. Assim sendo, NOF
(1999) propôs, de forma alternativa, três leis, adequando às propostas por Asimov, contudo,

25
num contexto de possibilidade real de utilização e empregabilidade, onde o ser humano deve
ser substituído por robôs em:

1. atividades perigosas: onde existam, ruídos, temperaturas e pressão extremas, atmosfera


tóxica, radiação, riscos físicos e outros;

2. atividades indesejáveis ou impossíveis: tarefas complexas e repetitivas, em escala nano,


micro ou macro, onde o ser humano perde capacidade de atuação; ou,

3. atividades onde são mais produtivos e econômicos: robôs trabalham noite e dia, sem
perda de desempenho mantendo o mesmo padrão da qualidade do produto.

Tais leis, servem até hoje como referência aos engenheiros e projetistas, no que se refere às
especificações para a integração e emprego de um robô, demandando um alto nível de conheci-
mento em áreas distintas da ciência de forma sinérgica, mas que, porém, proporciona um vasto
leque de possibilidades de aplicação, como ilustrado na FIG. 2.1.

FIG. 2.1: Áreas de conhecimento e robótica. (Adaptado de MACEDO & RIBEIRO (2015))

A definição do termo robótica é comumente dita como “a ciência que estuda a conexão
inteligente entre a percepção (sistema de sensoriamento) e a ação (sistema de atuação)” (TSAI,
1999; SICILIANO et al., 2009; SICILIANO & KHATIB, 2008), o que pode ser entendida
também como o estudo das máquinas que podem substituir as tarefas executadas pelo homem,
tanto no que tange aos aspectos físicos das atividades, quanto ao processo de tomada de decisão.
Segundo SICILIANO et al. (2009), um sistema robótico é composto por múltiplos subsistemas,
como esquematizado na FIG. 2.2.

26
FIG. 2.2: Sistema robótico. (Adaptado de SICILIANO et al. (2009))

O sistema de mecânico propriamente dito, é composto por um braço mecânico, pelo punho
do robô e efetuador-final escolhido (também conhecido como ferramenta ou garra). O sis-
tema de atuação, com papel de animar o sistema mecânico, é composto por servomotores,
acionadores e transmissões. Já o sistema de sensoriamento, é o responsável por coletar da-
dos, tanto do sistema mecânico (transdutores de posição), quanto dados externos do meio no
qual o robô irá atuar (com sensores de força e câmeras). Por fim, o sistema de controle, elo
entre a percepção e a ação, comanda a execução da ação atendendo as metas estabelecidas pelo
planejamento da tarefa desejada, assim como as restrições impostas pelo robô e o ambiente (SI-
CILIANO et al., 2009).
A robótica pode ser classificada de acordo com tipo de ambiente de atuação do robô. A
Robótica Avançada, normalmente se refere a robôs autônomos que devem operar em ambi-
entes pouco estruturados ou mesmo não-estruturados, isto é, com características físicas e ge-
ométricas pouco ou não conhecidas. Já a Robótica Industrial, a qual leva esse nome por ser
constituída por robôs de aplicação industrial, lida com um ambiente estruturado, onde as carac-
terísticas físicas e geométricas são conhecidas, e.g, o chão de fábrica de uma indústria; e dessa
forma precisa de baixa autonomia (SICILIANO et al., 2009).
Como a dissertação tem como foco a Robótica Industrial, será dado um enfoque maior
sobre o assunto nas próximas seções, a começar por entender adequadamente as necessidades e
objetivos de desempenho da indústria.

27
2.2 A INDUSTRIA E OS ROBÔS

De forma a contribuir com a melhoria do desempenho das indústrias, SLACK et al. (2002)
enunciaram cinco objetivos de desempenho com propósito de melhorar os processos de fabrica-
ção e atender as exigências, cada vez maiores, dos consumidores, de modo a contribuir para o
aumento da competitividade entre os produtos fabricados. Tais objetivos, encontram-se ilustra-
dos na FIG. 2.3, e podem ser definidos como:

• qualidade, que significa fazer as operações de forma certa, atendendo as especificações


de projeto e evitando retrabalhos. É um objetivo particularmente importante, uma vez que
é a parte mais visível ao consumidor, podendo provocar sua satisfação ou insatisfação.

• rapidez, que tem como significado o tempo transcorrido entre a requisição e o recebi-
mento de produtos ou serviços pelos consumidores;

• confiabilidade, que representa a confiança que o consumidor tem de receber seus bens ou
serviços exatamente na data acordada. Portanto, só é possível se avaliar a confiabilidade
de um produto/serviço após o consumidor tê-lo recebido, todavia, com o decorrer do
tempo pode ser mais importante do que qualquer outro objetivo de desempenho;

• flexibilidade, que retrata a capacidade da produção mudar o produto fabricado de alguma


forma, podendo ser a frequência com que a empresa modifique ou introduza um novo
produto no mercado, a habilidade da operação em produzir uma ampla variedade ou uma
composição de lotes de produtos, alterar os níveis de produção, ou, a habilidade de alterar
os tempos de entrega dos seus produtos/serviços.

• custo, que é o objetivo principal de produção. Menores custos de fabricação significam


não só a possibilidade de oferecer produtos a preços menores, como também o aumento
dos seus lucros.

28
Preço baixo,
Efeitos externos dos cinco margem alta
objetivos de desempenho ou ambos

Tempo de Entrega
entrega confiável
reduzido Custo

Rapidez Confiabilidade
Efeitos
Internos
Produção Operação
Rápida Confiável

Alta produtividade

Processos Total Habilidade


isentos de para
erros Mudar

Qualidade Flexibilidade

Produtos/serviços Frequência de novos


sob especificação produtos/serviços

FIG. 2.3: Objetivos de desempenho. (Adaptado de SLACK et al. (2002))

Uma forma de atender a esses objetivos é a partir da automação dos processos de fabricação,
que pode ser classificada em três diferentes níveis de automação industrial: (1) a automação
rígida, que lida com um contexto de fábrica orientada para produção em massa de um mesmo
tipo de produto; (2) a automação programável, que trata de fábricas orientadas para produção
de pequenos a médios lotes, de diferentes tipos, por permitir mudanças nas sequências de ope-
rações a serem executadas; e por fim, (3) a automação flexível, que representa a evolução da
automação programável, permitindo a fabricação de vários lotes de diferentes produtos, por
minimizar o tempo levado para a reprogramação da sequência de operações e o maquinário
empregado para passar de um lote para o outro.
Dito isso, o robô industrial possui características significantes no que diz respeito a sua
repetibilidade, versatilidade e flexibilidade. Em virtude de sua capacidade de ser reprogramado,
ele é um componente típico de sistemas de automação programáveis, todavia, também são
empregados em sistemas de automação rígida e flexível (SICILIANO et al., 2009).
Os robôs industriais podem ser considerados como um sistema multicorpos, ou seja, pos-

29
suem múltiplos corpos, ou elos, conectados por juntas, que formam uma cadeia cinemática, que
no caso dos robôs seriais, essa cadeia cinemática é aberta, e por isso, na maior parte dos casos,
possui uma quantidade de graus de liberdade (DOF) igual a quantidade de juntas (SICILIANO
et al., 2009; NORTON, 2010).
As juntas podem ser classificadas em função das juntas elementares, i.e.: (1) juntas prismáti-
cas (P), que executam movimentos lineares ao longo de um eixo, ou; (2) juntas de revolução
(R), que executam movimentos angulares em torno de um eixo, como ilustrado pela FIG. 2.4
(NORTON, 2010).

Δx Δθ

(a) Junta prismática (b) Junta de revolução

FIG. 2.4: Tipos de juntas elementares. (Autoria própria)

A análise dos tipos de junta e a ordem da sequência das três primeiras juntas classificam
o manipulador, podendo ser: robôs: (1) cartesianos; (2) cilíndricos; (3) esféricos; (4) SCARA
(Selective Compliance Articulated Robot Arm); e (5) o antropomórfico. Dependendo das di-
mensões dos elos e da sequência de posicionamento das juntas entre os mesmos, o espaço de
trabalho é modificado, como ilustrado nas TAB. 2.1 e 2.2 (SICILIANO et al., 2009).

TAB. 2.1: Classificação dos tipos de robôs industriais (SICILIANO et al., 2009)

Características Robô Esquemático

1. Robo Cartesiano

• sequência de juntas (P⊥P⊥P);


• apenas movimentos retilíneos;
• estrutura que proporciona boa rigidez;
• volume de trabalho retangular;

(SANTOS, 2017)

30
TAB. 2.2: Classificação dos tipos de robôs industriais (Continuação) (SICILIANO et al., 2009)

Características Robô Esquemático

3. Robo Cilíndricos

• sequências de juntas (RkP⊥P);


• volume de trabalho constitui um cilindro oco;

(SANTOS, 2017)

4. Robo Esféricos

• sequência de juntas (R⊥R⊥P);


• volume de trabalho constitui uma esfera oca;

(SANTOS, 2017)

5. Robo SCARA

• sequência de juntas (RkRkP);


• empregado em tarefas de montagens verticais;
• se diferencia dos robôs do tipo esférico pela
disposição das duas primeiras juntas;

(SANTOS, 2017)

6. Robo Antropomórfico

• sequência de juntas (R⊥RkR);


• volume de trabalho se aproxima a uma esfera;
• melhor manipulador quanto a destreza;

(SANTOS, 2017)

De acordo com a classificação, o robô estudado nesta dissertação, o Motoman MH5F, é clas-
sificado como um robô antropomórfico, possui seis juntas, em que as três últimas juntas com-
põem o punho esférico. Segundo SICILIANO et al. (2009) os punhos devem: ser compactos,

31
o que muitas vezes dificultam seu projeto; e possuir pelo menos três graus de liberdade (DOF),
proporcionando a destreza necessária ao robô. Os punhos esféricos, i.e., aqueles cujos eixos
de rotação das juntas se interceptam em um único ponto, proporcionam maior destreza aos
manipuladores (SICILIANO et al., 2009). A FIG. 2.5 ilustra essa definição.

(a) Punho esférico represen- (b) Punho esférico do Motoman


tado pela bibliografia (SI- MH5F (Autoria Própria)
CILIANO et al., 2009)

FIG. 2.5: Punho Esférico

2.3 PROGRAMAÇÃO DE ROBÔS INDUSTRIAIS

A programação de um robô industrial consiste basicamente no ensinamento de pontos es-


pecíficos, e na criação da tarefa utilizando linhas de comandos particulares da linguagem nativa
do robô, que, a partir de tipos de trajetória pré-estabelecidas, e.g. retilínea, circular; e de outras
funções, e.g., a abertura e fechamento de garra, permitem que a tarefa desejada seja estrutu-
rada. Na prática, a programação de um manipulador na indústria pode ser feita a partir de dois,
principais, métodos, através da programação on-line, ou da programação off-line.
Convencionalmente o processo de programação da tarefa é feito por um operador devida-
mente treinado e familiarizado com o robô, e com sua linguagem de programação nativa, que
através da utilização de um Teach Pendant Unit (TPU), dispositivo físico para controle do robô,
manobra o manipulador. Dependendo do fabricante, o TPU pode receber nomes diferentes,
como é o caso da fabricante Yaskawa Motoman, que o nomeou de Programming Pendant (PP),
devido a sua capacidade de executar, além da manipulação do robô, a programação e estrutu-
ração do código na linguagem nativa do robô, no próprio dispositivo.
O PP do Motoman, ilustrado na FIG. 2.6, possui 67 botões físicos, multifuncionais, além
de uma tela sensível ao toque (touch screen) que permite ao usuário, navegar entre múltiplos
menus.

32
Botão de início de execução
de Playback [START]
Botão de espera [HOLD]

Chave seletora do Botão de emergência


modo de operação REMOTE
PLAY
TEACH
START HOLD

Área de menus JOB

JOB CONTENT
EDIT DISPLAY UTILITY

J:TEST01 S:0000
CONTROL GROUP:R1 TOOL:

Área do display 0000 NOP


0001 SET B000 1
0002 SET B001 0 Entrada de Cartão de Memória
0003 MOVJ VJ=80.00

de uso geral 0004 MOVJ VJ=80.00


0005 DOUT OT#(10) ON
0006 TIMER T=3.00
0007 MOVJ VJ=80.00
0008 MOVJ VJ=100.00
0009 MOVJ VJ=100.00
0010 MOVJ VJ=100.00
0011 MOVJ VJ=100.00
MOVJ VJ=0.78

Tecla de navegação
Main Menu Short Cut Turn on servo power

MULTI TOOL SEL GO BACK


LAYOUT COORD DIRECT PAGE AREA
Cursor direcional ENTRY
OPEN
SELECT Tecla de seleção
MAIN SERVO
SIMPLE ASSIST CANCEL
MENU
MENU
ON
READY !?
[SELECT]
X- X+ SERVO ON
X- X+
S- S+ R- R+
HIGH
SPEED
Y- Y+ Y- Y+
L- L+ B- B+
FAST
Z-
U-
Z+
U+ MANUAL SPEED Z-
T-
Z+
T+
Seletor manual de velocidade
SLOW
E- E+ 8- 8+
Teclas de movimentos
Tecla de ativação do PP
Localizado na retaguarda do PP
SHIFT
INTER
LOCK 7SYNCRO 8
SINGLE
9 TEST
START SHIFT dos eixos
INFORM 4SMOV 5 6 BWD FWD
Deve ser pressionado para habilitar ROBOT
LIST

o uso do PP no modo Teach EX.AXIS USAGE 1 2 3 DELETE INSERT


TOOL ON TOOL ON
JOB

AUX
MOTION
TYPE
0 TOOL OF TOOL OF
JOB
MODIFY ENTER
Tecla enter
Tecla de tipo de [ENTER]
movimento
Teclado numérico
[MOTION TYPE]

FIG. 2.6: Programming Pendant (PP) do MH5F. (YASKAWA, 2014b)

Mesmo com o avanço dos anos, e os PPs terem se tornado mais ergonômicos (mais leves,
interfaces gráficas mais intuitivas, e alguns possuirem capacidade wireless), não houveram mu-
danças significativas no processo de ensino da tarefa (programação on-line), que é feito através
do PP, mediante a um processo de tentativa e erro para o posicionamento correto da garra, o qual
é dependente da experiência do operador e se torna uma barreira quando este possui pouca, ou
nenhuma experiência prévia. (YASUDA, 2017). Todavia, esse processo é ainda muito utilizado,
e mesmo que a programação off-line seja adotada na empresa, ainda é necessário a validação da
tarefa usando o PP, e desta forma, depende da destreza do operador, em ser capaz de manobrar
o robô e de programar de forma on-line.
Já na programação off-line, o programador deve ser treinado e habilitado a utilizar o software
capaz de simular a linguagem de programação do robô e a tarefa a ser realizada. Ambos os tipos
de programação possuem vantagens e desvantagens. A programação on-line, representada na
FIG. 2.7, é relativamente simples, onde o operador precisa realizar alguns passos, como:

33
• posicionar a ferramenta do robô utilizando o PP de modo a obter pontos pertencentes à
trajetória desejada;

• salvar estes pontos no controlador, e;

• criar o algoritmo necessário, estabelecendo a sequência correta dos pontos, bem como o
tipo de trajetória entre eles, compondo assim a tarefa desejada.

FIG. 2.7: Programação on-line realizada por aluno do IME. (Autoria própria)

Apesar da programação on-line ainda ser o método convencional de ensino da tarefa, ainda
é rudimentar e necessita utilizar o próprio robô para a programação, o que pode resultar na
parada de uma linha inteira de produção. Segundo PAN et al. (2012), a programação de uma
grande linha automotiva de soldagem a arco utilizando a programação on-line pode levar mais
de 8 meses, enquanto o tempo de execução do processo de soldagem é de apenas 16 horas,
resultando em uma razão de 368 vezes entre os tempos de programação e execução. Já em
SANTOS et al. (2017b), para uma tarefa mais simples de pick-and-place realizada no IDR
Lab do IME, com tempo de execução de 12 minutos, foram necessárias, aproximadamente,
27 horas de programação, ou seja, um tempo de programação 135 vezes maior do que o tempo
de execução. O fato do operador estar muitas vezes exposto a um equipamento que demanda
atenção constante para evitar acidentes, e a qualidade dos movimentos do robô dependerem da
destreza do operador também tornam-se desvantagens.

34
Em contrapartida, a programação off-line não exige a disposição do robô durante todo pro-
cesso de programação. Os softwares de programação off-line, utilizam um modelo em CAD 3D
para gerar e simular a rotina antes de utilizar o robô em si. Um exemplo disso pode ser encon-
trado na FIG. 2.8, onde é apresentado o software MotoSim da fabricante Yaskawa Motoman.

FIG. 2.8: Programação Off-line com o software MotoSim. (YASKAWA, 2017)

Entre as diversas vantagens da programação off-line, além da não utilização do robô, as mais
visíveis são: (PAN et al., 2012)

• as tarefas dos robôs podem ser programadas durante o período de desenvolvimento da


linha de produção, ou paralelamente com a produção em si;

• os programas gerados são mais flexíveis, podendo ser alterados com facilidade por inter-
médio do software, reduzindo muito a necessidade do robô; e,

• a simulação do sistema robótico geralmente está incorporada no software, permitindo


testes de diferentes rotinas de programação.

A maior parte dos software de programação off-line são desenvolvidos pelos próprios fabri-
cantes para serem utilizados em seus robôs especificamente, limitando a utilização aos robôs
de sua respectiva marca. Dentre eles podem ser citados os softwares: KUKA.Sim (KUKA,
2018), Roboguide (FANUC, 2017), Robotstudio (ABB, 2018) e Motosim (YASKAWA, 2017).

35
Todavia, existem também software mais abrangentes, que possibilitam trabalhar com diferen-
tes marcas de robôs, como o RobotDK (ROBOTDK, 2018), Octopuz (OCTOPUZ, 2018) e o
Fastsuite da CENIT (FASTSUITE, 2017).
Entretanto, mesmo dispondo desse tipo de software, a programação off-line tem sua com-
plexidade. Requer ressaltar que há necessidade de um investimento relativamente alto para a
aquisição das licenças, e não dispensa treinamento no software, o que também pode represen-
tar custo e tempo adicionais. Outro ponto importante é que, apesar do tempo de utilização do
equipamento real ser reduzido consideravelmente, a programação off-line requer uma etapa de
calibração entre o modelo gerado em CAD 3D e o ambiente real. Finalmente, cabe ressaltar
que ainda é necessário o uso do robô real, já que é preciso realizar a validação do programa, o
que requer conhecimentos de operação do robô.
Cada fabricante de robô possui sua linguagem de programação própria, o que implica na
necessidade dos programadores de entenderem variadas linguagens de programação em função
dos robôs que irão operar, embora o conceito associado à programação guardar similaridades.

2.4 LABORATÓRIO VIRTUAL - VL

Tradicionalmente, a prática em laboratórios reais é uma eficiente estratégia pedagógica para


consolidar os fundamentos teóricos ensinados em sala de aula, tanto nos cursos técnicos, como
nos de engenharia. Todavia, é um grande desafio disponibilizar e manter laboratórios reais
com equipamentos de última geração, na quantidade adequada ao número de alunos, o que re-
quer, além de um alto investimento inicial, recursos humanos para monitorar o treinamento e
manutenção dos equipamentos. Assim sendo, diante de altos custos associados e da necessi-
dade de um corpo técnico em quantidade e qualidade adequadas, ainda existe um outro fator
agravante: a alta demanda de tempo envolvido no treinamento, proporcional à quantidade e a
inexperiência dos alunos em processo de aprendizagem (JARA et al., 2011a).
No que tange à Robótica Industrial este cenário não é diferente. Dispor de prática em labo-
ratórios com robôs industriais, favorece o aprendizado dos fundamentos teóricos em operação
e programação, possibilitando, em última análise, colaborar para: (1) que o país possa dispor
de pessoal capacitado em quantidade proporcional à importância estratégica destes dispositivos
mecatrônicos; (2) fomentar o aumento da automatização dos processos de fabricação objeti-
vando a alta produtividade total.
O fato a considerar é que durante o treinamento de alunos com robôs industriais, os procedi-
mentos de segurança, operação e programação estão em processo de assimilação. Naturalmente,

36
a destreza e os condicionamentos mentais estão em construção progressiva, o que acontece com
o decorrer do tempo em atividades práticas monitoradas. Assim sendo, tais atividades devem
seguir procedimentos de segurança bem definidos, com ainda maior rigor nas fases iniciais,
visando diminuir o alto risco de acidentes com pessoal, e de danos e avarias ao equipamento.
Com o aumento da capacidade e acessibilidade dos computadores à população, novas tec-
nologias ganham desenvolvimento e tornam-se mais acessíveis e eficientes, passando a serem
viáveis para implementação em educação. Um exemplo é o aumento da capacidade de pro-
cessamento das placas de vídeo, que possibilitam a criação de modelos virtuais com maior
semelhança aos equivalentes reais, e dos processadores, cada vez mais rápidos e capazes de
processar quantidades cada vez maiores de cálculos. Esses avanços tecnológicos tornaram pos-
sível a criação de Laboratórios Virtuais (Virtual Laboratories - VLs), cada vez mais interativos
e fieis a realidade.

2.4.1 DEFINIÇÃO DE UM LABORATÓRIO VIRTUAL

O termo VL é bastante encontrado na literatura, sendo utilizado com algumas variações em


função de componentes utilizados, tecnologias envolvidas e objetivos específicos.
TUTTAS & WAGNER (2001), define os VLs como “softwares de simulação de disposi-
tivos físicos (e.g., instrumentos de medição) ou outros sistemas da vida real (e.g., sistemas
econômicos). Animação computacional e visualização podem ajudar a ilustrar relações com-
plexas durante o ensino em sala de aula, assim como na aprendizagem individual”.
Já para SAAD et al. (2001): “o propósito principal do VL é permitir a experimentação
independente de distância, de forma similar ao que ocorre com laboratórios convencionais”.
BABICH & MAVROMMATIS (2004), com uma análise das duas definições propostas por
TUTTAS & WAGNER (2001) e SAAD et al. (2001), afirmou que o termo VL ainda não está
completamente definido, e disse que: “um VL é baseado em simulações on-line de computador
e experimentos, mas não limitado a eles. VL é um conjunto de múltiplas técnicas síncronas
e assíncronas de aprendizagem e ferramentas, as quais são complementares e proporcionam a
forma mais eficiente para dominar cursos de engenharia por estudo remoto”. Além disso afirma
que o VL tem como objetivo “abrir novas possibilidades, as quais não podem ser alcançadas
sem a simulação computacional, devido a problemas como custo elevado e à alta demanda de
tempo que um laboratório real consome”.
POTKONJAK et al. (2010) afirmou que “o propósito de um VL é na verdade dual: primeira-
mente é substituir o laboratório convencional, permitindo assim o ensino a distância (e-learning);

37
por outro lado, é o passo inicial em um processo de ensino regular, para preparar os estudantes
para o laboratório real”.
BABATEEN (2015) propôs outra definição onde “o VL pode ser definido como um ambi-
ente de estudo e aprendizagem virtual, que estimula o laboratório real. Ele fornece aos estu-
dantes ferramentas, materiais e conjuntos de laboratórios no computador, a fim de realizar ex-
perimentos subjetivamente, ou dentro de um grupo, em qualquer lugar e a qualquer momento.
Esses experimentos são salvos em CD ou em um web site”.
POTKONJAK et al. (2016) propôs uma outra definição onde “operar um VL deve propor-
cionar que o estudante se sinta trabalhando com dispositivos reais autênticos em um espaço
autêntico e real”. Além disso afirmou que “o estágio final de treinamento requer o equipamento
real, pois, para o aluno conseguir as habilidades mais ‘finas’ é geralmente necessário que ele
tenha experiência pessoal prática”.
De fato, a partir das diversas definições propostas sobre VL na literatura pode-se concluir
que, ainda, não há uma definição específica e única para os VLs. Dessa forma, é realizada, a
partir das definições supracitadas, uma definição que acredita-se adequada para guiar o desen-
volvimento do VL proposto nesta dissertação, ou seja:
“O Laboratório Virtual (VL) é um ambiente de estudo e aprendizagem virtual, que
simula o comportamento do equipamento e faz com que o estudante se sinta trabalhando
com o dispositivo real. Ele fornece materiais e ferramentas de forma a capacitar o aluno
a estudar os conceitos do equipamento, independentemente de tempo e lugar, oferecendo
opção de salvar o trabalho realizado. Além disso o VL deve servir como uma forma inter-
mediária de aprendizagem i.e., não dispensa a utilização do equipamento real, entretanto,
deve ser capaz de preparar os alunos para o laboratório convencional, independentemente
se o curso é baseado inteiramente a distância ou não.”
Esta definição buscou unir conceitos encontrados na literatura e serve como premissa ao
desenvolvimento do VL proposto nesta dissertação.

2.4.2 LABORATÓRIO VIRTUAL: VANTAGENS E DESVANTAGENS

Laboratórios Virtuais apresentam vantagens significativas, que contribuem para a eficiência


do ensino e aprendizagem. POTKONJAK et al. (2016) destacou seis vantagens: (1) baixo
custo; (2) flexibilidade em simular experimentos diferentes; (3) acesso de múltiplos estudantes;
(4) possibilidade da fácil mudança da configuração do sistema; (5) resistente a danos, por se
tratar de um ambiente virtual, colisões são “permitidas”; (6) possibilidade de ver itens que são

38
transparentes no equipamento real, e.g. espaço de trabalho do robô.
Entretanto, também são apontadas algumas desvantagens proporcionadas para cursos re-
alizados exclusivamente com VLs, sendo elas: (1) a necessidade de recursos computacionais,
que apesar de mais baratos do que o equipamento real, possuem alta complexidade relativa,
principalmente em desenhos mecânicos, em CAD 3D, complexos e modelagem física do pro-
blema; (2) como o VL é por natureza um ambiente virtual, que não existe, o estudante pode
apresentar falta de seriedade, responsabilidade e cuidado ao realizar a tarefa, o que não ocor-
reria com o equipamento real; e, (3) o fato de que usualmente o último estágio do treinamento
exigir que o aluno utilize o equipamento real, pois somente assim, será possível adquirir, de
fato, a proficiência com o equipamento.

2.5 CRITÉRIO PARA AVALIAÇÃO DE VLS

Para concepção do VL proposto nesta dissertação, o CAMPS, buscou-se alinhamento ao


requisito básico estabelecido por POTKONJAK et al. (2016), que ressalta a importância do
aluno sentir-se como se estivesse diante do laboratório e do equipamento real em operação ao
utilizar o laboratório virtual.
POTKONJAK et al. (2016) então, propôs quatro critérios de avaliação de VLs, sendo eles:

• (C1) a interface do usuário deve ser idêntica a do dispositivo correspondente real;

• (C2) o comportamento do sistema virtual deve ser equivalente ao do correspondente


físico;

• (C3) o ambiente de visualização gráfica deve fornecer ao aluno a sensação de estar


operando o equipamento real;

• (C4) fornecer um espaço de laboratório 3D que permita a comunicação e a colaboração


entre os alunos, bem como, com o supervisor do laboratório (ou especialista no campo).

Desta forma, foram adotados para a concepção, projeto, desenvolvimento do CAMPS, os


três primeiros critérios. O quarto critério (C4) estabelecido por POTKONJAK et al. (2016), não
foi implementado no CAMPS, pois requer um ambiente de simulação que extrapola a função
de simular o equipamento. O VL em foco não oferece interatividade com personagens vir-
tuais (avatares) dentro de um “Mundo Virtual” baseado no conceito de “serious games”, ou
seja, jogos que são usados para treinamento, simulação ou educação, projetados para funcionar

39
em computadores pessoais ou consoles de vídeo game (SUSI et al., 2007). A proposta do
CAMPS, abordada nesta dissertação, tem como foco principal, estabelecer a relação usuário/e-
quipamento, e não usuário/monitor ou usuário/usuário, como infere o critério C4.
Entretanto, foi adicionado um quinto critério abordado por JARA et al. (2011a), o qual
infere que:

• (C5) o simulador deve apresentar uma interface gráfica interativa, de modo que dispense
a necessidade do conhecimento em algum tipo de linguagem de programação para exe-
cutar a simulação, ou seja, deseja-se um nível de abstração de alto nível, onde a única
linguagem de programação utilizada durante o treinamento é a linguagem “nativa” do
robô que via um PP virtual, o usuário realiza a simulação.

Este critério (C5) foi considerado relevante, já que em muitos casos, principalmente quando
são considerados alguns softwares comerciais ou livres, de uso genérico, existe a necessidade de
se conhecer uma linguagem nativa do ambiente de desenvolvimento do VL, para poder realizar
as simulações.
De modo a alcançar êxito nos critérios elencados, buscou-se utilizar conceitos de Enge-
nharia Reversa para mapear as funcionalidades do MH5F, para tal, o item a seguir apresenta
conceitos relativos que deram suporte e método ao mapeamento.

2.6 CONCEITOS DE ENGENHARIA REVERSA

A análise do Robô Motoman MH5F objetivando o desenvolvimento de um VL foi feita


a partir de uma abordagem de Engenharia Reversa (Reverse Engineering - RE). Usualmente
o projeto de engenharia, ou Engenharia Direta (Forward Engineering - FE) envolve grande
criatividade e originalidade, é considerado o processo de inventar um sistema, componente ou
processo que satisfaça os desafios de engenharia e necessidades desejadas. Já a RE, foca na
avaliação e analise para reinventar as peças originais de um produto, complementando limi-
tações realísticas com soluções alternativas de engenharia, e tem se tornado uma prática padrão
para engenheiros que precisam replicar ou reparar um componente desgastado quando dados
originais, ou especificações não estão disponíveis. (WANG, 2011)
A prática da RE é uma ciência multidisciplinar e pode ser aplicada em diversos campos
do conhecimento. Suas aplicações primárias são tanto recriar uma imagem espelhada da peça
original, quanto decodificar a função de um mecanismo, ou recriar os eventos do que aconte-
ceu. Entretanto, a utilização da RE vai além da reprodução de um componente mecânico, ela

40
também é utilizada em prototipagem de novos projetos ou peças que necessitam ser reparadas.
Além disso é altamente utilizada em indústrias de tecnologia de informação e software, desde o
desenvolvimento do código de software até segurança de redes de internet. (WANG, 2011)
Quando aplicada em software, a Engenharia Reversa de Softwares tem como função analisar
um sistema específico para assim criar suas representações em um maior nível de abstração, que
esquematicamente encontra-se ilustrada na FIG. 2.9. Em Engenharia de Software níveis altos
de abstração tipicamente envolvem conceitos e requerimentos, enquanto níveis mais baixos, o
projeto e implementação. Desta forma, a RE de software, realiza transformações de um nível de
abstração mais baixo, para um mais alto, reestruturando transformações dentro de um mesmo
nível de abstração (WANG, 2011; PRESSMAN, 2011).

Requisitos Design Implementação


(restrições, objetivos,
regras comerciais)
engenharia engenharia
direta direta
engenharia engenharia
reversa reversa

recuperação
recuperação de design
de design

Reengenharia Reengenharia
(renovação) (renovação)

reestruturação reestruturação reestruturação,


documentação

FIG. 2.9: RE e níveis de abstração. (CHIKOFSKY & CROSS, 1990)

O principal objetivo da RE de softwares é ajudar o entendimento do projeto e da estrutura


interna de programas complexos. Neste contexto, MERLO et al. (1995), propõem um modelo
para de RE completo, que foi consolidado por PRESSMAN (2011), resumindo-se na realização
das seguintes etapas:

1. analisar os eventos que representam as funções básicas (ex: teclas do teclado e cliques do
mouse) que a interface de comunicação com o usuário deve processar;

2. descrever de forma compacta a resposta comportamental do sistema associada aos even-


tos;

41
3. analisar possíveis substitutos, ou seja, considerar se conceitos de equivalência de inter-
faces são relevantes.

Nesse contexto de RE, o desenvolvimento do CAMPS demandou ambos os métodos, RE de


produto, onde foi necessário para descobrir as propriedades do equipamento físico, i.e. tamanho
dos elos, localização e sentido das juntas, fator de conversão de pulso para grau, e o próprio
modelo em CAD 3D. Já a RE de software foi necessária para entender as propriedades, e ações
básicas que o usuário vivencia ao interagir com o PP.
A RE fornece uma metodologia para o levantamento dos requisitos necessários ao VL do
MH5F, fundamental para pautar e possibilitar o processo de Engenharia Direta do CAMPS,
apresentado no Capítulo 3. A metodologia de desenvolvimento tem como foco atender a
definição de VL resultante da união de aspectos propostos por diversos autores, bem como,
atender aos critérios de avaliação previamente estabelecidos.

42
3 METODOLOGIA PARA DESENVOLVIMENTO DO CAMPS

Nesse capítulo são apresentadas as etapas do desenvolvimento do CAMPS, que consistem


na aplicação dos conceitos de Engenharia Reversa (RE) introduzidos no capítulo anterior, para
obtenção dos requisitos operacionais do VL, de modo a serem submetidos aos critérios de ava-
liação levantados.
Inicia-se com a formulação da metodologia adotada, onde as etapas encontram-se apresen-
tadas a seguir de forma sumária, para facilitar a compreensão da linha de ação empregada para
obtenção do CAMPS, na seguinte ordem:

1. estabelecer e identificar os conceitos principais para serem abordados durante a execução


dos estudos no VL;

2. identificação dos elementos básicos do experimento, operações e relações entre eles;

3. desenvolvimento do modelo formal para o cenário de experimentos de laboratório e sua


adaptação ao método matemático mais apropriado;

4. identificação da abordagem de programação orientada-objeto para os possíveis cenários


do experimento de laboratório;

5. implementação das abordagens sugeridas em exemplos da vida real.

Cabe ressaltar que as etapas foram extraídas de HOVAKIMYAN et al. (2013), que propõem
uma metodologia com treze etapas para desenvolvimento de VLs específicos para a Química.
Todavia, apesar do foco desta dissertação ser Robótica Industrial, essas cinco etapas estão ali-
nhadas com os conceitos de RE e são pertinentes para o desenvolvimento do CAMPS. Desta
forma, são apresentadas, de forma detalhada, nas seções deste capítulo.

3.1 ESTABELECER E IDENTIFICAR OS CONCEITOS PRINCIPAIS

O conceito primário a ser identificado é o procedimento de segurança. Mesmo que o VL


não apresente risco ao aluno, nem provoque danos ao equipamento real, este conceito deve ser
consolidado durante o processo de aprendizagem e, desta forma, os dispositivos de segurança

43
que estão presentes no PP devem ser implementados no VL, demandando sua execução para dar-
se início a operação do robô virtual. O procedimento consiste em liberar o botão de emergência
da trava de segurança e a chave de comando posta na posição “Teach” para que possa dar inicio
ao procedimento de programação on-line.
Apesar de necessário tomar as devidas medidas de segurança e ter o conhecimento do
equipamento, em geral, o procedimento de programação on-line é relativamente simples, sendo
necessário, normalmente, realizar três etapas básicas, como apresentado na Seção 2.3, sendo
elas:

1. manobrar o robô através do TPU de modo a posicionar o efetuador-final em um ponto


“alvo” desejado;

2. salvar o ponto no controlador, associando uma numeração que não esteja sendo usada, e
repetir a primeira etapa, de forma a gerar uma “nuvem” de pontos de interesse que irão
compor a trajetória desejada; e,

3. criar um algoritmo, a partir dos comandos da linguagem nativa do robô utilizado, de modo
a compor a tarefa desejada, com base nos pontos ensinados - os quais geram a trajetória
do robô - e outros comandos e.g., abrir e fechar a garra.

Entretanto, dependendo do robô utilizado e da tarefa a ser executada, cada uma dessas
etapas demanda conhecimentos diferentes em relação a: (1) comandos a serem utilizados, que
são específicos dependendo da linguagem de programação do robô em questão; e, (2) técnicas
que auxiliam o processo de salvamento de pontos. Desta forma, como o objetivo do CAMPS é
ser um laboratório virtual que seja capaz de reproduzir e ensinar de maneira prévia, conceitos
e funcionalidades específicas do robô Motoman MH5F, utilizados durante o treinamento de
programação on-line tradicionalmente realizado pelos estudantes, o ponto de partida para definir
quais são os principais conceitos a serem abordados pelo VL é conhecer a tarefa desejada,
uma vez que o robô em si já está definido.
A primeira tarefa para introduzir os conceitos de programação deve ser simples, e viabilizar
que fundamentos introdutórios sejam observados. Assim sendo, a tarefa escolhida é a mesma
abordada por SANTOS et al. (2017a), que é, tradicionalmente, usada durante a habilitação dos
alunos do IME. Consta de uma operação de pick-and-place, onde deve ser realizada a reorga-
nização de três peças cúbicas de cores distintas, empilhadas uma sobre as outras num pallet
de armazenamento. Inicialmente as peças se encontram empilhadas conforme a FIG. 3.1(a),

44
na ordem: azul; amarela; e vermelha, onde o objetivo é programar o robô para que ele possa
reorganizar os blocos a partir do processo ilustrado pelas FIG. 3.1(a)-(g), usando apenas dois
espaços vagos no pallet, e posteriormente indo para a ordem final: amarela; vermelha; e azul,
como ilustrado pela FIG. 3.1(g).

(a) (b) (c) (d)

(e) (f) (g)

FIG. 3.1: Sequencia da tarefa de Pick-and-Place. (Autoria própria)

A partir do desenvolvimento da tarefa, é possível listar os conceitos de programação on-line


que podem ser abordados no VL, bem como todos os comandos e funcionalidades, essenciais
para serem implementados no CAMPS, como detalhado a seguir.

3.1.1 POSIÇÃO DE HOME

O primeiro conceito a ser ensinado ao aluno, é a posição inicial do robô, chamada de HOME.
Esta posição tem como característica possuir os valores do encoder de cada junta zerados.
Usualmente, ao ligar e ao desligar o robô, ou iniciar e ao finalizar uma tarefa, essa posição
serve como referência e é convencionalmente utilizada, principalmente na troca de programas,
como forma de evitar a ocorrência de acidentes.

3.1.2 MODOS DE MOVIMENTAÇÃO E VELOCIDADES DE MANIPULAÇÃO DO ROBÔ

O segundo conceito a ser abordado, refere-se aos modos de movimentação, que permitem
que o operador manobre o robô de uma posição para outra durante o processo de ensino de pon-
tos. O Motoman MH5F, dispõe de quatro modos de movimentação: juntas (JOINT); coorde-
nadas da base (BASE); coordenadas da ferramenta (TOOL); e, coordenadas do usuário (USER).
Entretanto, na fase inicial de treinamento optou-se por apresentar ao aluno somente o primeiro

45
e o terceiro modos durante a programação, ou seja, os modos de junta e de coordenadas da
ferramenta, como ilustrado nas FIG. 3.2(a) e (b).

(a) Modo junta (b) Modo ferramenta

FIG. 3.2: Tipos de movimentação. (Autoria própria)

No modo de junta, o robô move cada uma de suas juntas individualmente. Para o caso do
robô Motoman, especificamente, cada uma das juntas recebe um nome específico composto pela
primeira leta das palavras: Swing (S); Lower arm (L); Upper arm (U); Rotation (R); Bend (B);
e, Twist (T), iniciando pela base até a última junta anterior ao flange aonde é conectada a fer-
ramenta, e assim, formando pelas iniciais a palavra SLURBT, como é utilizado pela própria
fabricante para auxiliar os operadores durante a operação do MH5F. Quando uma junta é movi-
mentada utilizando o modo JOINT, as posições dos enconders são alteradas somente em relação
ao eixo da junta, enquanto as demais não se alteram. Esse modo é direto e mais rápido do que
os demais já que não é necessário calcular uma trajetória específica (AMATROL, 2005).
Ao utilizar o sistema de coordenadas da ferramenta (TOOL), o manipulador se movimenta
em uma trajetória linear em relação ao referencial definido no efetuador final. O sistema de
coordenadas da ferramenta segue ao longo da mesma direção do sistema de coordenadas que se
encontra no Tool Center Point (TCP) (ponto específico dos robôs industriais que fica localizado
próximo a ponta da ferramenta, e pode ser regulado de acordo com o tipo de efetuador utilizado),
e muda sua orientação toda vez que a ferramenta sofre inclinações de rolamento, tombamento
e arfagem (roll, pitch e yaw). O eixo +Zf , da ferramenta, se estende diretamente na frente da
garra do robô, o eixo +Xf vai diretamente para cima da garra, e o eixo +Yf vai diretamente à
direita da garra, conforme ilustra a FIG. 3.3. O modo de referência na ferramenta permite que
o operador realize posicionamentos exatos do robô em um ângulo que não seja paralelo à base

46
do manipulador. Isto permite que o operador movimente o robô numa linha reta com relação ao
efetuador-final do manipulador, como mostra a FIG. 3.2(b), facilitando o processo de ensinar
pontos.

xf

zf
yf TCP

FIG. 3.3: Sentido do sistema de coordenadas da ferramenta. (Autoria própria)

3.1.3 NUVEM DE PONTOS E PONTOS CARACTERÍSTICOS

A criação da “nuvem” de pontos que constitui a tarefa é uma das atividades mais impor-
tantes durante o processo de programação on-line, pois, é a partir dos pontos ensinados que
serão criadas as trajetórias que definem a tarefa do robô, e um ponto mal ensinado, significa
retrabalho. Desta forma, esse conceito se torna relevante e deve ser abordado pelo CAMPS.
Segundo AMATROL (2013), em uma tarefa onde é necessário posicionar a garra do robô,
que carrega a peça para uma posição com tolerâncias pequenas, como a tarefa de pick-and-place
adotada no treinamento, é recomentado utilizar três tipos de pontos durante a aproximação e
afastamento do efetuador-final, representados pela FIG. 3.4. O primeiro é chamado de chamado
de ponto de hover (FIG. 3.4(a)), que é um ponto de segurança, onde não há riscos de colisão
com nenhum equipamento no ambiente, e assim, o robô pode se movimentar mais rapidamente;
O segundo, é o ponto de aproximação (FIG. 3.4(b)), que é um ponto mais próximo da peça ou
área em que o efetuador-final deve entrar em contado. A AMATROL (2013) recomenda que a
distância entre o ponto de aproximação e o de contato seja de aproximadamente 1 polegada. O
último, é o ponto de contato (FIG. 3.4(c)) que é um ponto específico em que o efetuador-final
consiga realizar sua atividade-fim, i.e. agarrar a peça. Vale citar que nessa etapa é necessário
obter a equidistância adequada entre extremidades dos “dedos” da garra (extremidades internas
da garra) e a superfície do objeto alvo antes de, efetivamente, ocorrer o fechamento da ferra-
menta para não deslocar a peça, evitando que uma extremidade entre em contato com o objeto

47
antes da outra, e dessa forma, o “empurrando”.

2
3

(a) Ponto de Hover (b) Ponto de Aproximação (c) Ponto de Contato

FIG. 3.4: Pontos característicos de manipulação de robôs. (Autoria própria)

3.1.4 CRIAÇÃO E DESENVOLVIMENTO DE JOBS

Após finalizada a etapa de criação da “nuvem” de pontos que constitui a tarefa, segue o
processo de criação e desenvolvimento do programa, que representa a rotina da tarefa que o
robô precisa executar, nomeada pela Yaskawa de JOB. Esse procedimento é bastante simples e
consiste na criação do JOB efetivamente, onde é possível atribuir um nome, usando um teclado
alfanumérico que aparece na tela do PP, e encadear uma sequência lógica contendo comandos
de forma a estruturar a rotina da tarefa.

3.1.4.1 TIPOS DE TRAJETÓRIA

Para o desenvolvimento do código da tarefa de pick-and-place adotada, são necessários qua-


tro tipos de comandos diferentes: (1) MOVJ, movimentação junta a junta; (2) MOVL, movi-
mentação linear; (3) DOUT, device output, utilizado para abrir e fechar a garra como será
explicado na próxima seção, e; (4) TIMER, comando que tem o objetivo de fazer com que o
robô aguarde um determinado tempo.
Os dois primeiros comandos utilizados, são de muita relevância durante o desenvolvimento

48
do JOB, pois representam os tipos de trajetória, em que o robô pode utilizar durante a movi-
mentação entre os pontos, e assim gerar a trajetória da tarefa. Em geral, existem três principais
tipos de trajetória: ponto a ponto, linear e circular; Entretanto, apesar do MH5F disponibilizar
os três tipos, durante a tarefa de habilitação são utilizadas somente as trajetórias ponto a ponto,
e linear, e dessa forma, somente essas duas foram implementadas no CAMPS.

• trajetória ponto a ponto (MOVJ): neste tipo de movimentação, o efetuador-final do


robô se movimenta da posição atual à posição do ponto de destino, através de uma in-
terpolação das coordenadas de junta, e desta forma segue o caminho mais conveniente
(YASKAWA, 2014b). Assim, se o robô for cartesiano, esta trajetória pode ser uma linha
reta, entretanto, um robô articulado, como o antropomórfico utilizado, vai alcançar a
posição de destino através da rotação de algumas juntas, assim, a trajetória terá, geral-
mente, a forma de um arco, como ilustrado na FIG. 3.5(a) (AMATROL, 2004).

• trajetória linear (MOVL): durante a movimentação linear, o robô movimenta o atuador


final da posição atual para a posição de destino utilizando uma interpolação linear, cuja
trajetória é uma linha reta, conforme ilustrado na FIG. 3.5(b). Essa movimentação é
muito importante em qualquer tarefa de montagem na qual uma peça deve ser acoplada
em outra.

(a) (b)

FIG. 3.5: Trajetórias obtidas via MOVJ e MOVL. (Autoria própria)

3.1.4.2 ABERTURA E FECHAMENTO DA GARRA

Após apresentar a estratégia para criação de pontos, o próximo conceito necessário, é a ati-
vação do efetuador-final. Muita das vezes, o robô é comprado sem a ferramenta, que é adquirida
separadamente levando em conta o tipo de tarefa, por isso, muitas vezes é considerada um

49
acessório, e atuada via output, condição que ocorre no Motoman do MecatrIME, que possui
uma garra pneumática instalada como output 1 - OT#(1). Como nesse caso se trata de uma
tarefa de pick-and-place a ativação do output consiste na abertura e fechamento da garra.
No caso do MH5F instalado no IME, são necessários dois comandos para atuar na abertu-
ra/fechamento da garra. O primeiro, chamado de DOUT (device output); e o segundo chamado
TIMER, comando que tem o objetivo de fazer com que o robô aguarde um determinado tempo.
O segundo comando se torna necessário pelo fato da garra pneumática possuir um tempo de
resposta relativamente maior do que os comandos elétricos enviados para movimentação das
juntas do robô, então sempre que utilizado o DOUT para fechar a garra (FIG. 3.6(b)), deve ser
utilizado o comando TIMER com o tempo de 1 s (FIG. 3.6(c)), com o intuito de dar o tempo
necessário para a garra pneumática fechar completamente e agarrar a garra, antes do robô sair
e continuar a tarefa (FIG. 3.6(d)). Caso contrário, o robô irá se mexer antes da garra fornecer a
força normal necessária para efetivamente segurar a peça.

(a) (b) (c) (d)

FIG. 3.6: Procedimento de fechar ou abrir a garra do MH5F. (Autoria própria)

3.1.4.3 CAPACIDADE DE DEPURAR O JOB

O último conceito necessário a ser ensinado aos alunos é a depuração do código em sí.
Essa etapa também é de extrema importância, pois é o momento em que o programador de
robôs verifica se o código tem algum tipo de erro. Consiste em executar linha-a-linha do JOB
e analisar se o robô executa a tarefa na forma correta, e face a importância para o treinamento,
cabe implementação no CAMPS.

3.2 IDENTIFICAÇÃO DOS ELEMENTOS BÁSICOS, OPERAÇÕES E RELAÇÕES

Após estabelecidos os conceitos principais que o VL irá abordar, ou seja, o que se pretende
ensinar ao aluno, o próximo passo é identificar os elementos básicos necessários, que devem

50
estar presentes no VL de forma a atender os critérios estabelecidos na Seção 2.5, bem como as
funcionalidades de operação e a relação entre eles. Assim, o objetivo desta seção é apresentar,
de forma detalhada os itens físicos, e as funcionalidades (itens abstratos) necessárias a serem
implementadas no VL de forma a garantir que o VL seja o mais similar possível ao laboratório
real, no que diz respeito à tarefa básica utilizada para fixar os conceitos, e que atenda cada um
dos critérios, conforme detalhado a seguir.
O critério (C1) avalia o quão similar ao real é a interface do VL com o usuário. Isto re-
sulta na necessidade de ser implementado um PP virtual no CAMPS, devendo possuir a maior
similaridade possível com a TPU real do Motoman.
O critério (C2) avalia o comportamento do sistema virtual, o que implica que as funcio-
nalidades do PP do CAMPS sejam similares ao real, possibilitando a aplicação dos conceitos
presentes na tarefa, basicamente no que tange à capacidade de manobrar o robô nos modos
JOINT e TOOL; no acionamento da garra, no processo de ensinar pontos; e na criação e simu-
lação comando a comando do programa escrito (JOB) pelo aluno.
O critério (C3) avalia o ambiente de visualização gráfica, o que implica que os modelos
em CAD 3D do MH5F, pallet, blocos presentes na tarefa de habilitação e elementos de cenário
como mesa e o pedestal do robô estejam compondo um ambiente virtual, que permita a nave-
gação do usuário, fornecendo a capacidade de visualização em ângulos e posições, diferentes,
bem como profundidade a partir da aplicação de zoom.
O critério (C4) avalia a comunicação entre alunos e supervisor no VL, que não foi imple-
mentado no CAMPS. Assim, o VL demanda um monitor presencial para instrução, ou seja,
atualmente não possui capacidade de ser utilizado em ensino à distância.
O critério (C5) avalia a ausência da necessidade de conhecimento da linguagem de pro-
gramação computacional na qual o VL foi concebido. O CAMPS não exige conhecimento
qualquer, além de clicar em um ícone para iniciar o programa e usar o mouse para navegar no
cenário, ao ser utilizado os botões direito e esquerdo para rotacionar e transladar, bem como o
uso do Ctrl em conjunto com mouse para zoom. Além disso, comando algum do RAD Studio
Tokyo (software que foi utilizado para o desenvolvimento do CAMPS) precisa ser digitado,
focando somente nos comandos da linguagem INFORM III do MH5F, alvo dos conceitos que
almejam ser ensinados.

51
3.3 MODELO FORMAL PARA O VL

Após o detalhamento dos elementos básicos do VL, faz-se necessário desenvolver um mo-
delo formal para o cenário do VL e sua adaptação ao modelo matemático mais apropriado.
Assim sendo, foi realizada nessa seção modelagem dos itens físicos do sistema, i.e, robô, ambi-
ente e o PP, utilizando os conceitos de Engenharia Reversa introduzidos na Seção 2.6, que por
sua vez foi dividida em três etapas, (1) escolha do modelo matemático para resolução cinemá-
tica do robô; (2) modelagem em CAD 3D dos componentes do cenário virtual e adequação ao
método matemático escolhido para o posicionamento de cada componente no cenário; e, (3) a
modelagem em CAD 3D do PP virtual.

3.3.1 MODELAGEM DO ROBÔ E DOS COMPONENTES DE CENÁRIO

A cinemática é a ciência do movimento, que trata a movimentação de um objeto sem levar


em conta as forças que o causam. Sua análise possibilita o estudo da posição, velocidade e
aceleração a partir da posição em relação ao tempo do objeto analisado. Sua análise significa
o estudo de todas as propriedades, tanto geométricas, (e.g corpos, posições das juntas), quanto
baseadas no tempo (e.g movimento das juntas, corpos, etc.), podendo ser dividida em (CRAIG,
2005):

• cinemática direta: a qual tem o objetivo de calcular a posição e orientação do efetuador


final, em relação a um referencial absoluto, tendo como parâmetros variáveis de entrada,
as movimentações das juntas;

• cinemática inversa: tem como objetivo descobrir o vetor posição das juntas, a partir de
variáveis de entrada que são os vetores de posição e orientação do efetuador-final em
relação ao referencial absoluto.

A modelagem cinemática usada no CAMPS é feita a partir da Teoria dos Helicoides, mais
especificamente através do Método dos Deslocamentos dos Helicoides Sucessivos (MDHS).
A escolha desse método, em relação à convenção de Denavit-Hartenberg (DH), vem da maior
simplicidade no processo de obtenção e implementação computacional do modelo cinemático
baseado em ROCHA et al. (2011), entretanto, a modelagem pela convenção de DH também foi
feita, e encontra-se no Apêndice 8.2.

52
3.3.1.1 TEORIA DOS HELICOIDES

Segundo TSAI (1999), um helicoide é um ente geométrico que pode ser definido a partir de
quatro parâmetros:

1. um vetor unitário na direção do movimento helicoidal, s = [sx , sy , sz ]T ;

2. um vetor posição, s0 = [s0x , s0y , s0z ]T , que liga o referencial absoluto a um ponto perten-
cente ao eixo do helicoide;

3. um ângulo, θ, que define o movimento de rotação em torno do eixo do helicoide; e,

4. um comprimento t que representa a translação ao longo do eixo helicoidal.

A partir desses quatro parâmetros, é possível representar o deslocamento de um ponto


solidário a um corpo rígido realizando uma trajetória helicoidal, conforme pode ser visualizado
na FIG. 3.7(a) e (b).

A
P
t t
A A
Pr Pr
B
B P
P
rB
S0 rA
r A
S0 p
B
p

s s0 s s0
z z

y y
x x
(a) Representação de um corpo rígido (b) Análise vetorial

FIG. 3.7: Deslocamento helicoidal. (Autoria própria)

O Teorema de Chasles afirma que “independentemente de como um corpo rígido é deslo-


cado de um lugar para outro, o seu deslocamento pode ser definido como uma rotação em
torno, e uma translação ao longo de um eixo”. Tal combinação de translação e rotação pode ser
considerado um Deslocamento Helicoidal, e assim, ser representado por:

pA = RB
A B
p + qA (3.1)

53
De forma generalizada, pode-se escrever a EQ. 3.1 como:

p̃A = TBA p̃B (3.2)

onde p̃A = [pA 1]T é o vetor na forma homogênea de localização do ponto alvo, isto é, onde
se deseja alcançar; p̃B = [pB 1]T é o vetor na forma homogênea de localização do ponto de
referência; e TBA é chamada de Matriz de Transformação Homogênea (MTH)(4×4) . Esta, é
A
composta pela, matriz de rotação, RB , que fornece a orientação ao corpo, e pelo vetor posição
q A , ou seja: " #
A
RB qA
TBA = (3.3)
0 1
A
Conforme TSAI (1999), é possível obter a matriz RB através da análise da FIG. 3.7(b), em
função dos 4 parâmetros do helicoide, ou seja:

 
cθ + s2x (1 − cθ ) sy sx (1 − cθ ) − sz sθ sz sx (1 − cθ ) − sy sθ
A
 
RB =
sx sy (1 − cθ ) + sz sθ cθ + s2y (1 − cθ ) =
sz sy (1 − cθ ) + sx sθ 
sx sz (1 − cθ ) + sy sθ sx sz (1 − cθ ) + sy sθ cθ + s2z (1 − cθ )
  (3.4)
a11 a12 a13
 
=a a
 21 22 23  a 
a31 a32 a33

onde sθ e cθ são notações utilizadas para representar sen θ e cos θ, respectivamente. Já o vetor
posição q A é representado por:
 
tsx + s0x − s0x a11 − s0y a12 − s0z a13
 
qA = 
 tsy + s 0y − s 0x a 21 − s 0y a22 − s 0z a 23

 (3.5)
tsz + s0z − s0x a31 − s0y a32 − s0z a33

A partir da MTH baseada em helicoides, é possível obter a posição e orientação de um corpo


sob ação de uma única junta. Entretanto, quando uma cadeia cinemática é composta por mais de
uma junta, é necessário usar o Método dos Deslocamentos dos Helicoides Sucessivos (MDHS)
para determinar a posição e orientação do último corpo da cadeia. Esse método afirma que existe
um helicoide resultante fruto de deslocamentos helicoidais sucessivos, ou seja, do produtório
das MTHs relativas aos helicoides que compõem sua cadeia cinemática, como ilustrado na

54
FIG. 3.8 (TSAI, 1999). Sendo assim, para n juntas, o MDHS resulta no produtório de cada
MTH, i.e.:

Tr = T1 T2 T3 ... Tn−1 Tn (3.6)

3
 n-1
2 3
n-1
2 n
1 n
un
1 p

z0 vn wn
s0 q Efetuador Final
Base
y0
O0
x0

FIG. 3.8: Eixos dos helicoides de um manipulador. (Adaptado de TSAI (1999))

Caso o robô tenha um efetuador final instalado, é necessário fazer o ajuste da ferramenta,
i.e., da orientação e posição em relação ao flange do manipulador. Desta forma é montada
mais uma MTH de ajuste de ferramenta (Tf ) e feita uma pós-multiplicação, em relação à MTH
resultante Tr , ou seja:
Ttot = Tr Tf (3.7)

A partir da introdução apresentada, é possível realizar um fluxograma, ilustrado na FIG. 3.9,


com os passos necessários para a realização da modelagem de robôs industriais similar ao pro-
cesso de modelagem proposto por ROCHA et al. (2011).

1. Escolha de 2. Identificar 3. Identificar 4. Construir 5. Aplicar 6. Multiplicar o


um sistema de corpos, juntas parâmetros dos MTH de cada MDHS com a MDHS com a
coordenadas e eixos. helicoides junta, o ajuste MTH de cada matriz da
fixo. da ferramenta junta. ferramenta

FIG. 3.9: Procedimento para modelagem pelo MDHS. (Autoria Própria)

O Apêndice 8.1, apresenta toda a dedução da Teoria dos Helicoides utilizada no CAMPS de
forma detalhada.

55
3.3.1.2 MODELAGEM DO ROBÔ

A modelagem do robô em sí foi realizada com base nos dados fornecidos pelo datasheet
do fabricante YASKAWA (2017), como pode ser evidenciado na FIG. 3.10, que possui as cotas
de cada junta em relação ao referencial global, para auxilio e determinação do vetor s0 . Já
a direção de cada junta, ou seja, o vetor s, foi obtida via experimentação com o MH5F real e
observando marcações existentes no manipulador, próximas às respectivas juntas, que identifica
o seu sentido, as Figs. 3.11(a) e (b) ilustram a localização dessas marcações no MH5F.
A partir desses dados foi possível montar a TAB. 3.1, que contém os vetores s e s0 de cada
junta (SLURBT) em relação ao referencial de base (absoluto), possibilitando a obtenção das
MTHs de cada junta e aplicar o MDHS para localizar a posição e orientação do flange do robô
no espaço.

88 305 80

U R B
40

T
310

L
330

S
Working range
Point P

FIG. 3.10: Datasheet do Motoman MH5F. (Adaptado de YASKAWA (2017))

(a) (b)

FIG. 3.11: Marcações dos sentidos das juntas do robô. (Autoria Própria).

56
TAB. 3.1: Componentes dos vetores s e s0 do Motoman MH5F

Parâmetros S L U R B T
sx 0 0 0 -1 0 -1
sy 0 -1 -1 0 -1 0
sz 1 0 0 0 0 0
s0x 0 88 88 88 393 473
s0y 0 0 0 0 0 0
s0z 0 0 310 350 350 350
* s0 - cotas em mm

Finalmente, é necessário obter a MTH para ajustar a posição e orientação do referencial


da ferramenta utilizada pelo MH5F (real), que possui uma distância de 112 mm em relação ao
flange e tem o eixo z do efetuador final atacando, como mostra a FIG. 8.11.

112 mm

xf

zb
yb
zf
yf
xb

FIG. 3.12: Referencial da ferramenta. (Autoria própria)

O resultado é a Tf , que equivale a uma rotação elementar de 90◦ em torno de yb , seguida de


outra rotação de 180◦ em torno de xb , assumindo assim, os respectivos eixos de rotação, xf e
yf , em relação ao referencial absoluto.
 
0 0 1 585
 
0 −1 0 0 
Tf =  (3.8)
 

1 0 0 350
 
0 0 0 1

57
3.3.1.3 MODELAGEM DO CENÁRIO

Vencida a etapa de modelagem do robô industrial MH5F, faz-se necessário modelar o cenário
em CAD 3D, de forma a trazer maior realismo para o treinamento dos estudantes. Esta etapa foi
realizada utilizando a versão acadêmica dos softwares SolidWorks e 3DStudio Max, seguindo
o mesmo critério de modelagem adotado por MACEDO et al. (2018), descrito abaixo:

1. utilizar, quando disponíveis, os modelos em CAD 3D desenvolvidos pelo próprio fabri-


cante;

2. quando o modelo em CAD 3D não se encontra disponível, realizar a modelagem partindo


das vistas ortogonais do datasheet do equipamento; ou,

3. se nenhum dos critérios anteriores for atendido, modelar o equipamento valendo-se das
cotas obtidas a partir de medições com instrumentos de medição.

Além disso, é necessário ajustar o referencial do modelo 3D para permitir seu posiciona-
mento no ambiente CAMPS. Este ajuste é realizado seguindo dois outros critérios: (1) para o
caso de componentes que não executam movimento, o posicionamento da origem do modelo é
definido na projeção do centro geométrico no plano da superfície de contato, como ilustrado na
FIG. 3.13 para o modelo 3D do alimentador gravitacional; e, (2) no caso de componentes que
realizam movimentos, onde existe uma cadeia cinemática, como no MH5F, o referencial deve
coincidir com a origem da cadeia cinemática serial que representa o robô, conforme ilustrado
nas FIG. 3.14(a) e (b).

Projeção do
Centro Geométrico

Plano de contato

FIG. 3.13: Ajuste de origem do modelo. (Autoria própria)

58
(a) (b)

FIG. 3.14: Origem referencial fixo do MH5F. (Autoria própria)

Após realizar a modelagem no SolidWorks, o arquivo é salvo com a extensão .STL e, pos-
teriormente, é utilizado o software 3DStudio Max para conversão da extensão de arquivo, de
.STL para .3DS, uma vez que esta é usada na biblioteca gráfica open source, GLScene, utilizada
na elaboração do CAMPS.
Cada componente adicionado no cenário, possui seu próprio referencial, solidário à base de
sua cadeia cinemática de posicionamento, ou Cadeias Virtuais de Posicionamento (CVP), que
são uma forma alternativa de interpretação das Cadeias Virtuais de Assur (CVA), proposta por
CAMPOS et al. (2005), porém, ao invés de realizar o fechamento da cadeia cinemática aberta
como abordado por SIMAS et al. (2009), realizam o posicionamento do componente de cenário
(MACEDO et al., 2018). A CVP pode ser representada como seis juntas helicoidais do tipo
3P3R, sendo as três primeiras, prismáticas (3P) representando as translações (Px , Py e Pz ) ao
longo dos eixos x, y e z respectivamente, e as três últimas de rotação (3R), representando as
rotações (Rx ,Ry e Rz ) em torno dos eixos x, y e z, respectivamente.
Cada junta virtual, possui o vetor s coincidindo com a direção do vetor unitário do eixo que
se refere no referencial fixo, e o vetor s0 é nulo. Ao ser inserido, o componente de cenário tem
seu referencial coincidente com o referencial global do CAMPS. Desta forma, é necessário,
somente, ajustar os valores das variáveis de junta t, para as juntas virtuais prismáticas, e θ, para
as juntas virtuais de rotação, de modo a posicionar o componente de cenário em seu devido
lugar, conforme ilustrado na FIG. 3.15, para o caso do modelo 3D de uma mesa.

59
Referencial
Fixo Referencial
Movel
Rz
Px Ry
Rx
Py Pz

FIG. 3.15: CVP de um componente. (Adaptado de MACEDO et al. (2018))

Portanto, à medida que novos componentes são adicionados, novas CVP são criadas, possi-
bilitando o posicionamento de outros componentes, e assim criar um cenário, conforme ilustrado
na FIG. 3.16.

Referencial
Movel

Referencial
Fixo

FIG. 3.16: CVP de um cenário com mais de um componente. (Autoria própria)

A partir do conceito de CVP, é criada a TAB. 3.2 com os valores de posição, Px , Py e Pz , bem
como os de orientação Rx , Ry e Rz , obtidos através da modelagem do cenário em SolidWorks
utilizando a ferramenta de medição do CAD para obter a distância entre a origem do referencial
global escolhido e o referêncial local do objeto a ser posicionado, conforme ilustra a FIG. 3.17.

60
Referencial
Absoluto

FIG. 3.17: Obtenção do vetor s0 através do SolidWorks. (MACEDO et al., 2018)

O cenário desenvolvido para o CAMPS, e representado pela TAB. 3.2, é composto por um
pedestal, que serve de base para o robô MH5F; uma mesa de trabalho, contendo, um alimentador
gravitacional; quatro “buffers” (local específico com função de armazenar peças por tempo
indefinido) e; três “racks” suspensos, que possibilitam o posicionamento de componentes para
posterior montagem. Acima do “rack” central, há um “pallet” com os três blocos relativos à
tarefa de treinamento para o módulo básico, conforme pode ser visto na FIG. 3.18.

FIG. 3.18: Resultado da modelagem do cenário no CAMPS. (Autoria própria)

61
TAB. 3.2: Parâmetros de posicionamento do cenário do CAMPS

Componentes de cenário Px Py Pz Rx Ry Rz
Mesa de montagem 0 0 0 0 0 -90
Pedestal do robô 0 402 0 0 0 0
Buffer 1 611 450 870 0 0 0
Buffer 2 611 302 870 0 0 0
Buffer 3 415 302 870 0 0 0
Buffer 4 415 450 870 0 0 0
Rack de montagem 1 -265 -50 870 0 0 0
Rack de montagem 2 -5 -50 870 0 0 0
Rack de montagem 3 255 -50 870 0 0 0
Alimentador gravitacional -600 400 870 0 0 90
Pallet -5 -49,5 909,8 0 0 0
Cubo vermelho -4,85 -49,2 930,7 0 0 0
Cubo amarelo -4,85 -49,2 962,5 0 0 0
Cubo azul -4,85 -49,2 994,3 0 0 0
Motoman MH5F -3,5 397 1197 0 0 -90
*Px , Py e Pz em mm, e Rx , Ry e Rz em graus

3.3.2 MODELAGEM DO PP DO CAMPS

Tendo concluído a modelagem do robô e do cenário, esta seção tem como objetivo apresen-
tar a modelagem do PP. Foi adotado como parâmetro de dimensão uma tela de 15 polegadas de
um laptop, para verificação de legibilidade das inscrições dos botões, bem como informações
contidas na tela do PP.
A primeira linha de ação utilizada para representar o PP original na tela do computador
utilizado, foi utilizar uma representação do PP original disponível em YASKAWA (2014b),
conforme ilustrado na FIG. 3.19(a). Entretanto, verificou-se que a dimensão original não atendia
os requisitos de legibilidade de teclas e da tela de programação. Sendo assim, um novo PP foi
modelado, de forma a permitir visualização legível.
O PP virtual foi dividido em duas janelas distintas, a principal, maximizando as teclas e
inscrições, e diminuindo o visor, que por sua vez passa a ser usado para apresentar informações
de fácil acesso e disparar um evento mediante ao duplo clique do mouse, que mostra uma nova
janela de formato retangular, simulando a tela original do PP. Desta forma, em prol de tornar os

62
(a) (YASKAWA, 2014b) (b) (Autoria própria)

FIG. 3.19: Comparação entre o PP real e o modelo obtido

comandos legíveis, foi criada outra interface, como pode ser visualizado na FIG. 3.20.
O desenvolvimento do PP físico iniciou a partir da realização de um modelo em CAD 3D
utilizando a versão acadêmica do SolidWorks, que em seguida, foi exportado para o 3DStu-
dio Max de modo a inserir textura e renderização.

FIG. 3.20: PP recriado para ser utilizado em telas de computador. (Autoria própria)

63
3.4 IDENTIFICAÇÃO DE ABORDAGEM ORIENTADA A OBJETO NA PROGRAMAÇÃO

O CAMPS foi desenvolvido utilizando o Delphi


R da versão acadêmica do RAD Studio

Tokyo, que utiliza a linguagem Pascal Object-Oriented Programming (OOP), e disponibiliza


ferramentas de alto nível de abstração, e depuração de códigos o que facilita de sobremaneira a
verificação e validação do programa. Além disso, foi utilizado de maneira integrada as biblio-
tecas gráficas do GLScene, que proporciona a capacidade de construir os cenários virtuais 3D,
e do SDL Matrix, que possibilita a utilização de cálculos matriciais com relativa facilidade. A
escolha por uma linguagem OOP foi essencial, pois permite a criação de classes e instanciar
objetos, facilitando a programação de problemas extensos e complexos, ao particiona-lo em
problemas menores. O diagrama de classes do CAMPS encontra-se sumariamente ilustrado na
FIG. 3.21.

T CVA T Juntas
Nome: string +1 +6 Nome: string
+1 Tipo: string
Tipo: string
Junta id: integer q: real
Sx: real
Add Junta () Sy: real
+1 Sz: real
+5 S0x: real
T Pontos
S0y: real
Nome: string +1 S0z: real
NrJuntas: integer ArquivoCorpo: string
VarJunta: real T Modelos CorCorpo:TColor
Esfera: TGLSphere Nome: string FatConvPulse: real
CVA Id: integer
+1...* Pontos Id: integer
Jobs Id: integer

+1 Add CVA ()
CinDireta () T Cenários
CinInversa () Nome: string
SalvarJOB ()
+1...* +1 Modelo Id: integer
MOVL ()
MOVJ () Add Modelo ()

FIG. 3.21: Diagrama de classes utilizado no CAMPS. (Autoria própria)

Ao todo foram construídas cinco classes para serem utilizadas no CAMPS, sendo elas: (1)
TModelos; (2) TJuntas; (3) TCVA; (4) TPontos; e, (5) TCenários. A primeira, TModelos, re-
presenta a estrutura de atributos e procedimentos que cada um dos componentes de cenário e
robôs instanciados no CAMPS possui. Ela disponibiliza para cada componente os procedimen-
tos da cinemática direta e inversa, bem como os procedimentos da trajetória ponto a ponto e
linear.

64
A próxima classe, TJuntas, representa os atributos e procedimentos peculiares às juntas,
amparados na Teoria dos Helicoides. Além disso, também guarda o arquivo do corpo imediato
que sucede a junta, bem como o fator referente a conversão de graus para pulsos elétricos da
junta correspondente do robô real, os parâmetros do helicoide e procedimentos que calculam a
MTH associada.
A classe TCVA representa a Cadeia Virtual de Assur. Em cada componente de cenário
do CAMPS, são necessárias, como abordado por SANTOS (2018), cinco CVAs, conforme
ilustrado na FIG. 3.22. A primeira, do tipo 3P3R, é a cadeia de posicionamento da base, a CVP,
conforme explicado na Seção 3.3.1.3. A seguinte, é referente a Cadeia das Juntas, chamada de
CJ para o caso do robô MH5F, pois representa a cadeia cinemática aberta do robô, composta por
seis juntas de rotação, entretanto, no caso de um componente de cenário qualquer, como uma
mesa, essa cadeia é do tipo 3P3R e tem o nome de Cadeia Virtual das Juntas (CVJ), conforme
nomeado por SANTOS (2018). A terceira, é a Cadeia Virtual Tool (CVT), referente ao ajuste
do referencial móvel do robô, que vem configurado de fábrica em seu flange, como sendo o
TCP da ferramenta. Assim ela serve para obter a MTH referente ao ajuste do referencial da
ferramenta a ser instalada, conforme visto na Seção 3.3.1.2.
A quarta CVA, tem o nome de Cadeia Virtual Move (CVM) que é utilizada para realizar
a cinemática inversa. Neste caso, o sistema de coordenadas é movido ao longo/em torno de
seus eixos até uma determinada localização, e quando aplicada a cinemática inversa, o robô se
move ao encontro desse ponto referente ao sistema referencial movido, reproduzindo o efeito
do comando MOVL na simulação.
Finalmente, a última cadeia, chamada de Cadeia Virtual de Fechamento (CVF) que faz o
fechamento da cadeia cinemática aberta, para a realização da cinemática inversa.
A classe TPontos possui os atributos e procedimentos que permitem gravar as variáveis de
juntas do robô MH5F em uma postura específica em um ponto no espaço. Além disso, ela
possui o atributo gráfico em forma de esfera, que dá a capacidade do ponto ser visualizado no
ambiente virtual do VL.
A última classe, é chamada de TCenarios, que é responsável por adicionar e gravar cada
modelo integrante do CAMPS, permitindo assim, a geração de um cenário realístico para o
treinamento dos estudantes.

65
FIG. 3.22: Representação compacta das CVAs. (Adaptado de SANTOS (2018))

3.5 IMPLEMENTAÇÃO DE EXEMPLOS DA VIDA REAL

Esse último tópico prevê que a implementação das abordagens sugeridas sejam capazes
de reproduzir exemplos da vida real. A relevância deste tópico fez com que fosse posto em
paralelo com as etapas anteriores, associando os conceitos básicos utilizados na tarefa de pick-
and-place, abordada durante o treinamento de habilitação do Motoman, conforme apresentado
na Seção 3.1. A implementação de um exemplo da vida real possibilita que o CAMPS seja
utilizado como passo intermediário entre a teoria e a prática em laboratório real, e torna factível
a realização de uma análise de eficiência do VL, como abordado no Capítulo 5. Cabe ressaltar
que, durante o processo de modelagem, também foi feito outro cenário, referente ao CIM -
MecatrIME inteiro, de forma a verificar a flexibilidade da OOP e capacidade do VL em lidar
com cenários mais complexos (ver APENDICE 8.6).

66
4 IMPLEMENTAÇÃO COMPUTACIONAL E SIMULAÇÃO

Nesse capítulo é apresentada a implementação computacional e o resultado de todas as


etapas explanadas no Capítulo 3. Para isso foram aplicados os conceitos de Engenharia Reversa
de Softwares, abordados na Seção 2.6, na Interface Homem Maquina (IHM) utilizada para
manobrar o robô MH5F, e explicados detalhadamente todos os comandos implementados de
forma a capacitar o CAMPS a simular o treinamento, começando pela movimentação no modo
junta; pela criação da “nuvem de pontos”; por manobrar o robô de uma posição atual para
HOME; acionamento de outputs; e, finalmente, a criação do JOB.

4.1 MOVIMENTAÇÃO JUNTA A JUNTA

A primeira funcionalidade implementada foi a movimentação do robô no modo Junta.


Como explicado anteriormente, esse sistema permite que o usuário atue, usando o PP, em cada
junta, nomeadas SLURBT pelo fabricante, mediante pares de botões que, ao serem clicados,
acionam um evento que incrementa/decrementa o valor da variável de junta, θ, que representa
a rotação do helicoide associado à junta em foco.
A FIG. 4.1(a) ilustra o local no PP dos pares de botões e como atuar na junta S, (Swing
axis). Já na FIG. 4.1(b) mostra como atuar na junta L (Low axis). A localização e o resultado
da simulação ao atuar nos botões das juntas, U (Upper axis), R (Rotational axis), B (Bend axis)
e T (Twist axis) - sendo as três ultimas componentes do punho esférico do robô - podem ser
visualizadas nas FIG. 4.2(a) até (d), respectivamente.

(a) (b)

FIG. 4.1: Modo Junta: atuação nas juntas SL. (Autoria própria)

67
(a) (b)

(c) (d)

FIG. 4.2: Modo Junta: atuação nas juntas URBT. (Autoria própria)

De forma análoga ao robô real, para manobrar o equipamento, o usuário necessita primeira-
mente realizar dois procedimentos de segurança, que foram implementados, i.e.: (1) desabilitar
o botão de emergência, ilustrado na FIG. 4.3(a); e, (2) energizar o robô clicando no botão
SERVO ON READY do teclado, FIG. 4.3(b), o qual aciona a luz verde escrita SERVO ON logo
abaixo da tecla.

(a) (b)

FIG. 4.3: Procedimento para movimentação do robô. (Autoria própria)

68
4.2 CRIAÇÃO DA “NUVEM” DE PONTOS

A segunda funcionalidade abordada e implementada no CAMPS, foi a implementação da


criação da “nuvem” de pontos necessária para que o robô seja capaz de realizar as trajetórias
desejadas. Para o caso do robô MH5F, a criação de pontos é feita a partir de 9 eventos no PP,
que são reproduzidos pelo mesmo número de cliques de mouse, além da digitação do número
do ponto.
Iniciando por uma tela inicial do PP, como ilustrado na FIG. 4.4(a), o usuário clica, em se-
quência, nos botões VARIABLE e POSITION(ROBOT), clique (1) e (2) ilustrado na FIG. 4.4(b).
Uma nova tela surge, e é necessário clicar em PAGE, como ilustrado no clique (3) da FIG. 4.5(a).
Assim, surge um campo de edição onde o usuário associa uma numeração ao ponto que deseja
salvar, como ilustrado na FIG. 4.5(b).
Ainda resta escolher a forma na qual o ponto será salvo, no caso, escolhe-se PULSE, seguido
das teclas MODIFY e ENTER, como representado na FIG. 4.5(c), fazendo com que, acione
um evento que instancia um novo objeto de TPontos que guarda a magnitude das juntas para
aquela postura do robô, e que sejam preenchidos os campos das variáveis SLURBT das juntas,
conforme a FIG. 4.5(d).

(a) (b)

FIG. 4.4: Passos iniciais para criação de pontos. (Autoria própria)

69
(a) (b)

(c) (d)

FIG. 4.5: Passos complementares para criação de pontos. (Autoria própria)

Ao criar o ponto, é criada uma esfera no ambiente gráfico para identificar sua existência,
como pode ser observado, em zoom, na FIG. 4.6
O procedimento de ensino de pontos, especificamente, no CIM Mecatrime, é feito utilizando
um a variação entre os pontos 1100 até 1279. Isso ocorre pois do ponto 1 ao 1099, são pontos
reservados e utilizados pelo próprio CIM, e por isso não devem ser utilizados. Já o ponto 1279,
é o próprio limite do sistema, e com isso não é possível ensinar pontos além desse valor.

70
FIG. 4.6: Esfera que identifica um ponto no cenário virtual. (Autoria própria)

4.3 ACIONAMENTO DE OUTPUTS

A terceira funcionalidade do PP implementada foi o procedimento de acionamento de out-


puts para abertura e fechamento da garra, uma vez que o efetuador-final do MH5F presente
no CIM MecatrIME é instalado como tal. Esse procedimento é realizado a partir de uma se-
quência de quatro eventos que foram associados à três cliques no mouse, e um evento do tipo
MouseDown, onde deve ser segurado o botão esquerdo por 2 segundos, e tem como objetivo ser
um substituto à interface original do Motoman, onde são pressionados dois botões ao mesmo
tempo, como ilustrado na FIG. 4.7.
A sequência de comandos se inicia a partir de uma tela qualquer do PP, primeiro é necessário
clicar em IN/OUT no menu principal, seguido de UNIVERSAL OUTPUT, ilustrado nos cliques
(1) e (2) da FIG. 4.7(a). Em seguida verifica-se se o círculo de acionamento está selecionado -
caso positivo, significa que a garra está aberta, conforme ilustrado no interior da circunferência
de destaque na FIG. 4.7(b).
O próximo passo é ativar/desativar a saída pressionando o botão INTERLOCK no teclado
por 2 segundos, até aparecer o símbolo do INTERLOCK na tela do PP, e pressionar o botão
SELECT no teclado, como ilustrado pela representação dos cliques (3) e (4) da FIG. 4.7(c).
Assim o círculo de ativação da saída OUT#(1) passa para OFF ou ON, conforme ilustrado na
FIG. 4.7(d).

71
(a) (b)

(c) (d)

FIG. 4.7: Eventos do menu de universal outputs. (Autoria própria)

4.4 ENVIO DO ROBÔ PARA HOME

A capacidade de enviar o robô para HOME é outra funcionalidade importante implemen-


tada no módulo básico do CAMPS, pois, garante que todos os encoders estejam zerados, i.e., os
valores de ângulo de cada junta sejam zero. Essa posição é estratégica durante a programação,
especialmente em início e final de tarefas, garantindo que o robô esteja na mesma posição sem-
pre que iniciar um JOB, e assim evitar possíveis colisões, sendo uma boa prática para impedir
acidentes.
Para o envio do robô para HOME, são necessários três passos, sendo dois cliques, e um
evento de MouseDown que o usuário fica pressionando até o robô de fato alcançar a posição
de HOME. Neste momento são movimentadas todas as juntas ao mesmo tempo, de forma a al-
cançarem a postura final ao mesmo tempo. Assim sendo, a FIG. 4.8 ilustra o início do processo
de envio para HOME. O usuário começa a partir de uma janela qualquer, onde é preciso pres-
sionar o botão ROBOT no menu principal e em seguida apertar WORK HOME POSITION,
como ilustrado pelos cliques (1) e (2) da FIG. 4.8(a). Esse procedimento resulta na janela,

72
representada pela FIG. 4.8(b), que mostra a posição da origem e a posição atual em pulsos
elétricos.
Logo após, para executar o movimento, é necessário manter pressionado o botão FWD
do teclado, responsável por acionar o evento MouseDown para movimentação das juntas, e
aguardar que a movimentação do robô seja concluída, chegando assim na posição de HOME,
como ilustrado pela sequência de figuras, iniciando pela FIG. 4.8(c) até a 4.9(d). Durante a
movimentação, é possível verificar a mudança contínua dos encoders através dos valores da
coluna CURRENT, como pode ser verificado da FIG. 4.8(b) até FIG. 4.9(c).

(a) (b)

(c) (d)

FIG. 4.8: Procedimento envio para HOME: início. (Autoria própria)

73
(a) (b)

(c) (d)

FIG. 4.9: Procedimento envio para HOME: fim. (Autoria própria)

4.5 CRIAÇÃO DE JOBS

A outra funcionalidade implementada no CAMPS é a criação de JOBs. Esse procedimento


possibilita que o usuário atribua nome ao programa, etapa inicial para sua criação e desenvolvi-
mento. Esse processo, conta com no mínimo cinco cliques, descontando os que o usuário deve
realizar para escrever o nome do JOB em si.
O procedimento de criação de um JOB é iniciado a partir de uma tela qualquer do PP, como
ilustra a FIG. 4.10(a). Em seguida, são realizados dois cliques em sequencia, onde, no menu
principal a esquerda, como ilustrado na FIG. 4.10(b), é realizado o clique (1) sobre o comando
JOB, que expande um novo menu, e em sequência o clique (2) em CREATE A NEW JOB. O
resultado dos dois eventos iniciais, é apresentado na FIG. 4.10(c) que por sua vez com a linha
JOB NAME iluminada, o usuário deve realiza o clique (3) no botão SELECT do teclado para
ser direcionado a uma nova janela, composta por um teclado digital, como representado pela
FIG. 4.10(d).

74
(a) (b)

(c) (d)

FIG. 4.10: Passos iniciais para criação de JOBs. (Autoria própria)

Nessa tela, o usuário digita o nome do JOB com um limite máximo de 32 caracteres, e
confirma a escolha ao realizar o clique (4) na tecla ENTER, como ilustrado pela FIG. 4.11(a),
levando assim novamente para a tela representada na FIG. 4.11(b). A criação de JOB permite
também a inserção de comentários, sendo necessário realizar uma sequência similar a feita
anteriormente, entretanto com a diferença onde o campo iluminado deve ser o COMMENT ao
invés de JOB NAME, como indicado pela seta na FIG. 4.11(c). Para finalizar, é necessário
realizar o ultimo evento, representado pelo clique (5) no botão EXECUTE, levando assim para
a tela de JOB CONTENT, representado pela FIG. 4.11(d), onde o sistema efetivamente está
pronto para receber comandos escritos pelo usuário, que irão compor o JOB.

75
(a) (b)

(c) (d)

FIG. 4.11: Passos complementares para criação de JOBs. (Autoria própria)

4.6 COMANDOS MOVJ, MOVL, DOUT E TIMER

Com o sistema pronto para receber os comandos, resta ao usuário criar uma sequência capaz
de realizar a tarefa desejada a partir dos comandos básicos do Motoman MH5F. Inicialmente é
necessário os comandos da linguagem INFORM III nativa do MH5F, bem como sua sintaxe, e
como acessá-los no PP. Ao todo, estão disponíveis no manipulador do laboratório, um total de
31 comandos, sendo eles divididos em 7 categorias, i.e.: (1) IN/OUT; (2) CONTROL; (3) DE-
VICE; (4) MOTION; (5) ARITH; (6) SHIFT; e, (7) OTHER. Além de mais dois comandos,
SAME e PRIOR, os quais são responsáveis por, respectivamente, utilizar o mesmo comando já
escrito no JOB e que o cursor do PP está posicionado, e utilizar o último comando escrito no
JOB pelo usuário.
Todos os comandos foram implementados, de forma escrita, i.e., o usuário consegue adi-
cionar no JOB criado, entretanto, na versão do CAMPS para o treinamento inicial, são aborda-

76
dos e disponibilizados para o aluno apenas quatro comandos, necessários para a execução da
tarefa proposta, sendo eles: DOUT, TIMER, MOVJ e MOVL.
Para desenvolver o JOB, o usuário inicia o processo entrando no menu JOB CONTENT.
Existem duas formas para entrar nesse menu: (1) ao criar um JOB, como apresentado na
Seção 4.5, que automaticamente ao ser criado, o usuário é direcionado para esta tela, ou; (2)
caso o JOB já tenha sido criado previamente, é necessário então clicar no botão JOB no menu
principal, seguido do botão JOB do submenu, representados pelos cliques (1) e (2), respectiva-
mente, da FIG. 4.12(a). Em seguida, é necessário realizar o clique (3) no botão INFORM LIST
no teclado do PP, o qual irá acender uma luz verde, indicando que está ativo, como ilustrado em
destaque de zoom na FIG. 4.12(b).

(a) (b) (c)

FIG. 4.12: Habilitando menu INFORM LIST. (Autoria própria)

Esse botão tem a função de habilitar um menu lateral, a esquerda da janela, como ilustrado
na FIG. 4.12(c), em uma lista das funções da linguagem, INFORM III, onde estão dispostos os
31 comandos de forma organizada sete categorias anteriormente citadas.
A funcionalidade de abrir/fechar garra é realizada no MH5F através do comando DOUT (De-
vice Output), mais especificamente pelo chaveamento do sinal da porta de saída no 1 do contro-
lador, desta forma, a garra fecha com o comando “DOUT OT#(1) OFF” e basta substituir a
posição de “OFF” para “ON” que a garra é aberta. O controlador do MH5F possui 8 portas
de saídas, sendo que a porta 1 está conectada à garra e as demais disponíveis para acionar dis-
positivos auxiliares, como alimentadores pneumáticos, abertura e fechamento de equipamentos
auxiliares e.g., centro de torneamento CNC, e outros.
A FIG. 4.13(a) até (c) ilustra a inclusão do comando DOUT para o fechamento da garra,
assim, em (a) é realizado o clique (1) em IN/OUT seguido do clique (2) em DOUT. Posterior-
mente, como ilustrado em (b), o comando, “DOUT OT#(1) OFF", aparece na tela na linha de

77
comandos o código, e através das setas do teclado é possível navegar pelos comandos e alterar
o valor do Output e se ele se encontra Ligado (ON) ou desligado (OFF). Ao pressionar o botão
ENTER do PP o comando DOUT é transferido para o JOB, como visualizado em (c).

(a) (b)

(c) (d)

(e) (f)

FIG. 4.13: Desenvolvimento de um JOB: comandos DOUT, TIMER e MOVJ. (Autoria própria)

78
(a) (b)

FIG. 4.14: Desenvolvimento de um JOB: comando MOVL. (Autoria própria)

Convém apresentar em seguida o comando TIMER, pois encontra-se associado ao DOUT


especificamente para abertura/fechamento de garra. O TIMER executa um intervalo de tempo
de espera ao robô em determinada posição. Esse comando procede a função DOUT, de forma
a garantir que a válvula pneumática do efetuador-final tenha atuado completamente, dessa
forma, garante que haja força normal entre garra e a peça antes que o robô se movimente,
garantindo que não seja lançada longe por não ter efetivamente sido agarrada. Com o menu
Inform List aberto, primeiramente o botão CONTROL é clicado, seguido do próprio comando
TIMER, FIG. 4.13(c). Em seguida o comando irá aparecer na linha de comandos o código,
“TIMER T=1.000”, que através das setas do teclado é possível navegar pelos comandos e al-
terar o intervalo de tempo em que o robô aguardará, sendo necessário somente pressionar o
ENTER do PP para transferir o comando o JOB, como visualizado em FIG. 4.13(d).
A seguir, são apresentados os comandos de movimentação do robô que foram implementa-
dos no CAMPS. O primeiro deles, MOVJ, pode ser acessado, como ilustrado na FIG. 4.13(e),
através do clique (1) no botão MOTION, seguido do clique (2) no botão referente ao respectivo
comando (MOVJ). O comando é então editado, como ilustrado na FIG. 4.13(f), sendo a sintaxe
utilizada para a movimentação junta-a-junta, “MOVJ PXXXX VJ=xx", onde o valor de XXXX é
o número do ponto para onde o robô irá, e xx é a velocidade em que o robô irá para o ponto de-
sejado, que é escrita como percentual da velocidade máxima possível pelas juntas. Ao concluir
a edição é pressionada a tecla ENTER do teclado, e assim o comando é inserido no JOB.
O segundo, relativo ao o comando MOVL, possui um procedimento semelhante ao primeiro,
que pode ser observado a partir da FIG. 4.14. Todavia, em (a), o clique (2) é feito no botão
MOVL, e em (b) a sintaxe utilizada nesse caso é “MOVL PXXXX V=xx", onde o valor de XXXX

79
é o ponto para onde o robô irá, e xx é a velocidade que o robô deve executar a trajetória linear,
em mm/s, resultando na FIG. 4.15.

FIG. 4.15: Resultado do desenvolvimento de um JOB. (Autoria própria)

Vale ressaltar que a inclusão de comandos ao JOB, ocorre em um processo cíclico, onde é
adicionado um comando, e posteriormente o usuário vai adicionando, progressivamente, outros
comandos desejados, como pode ser visto de forma representativa na FIG. 4.16, até compor a
tarefa desejada.

FIG. 4.16: Fluxo de comandos para criar um JOB. (Autoria própria)

Cada procedimento apresentado foi filmado, de modo a gerar vídeos tutoriais para auxiliar

80
o aluno mediante um exemplo do passo a passo, facilitando a assimilação da sequencia estabe-
lecida pelo fabricante para criação de JOB e inclusão dos comandos descritos que compõem o
modulo básico do CAMPS.

4.7 PROGRAMAÇÃO

Uma funcionalidade implementada no CAMPS, como forma de aproveitamento de exito


e que considera-se, além de estratégica, promissora, é a geração do arquivo na extensão .JBI,
nativa do MH5F. Com isso basta salvar o arquivo de tarefa em um pendrive e acoplar na porta
USB existente na parte posterior do PP real que, desta forma, o JOB gerado no CAMPS pode
ser verificado no equipamento real. Convém ratificar a importância da etapa de calibração, que
garante a similaridade dimensional entre o cenário virtual e o equivalente real, de modo a evitar
colisões e viabilizar a utilização do CAMPS como demonstração de fundamentos iniciais de
programação off-line aos alunos.

4.7.1 CABEÇALHO DO JOB

Para a implementação da funcionalidade em foco, foi feito uma Engenharia Reversa no


arquivo .JBI e foi constatado a existência de um cabeçalho criado, de modo transparente ao
usuário, a medida que são utilizados os pontos da nuvem de pontos criada no controlador.
O cabeçalho conta com uma ampla gama de instruções, todavia, apenas uma quantidade
limitada foi implementada no CAMPS, de forma a capacita-lo a gerar o código automaticamente
para tarefas básicas de pick-and-place, como o caso do treinamento dos alunos. Dentre os 18
tipos de instruções para o cabeçalho, foram implementadas 9, conforme pode ser visto, em
negrito, na FIG. 4.17.
A primeira instrução do código, é o /JOB, que indica que o programa em si se trata de um
JOB. A próxima linha do arquivo JBI é a função //NAME que guarda o nome do JOB atribuido
pelo usuário, com limite de até oito caracteres. A linha seguinte contém a função //POS que
informa ao controlador que os próximos comandos representam dados referentes à posição,
sendo que o próximo comando ///NPOS indica o número de pontos que foram salvos.
Na próxima linha encontra-se o comando ///PULSE, indicando que os pontos inseridos nas
próximas linhas apresentam os pulsos, posições de encoder referentes a cada uma das juntas
SLURBT, nessa ordem respectivamente, ou seja,

81
FIG. 4.17: Esquema da linguagem INFORM III implementado. (Autoria própria)

| {z } = |S, L, U,{zR, B, T}
P0XXXX (4.1)
número do ponto variáveis de junta em pulse

Uma vez que o equipamento real interpreta as variáveis de junta em pulsos, foi necessário
levantar o fator de conversão de graus para pulsos, de forma a viabilizar a utilização do programa
gerado no CAMPS no equipamento real. Em processo de RE, foi necessário entrar no modo
administrador do robô, onde são liberadas todas as suas funcionalidades, e, a partir daí, na tela
para enviar o robô para HOME , correspondente a da FIG. 4.8(b), da Seção 4.4 do CAMPS, foi
possível trocar o modo de visualização padrão, em pulse, para grau. Desta forma, cada uma das
juntas foi posicionada em seus limites de junta, e os valores, para ambos limites de junta, tanto
em pulso, quanto em grau, foram registrados, e são apresentados na TAB. 4.1, o que possibilitou
a obtenção do fator de conversão que é razão entre os valores da junta em grau e em pulsos.

82
TAB. 4.1: Fator de conversão de grau para pulsos por junta do MH5F

Limites de junta Máximo Mínimo Conversão


Graus Pulsos Graus Pulsos Razão
S 170,0004 185013 -170,0004 -185013 0,00091886
L 65,0000 -78886 -150,0004 182045 -0,00082397
U 189,9999 192158 -70,0009 -70796 0,00098877
R 190,0008 172943 -190,0008 -172943 0,00109863
B 129,7551 118106 -129,4260 -117807 0,00109863
T 360,0000 204800 -360,0000 -204800 0,00175781

O minucioso processo de análise permitiu constatar uma peculiaridade da junta L do robô


pesquisado que encontra-se instalado no Laboratório MecatrIME, seu sentido é invertido em re-
lação ao sentido da junta gravado no elo do próprio robô em relação ao modo como o operador
atua no PP. Assim sendo, os valores encontrados nos pulsos desta junta estão com sinais inver-
tidos. Todavia, o resultado da cinemática direta do robô só é obtido caso utilizado o sentido da
junta gravada no robô, o que induz que houve ajuste de sinal no código pelo fabricante.
Após a análise dos fatores de conversão de grau para pulsos, foi possível estabelecer um pro-
tocolo que permitiu o CAMPS salvar de forma correta os valores de junta para serem utilizados
no equipamento real. Assim, é utilizado o comando ///PULSE, seguido dos pontos gravados em
ordem crescente, conforme o código apresentado na TAB. 4.2.

TAB. 4.2: Fragmento de código com pontos em pulse


1 ///PULSE
2 P01100=0,0,0,0,0,0
3 P01101=0,-2913,0,0,0,0
4 P01103=0,-8738,607,0,-4096,0
5 P01105=0,-8738,607,0,-4096,-9387

A próxima função oculta necessária para a leitura do arquivo JBI pelo robô real é a //INST
que tem como objetivo informar que as próximas linhas referem-se a instruções extras, dando
início pela instrução de data //DATE, que é escrita no formato yyyy/mm/dd hh:mm. Posteri-
ormente, são informados atributos referentes ao JOB, ///ATTR, que no caso, para o CAMPS
são informados apenas os comandos SC, referente a Save Complete e RW, Read and Write que
indica que o código pode ser lido ou editado pelo usuário.
A última instrução necessária antes do código que é efetivamente escrito pelo usuário, é
chamada de ///GROUP que indica qual robô irá receber o código, visto que o controlador é

83
capaz de atuar em mais de um robô. Como o controlador de fato comanda apenas um robô, essa
instrução tem em sua sequência o código RB1 referente ao robô número 1.
Um exemplo do arquivo .JBI gerado pelo CAMPS, ilustrando a ordem das instruções des-
critas em um JOB pode ser visualizada na TAB. 4.3.

TAB. 4.3: Código gerado em arquivo .JBI


1 /JOB
2 //NAME DISSERTACAO_FELIPE_MACEDO
3 //POS
4 ///NPOS 0,0,0,4,0,0
5 ///PULSE
6 P01100=0,0,0,0,0,0
7 P01101=0,-2913,0,0,0,0
8 P01103=0,-8738,607,0,-4096,0
9 P01105=0,-8738,607,0,-4096,-9387
10 //INST
11 ///DATE 2018/07/03 13:48
12 ///ATTR SC,RW
13 ///GROUP1 RB1
14 NOP
15 MOVJ P1100 VJ= 20.0
16 MOVJ P1101 VJ= 20.0
17 MOVL P1103 V= 100.0
18 MOVL P1105 V= 50.0
19 DOUT OT#(1) OFF
20 TIMER T=1.000
21 MOVL P1105 V= 50.0
22 MOVL P1103 V= 100.0
23 MOVJ P1101 VJ= 20.0
24 MOVJ P1100 VJ= 20.0
25 END

Assim sendo, o CAMPS tem capacidade de gerar um arquivo capaz de ser lido pelo robô
real e executado tanto no ambiente real, quanto em simulação no ambiente virtual.

84
5 ESTUDO DE CASO

Este capítulo apresenta um estudo de caso da aplicação do CAMPS, obtido como resul-
tado desta dissertação, como ferramenta auxiliar de ensino e aprendizagem, quando utilizado
de forma intermediária entre as aulas teóricas de programação do robô MH5F e a prática em
laboratório convencional com o equipamento real.
O experimento foi realizado com os alunos de graduação em Engenharia Mecânica do IME,
de modo a levantar indicadores quantitativos e qualitativos da efetividade do CAMPS no apren-
dizado de programação on-line. As condições do experimento, os fatores envolvidos, os re-
sultados obtidos e as oportunidades de melhorias encontram-se apresentados nas seções deste
capítulo.

5.1 DEFINIÇÃO E CARACTERÍSTICAS BÁSICAS

O método experimental para análise de eficiência do CAMPS consiste na observação da


aprendizagem sob condições bem definidas e passíveis de serem, efetivamente, obtidas, moni-
toradas e controladas, e desta forma verificar a hipótese de pertinência do uso do CAMPS em
fase intermediária às aulas teóricas e prática.
Como regra básica para experimentação, apenas um fator foi alterado, i.e., usar ou não usar
o CAMPS como ferramenta auxiliar antes do experimento prático no laboratório convencional,
verificando assim, sua pertinência.
De modo a minimizar a influência do fator natureza humana, que é função de sua própria
capacidade de aprender um assunto específico, e guarda relação de afinidade e motivação com o
tipo de conteúdo, o pessoal escolhido para o experimento foi de uma mesma turma de graduação
em Engenharia Mecânica do IME, mais especificamente cursando o 5o ano de 2018. Além disso,
ela foi realizada em período da carga horária da disciplina de Introdução à Mecatrônica, onde
usualmente o conteúdo de programação de robôs é ensinado em aulas teóricas.
Objetivando minimizar o fator conteúdo prévio e instrutor, as aulas teóricas relativas a
robótica industrial e programação on-line foram padronizadas e apresentadas por um mesmo
instrutor durante 12 horas/aula, da mesma forma como consta na ementa da disciplina. Em
seguida, os 12 alunos da turma foram aleatoriamente distribuídos em dois grupos de 6, e imedi-
atamente o Grupo 1 (G1) agendou a prática em laboratório convencional, assumindo conhecidos

85
os fundamentos teóricos apresentados em sala.
O experimento com o equipamento real foi feito de maneira individual e acompanhado
por um único monitor, que, seguiu rigorosamente uma planilha com as etapas da atividade, as
quais, foram previamente estabelecidas, padronizadas e encadeadas em uma mesma sequência,
visando minimizar a influência do fator instrutor durante a etapa em questão. O monitor re-
gistrou a data e hora de inicio e fim do treinamento, além do tempo levado em cada etapa da
atividade para posterior utilização e tratamento dos tempos, e assim, obter indicadores quan-
titativos do tempo individual e médio dos alunos em treinamento, em relação ao grupo em
observação.
Ao completar o treinamento de cada aluno do G1, foi possível aplicar em sala de aula o
treinamento com o VL CAMPS, o qual foi dividido em duas etapas. A metodologia adotada
em cada etapa foi uma adaptação do Coding Dojo, onde, na etapa (1) a turma foi dividida em
pares formados por um aluno de cada grupo, ou seja, um do G1 e outro do G2. Além disso, foi
disponibilizado um computador com o CAMPS para cada par, e desta forma, o aluno do G1, o
qual já havia realizado o treinamento, passou a ser monitor do aluno do G2 que, sob orientação
do seu par, utilizava o VL para simular algumas atividades previamente escolhidas. Já na etapa
(2), foi proposto um desafio em comum, em que todos os alunos deveriam realizar.
Terminada a sessão de Dojo, os membros do G2 agendaram a atividade no equipamento real
com o mesmo monitor que acompanhou cada aluno do G1. As tarefas foram rigorosamente as
mesmas para todos os alunos.
Finalmente foram disponibilizados questionários eletrônicos para cada aluno, objetivando
avaliar qualitativamente o CAMPS. Foi garantido anonimato, de forma a obter respostas o mais
francas e isentas possível. Com toda essa massa de dados foi possível consolidar e obter os
indicadores qualitativos e quantitativos do tempo necessário ao treinamento e realização das
tarefas propostas.
A seguir, encontram-se detalhadamente cada etapa do experimento realizado com os grupos,
bem como a apresentação dos resultados e das considerações finais.

5.2 PLANEJAMENTO DO EXPERIMENTO

Para seguir uma metodologia que possibilite identificar o efeito do uso do CAMPS, de
forma intermediária entre a teoria e a prática de laboratório, no ensino da programação on-
line do MH5F, buscou-se estruturar o experimento, entendendo claramente o que deseja-se
avaliar, analisando as variáveis de influência envolvidas, para que qualquer ação seja estabe-

86
lecida seguindo um roteiro claro e controlável, objetivando o maior nível de isenção possível na
obtenção dos indicadores.
A avaliação da eficiência do simulador CAMPS se deu a partir de um experimento junto a
alunos do 5o ano da turma de graduação em Engenharia Mecânica do IME. A turma cursava
a disciplina de Introdução à Mecatrônica e era composta por doze alunos sem contato prévio
com o sistema robótico Yaskawa Motoman MH5F. Dois grupos distintos de seis alunos foram
formados e receberam o mesmo conteúdo em aulas teóricas de robótica industrial, segurança
e operação básica do MH5F, as quais foram previamente padronizadas e apresentadas por um
mesmo instrutor. Além disso, o treinamento de cada um dos estudantes no robô real foi su-
pervisionado por um único monitor, que utilizou o mesmo roteiro de treinamento para todos os
alunos, sendo a única diferença o uso prévio do CAMPS. Vale ressaltar, entretanto, que apesar
de nenhum dos alunos terem alguma experiência com o MH5F, todos já haviam sido treinados
no robô educacional Pegasus Amatrol e, desta forma, já eram familiarizados, tanto em relação
aos procedimentos de segurança, quanto ao processo de programação on-line.

5.2.1 PADRONIZAÇÃO DAS ATIVIDADES

A tarefa escolhida para o treinamento dos alunos é a de pick-and-place descrita no Capí-


tulo 3. Todos os alunos foram instruídos a realizar o planejamento prévio da tarefa objetivando
evitar tempo ocioso do equipamento durante o treinamento. Para este fim, foram aplicadas as 6
etapas de programação on-line utilizadas em SANTOS et al. (2017b), sendo estas:

1. realização de um diagrama pictórico;

2. sequência geral de operações;

3. lista de entradas e saídas;

4. sequência detalhada de operações;

5. lista de pontos necessários;

6. escrever o programa.

A realização da atividade foi separada em 4 etapas, conforme descritas na TAB. 5.1, e os


tempos que cada aluno levou para completá-las foram registrados.

87
TAB. 5.1: Lista de etapas da atividade no robô Motoman MH5F.

Higienização e utilização dos óculos de segurança


Abertura do livro de regístro de atividades
1
Ensinar procedimento para ligar o CIM e o robô
Ensinar a entrar na tela inicial
Tirar o robô da emergência, ensinar servo on e deadman switch
Ensinar os modos de coordenada
Ensinar os modos de velocidade
Ensinar o Home para o robô
2
Ensinar como criar novos pontos
Ensinar como movimentar em dois diferentes pontos no VARIABLE
Ensinar como abrir e fechar garra UNIVERSAL OUTPUTS
Deixar o Aluno salvar todos os pontos necessários para a tarefa
Ensinar como criar JOBs
Ensinar como entrar no INFORM LIST
Ensinar comando MOVJ
Ensinar comando MOVL
3
Ensinar comando DOUT
Ensinar comando TIMER
Deixar aluno completar o JOB
Debugar o código
Gravar tarefa executando em PLAY
4 Fechar livro
Higienização e devolução dos óculos de segurança

A primeira etapa engloba o tempo necessário para o aluno se preparar para realização da
tarefa, dando foco aos procedimentos de segurança e registro de utilização, bem como: ensinar o
procedimento para ligar o manipulador do Laboratório MecatrIME, i.e, ligar os disjuntores refe-
rentes à: (1) energização do compressor a ar (responsável pela utilização da garra pneumática);
(2) cerca de segurança; (3) estação de trabalho de torneamento do laboratório, e; (4) o com-
putador central (manager). Após ter os equipamentos energizados, ainda foi necessário ligar os
controladores responsáveis pelo trilho de translação e pelo MH5F, além de inicializar o sistema
de operação do robô, entrando assim, na tela principal de programação do PP, que pode ser
visualizada na FIG. 5.1.
A segunda etapa representa todos os procedimentos ensinados aos alunos para que sejam

88
FIG. 5.1: Tela inicial do PP. (Autoria própria)

capazes de salvar os pontos planejados para a realização da tarefa, i.e: ensinar como habilitar
o robô, retirando-o do modo de emergência, e energizá-lo através dos botões SERVO ON e
do Deadman Switch - alavanca com três diferentes posições localizada na parte posterior do
PP com finalidade de cortar a energia do robô, quando o usuário apresenta alguma reação de
perigo; ensinar os modos de movimentação coordenada que podem ser utilizados na tarefa,
JOINT (SLURBT) e TOOL, e em seguida, os quatro níveis de velocidade disponíveis: inching
(movimentação pulso a pulso), low, medium e high. Posteriormente, foi ensinado o procedi-
mento para enviar o robô para a posição de HOME, em que todas as juntas do robô se encontram
zeradas. Logo após, o aluno aprendeu como criar pontos, além de como realizar movimentações
entre pontos e ativar/desativar outputs, uma vez que a garra é considerada um acessório para o
robô e ela recebe sinal da porta #1 da saída do controlador. Finalizando a segunda etapa, o aluno
é instruído a salvar todos os pontos necessários para a realização da tarefa, resultando em uma
nuvem que totalizou 17 pontos distintos.
A terceira etapa consiste no processo de criação e desenvolvimento do JOB, ou seja, o
programa do robô. São necessários ao todo quatro diferentes comandos para o seu desenvolvi-
mento, sendo eles: o MOVJ (movimento junta a junta); MOVL (movimentação em trajetória
linear); DOUT (device output; para realizar a abertura e fechamento da garra), e o comando
TIMER necessário ser utilizado imediatamente depois do comando DOUT, para garantir o
tempo necessário para a garra pneumática fechar completamente. Essa etapa foi ensinada du-

89
rante o desenvolvimento da tarefa, que consiste em um programa com 89 linhas de comando.
Ao terminar o JOB, o aluno aprendeu a depurar o código, i.e, executar linha a linha o pro-
grama, na mesma velocidade em que o robô foi movimentado em modo TEACH pelo aluno,
isto permite verificar se a tarefa foi programada corretamente e com segurança.
Ao concluir a terceira etapa, é iniciada a quarta, e última, etapa do treinamento. Nesta, o
aluno foi instruído a configurar o robô para execução automática da tarefa, i.e. ativar o modo
PLAY, para o robô realizar o JOB nas velocidades, reais, estabelecidas no programa. Tendo
concluído, é feito o procedimento para desligar o CIM, ou seja, o processo inverso do utilizado
na primeira etapa: (1) desligar o robô, deixando a chave de acionamento em Remote, acionar o
botão de emergência e desligar os dois controladores utilizados; (2) desligar o computador do
manager; (3) desligar os disjuntores, e; (4) organizar a sala do laboratório. Em seguida, o livro
de registros é fechado, com o horário do término da tarefa, e finalmente o aluno é instruído a
limpar o equipamento de proteção individual utilizado, concluindo a tarefa.
Cabe ressaltar que a etapa de execução da tarefa foi filmada com a supervisão de cada aluno,
atento para atuação do botão de emergência e para gerar uma evidência objetiva do treinamento
do aluno na tarefa básica proposta.

5.2.2 SESSÃO DE CODING DOJO COM O CAMPS

A metodologia de Coding Dojo tradicional é geralmente aplicada no exercício da progra-


mação de softwares, objetivando criar um ambiente seguro, colaborativo, inclusivo e não com-
petitivo, em que os participantes possam estar em um aprendizado contínuo (SATO et al., 2008).
Sua efetividade não está vinculada à conclusão do exercício estabelecido ou à quantidade de
tarefas, mas ao aprendizado adquirido ao longo de cada atividade proposta.
Existem dois principais tipos de Coding Dojo, onde técnicas de desenvolvimento ágil, como
Baby Steps e Programação em Pares são utilizadas. O primeiro, é chamado Prepared Kata,
onde alguém já tenha resolvido o problema proposto anteriormente e a solução é apresentada
durante a sessão de maneira detalhada, i.e., desde o princípio, explicando à audiência cada
passo realizado. O outro, é conhecido por Randori, onde são propostas atividades em duplas
que devem ser resolvidas em pequenos turnos de 5 a 7 minutos, utilizando apenas uma máquina
por par. Dessa forma, um integrante atua como piloto utilizando o computador em si, e o outro
como co-piloto, auxiliando seu companheiro. (SATO et al., 2008; DA LUZ et al., 2013).
Foi realizada uma adaptação na metodologia de Coding Dojo para o uso do CAMPS, onde
a sessão foi dividida em duas etapas. A primeira constitui uma adequação do Randori, onde,

90
desta forma, o iniciante atuava como piloto, sendo treinado no CAMPS com auxílio do copiloto,
i.e., o outro aluno já treinado no robô. Em seguida, foi proposto como desafio em comum, uma
tarefa onde os comandos básicos aprendidos na primeira etapa eram necessários. No primeiro
momento o piloto deveria executar a tarefa sem auxílio do co-piloto, que poderia ajudá-lo após
um determinado tempo. A sessão de Dojo foi realizada durante a disciplina Introdução à Meca-
trônica, e teve a duração de 4 horas/aula.
Terminada a sessão de Coding Dojo, os membros do G2 agendaram a atividade no equipa-
mento real com o mesmo monitor do G1. Além disso, o treinamento foi rigorosamente o mesmo
do primeiro grupo, além de seguir o mesmo roteiro de atividades proposto na Seção 5.2.1, pos-
sibilitando que os tempos de programação possam ser mensurados e consolidados juntamente
com os tempos do G1, possibilitando levantar indicadores quantitativos.

5.2.3 AVALIAÇÃO REALIZADA PELOS ALUNOS PARTICIPANTES

Ao concluir o treinamento de todos os alunos, foi entregue para preenchimento um ques-


tionário de avaliação de qualidade em relação ao método de ensino utilizado, valendo-se do
treinamento no VL previamente à prática de programação on-line no robô Motoman MH5F.
O questionário apresentado, foi dividido em seis tópicos distintos (TAB. 5.2 e 5.3), baseando-
se nas perguntas sugeridas por JARA et al. (2011b), com as devidas adaptações para o VL
CAMPS:

1. avaliação da aprendizagem em relação aos métodos tradicionais de ensino;

2. facilidade em usar o CAMPS;

3. nível de qualidade do CAMPS;

4. aceitação do uso do CAMPS para o aprendizado de conceitos relacionados à programação


do Motoman MH5F;

5. contribuição para a segurança, e;

6. grau de satisfação do estudante.

Cada tópico gerou perguntas que são feitas de modo individual, buscando a percepção de
cada aluno, e fornecem informações que são analisadas para obter indicadores qualitativos,
diferentemente da consolidação de ambos os grupos que conferem indicadores quantitativos.

91
TAB. 5.2: Questionário realizado para obter o feedback do aluno

Avaliação da aprendizagem em relação à métodos tradicionais de ensino

1. Como você avalia o aprendizado ao utilizar o CAMPS em relação à métodos


tradicionais de ensino (sem simuladores ou equipamentos físicos)?

2. Quanto o CAMPS facilita o entendimento sobre os conceitos de programação


on-line do MH5F se comparado à métodos tradicionais de ensino?

3. Como você avalia o método DOJO utilizado para a apresentação do CAMPS


(treinamento em duplas, havendo troca de integrantes e por fim uma tarefa
prática)?

Facilidade em usar o CAMPS

1. Como você avalia a estruturação e organização do simulador CAMPS?

2. Como você avalia sua adaptação ao robô real (caso tenha sido treinado com o
uso prévio do simulador), ou sua adaptação ao CAMPS (caso tenha treinado
no robô real previamente)?.

Nível de qualidade do CAMPS

1. Qual avaliação que você daria para a qualidade do CAMPS e a simulação?

2. Em comparação a outros softwares (CAD, simulação), como você avalia a


interação com o usuário e visualização dos modelos 3D do CAMPS?

3. Qual sua avaliação para a similaridade da operação entre o CAMPS (utiliza-


ção PP/robô VIRTUAL) em relação ao PP/robô REAL?

Aceitação do uso do CAMPS para o aprendizado de conceitos relacionados à


programação do Motoman MH5F

1. A utilização de simuladores ajuda o entendimento da programação on-line


ensinados na aula?

2. Você concorda que a utilização do CAMPS de maneira prévia contribui para


facilitar a operação/programação do robô REAL (Motoman MH5F)?

92
TAB. 5.3: Questionário realizado para obter o feedback do aluno (Continuação)

Nível de Segurança

1. Você se sentiu inseguro durante a programação on-line no robô real?

2. Você acredita que a utilização de simuladores, como o CAMPS de maneira


prévia, diminui o risco de acidentes do iniciante em programação de robôs,
bem como preserva a integridade do equipamento real?

Grau de satisfação do estudante

1. Em geral, você se sente satisfeito com a experiência prática através do


CAMPS e do robô Yaskawa Motoman MH5F?

Robô real para etapas de programação

1. Você acredita que a prática em um robô industrial real nas aulas contribui para
a assimilação das etapas de programação de robôs industriais?

Como implementar o CAMPS na próxima turma

1. Como você recomendaria a implementação do sistema CAMPS para a pró-


xima turma?

O questionário foi enviado eletronicamente para cada aluno, garantindo anonimato das res-
postas, com intuito de que elas fossem livres e sinceras. Cada pergunta tinha cinco opções de
resposta, sendo as duas primeiras e duas ultimas, representando, respectivamente, uma gradua-
ção de desempenho positiva e negativa, e a terceira guardando neutralidade/indiferença.

5.2.4 RESULTADOS E ANÁLISE DOS INDICADORES QUANTITATIVOS

Com o treinamento concluído, os alunos responderam as perguntas do questionário, o que


possibilitou a consolidação dos resultados que serviram de base para obter os indicadores de
avaliação do CAMPS.
No que tange os tempos de programação, houve uma variação significativa dos tempos por
aluno, e principalmente entre os grupos. As TAB. 5.4 e 5.5 apresentam os tempos, da atividade
proposta, dos grupos G1 e G2, respectivamente, divididos em cada parte do treinamento, bem
como sua soma, e o tempo oficial, registrado no livro de registro de atividades do laboratório.

93
Cabe ressaltar que o tempo oficial inicia-se da abertura ao fechamento do livro, o que não leva
em consideração o tempo de higienização do óculos.

TAB. 5.4: Tempos de programação do G1

Aluno Parte 1 Parte 2 Parte 3 Parte 4 Tempo Oficial


1 0:26 0:39 0:33 0:24 1:47
2 0:23 0:36 0:39 0:17 1:55
3 0:26 0:39 0:41 0:20 1:57
4 0:23 0:46 0:42 0:21 2:06
5 0:29 0:45 0:38 0:27 2:08
6 0:27 1:00 0:57 0:19 2:28

TAB. 5.5: Tempos de programação do G2

Aluno Parte 1 Parte 2 Parte 3 Parte 4 Tempo Oficial


1 0:16 0:26 0:24 0:18 1:19
2 0:13 0:44 0:27 0:15 1:23
3 0:28 0:25 0:25 0:26 1:26
4 0:19 0:25 0:24 0:20 1:30
5 0:28 0:33 0:28 0:16 1:36
6 0:26 0:29 0:30 0:18 1:39

É possível verificar que o G1 apresentou uma média de tempo de treinamento de 2:03 ho-
ras, sendo o menor valor igual a 1:47 e o maior, 2:28 horas. Já o G2, que utilizou o simulador
CAMPS anteriormente ao treinamento, apresentou uma média de tempo de programação infe-
rior ao G1, resultando em 1:28 horas. O menor tempo obtido deste grupo foi de 1:19 horas, e o
maior, 1:39 horas.
Finalmente, pelo resultado dos indicadores quantitativos, o primeiro efeito encontrado foi
em relação ao tempo de execução do robô Motoman MH5F. Como a quantidade de pontos
e a velocidade do deslocamento entre eles foram padronizados e definidos para o programa
obtido por todos os alunos, o tempo médio de execução da tarefa pelo robô foi de 1:24 minutos,
não havendo diferenças significativas entre ambos, os alunos e grupos, o que era esperado.
Entretanto, quando comparados com os tempos de programação, a homogeneidade no tempo

94
de execução obtido por todos os alunos tem maior impacto, tendo o G1 obtido uma relação entre
tempos de programação/execução de 76,4 a 105,7 respectivamente, e o G2, de 56,4 e 70,7.
A partir das TAB. 5.4 e 5.5, foi possível gerar dois gráficos de comparação entre os tempos
de programação do robô entre ambos os grupos. O primeiro gráfico, apresentado na FIG. 5.2,
ilustra o tempo dos alunos separados nos dois grupos, bem como a média resultante dos tempos
de programação por grupo. Observou-se que o uso do CAMPS proporcionou uma redução do
tempo médio de programação do MH5F em 28%. Levando em conta uma turma de doze alunos,
essa redução equivale a 7 horas em que dispositivo e instrutor permaneceriam a disposição do
aluno. Além disso, a pior performance do G2, foi melhor do que o melhor aluno do G1.
Tempo de operação no robô (h:min)

2:52
2:28
2:24 2:06 2:08
1:55 1:39 2:03
1:55 1:57 1:36
1:47
1:26 1:28
1:23 1:26 1:30
1:19
0:57 Sem CAMPS
G1 Média sem CAMPS
0:28
Com CAMPS
0:00
G2 Média com CAMPS

1 2 3 4 5 6 7

Estudantes
FIG. 5.2: Tempo de programação com e sem o uso prévio do CAMPS. (Autoria própria)

Já a FIG. 5.3 mostra a distribuição das frequências de tempo em formato de histograma em


intervalos de 5 minutos. Note que houve efeito de redução na variância, ou seja, os tempos com
o equipamento real ficaram mais próximos da média do grupo, e no G2 a dispersão de tempo
foi menor. Além disso, é possível notar claramente que todos os integrantes do G1 ficaram mais
a esquerda no gráfico, representando que seus tempos de programação foram menores do que o
do G2.

95
Sem o uso do CAMPS - G1
Com o uso do CAMPS - G2

2
Frequência

Tempo de operação no robô (h:min)

FIG. 5.3: Histograma do resultado do experimento. (Autoria própria)

O tempo médio necessário para os alunos completarem cada uma das etapas descritas na
Seção 5.2.1, além da redução percentual entre os grupos foram registrados e podem ser obser-
vados na TAB. 5.6.

TAB. 5.6: Tempo médio e porcentual de redução de tempo entre ambos os grupos, com e sem
uso prévio do CAMPS

Etapa S/ simulador (min) C/ simulador (min) Redução


1 25 21 15,6%
2 44 30 31,3%
3 41 26 36,8%
4 21 18 11,7%

A partir da TAB. 5.6, é possível perceber que as etapas 2 e 3 foram as de maior impacto na
performance dos alunos, sendo que a etapa de maior redução percentual foi a terceira, a qual
envolvia maior número de interações com o PP e, portanto, maior possibilidade de erros na
interação com o software do fabricante do robô, comprovando que o uso do CAMPS facilitou a
criação de condicionamento mental da localização dos comandos no PP pela prática do DOJO.

5.2.5 RESULTADOS E ANÁLISE DOS INDICADORES QUALITATIVOS

Partindo para os indicadores qualitativos, a partir do questionário eletrônico foi possível


obter gráficos referentes a cada um dos tópicos do questionário de avaliação proposto aos

96
alunos, que podem ser vistos na FIG. 5.4, o que permitiu analisar o grau de satisfação geral
dos estudantes.
É possível dizer que 85% dos alunos afirmaram aprovar a metodologia aplicada em relação
aos métodos tradicionais de ensino. Além disso, 95% considerou o CAMPS fácil de ser uti-
lizado. Quanto a sua qualidade, apenas 6% dos alunos não aprovaram, porém todos acreditam
que o uso do simulador auxilia no aprendizado da programação do robô real.
Todos os alunos concordam que a utilização de VL, previamente ao robô real, auxiliam e
aumentam a segurança do aluno iniciante na programação on-line. Entretanto, todos acreditam
que o VL não dispensa o robô real, e que o equipamento auxilia no entendimento das etapas
de programação on-line.
Além disso, nenhum estudante se sentiu insatisfeito com a atividade; 36% dos alunos acre-
ditam não ser necessário o uso da metodologia Dojo; 37% acreditam que todos os alunos deve-
riam ser treinados previamente com o simulador CAMPS; e, 27% concordam que a metodolo-
gia Dojo deve ser mantida para as próximas turmas. Isto mostra que a metodologia Dojo não
é aceita pela totalidade, porém, concordam que usar o VL na fase intermediária traz benefícios
para a aprendizagem.
Cabe ressaltar que somente 11 alunos responderam os questionários. Além disso, os gráficos
apresentados na FIG. 5.4 são os resultados de cada grupo de questões referentes à TAB. 5.2 e
5.3, ou seja, a soma das respostas obtidas por cada uma das perguntas de seus respectivos
grupos.

97
a b
Aprendizagem em relação à Facilidade em usar o CAMPS
métodos tradicionais

5%
3% 3%
9% 27% Muito bom
33% Aprendeu muito mais
Bom
Aprendeu mais
Neutro
Neutro
Aprendeu menos
Ruim

Aprendeu muito menos Muito ruim


52% 68%

c d
Qualidade do CAMPS Aceitação do CAMPS

6%
6% 32%
Muito bom Concordo fortemente
33%
Bom Concordo

Neutro Neutro

Ruim Discordo

Muito ruim 68% Discordo fortemente


55%

e f
Segurança que o uso prévio do CAMPS Grau de satisfação do estudante
oferece aos alunos ao operar o robô real

18%
45% Concordo fortemente Muito satisfeito
Concordo Satisfeito
Neutro Neutro
18%
55% Discordo Insatisfeito
Discordo fortemente 64% Muito insatisfeito

g h
Influência da utilização do robô real Método de ensino preferido entre os
no entendimento dos passos de alunos para ser aplicado nas futuras classes
programação on-line Toda a turma usando o
CAMPS de maneira prévia
Muito melhor 36% 37% ao robô real.
36% Dividir a turma de forma
Melhor aleatória e APLICAR a
Neutro metodologia DOJO
Pior Dividir a turma de forma
aleatória e NÃO APLICAR
Muito pior a metodologia DOJO
64%
27% NÃO USAR o CAMPS de
maneira prévia ao robô real

FIG. 5.4: Resultado do questionário de feedback de avaliação. (Autoria própria)

98
6 CONCLUSÕES E PERSPECTIVAS

Este capítulo apresenta as considerações finais da dissertação. Se inicia pela Seção 6.1,
com uma recapitulação do que foi apresentado na dissertação, além de ressaltar os argumentos
utilizados, de forma a encadear o raciocínio e permitir as considerações finais em torno das
contribuições científicas desta dissertação abordadas na Seção 6.2. Em sequência, o capítulo é
finalizado na Seção 6.4, com as perspectivas para futuros trabalhos.

6.1 RECAPITULAÇÃO SINTETIZADA

O Capítulo 1 apresentou uma introdução ao problema abordado pela dissertação, ratificando


a importância da Robótica Industrial para o desenvolvimento do setor manufatureiro do Brasil
e as dificuldades encontradas pela indústria brasileira para sua adoção, especialmente no que
tange à falta de mão de obra especializada. Desta forma, foi realizada a fundamentação do pro-
blema em que a dissertação visa contribuir, oferecendo como solução um ambiente de treina-
mento similar ao real, dispondo de modelos 3D e cenário, i.e., um Laboratório Virtual (VL),
específico para o treinamento em programação on-line do robô da Yaskawa Motoman MH5F.
Já no Capítulo 2, foi realizada uma revisão bibliográfica a respeito da Robótica Industrial, e os
benefícios oferecidos por esse tipo de tecnologia que contribuem para os objetivos de desem-
penho da indústria. Além disso, foram abordadas as vantagens e desvantagens oferecidas pelo
uso de VLs, e os critérios de avaliação utilizados para o desenvolvimento do CAMPS. Também
foram introduzidos alguns conceitos de Engenharia Reversa (RE) de hardware e software.
No Capítulo 3, foi apresentada a metodologia utilizada para o desenvolvimento do CAMPS,
onde foram abordadas as etapas para sua elaboração de forma detalhada, i.e., foram definidos os
conceitos a serem abordados pelo CAMPS, identificados os elementos básicos do treinamento,
conforme os critérios de avaliação de VLs, apresenta a teoria matemática utilizada para modelar
os movimentos do robô e posicionar os componentes de cenário. Foi apresentada também a
modelagem tridimensional do PP, com adaptações que possibilitaram uma visualização nítida
das inscrições dos botões em telas de computador, bem como identificada a melhor abordagem
de Programação Orientada a Objeto para o desenvolvimento do VL.
A implementação computacional de todas as funcionalidades foi apresentada no Capítulo 4,
onde foi utilizado o processo de RE de softwares de forma a permitir a compreensão da IHM do

99
equipamento real e viabilizar sua implementação computacional, objetivando capacitar alunos
com eficiência, através do treinamento da programação on-line de tarefas básicas de pick-and-
place, como a utilizada no treinamento prático em laboratório convencional, tradicionalmente,
realizado com os alunos de graduação do IME. Foi desenvolvido também um módulo intro-
dutório de programação off-line na Seção 4.7, que torna o CAMPS um protótipo de programação
off-line, permitindo salvar o código desenvolvido no VL, e ser interpretado pelo controlador do
Motoman real.
O Capítulo 5 apresenta um estudo de caso realizado com os alunos do último ano de En-
genharia Mecânica do IME, cursando a disciplina de Introdução à Mecatrônica. O treinamento
foi realizado dividindo a turma em dois grupos, onde o primeiro realizou o treinamento sem a
utilização do CAMPS, enquanto o segundo, usou o VL de forma prévia ao treinamento prático
tradicional, sendo apresentado a partir da metodologia de Coding Dojo, abordada no mesmo
capítulo. Ao final, foi realizado um questionário, para verificar a aceitação do VL pelos alunos,
e analisados os resultados qualitativos e quantitativos de ambos os grupos.

6.2 CONTRIBUIÇÕES CIENTÍFICAS

Esta dissertação apresenta como maior contribuição cientifica a implementação computa-


cional da modelagem, simulação e programação do robô industrial Motoman MH5F, que re-
sultou no protótipo CAMPS (Computer-Aided Motoman MH5F robot Programming System),
podendo ser utilizado não só para o treinamento de alunos no robô MH5F, mas também como
estudo da cinemática direta e inversa de cadeias cinemáticas abertas do manipulador estudado.
Além disso foram alcançados os seguintes requisitos:

1. modelagem cinemática do robô Motoman MH5F e componentes de cenário usando fun-


damentos da Teoria dos Helicoides para localização dos multicorpos no espaço, de forma
a permitir a localização de cada elo e junta do robô, e prover movimentação a cadeia
cinemática serial do modelo 3D do MH5F, em um ambiente computacional capaz de se
visualizar arquivos de CAD 3D dos corpos virtuais;

2. disponibilizar um PP virtual com alta similaridade em relação ao real, tanto em quanti-


dade e posição relativa dos botões, quanto em funcionalidade e integração com o modelo
virtual do robô MH5F, permitindo que o usuário interaja com o software de forma equi-
valente ao equipamento real;

100
3. capacidade de gerar automaticamente o arquivo na linguagem nativa (INFORM III) do
controlador FS100, contendo os pontos ensinados e os comandos criados pelo usuário, e
capaz de ser inserido via porta USB no PP real.

As contribuições cientificas supracitadas são evidências objetivas de conformidade com os


objetivos específicos desta dissertação.

6.3 CONSIDERAÇÕES FINAIS

Para analisar a efetividade do resultado obtido nesta dissertação diante do objetivo geral,
utiliza-se como base o CARPA (SANTOS, 2017), que sofreu minuciosa análise a fim de receber
implementações adicionais e modificações para dar origem ao CAMPS, de modo que viesse a
contribuir como um VL capaz de aumentar a eficiência do ensino e aprendizagem de novos
usuários.
Os resultados obtidos no estudo de caso realizado proveram indicadores quantitativos que
mostraram uma redução média de 28% do tempo necessário ao treinamento no robô real entre
alunos que usaram o VL em fase intermediária, entre as aulas teóricas e a prática em laboratório
convencional.
Indicadores qualitativos foram obtidos no sentido de levantar a aceitação do CAMPS com os
usuários, e foi possível avaliar alguma variação quanto à metodologia, porém todos afirmaram
que o uso do VL em foco aumenta a motivação e auxilia na criação de condicionamentos men-
tais para acesso aos comandos no PP.
Diante dos resultados dos indicadores é possível concluir que para a população experimen-
tada, ou seja alunos de graduação do 5o ano de Engenharia Mecânica do IME, o CAMPS favore-
ceu o ensino e a aprendizagem da programação do MH5F e por ter sido desenvolvido no IME,
pode ser disponibilizado a baixo custo e promover a disseminação do ensino em instituições
que não possuam um robô, o que é desejável, porém demanda alto investimento.
Assim sendo, como consideração final, cabe deixar registrado que o resultado obtido foi
apenas um início para o desenvolvimento um sistema de programação off-line, sendo utilizado
de forma eficiente como módulo básico para treinamento de iniciantes.

6.4 PERSPECTIVAS PARA TRABALHOS FUTUROS

A utilização do CAMPS para o treinamento de novos usuários se mostrou bastante promis-


sora, principalmente nas fases iniciais de treinamento, entretanto, o VL ainda está em estágio

101
inicial de desenvolvimento, e a implementação de outras funcionalidades, como a movimen-
tação utilizando as coordenadas da base, ou do usuário, bem como, a opção de trajetórias, como
as circulares, são relevantes para aumentar a capacidade do VL, de modo a ser utilizado não só
em tarefas de pick-and-place, mas também na simulação de outras atividades de relevância na
indústria, e.g., operação de soldagem, pintura, e manuseamento de materiais.
Desta forma, quanto mais funcionalidades introduzidas no VL, maior a possibilidade de
criação de novos módulos de treinamento, intermediário e avançado, para introduzir ao progra-
mador, conceitos e funções mais complexas, contudo, preservando sempre sua segurança e a
integridade do equipamento.
Outro ponto de relevância, é que pela robótica em si ser uma ciência multidisciplinar, o
CAMPS também pode ser utilizado como estudo ou desenvolvimento em outros cursos de pós-
graduação do IME e outra Instituição de Ensino Superior. Uma sugestão, seria a otimização
do código computacional, de forma a deixa-lo mais rápido e viabilizar a simulação do cenário
completo do CIM-MecatrIME, apresentado no APÊNDICE 8.6, que contém várias estações de
trabalho, podendo evoluir para um Simulador de Eventos Discretos e contribuir para a PD&I
em Indústria 4.0.

102
7 REFERÊNCIAS BIBLIOGRÁFICAS

ABB. Robotstudio: It’s just like having the real robot on your pc!, 2018. Disponível:
https://new.abb.com/products/robotics/robotstudio [capturado em 16 jul. 2018].
AMATROL. Sistemas flexíveis de manufatura 1: montagem com movimentação linear. Jef-
fersonville, EUA: Amatrol, Inc, 2004.
AMATROL. Sistemas flexíveis de manufatura 1: introdução aos sistemas flexíveis de manu-
fatura. Jeffersonville, EUA: Amatrol, Inc, 2005.
AMATROL. Robotics and computer programming 1: basic robot programming. Jefferson-
ville, EUA: Amatrol, Inc, 2013.
BABATEEN, H. M. The role of virtual laboratories in science educa-
tion In: INTERNATIONAL CONFERENCE ON DISTANCE LEARNING
AND EDUCATION (IPCSIT), 5. 2015. v. 12, p. 100-104. Disponível:
https://pdfs.semanticscholar.org/a98d/73d731659b5e9053f10b3213daeb85f630eb.pdf
[capturado em 30 jun. 2018].
BABICH, A. e MAVROMMATIS, K. Virtual laboratory concept for engineering education. In:
INTERNATIONAL CONFERENCE ON ENGINEERING AND RESEARCH “PROGRESS
THROUGH PARTNERSHIP”. 2004. p. 1043-1050. ISSN 1562-3580. Disponível:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.608.444&rep=rep1&type=pdf
[capturado em 5 abr. 2018].
CAMPOS, A., GUENTHER, R. e MARTINS, D. Differential kinematics of se-
rial manipulators using virtual chains. Journal of the Brazilian Society of Me-
chanical Sciences and Engineering [online], Brasil, Out., 2005. n. 4, v. 12,
p. 345-356.ISSN 1806-3691. Disponível: http://www.scielo.br/scielo.php?pid=S1678-
58782005000400002&script=sci_arttext#fig3 [capturado em 29 jan. 2017].
CHIKOFSKY, E. J. e CROSS, J. H. Reverse engineering and design recovery: a taxonomy.
IEEE software, 7(1):13–17, 1990.
CNI. Indústria 4.0: novo desafio para a indústria brasileira. SONDA ESPECIAL [online],
ano 17, n. 2, abr., 04 2016. Disponível: http://www.cni.org.br/sondespecial. [capturado em
05 out. 2017]. ISSN 2317-7330.
CRAIG, J. J. Introduction to robotics: mechanics and control 3 ed. NJ, EUA: Pearson Prentice
Hall„ 2005.
DA LUZ, R. B., NETO, A. G. S. S. e NORONHA, R. V. Teaching tdd, the coding dojo
style. In: IEEE 13TH INTERNATIONAL CONFERENCE ON ADVANCED LEARN-
ING TECHNOLOGIES, 13 [online]. 2013. p. 371-375. ISSN 2161-377X . Disponível:
https://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6601956 [capturado em 13 jul. 2018].

103
DAVIDSON, J. K. e HUNT, K. H. Robots and screw theory: applications of kinematics and
statics to robotics. Nova York, EUA: Oxford University Press, 2004.

END. Estratégia nacional de defesa. Brasília: Ministério da Defesa, 2012. Disponível:


https://www.defesa.gov.br/arquivos/estado_e_defesa/END–PND_Optimized.pdf [capturado
em 14 out. 2016].

FANUC. Fanuc roboguide: simulation software, 2017. Disponível:


https://www.fanucamerica.com/home/products-services/robots/robot-simulation-software-
FANUC-ROBOGUIDE [capturado em 16 jul. 2018].

FASTSUITE. Fastsuite: offline programming, 2017. Disponível:


http://www.fastsuite.com/en_EN/products/offline-programming.html [capturado em 16
jul. 2018].

HOVAKIMYAN, A., SARGSYAN, S. e ISPIRYAN, N. et al. An approach to vir-


tual laboratory design and testing. American Journal of Software Engineer-
ing and Applications [online], 20 fev., 2013. n. 1, v. 2, p. 19-23. Disponível:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1019.4069&rep=rep1&type=pdf
[capturado em 5 jul. 2018].

IDRLAB. Missão, visão e valores, 2018. Disponível: http://labmec.imejunior.com.br/missao-


e-valores/ [capturado em 09 jul. 2018].

IFR. Executive summary world robotics industrial robots


2017. International Federation of Robotics., 2017. Disponível:
https://ifr.org/downloads/press/Executive_Summary_WR_2017_Industrial_Robots.pdf.
[capturado em 03 out. 2017].

IFR. Industrial robot sales increase worldwide by 31 percent. International Federation of


Robotics, 20 jun, 2018. Disponível: https://ifr.org/ifr-press-releases/news/industrial-robot-
sales-increase-worldwide-by-29-percent. [capturado em 09 jul. 2018].

IME. Filosofia: missão. Instituto Militar de Engenharia [online], 2018. Disponível:


http://www.ime.eb.mil.br/pt/filosofia.html [capturado em 12 jul. 2018].

JARA, C. A., CANDELAS, F. A. e POMARES, J. et al. Java software platform for the
development of advanced robotic virtual laboratories. Wiley Periodicals, Inc, 2011a.

JARA, C. A., CANDELAS, F. A. e PUENTE, S. T. et al. Hands-on experiences of under-


graduate students in Automatics and Robotics using a virtual and remote laboratory.
Computers & Education, 57(4):2451–2461, 2011b.

KUKA. KUKA.Sim software, 2018. Disponível: https://www.kuka.com/en-de/products/robot-


systems/software/planning-project-engineering-service-safety/kuka_sim [capturado em 16
jul. 2018].

104
MACEDO, E. e RIBEIRO, L. P. Robótica industrial: vantagem estratégica e desafios. In: IN-
TERNATIONAL SODEBRAS CONGRESS, 33. 2015. v. 10, n. 116. p. 139-144. ISSN
1809-3957. Disponível: http://www.sodebras.com.br/edicoes/N116.pdf. [capturado em 5 abr.
2018].

MACEDO, F. A. A., SOARES, A. G. e SANTOS, R. R. et al. Sistema carpa: utilização das


cadeias virtuais de assur no posicionamento de modelos em CAD 3D do CIM - Mecatrime. In:
INTERNATIONAL SODEBRAS CONGRESS, 38 [online]. 2018. v. 13. n. 147. p. 179-185.
ISSN 1809-3957 . Disponível: http://www.sodebras.com.br/edicoes/N147.pdf [capturado em
02 abr. 2018].

MECATRIME. Mecatrime: laboratório de mecatrônica do instituto militar de engenharia,


2018. Disponível: http://mecatrime.org [capturado em 29 mar. 2018].

MERLO, E., GAGNÉ, P.-Y. e GIRARD, J.-F. et al. Reengineering user interfaces. IEEE Soft-
ware n. 1, p. 64-73, jan. 1995.

MOODY, J. A. O., ALONSO, R. E. S. e BARBOSA, J.-J. G. et al. virtual laboratories for


training in industrial robotics. IEEE Latin America Transactions [online], Out., 2016. n.
2, v. 14, p. 665-672.

MURRAY, R. M., LI, Z. e SASTRY, S. S. et al. A mathematical introduction to robotic


manipulation. California, EUA: CRC press, 1994.

NOF, S. Y. Handbook of industrial robotics. Indiana, EUA: John Wiley & Sons, 1999.

NORTON, R. L. Cinemática e dinâmica dos mecanismos. Porto Alegre: AMGH Editora,


2010. 800 p. il. ISBN 978-85-63308-19-1.

OCTOPUZ. Extend your reach with OCTOPUZ, 2018. Disponível:


https://octopuz.com/features/ [capturado em 16 jul. 2018].

OSHA. Accidents with robots, 2018. Disponível:


https://www.osha.gov/pls/imis/AccidentSearch.search?acc_keyword=%22Robot%22&key
word_list=on [capturado em 26 fev. 2018].

PAN, Z., POLDEN, J. e LARKIN, N. et al. Recent progress on programming methods for in-
dustrial robots. In: INTERNATIONAL SYMPOSIUM ON ROBOTICS (ISR), 41 /GERMAN
CONFERENCE ON ROBOTICS, 6, 2010. 2012. p. 619-626. ISBN: 978-3-8007-3273-9.

POTKONJAK, V., GARDNER, M. e CALLAGHAN, V. et al. Virtual laboratories for edu-


cation in science, technology, and engineering: A review. Computers & Education, 95:
309–327, 2016.

POTKONJAK, V., VUKOBRATOVIĆ, M. e JOVANOVIĆ, K. et al. Virtual Mechatron-


ic/Robotic laboratory–A step further in distance learning. Computers & Education, 55
(2):465–475, 2010.

PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional, 7.ed. Rio de


Janeiro: McGraw-Hill, 2011.

105
RIBEIRO, L. P. G. Modelagem Cinemática de Sistemas Robóticos Cooperativos: proposta
de um jacobiano de cooperação. 2010.

ROBOTDK. Simulate robot applications: program any industrial robot offline with one simu-
lation environment, 2018. Disponível: https://robodk.com/index [capturado em 16 jul. 2018].

ROCHA, C., TONETTO, C. e DIAS, A. A comparison between the denavit–hartenberg and


the screw-based methods used in kinematic modeling of robot manipulators. Robotics and
Computer-Integrated Manufacturing, 27(4):723–728, 2011.

SAAD, M., SALIAH-HASSANE, H. e HASSAN, H. et al. Distributed


online laboratories In: INTERNATIONAL CONFERENCE ON EN-
GINEERING EDUCATION 6-10 ago. 2001. p. 6-10. Disponível:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.6790&rep=rep1&type=pdf
[capturado em 23 abr. 2018].

SANTOS, F. L. M., SANTOS, R. R., DE AZEVEDO MACEDO, F. A. e RIBEIRO, L. P. G.


Capron: Avaliação da eficiência do simulador na aprendizagem de programação on-line do
robô pegasus. XXXVII International Sodebras Congress, 2017a.

SANTOS, F. L. M. Modelagem e simulação de robôs seriais baseadas em helicoides. 2017.


126 p. Dissertação (Mestrado em Engenharia Mecânica) - Faculdade de Engenharia, Instituto
Militar de Engenharia, Rio de Janeiro.

SANTOS, R. R., MACEDO, F., SANTOS, F. L. e RIBEIRO, L. P. G. O uso de cad 3d no plane-


jamento da programação on-line de uma operação de montagem usando robô pegasus. In:
INTERNATIONAL SODEBRAS CONGRESS, 36. 2017b. v. 12, n.135, Mar./2017, p. 185-
190. ISSN 1809 - 3957. Disponível em: <http://www.sodebras.com.br/edicoes/N135.pdf>.
Acesso em: 14 abr. 2017.

SANTOS, R. R. Metodologia para auxilio à modelagem e simulação de sistemas robóticos


cooperativos. 2018. 141 p. Dissertação (Mestrado em Engenharia Mecânica) - Faculdade de
Engenharia, Instituto Militar de Engenharia, Rio de Janeiro.

SATO, D. T., CORBUCCI, H. e BRAVO, M. V. Coding dojo: An environment for learning and
sharing agile practices. Em Agile 2008 Conference, págs. 459–464, Aug 2008.

SICILIANO, B. e KHATIB, O. Springer Handbook of Robotics. California, USA: Springer


Science & Business Media, 2008.

SICILIANO, B., SCIAVICCO, L. e VILLANI, L. et al. Robotics: modelling, planning and


control. Londres, Inglaterra: Springer Science & Business Media, 2009.

SIMAS, H., GUENTHER, R., DA CRUZ, D. e MARTINS, D. A new method to solve robot
inverse kinematics using assur virtual chains. Robotica, 27(7):1017–1026, 2009.

SLACK, N., STUART, C. e JOHNSTON, R. Administração da Produção. 2.ed. São Paulo:


Atlas, 2002.

SUSI, T., JOHANNESSON, M. e BACKLUND, P. Serious games: an overview. 2007.

106
TSAI, L.-W. Robot analysis: the mechanics of serial and parallel manipulators. John Wiley
& Sons, 1999.

TUTTAS, J. e WAGNER, B. Distributed online laboratories In: INTERNATIONAL CON-


FERENCE ON ENGINEERING EDUCATION 6-10 ago. 2001. p. 7-11. Disponível:
ftp://labattmot.ele.ita.br/ele/lfilipe/Lab_Real_Remoto/Artigos/Lab_Remoto/Tuttas_J_Distri
buited_Online_Labs.pdf [capturado em 5 jun. 2018].

WANG, W. Reverse engineering: Technology of reinvention. Boca Raton, EUA: CRC Press,
2011.

YASKAWA. FS–100 Instructions. 2014a.

YASKAWA. FS–100 Operator’s Manual. 2014b.

YASKAWA. MOTOMAN MH5S II, MH5F, MOTOMAN MH5LS II, MH5LF Handling & Gen-
eral Applications with the MH-series. Disponível: https://www.motoman.com/ [capturado
em 03 abr. 2017]. 2017.

YASKAWA. Motosim eg-vrc. 2017. Disponível em:


https://www.motoman.com/hubfs/PDFs/MotoSim_EG_VRC.pdf?hsLang=en-
us&t=1532014000267 [capturado em 19 jul. 18].

YASUDA, K. The future vision of industrial robot. In: INTERNATIONAL SYMPOSIUM ON


POWER SEMICONDUCTOR DEVICES AND IC’S (ISPSD), 29. 2017. IEEE. p. 7–12.

107
8 APÊNDICES

108
8.1 APÊNDICE 1: TEORIA DOS HELICOIDES

Neste apêndice é apresentado a metodologia utilizada para a modelagem cinemática de


robôs seriais fundamentada na Teoria dos Helicoides. É feito também um estudo de caso com
o Robô Motoman MH5F, com a validação utilizando o robô real, disponível no Laboratório de
Mecatrônica do IME.

8.1.1 O HELICOIDE

A metodologia aplicada à análise cinemática do robô nesta dissertação é baseada na Teoria


dos Helicoides.
Conforme DAVIDSON & HUNT (2004), considera-se o helicoide como um ente geométrico
definido por:

1. uma reta no espaço que representa a direção do seu eixo, em torno do qual rotaciona ou
ao longo do qual translada, designada pelo respectivo vetor unitário s,ou seja,o eixo do
helicoide;

2. um vetor s0 , ligando a origem do referencial, a qualquer ponto pertencente ao eixo do


helicoide;

3. um ângulo θ, cuja variação caracteriza o movimento de rotação em torno do eixo do


helicoide, e;

4. um comprimento d, cuja variação representa a translação ao longo do eixo do helicoide.

8.1.2 ROTAÇÃO HELICOIDAL


O primeiro passo para representar o movimento helicoidal, é representar a rotação de um
ponto em torno do eixo de um Helicoide como pode ser visto na FIG. 8.1

109
FIG. 8.1: Representação da rotação de um helicoide. (Adaptado de TSAI (1999))

Para isso, admita o vetor unitário s = [sx , sy , sz ]T e o sistema de eixos cartesianos (x, y, z)
sendo o referencial fixo. Seja P1 a posição inicial de um ponto P pertencente ao corpo rígido
e P2r corresponda à posição final do ponto P entre dois deslocamentos sucessivos. Neste caso
ocorre uma rotação em torno do eixo do helicoide s da posição P1 para P2r . Seja SP um ponto
sobre o eixo do helicoide pertencente ao plano perpendicular e que contenha os pontos P1 e P2r .
Analisando a geometria da FIG. 8.1, as seguintes expressões vetoriais podem ser escritas:

OP1 = OSP + SP P1 (8.1)


OP1 = P1 (8.2)
OSP = SP = (P1 · s)s (8.3)

Assim sendo, tem-se que:

SP P1 = P1 − (P1 · s)s (8.4)

Do mesmo modo:

SP P2r = P2r − (P2r · s)s (8.5)

Agora, considera-se a interseção do plano perpendicular à s, FIG. 8.2, passando pelos pontos

110
P1 e P2r , sendo definido o ponto Sp . Sp N é a projeção de SP P2r sobre SP P1 , de acordo com a
FIG. 8.2. Logo, N P2r ⊥SP P1 e:
SP N = SP P2r cos θ (8.6)

No entanto, SP P2r é igual à SP P1 , pois equivale ao raio de uma semi-circunferência devido a


rotação de θ em torno de SP . Então,

SP N = SP P1 cos θ (8.7)

r
P2

Sp θ

P1

FIG. 8.2: Projeção de SP P2r sobre SP P1 . (Adaptado de TSAI (1999))

Sabendo ainda que:

s × SP P2r = s × [P1 − (P1 · s) s] =


= s × P1 − s × (P1 · s) s =
(8.8)
= s × P1 − (P1 · s) (s × s) =
= s × P1

pois (s × s) = 0.
Deseja-se escrever a seguinte soma vetorial:

SP P2r = SP N + N P2r (8.9)

Para isso, tem-se que:


 
SP P1
N P2r = |N P2r | s× (8.10)
|SP P1 |

111
Como:

|N P2r | = |SP P2r | sen θ = |SP P1 | sen θ (8.11)

Assim:

N P2r = (s × SP P1 ) sen θ (8.12)

Os outros dois termos são:

SP N = SP P1 cos θ (8.13)
SP P2r = P2r − (P2r · s)s (8.14)

Logo, a soma vetorial desejada fica:

SP P2r = SP N + N P2r (8.15)


P2r − (P2r · s)s = SP P1 cos θ + (s × SP P1 ) sen θ (8.16)

Como:

SP P1 = P1 − (P1 · s)s (8.17)


P1 · s = P2r · s (8.18)

Tem-se que:

P2r − (P1 · s)s = (P1 − (P1 · s)s) cos θ + (s × (P1 − (P1 · s)s)) sen θ (8.19)

Isolando P2r , tem-se:

P2r = (P1 · s)s − (P1 · s)s cos θ + P1 cos θ + (s × P1 − (P1 · s) (s × s)) sen θ (8.20)

P2r = P1 cos θ + (1 − cos θ) (P1 · s)s + (s × P1 ) sen θ (8.21)

É possível colocar na forma do Teorema de Euler (pA = RB


A B
p ), de modo a determinar as

112
componentes da matriz de rotação, fazendo P1 = pB e P2r = pA :

pA = pB cos θ + (1 − cos θ) (pB · s)s + s × pB sen θ



(8.22)

Ficando, dessa forma, igual à:


   
pA
x pB
x
  A
 
pA  = RB pB  (8.23)
y
  y
 
A
pz pB
z

Onde:

 
 cθ + s2x (1− cθ ) sy sx (1 − cθ ) − sz sθ sz sx (1 − cθ ) − sy sθ 
 
A
RB = sx sy (1 − cθ ) + sz sθ cθ + s2y (1 − cθ ) (8.24)
 
 sz sy (1 − cθ ) + sx sθ 

 
sx sz (1 − cθ ) + sy sθ sx sz (1 − cθ ) + sy sθ cθ + s2z (1 − cθ )

sabendo que sθ e cθ são notações utilizadas para representar sen θ e cos θ, respectivamente.

8.1.2.1 ÂNGULOS DE EULER

Para uma representação da orientação do vetor pA , são usados um conjunto mínimo de três
ângulos, Rx , Ry e Rz . Estes, são chamados de Ângulos de Euler e representam uma rotação
nos eixos X, Y e Z respectivamente. De acordo com SICILIANO et al. (2009), uma matriz de
rotação genérica, isto é, uma matriz que consiga representar a orientação de um corpo rígido no
espaço, pode ser obtida pela sequência de três rotações elementares convenientes, desde que,
não sejam realizadas duas rotações sucessivas sobre eixos paralelos. Isso implica que existem
12 conjuntos possíveis das 27 combinações existentes. Todavia, será apresentado somente o os
angulos ZYX, conhecido como Roll-Pitch-Yaw (SICILIANO & KHATIB, 2008).
Dito isso, ao substituir na EQ. 8.24 os valores de s e s0 , sendo sRx = [1; 0; 0]T ; sRy =
[0; 1; 0]T sRz = [0; 0; 1]T e s0Rx ≡ s0Ry ≡ s0Rz ≡ [0; 0; 0]T , é possível obter as rotações
elementares Rx , Ry e Rz , ou seja, para cada rotação elementar em torno do eixo fixo X, Y, Z
tem-se as respectivas matrizes Rx , Ry e Rz .

113
     
1 0 0 cRy 0 sRy cRz −sRz 0
Rx = 0 cRx −sRx  Ry =  0 1 0  Rz = sRz cRz 0
0 sRx cRx −sRy 0 cRy 0 0 1

O produtório dos ângulos de Euler é calculado:


 
cRz cRy cRz sRy sRx − sRz cRx cRz sRy cRx + sRz sRx 
 
 
Rz Ry Rx = 
sRz cRy sRz sRy sRx + cRz cRx sRz sRy cRx − cRz sRx 
 (8.25)
 
 
−sRy cRy sRx cRy cRx

Uma vez que os elementos da matriz de rotação genérica R:


 
r11 r12 r13
 
R=
r21 r22 r32 

r31 r32 r33

É possível utilizar as relações abaixo para obter os ângulos Rx , Ry e Rz .

Rx = atan2 (r32 , r33 )


 q 
2 2
Ry = atan2 −r31 , r32 + r33 (8.26)

Rz = atan2 (r21 , r11 )

8.1.3 DESLOCAMENTO HELICOIDAL

Após a análise da rotação helicoidal, onde o eixo passa pela origem do referencial fixo,
é necessário representar o seu deslocamento. Sua análise é realizada através do Teorema de
Chasles, o qual diz que qualquer deslocamento de um corpo rígido é equivalente à soma da
translação de qualquer ponto naquele corpo com uma rotação sobre um eixo por meio desse
ponto (NORTON, 2010).
Sendo assim, através da análise da FIG. 8.3, tem-se o ponto P em três posições distintas:
P1 , P2r e P2 . Existe uma rotação θ entre P1 e P2r , e uma translação t entre P2r e P2 , além do
eixo do helicoide estar distante da origem do referencial de um vetor s0 , sabe-se também, que a
direção do eixo do helicoide é dada pelo vetor s, onde ocorrerá a translação e a rotação. Dessa
forma, o deslocamento helicoidal fica perfeitamente determinado por s, s0 , θ e t.

114
t
r

FIG. 8.3: Representação de movimento helicoidal. (Adaptado de TSAI (1999))

As seguintes somas vetoriais podem ser escritas:

P1 = s 0 + s 0 P 1 (8.27)

P2 = s0 P2r + s0 + ts (8.28)

É possível substituir na equação de Rodrigues, na forma do Teorema de Chasles, de modo


a determinar as componentes da matriz de rotação, fazendo s0 P1 = r1 e s0 P2r = r2 .

s0 P2r = s0 P1 cos θ + (1 − cos θ) (s0 P1 · s)s + (s × s0 P1 ) sen θ

P2 − s0 − ts = (P1 − s0 ) cos θ + (1 − cos θ) ((P1 − s0 ) · s) s + (s × (P1 − s0 )) sen θ

P2 = s0 + ts + (P1 − s0 ) cos θ + (1 − cos θ) ((P1 − s0 ) · s) s + (s × (P1 − s0 )) sen θ

P2 = P1 cos θ + (1 − cos θ) (P1 · s) s + (s × P1 ) sen θ+


(8.29)
+ s0 + ts − s0 cos θ − (1 − cos θ) (s0 · s) s − (s × s0 ) sen θ

Colocando na forma do Teorema de Chasles, fazendo P1 = pB e P2 = pA .

pA = RB
A B
p + qA (8.30)

pA = pB cos θ + (1 − cos θ) pB · s s + s × pB sen θ+


 
(8.31)
+ s0 + ts − s0 cos θ − (1 − cos θ) (s0 · s) s − (s × s0 ) sen θ

115
O termo da rotação é idêntico ao analisado na rotação em torno de um ponto, o que implica
que as componentes da matriz de rotação são as mesmas, o que não poderia deixar de ser, visto
que é uma soma vetorial:
 
A
 px 
 
A =
 

 py 

 
A
pz
 
 cθ + s2x (1 − cθ ) sy sx (1 − cθ ) − sz sθ sz sx (1 − cθ ) + sy sθ 
 
=  sx sy (1 − cθ ) + sz sθ cos θ + s2y (1 − cθ ) .
 
 sz sy (1 − cθ ) − sx sθ 

 
sx sz (1 − cθ ) − sy sθ sy sz (1 − cθ ) + sx sθ cos θ + s2z (1 − cθ )
   
 pB
x  
A
qx 
   
.  pB + A (8.32)
   
 y   qy 

   
pB
z
A
qz

Associando ainda os termos da translação, é possível encontrar:


 
A
qx
 
 = s0 + ts − s0 cos θ − (1 − cos θ) (s0 · s) s − (s × s0 ) sen θ
A =

 qy 
A
qz
     
s0x sx s0x
     
= s 0y
 + t  sy  −  s0y  cos θ−
     
s0z sz s0z
 
sx i
j k
 
− (1 − cos θ) (sx s0x + sy s0y + sz s0z ) 
 sy  − sx sy
 sz sen θ

sz s0x s0y s0z

Dessa forma, desenvolvendo a equação, o termo q A , referente a translação de cada junta,


pode ser encontrado de acordo com a EQ.8.33.
   
qxA tsx + s0x − s0x a11 − s0y a12 − s0z a13
   
q A  = tsy + s0y − s0x a21 − s0y a22 − s0z a23  (8.33)
 y  
A
qz tsz + s0z − s0x a31 − s0y a32 − s0z a33

116
É possível escrever o Teorema de Chasles para o movimento helicoidal na forma homogênea,
para isso, é feita um sistema de equações lineares, com a EQ. 8.30, e levando em conta a verdade
de que 1 = 1 conforme o sistema abaixo:

p A = R A p B + q A
B
(8.34)
1 = 1

O sistema de equações da EQ. 8.34, pode ser reescrita sem alterar a igualdade, como:

p A = R A p B + q A
B
(8.35)
1 = 0pB + 1

e rearranjando em forma matricial, ou seja:


" # " #" #
pA A
RB qA pB
= (8.36)
1 0 1 1

Dessa forma, o Teorema de Chasles na forma homogênea pode ser vista da seguinte forma:

p̃A = TBA p̃B (8.37)

onde TBA é conhecida como Matriz de Transformação Homogênea (MTH), capaz de representar
a localização do sistema móvel, ou seja rotação e translação.

8.1.4 MÉTODO DOS DESLOCAMENTOS DOS HELICOIDES SUCESSIVOS

O Método dos Deslocamentos dos Helicoides Sucessivos (MDHS), tem como objetivo en-
contrar um helicoide resultante, que consiga representar o movimento geral dos helicoides das
juntas, conforme a FIG. 8.4 de uma posição inicial (Referencia) para uma Final (Alvo), após
variar θ e t de todos os helicoides da cadeia aberta.
Cada corpo, representado pela letra C, é conectado ao próximo por uma junta, formando um
par cinemático. Através de uma análise iniciada pela ferramenta em direção a base, tem-se que
o helicoide $n é passível de sofrer influência do helicoide anterior, e assim por diante, e.g se o
$2 rotacionar/transladar, ela afetará somente a localização dos helicoides $3 em diante, contudo,
o helicoide $1 não será influenciado.

117
C4
C5 C6
C3

C2
Efetuador - Final

Base
C1

FIG. 8.4: Representação dos Deslocamentos dos Helicoides Sucessivos. (Adaptado de TSAI
(1999))

Visto isso, a representação desse método pode ser dado a partir da pré-multiplicação das
matrizes Tn por Tn−1 e assim sucessivamente até T1 , o que pode ser representado como:

TBA = T1 T2 ... Tn−1 Tn (8.38)

onde n é o número de juntas do robô a ser analisado.


A partir das seções anteriores, é possível realizar um fluxograma com os passos necessários
para a realização da modelagem utilizando o MDHS, conforme a FIG. 8.5.

1. Escolha de 2. Identificar 3. Identificar 4. Construir 5. Aplicar 6. Multiplicar o


um sistema de corpos, juntas parâmetros dos MTH de cada MDHS com a MDHS com a
coordenadas e eixos. helicoides junta, o ajuste MTH de cada matriz da
fixo. da ferramenta junta. ferramenta

FIG. 8.5: Procedimento para modelagem pelo MDHS. (Autoria Própria)

8.1.5 MODELAGEM DO ROBÔ MOTOMAN MH5F

Após explicado a modelagem pela Teoria dos Helicoides, essa seção, apresenta a modela-
gem do robô em foco, com uma variação na junta 3 ou U de −30◦ , FIG. 8.6. A fabricante
Yaskawa adota letras para identificar as juntas de 1 a 6 (base até efetuador-final) que compõe a
sigla SLURBT, logo a terceira junta é conhecida no PP como junta U .

118
θU=-30o

FIG. 8.6: Posição final do robô com Junta U = −30. (Autoria própria)

Para facilitar a visualização das juntas, e tornar o procedimento de análise mais fácil, é
utilizado um modelo esquemático do robô em questão, conforme as FIG. 8.7(a), (b) e (c). A
partir do modelo em CAD 3D é identificado e esquematizado o tipo de junta, adequando ao
vetor de referencia, em que se encontra na posição de Home (encoders zerados).

(a) Motoman MH5F render- (b) Transição entre o robô real e (c) Modelo esquemático do
izado. o esquemático. Robô Motoman MH5F.

FIG. 8.7: Criação de um modelo esquemático. (Autoria Própria)

8.1.5.1 PASSO 1: IDENTIFICAR CORPOS, JUNTAS E EIXOS

Primeiro passo, como consta no fluxograma da FIG. 8.5, é definir os corpos, as juntas e as
direções dos eixos das juntas, FIG. 8.8.

119
C3 JR C J
4 B JT
JU
C5 C6
C2
C1
JL
Js
C0

FIG. 8.8: Identificação dos corpos, juntas e eixos das juntas. (Autoria própria)

8.1.5.2 PASSO 2: IDENTIFICAR PARÂMETROS DO HELICOIDE DE CADA JUNTA

Identificar os vetores s e s0 de cada junta, os quais fornecem os sentidos de movimen-


tação das juntas e as distâncias em relação ao referencial absoluto, respectivamente FIG. 8.10
(RIBEIRO, 2010; ROCHA et al., 2011).

s0xE
s0xT
s0xB
sR
sT s0xL s0xU s0xR
s0zR s0zB s0zT s0ze

sU sB
s0zU

sL
s0zL =0
sS

Referencial
Absoluto

(a) Perspectiva do modelo esquemático. (Autoria (b) Vista lateral mostrando os s0 s, ou seja, as dis-
Própria) tâncias de cada junta. (Autoria Própria)

FIG. 8.9: Modelo esquemático usando a Teoria dos Helicoides

A partir dos dados fornecidos pelo DataSheet do fabricante, FIG. 8.10(a), é possivel criar
uma tabela com os parâmetros s e s0 de referência de cada junta, necessários para definir os
helicoides, conforme mostrado na TAB. 8.1.

120
486

235

706
114
0
88 305 80 585
947 473
393
D U R B 88
57

A
40

T
554
155° °
65 P

350
310

474

310
L

37°
737

150°
239
Working range
330

Point P
Referencial
B
0 Absoluto
S °
136
C
0
51

203

178
246
243

(a) Dados fornecidos pelo DataSheet do fabricante (b) Vista lateral mostrando os s0 s, ou
(YASKAWA, 2017) seja, as distâncias de cada junta. (Autoria
própria)

FIG. 8.10: Definição do vetor s0 .

TAB. 8.1: Parâmetros s e s0

S L U R B T
sx 0 0 0 -1 0 -1
sy 0 -1 -1 0 -1 0
sz 1 0 0 0 0 0
s0x 0 88 88 88 393 473
s0y 0 0 0 0 0 0
s0z 0 0 310 350 350 350
* s0 - cotas em mm

Cabe ressaltar que o fabricante, Yaskawa, associa uma letra para representar cada junta, ou
seja: S (swing) é a junta 1, L (lower arm) é a junta 2, U (upper arm) é a junta 3, R (rotation) é a
junta 4, B (bend) é a junta 5, e T (twist) é a junta 6.
Os dados relativos aos s0 ’s são os dados relativos ao datasheet do robô, os quais, são os
mesmos dados apresentados pelo próprio PP com o robô na posição de Home.

121
8.1.5.3 PASSO 3: DETERMINAR A MTH DE CADA JUNTA

Após realizados os passos 1 e 2, é possível criar as MTH de cada junta, as quais, definem
seus movimentos, como visto na Seção 8.1.3.
Com isso, a MTH, ou seja TBA de cada junta encontra-se representada na TAB. 8.2.

TAB. 8.2: MTH de cada junta (genérica e para SLURBT = [0, 0, −30, 0, 0, 0]T

Junta Resultado simbólico Resultado com U = −30◦


   
c1 −s1 0 0 1 0 0 0
s
 1 c1 0 0 
 0 1 0 0
S T1 =  T1 = 
 
 
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
   
c2 0 s 2 88 − 88c2 1 0 0 0
 0 1 0 0  0 1 0 0
L T2 = T2 =
   
 
−s2 0 c2 88s2  0 0 1 0
0 0 0 1 0 0 0 1
   
c3 0 −s3 310s3 − 88c3 + 88 0.866 0 0.5 −143.2102
0 1 0 0   0 1 0 0 
U T3 = T3 =
   
 
s3 0 c3 310 − 88s3 − 310c3   −0.5 0 0.866 85.5321 
0 0 0 1 0 0 0 1
   
1 0 0 0 1 0 0 0
0 c
4 s4 −350s4  0 1 0 0
R T4 = T4 =
   
 
0 −s4 c4 350 − 350c4  0 0 1 0
0 0 0 1 0 0 0 1
   
c5 0 −s5 350s5 − 393c5 + 393 1 0 0 0
0 1 0 0  0 1 0 0
B T5 = T5 =
   
 
s5 0 c5 350 − 393s5 − 350c5  0 0 1 0
0 0 0 1 0 0 0 1
   
1 0 0 0 1 0 0 0
0 c
6 s6 −350s6  0 1 0 0
T T6 = T6 =
   
 
0 −s6 c6 350 − 350c6  0 0 1 0
0 0 0 1 0 0 0 1

122
8.1.5.4 PASSO 4: APLICAÇÃO DO MÉTODO DOS DESLOCAMENTOS DOS HELICOIDES
SUCESSIVOS

Para o Motoman n = 6 juntas, então a EQ. 8.38 é simplificada ficando da forma:

TBA = T1 T2 T3 T4 T5 T6 (8.39)

Finalmente, é necessário obter a MTH para ajustar a posição e orientação do referencial


da ferramenta utilizada pelo MH5F (real), que possui uma distância de 112 mm em relação ao
flange e tem o eixo z do efetuador final atacando, como mostra a FIG. 8.11.

112 mm

xf

zb
yb
zf
yf
xb

FIG. 8.11: Referencial da ferramenta. (Autoria própria)

O resultado é a Tf , que equivale a uma rotação elementar de 90◦ em torno de yb , seguida de


outra rotação de 180◦ em torno de xb , assumindo assim, os respectivos eixos de rotação, xf e
yf , em relação ao referencial absoluto.
 
0 0 1 585
 
0 −1 0 0 
Tf =  (8.40)
 

1 0 0 350
 
0 0 0 1

O ajuste é realizado a partir de uma pós-multiplicação do produtório das MTHs TBA , com a
matriz ajuste da ferramenta Tf , resultando na EQ. 8.41.

Ttot = TBA Tf (8.41)

123
8.1.5.5 PASSO 5: APLICAÇÃO DE CHASLES E ÂNGULOS DE EULER

Ao realizar o produtório de todas as MTHs mais o ajuste da ferramenta, é obtido como


resultado a EQ. 8.42.
 
0.5 0 0.8660 538.4146
 
 0 −1 0 0 
TBA =  (8.42)
 

0.8660 0
 −0.5 96.1410 

0 0 0 1

Assim, é possível obter por q A os valores de posição em Px , Py e Pz , e através da matriz


de rotação que está embutida na MTH, utilizar os ângulos de Euler (EQ. 8.26), para encontrar
a orientação do efetuador final, i.e., Rx , Ry e Rz , e montar a TAB. 8.3 com a localização do
efetuador-final para U = −30◦ .

TAB. 8.3: Resolução Cinemática para a posição com U = −30◦

Localização X Y Z Rx Ry Rz
Resolução 538.4146 0 96.1410 180 -60 0

Com os dados obtidos através do exemplo, é possível fazer uma validação a partir do próprio
robô, conforme pode ser observado na FIG. 8.12

FIG. 8.12: Validação dos resultados para U = −30◦ . (Autoria própria)

124
8.2 APÊNDICE 2: MODELAGEM DO ROBÔ MOTOMAN MH5F PELA CONVENÇÃO
DE DENAVIT-HARTENBERG

O principal método utilizado pelos autores SICILIANO et al. (2009); SICILIANO & KHATIB
(2008); NOF (1999); MURRAY et al. (1994) para resolver a modelagem cinemática de robôs é
a convenção de Denavit-Hartenberg (DH). Esta convenção, tem como objetivo apresentar regras
para se definir a posição e orientação relativa entre dois elos consecutivos ligados por uma junta,
ou seja, um par cinemático. Uma vez que os referenciais podem ser arbitrariamente escolhidos,
essa metodologia permite que os valores encontrados não venham a se divergir drasticamente.
Esse apêndice tem como objetivo apresentar a modelagem por DH do robô Motoman MH5F
como forma de comparação entre a Teoria dos Helicoides utilizada.

8.2.1 DETERMINAR PARÂMETROS DE DENAVIT-HARTENBERG

1. identificar elos, juntas e eixos: numerar os elos de 0 (base) até n (efetuador-final); juntas
são numeradas de 1 até n, sabendo que a junta i conecta os elos i − 1 e i; escolher o eixo
zi sobre o eixo da junta i + 1, para i = 0, ..., n − 1.

2. determinar o sistema de coordenadas absoluto 0 (zero): O0 é definido sobre a direção


do eixo z0 , na menor distância entre z0 e z1 . Logo, quando z0 ⊥z1 , O0 estará na interseção
dos dois eixos. Quando não for possível utilizar essa regra, coincidir O0 com a interseção
do eixo z0 com a base do robô; escolher o sentido de z0 sempre da base para a junta 1 e
x0 e y0 seguindo a regra da mão direita.

Os passos de 3 a 6 a seguir devem ser repetidos para i = 1, ..., n − 1.

3. determinação do ponto Oi0 : determinar o ponto Oi0 (sistema linha) na interseção do eixo
zi−1 e a junta i com a normal comum dos eixos zi−1 e zi , observando se, zi for colinear a
zi−1 e a junta i + 1 for de translação, definir Oi0 no limite da junta i + 1, e.g. na posição
de zero da junta (Home).

4. determinação do sistema Oi : determinar a origem do sistema de coordenada Oi na


interseção do eixo zi com a normal comum aos eixos zi−1 e zi , observando se: (1) zi−1 k
zi , e a junta i for de rotação, escolher Oi , tal que di = 0 (Ou seja, a coordenada de Oi0
sobre o eixo zi−1 ); (2) zi−1 k zi , e a junta i for de translação, escolher Oi em uma posição
de limite de junta, e.g. na posição de zero da junta (home).

125
5. determinação dos eixos xi e yi : escolher o eixo xi sobre a normal comum aos eixos
zi−1 e zi . Se zi−1 for colinear a zi adotar xi de forma que fique no mesmo sentido do
adotado nesta direção pelo referencial da base; escolher o eixo yi obedecendo a regra da
mão direita;

6. determinação dos eixos xi0 e yi0 do sistema linha: determinar zi0 e xi0 , sabendo que zi0
é colinear a zi−1 , e xi0 a xi ;

7. determinação do sistema n: definir o sistema n da seguinte forma:

• o ponto On se encontra no Tool Center Point (TCP) do robô;

• determinar o eixo zn , de forma que o efetuador-final ataque o objeto alvo;

• determinar xn e yn conforme o passo 5;

8. definição dos parâmetros de DH: definir os quatro parâmetros de Denavit-Hartenberg


construindo uma tabela para i = 1, ..., n, onde:

• ai - distância entre Oi e Oi0 ;

• αi - ângulo entre os eixos zi−1 e zi em torno do eixo xi ;

• di - coordenada de Oi0 sobre o eixo zi−1 , e;

• ϑi - ângulo entre os eixos xi−1 e xi em torno do eixo zi−1 .

JUNTA JUNTA JUNTA

ELO ELO

FIG. 8.13: Parâmetros de DH. (SICILIANO et al., 2009)

126
É importante ressaltar que dentre os 4 parâmetros, 2 são sempre constantes (ai e αi ), os
outros dois, um deles vai variar de acordo com o tipo de junta que conecta o elo i − 1 ao elo i,
enquanto o outro fica constante, ou seja:

• Se junta i for de rotação, o parâmetro variável é ϑi , tendo um parâmetro fixo, calculado


pela regra do passo 8, e um adicional de θi que representa a rotação da junta i.

• Se junta i for prismática, o parâmetro variável é di , tendo um valor fixo, calculado pela
regra do passo 8, e um adicional de ti que representa a translação de junta i.

Desta forma, a FIG. 8.14 ilustra o resultado da modelagem do Motoman MH5F pela con-
veção de DH. Vale citar, que para uma melhor visualização, foram ocultados o eixo y de cada
uma das junta, e as cores relativas ao sistema linha, de um tom mais claro.

X6
X4 X5

X3 Z4

Z3
X2

Z2

X1
Z0
Y0
Z1

FIG. 8.14: Modelagem do MH5F pela convenção de DH. (Autoria própria)

E os parâmetros de DH encontram-se listados na TAB. 8.4.

127
TAB. 8.4: Parâmetros de Denavit-Hartenberg do Motoman MH5F

a (mm) αi (◦ ) d (mm) ϑ (◦ )

S 88 +π/2 0 θS
L 310 0 0 θL + π/2
U 40 −π/2 0 θU
R 0 π/2 -305 θR
B 0 −π/2 0 θB
T 0 π -192 θT

8.2.2 DETERMINAR AS MATRIZES DE TRANSFORMAÇÃO HOMOGENEAS (MTH)

Determinar as Matrizes de Transformação Homogêneas, para i = 1, ..., n. Para um caso


genérico a equação pode ser escrita como a EQ. 8.43
 
cϑi −sϑi cαi s ϑi s α i ai cϑi
 
s
 ϑi cϑi cαi −cϑi sαi ai sϑi 
Ai−1 (q ) = (8.43)

i i  
0 sαi cα i di 
 
0 0 0 1

8.2.3 DETERMINAR A COMPOSIÇÃO DA MTH DE CADA JUNTA

Determinar o produtório das MTH de cada junta. De forma genérica:

Tn0 = A01 (q1 )A12 (q2 )...Aii−1 (qi )...An−1


n (qn ) (8.44)

onde n é o número de juntas do robô em questão, no caso do MH5F, como n = 6:

T60 = A01 (q1 )A12 (q2 )A23 (q3 )A34 (q4 )A45 (q5 )A56 (q6 ) (8.45)

8.2.4 DETERMINAR AS MTH DE BASE E FERRAMENTA (PASSO OPCIONAL)

Determinar a MTH Ten entre o efetuador final e a última junta:

T0b (q) = Tn0 (q)Ten (q)

Como resultado, é montada a TAB. 8.5, onde são apresentadas as MTH genéricas de cada
junta, e para uma rotação em U = −30◦ .

128
TAB. 8.5: MTH de cada junta por DH (genérica e para L= −30o )

Junta Resultado simbólico Resultado com U = −30◦


   
c1 0 −s1 88c1 1 0 0 88
s 0 c 88s1  0 0 1 0 
0  1 2 0
S A1 =  A1 = 
  
0 −1 0 0 
 
0 1 1 0 
0 0 0 1 0 0 0 1
   
c2 s 2 0 310c2 0 −1 0 0
s −c 0 310s2  −1 0 0 −310
1  2 2 1
L A2 =  A2 = 
  
0 −1 0 −1
 
0  0 0 
0 0 0 1 0 0 0 1
   
c3 0 −s3 40c3 0.866 0 −0.500 34.641
s −0.500 0 0.866 −20.000
2  3 0 c3 40s3  2
U A3 =  A3 = 
  
 0 −1 0 −1
 
0   0 0 0 
0 0 0 1 0 0 0 1
   
c4 0 s 4 0 1 0 0 0
s 0 −c 0  0 0 −1 0 
3  4 4 3
R A4 =  A4 = 
  
 0 1 0 −350 0 1 0 −305
 

0 0 0 1 0 0 0 1
   
c5 0 −s5 0 1 0 0 0
s
 5 0 c5 0 0 0 1 0
4
B A5 =  A45 = 
  
 0 −1 0 0 0 −1 0 0
 

0 0 0 1 0 0 0 1
   
c6 s 6 0 0 1 0 0 0
s −c 0 0  0 −1 0 0 
5  6 6 5
T A6 =  A6 = 
  
0 −1 −192 0 0 −1 −192
 
0
0 0 0 1 0 0 0 1

 
0.50000 0 0.86603 538.41463
 0 −1 0 0 
Ttot A6e = 
 
0.86603 0 −0.50000 96.14102 

0 0 0 1

O resultado pode ser comparado com o obtido através da Teoria dos Helicoides, compro-
vando sua equivalência, entretanto, o procedimento para sua obtenção do produtório, mais es-
pecificamente, durante o procedimento para obter os parâmetros de DH na Seção 8.2.1 é mais
complexo de ser automatizado, e dessa forma foi optado pela utilização da Teoria dos Helicoides
na dissertação.

129
8.3 APÊNDICE 3: TEORIA DOS GRAFOS

Para desenvolver os conceitos tanto de Cadeias Virtuais de Posicionamento, quanto, no


futuro, o desenvolvimento da cinemática inversa a partir de Kirchhoff-Davies, é necessário for-
malizar alguns conceitos básicos da Teoria de Grafos e os principais termos que são utilizados
para o embasamento matemático.

Definição 8.1 Um grafo G é definido sendo um par ordenado (V, E), onde V é um conjunto
que possui elementos denominados vértices ou nós, representados na FIG. 8.15; e E é uma
relação binária sobre V , sendo pares ordenados denominados arestas, linhas ou ramos.

Vértices Arestas

FIG. 8.15: Definição de Vértices e Arestas. (Autoria própria)

Definição 8.2 Uma aresta incidente a um único vértice, ou seja, uma aresta que conecta um
vértice a ele mesmo, é denominado laço.

Definição 8.3 Dois vértices são adjacentes, se eles estão ligados por uma aresta.

Para a metodologia de Cadeias Virtuais utilizada, cada aresta corresponde a uma junta, ou a
um grau de liberdade, tendo um helicoide associado e uma MTH que permite a localização dos
corpos da mesma cadeia cinemática. Da mesma forma, cada vértice é associado a um corpo do
robô.

Definição 8.4 Um vértice é dito isolado, se não existe aresta incidindo sobre ele.

Definição 8.5 Se um grafo possui laços e/ou arestas paralelas, então este grafo é denominado
multigrafo, exemplo FIG. 8.16, caso contrário é dito um grafo simples, FIG. 8.15.

130
2

1
Arestas paralelas 3
caracterizando um
multigrafo
4

FIG. 8.16: Multigrafo com três Arestas ou caminhos paralelos. (Autoria própria)

Definição 8.6 Um grafo é dito orientado ou dirigido, quando existe uma seta de orientação
associada a cada ramo.

FIG. 8.17: Grafo orientado com sentido horário. (Autoria própria)

Definição 8.7 Define-se grau de um vértice como sendo o número de arestas incidentes a V .

Definição 8.8 Os grafos possuem ciclos e um ciclo é um conjunto de ramos que formam um
único caminho fechado, ou seja, cada nó de um ciclo tem ligado a si mesmo, dois ramos do
ciclo.

Definição 8.9 Um grafo é composto de subgrafos denominados árvores. Uma árvore possui
ramos que ligam todos os nós, entretanto uma árvore não possui um ciclo algum. Assim sendo
um seja um grafo com N nós, quando uma árvore ligando esses N nós, implica que esta árvore
possui N − 1 ramos.

Definição 8.10 Assim, os ramos de um grafo podem ser divididos em dois subconjuntos: (1)
os ramos das árvores e (2) os ramos de ligações, que são aqueles ramos não pertencentes
às árvores, denotados por L. Logo, seja um grafo com B ramos e N nós, tem-se que B =
(N − 1) + L, ou que o número de ramos de ligações de um grafo é dado por:

131
L=B−N +1 (8.46)

8.3.1 MATRIZ DE INCIDÊNCIA, OU MATRIZ DOS CIRCUITOS

Dado grafo G(V, E) de n vértices e m arestas, a matriz de incidência F é denotada por


B = (bij ) e é uma matriz n x m definida como segue:

1 se vi for o vértice inicial de ej
bij (8.47)
0 em caso contrário ou se e for um laço
j

Se o grafo G for orientado, então poderá ser definido como:



1 se vi for o vértice inicial de ej





bij −1 se vi for o vértice final de ej (8.48)



0 em caso contrário ou se ej for um laço

132
8.4 APÊNDICE 4: CINEMÁTICA DIFERENCIAL E INVERSA

8.4.1 CINEMÁTICA DIFERENCIAL

A Cinemática Diferencial tem como objetivo determinar e relacionar as velocidades linear e


angular do efetuador final em função das velocidades das juntas, ou seja, a variação da posição
na base do tempo da garra do robô em função da variação da magnitude de cada junta do robô.
Dessa forma, busca-se a relação entre
" #
ω h iT
ve = = ωx ωy ωz ṗx ṗy ṗz (8.49)

onde ve é o vetor que representa a velocidade generalizada do efetuador, com componentes de
velocidade angular, ωx , ωy e ωz , e componentes de velocidade linear, ṗx , ṗy e ṗz , e

h iT
q̇ = q˙1 q˙2 · · · q̇n−1 q̇n (8.50)

com o vetor das juntas q̇ que consolida as velocidades individuais de cada junta.
Segundo SICILIANO et al. (2009), existe uma matriz que representa a transformação linear
entre o espaço das juntas e o operacional, de maneira que

ve = J(q)q̇ (8.51)

J(q) é uma matriz (6 × n), para o caso do espaço euclidiano, chamada de Jacobiano, que
pode ser subdividida em duas partes: uma relacionada à velocidade angular, Jω (q), e outra à
velocidade linear, Jv (q). Para o caso de um deslocamento helicoidal, o Jacobiano pode ser
rescrito como:
" #
Jw (q)
J(q) = (8.52)
Jv (q)

Por outro lado, a EQ. 8.51 admite a possibilidade da análise do problema inverso, onde,
conhecidas as velocidades da ferramenta, busca-se encontrar as velocidades de cada junta. Para
isso, basta a inversão da matriz jacobiana e, assim, a EQ. 8.51 toma a forma de

q̇ = J −1 (q)ve (8.53)

Cada junta helicoidal pode ser representada por um helicoide $, o qual pode ser desmem-

133
brado em uma intensidade q̇, e um vetor $̂ que representa o seu respectivo helicoide unitário.
Desta forma:

$ = q̇ $̂ (8.54)

O helicoide unitário pode, por sua vez, ser convenientemente representado por um par de
vetores, isto é:
 
sx
 
 sy 
" # 



s  sz 
$̂ = =  (8.55)
s0 × s + h s  (s0y sz − s0z sy ) + hsx
 

 
 (s s − s s ) + hs 
 0z x 0x z y 
(s0x sy − s0y sx ) + hsz
Entretanto, como usualmente são utilizados apenas representações dos dois tipos de juntas
elementares, i.e. juntas de revolução, e prismática, como apresentado na Seção 2.2, a intensi-
dade para uma junta de revolução: q̇ = θ̇, e; para uma junta prismática: q̇ = d.˙ Além disso,
como não existe translação em uma junta de revolução, i.e., d = 0, o passo helicoidal, que é
representado por h = d/θ, se iguala a zero, ou seja, h = 0, e desta forma, o helicoide unitário
para uma junta de rotação é dado pela EQ. 8.56 (TSAI, 1999).
 
sx
 
 sy 
" # 



s  sz 
$̂ = =  (8.56)
s0 × s  sz s0y − sy s0z
 

 
 s s −s s 
 x 0z z 0x 
sy s0x − sx s0y

Já para uma junta prismática, h = ∞, e então o helicoide unitário pode ser representado
conforme a EQ. 8.57 (TSAI, 1999).

134
 
0
 
 0 
" # 



0  0 
$̂ = =  (8.57)
s sx 
 

 

 sy 

sz

8.4.1.1 APLICAÇÃO DO MÉTODO DE KIRCHHOFF-DAVIES

A lei de Kirchhoff-Davies é uma adaptação da lei de circulação de malhas, ou lei de Kirch-


hoff, feita por Davies para resolver a cinemática diferencial de mecanismos de cadeia aberta.
Ela afirma que “a soma algébrica das velocidades relativas dos pares cinemáticos ao longo de
uma cadeia cinemática fechada é zero” (CAMPOS et al., 2005).
Apesar dos robôs industriais serem considerados uma cadeia cinemática aberta, SIMAS
et al. (2009) propuseram um método para realizar o fechamento da cadeia cinemática através
do conceito de Cadeias Virtuais de Assur (CVA), possibilitando dessa forma, determinar a ci-
nemática diferencial, através da Lei de Kirchhoff-Davies. A FIG. 8.18 representa a cadeia
cinemática de um robô com n juntas, fechada através de uma CVA ortogonal, descrita por três
translações (3P) ao longo dos eixos x, y e z, Px , Py e Pz , seguidas por três rotações (3R) em
torno de x, y e z, Rx , Ry e Rz .

FIG. 8.18: Representação do fechamento de cadeia do MH5F. (Autoria própria)

Segundo a Lei de Circulação de Kirchhoff-Davies, “a soma algébrica das velocidades re-


lativas dos pares cinemáticos ao longo de uma cadeia serial fechada é zero” (CAMPOS et al.,
2005).

135
Assim, a análise do mecanismo é feito a partir de conceitos da Teoria dos Grafos onde cada
aresta é considerada uma junta, e cada vértice um corpo (Apêndice 8.1). Desta forma a Lei de
Kirchhoff-Davies pode ser matematicamente interpretada conforme a EQ. 8.58:

Bv,l $e,6 = 0 (8.58)

sabendo que B é a matriz dos circuitos, onde cada elemento pode assumir os seguintes valores:

1 se vi for o vértice inicial de ej





bij −1 se vi for o vértice final de ej (8.59)



0 em caso contrário ou se ej for um laço

gerando dessa forma, a matriz uma matriz de B para o caso específico do Motoman MH5F,

Bi,j = [+1 + 1 + 1 + 1 + 1 + 1 − 1 − 1 − 1 − 1 − 1 − 1] (8.60)

De forma geral, a representação do movimento relativo entre os elos n e n − 1 pode ser feita
por meio do helicoide $n . Com isso, a Lei de Circulação de Kirchhoff-Davies, obedecendo o
sentido e a ordem da circulação, definida pela matriz dos Circuitos, a EQ. 8.58 pode ser descrita
por

h i
$1 · · · $n−1 $n −$Rz −$Ry −$Rx −$Pz −$Py −$Px = 0 (8.61)

que através da EQ. 8.55, a EQ. 8.61 pode ser reescrita em função dos helicoides unitários e suas
respectivas magnitudes

136
 
 q̇1 
 . 
 .. 
 
 
q̇n−1 
 
 
 
 q̇n 
h i



$̂1 · · · $̂n−1 $̂n −$̂Rz −$̂Ry · · · −$̂Py =0
−$̂Px  q̇Rz  (8.62)

 

 
 Ry 
 
 .. 
 . 
 
 
 q̇ 
 Py 
 
q̇Px

Agrupando os termos da EQ. 8.62 na forma matricial, têm-se que

N q̇ = 0 (8.63)

onde N é a matriz que contém os helicoides unitários e q̇ a matriz que agrupa as magnitudes.
Considera-se conhecida a posição ocupada pelo efetuador final, sendo a mesma completa-
mente determinada pela pelas juntas que compõem a cadeia virtual. A matriz q̇ pode ser rees-
crita, de maneira que as magnitudes das juntas primárias (juntas que impõem a ação, no caso
da resolução da cinemática inversa, as juntas virtuais), e as secundárias, (juntas que sofrem
ação, que no caso da resolução da cinemática invera são as juntas do robô), sejam rearranjadas,
iT
. .
h h i
q̇ = q̇S .. q̇P e, de forma coerente, N = NS .. −NP . Sendo assim, a EQ. 8.63 toma a
forma de


i S
..
h
NS . . . = 0
. −NP  (8.64)

q̇P

Com isso, têm-se que

NP q̇P = NS q̇S (8.65)

e, como NP é passível de inversão, uma vez que é uma matriz 6 × 6

137
q̇P = NP−1 NS q̇S (8.66)

Comparando as EQ. 8.66 e 8.51, têm-se que o Jacobiano pode ser reescrito como

J$ = NP−1 NS (8.67)

Vale citar, que nem sempre, o Jacobiano baseado em Helicoides é passível de ser invertido,
entretanto, pelo Motoman MH5F ser um robô de 6 juntas, a EQ. 8.67 resulta em uma matriz
quadrada, 6 × 6, o que garante sua inversão.

8.4.2 CINEMÁTICA INVERSA

O objetivo da cinemática inversa é obter as variáveis de junta necessárias para que o efetu-
ador final esteja na localização desejada e, assim como em SICILIANO et al. (2009), pode ser
obtida numericamente utilizando o método numérico de integração de Euler, determinado por

qt+1 = qt + q̇t ∆t (8.68)

e, através da EQ. 8.67, têm-se que

qt+1 = qt + [NP−1 NS ]−1 ve ∆t (8.69)

A determinação das variáveis de junta dessa forma trazem um erro oriundo desse método
de 1a ordem e, como ∆t, apesar de pequeno não é infinitesimal, resulta em um desvio da
localização do efetuador final. Esse erro pode ser representado, no caso espacial, por um vetor
6 × 1, que corresponde à diferença entre a posição desejada e a real, ou seja,

e = xd − x (8.70)

Derivando e, têm-se que

ė = ẋd − ẋ (8.71)

Visando a convergência desse sistema, é desejável que o erro se comporte da seguinte forma

ė + Ke = 0 (8.72)

138
e que K seja uma matriz positiva definida. Isso garante que o sistema seja assintoticamente
estável.
Substituindo as EQ. 8.70 e 8.71 em 8.72, têm-se que

ẋ = ẋd + K(xd − x) (8.73)

e, substituindo a EQ. 8.73 em EQ. 8.69, chega-se a

qt+1 = qt + [NP−1 NS ]−1 [ve + K(xd − x)]∆t (8.74)

Com isso, é possível determinar o vetor das juntas para uma trajetória desejada.

139
8.5 APÊNDICE 5: COMANDOS DA LINGUAGEM INFORM III

TAB. 8.6: Instruções (MOTION). (Adaptado de YASKAWA (2014a))

Instrução Informações úteis


Mover para um ponto ensinado com interpolação
Função
articular
MOVJ
Dados de posição; VJ; PL; NWAIT; UNTIL;
Itens adicionais
ACC, DCC
Exemplo MOVJ VJ=50.00 PL=2 NWAIT UNTIL IN#(16)=ON
Função Mover para um ponto ensinado com interpolação linear
MOVL Dados de posição; V, VR, VE; PL; CR; NWAIT;
Itens adicionais
UNTIL;ACC, DCC
Exemplo MOVL V=138 PL=0 NWAIT UNTIL IN#(16)=ON
Mover para um ponto ensinado com interpolação
Função
circular
MOVC
Dados de posição; V, VR, VE; PL; CR; NWAIT;
Itens adicionais
UNTIL; ACC, DCC
Exemplo MOVC V=138 PL=0 NWAIT
Mover o incremento especificado da posição atual com
Função
interpolação linear
IMOV
P, BP, EX; V, VR, VE; PL; NWAIT; BF, RF,
Itens adicionais
TF, UF#; UNTIL; ACC, DCC
Exemplo IMOV P000 V=138 PL=1 RF
Função Definir um ponto de referência
REFP Itens adicionais Dados de posição, Número do ponto de referência
Exemplo REFP 1
Função Definir a velocidade de reprodução
SPEED Itens adicionais VJ, V, VR, VE
Exemplo SPEED VJ=56.00

140
TAB. 8.7: Instruções (IN/OUT) (adaptado de YASKAWA (2014a))

Instrução Informações úteis


Função Ativar ou desativar os sinais de output
DOUT Itens adicionais OT#, OGH, OG#
Exemplo DOUT OT#(12) ON
Função Definir variáveis para denominar inputs e outputs
DIN Itens adicionais OT#, OGH#, OG#; IN#, IGH#, IG#
DIN B016 IN#(16)
Exemplo
DIN B002 IG#(2)
Esperar até o estado do sinal de entrada externa
Função
corresponder ao estado especificado
WAIT
OT#, OGH# , OG#; IN#, IGH#, IG#; B; T;
Itens adicionais
"estado" (ON, OFF)
WAIT IN#(12)=ON T=10.00
Exemplo
WAIT IN#(12)=B002
Emitir um sinal de impulso como sinal de saída externa
Função
por um tempo especificado
PULSE
Itens adicionais OT#, OGH#, OG#; T
Exemplo PULSE OT# (10) T=0.60

TAB. 8.8: Instruções (CONTROL) (adaptado de YASKAWA (2014a))

Instrução Informações úteis


Função Saltar para o rótulo ou trabalho especificado
JUMP Itens adicionais *, JOB, IG#, B, I, D; UF#; IF
Exemplo JUMP *LABEL IF IN#(14)=OFF
Função Chamar um trabalho especificado
CALL Itens adicionais JOB, IG#, B, I, D; UF#; IF
Exemplo CALL JOB:TEST1 IF IN# (24)=ON
Função Parada por tempo especificado
TIMER Itens adicionais
Exemplo TIMER T=12.5
Cria uma marcação/rótulo em uma das linhas
Função para ser usada como localização com
LABEL o comando JUMP.
Itens adicionais
Exemplo *HABILITAÇÃO MOTOMAN
Função Marcar o início de um comentário (uma linha)
, (comentário) Itens adicionais “comentário”
Exemplo ,Desenha um quadrado de 100 mm
Função Retornar à rotina de trabalho principal
RET Itens adicionais IF
Exemplo RET IF IN#(12)=OFF

141
TAB. 8.9: Instruções (SHIFT) (adaptado de YASKAWA (2014a))

Instrução Informações úteis


Função Iniciar um deslocamento
SFTON Itens adicionais P, BP, EX, BF, RT, TF, UF#
Exemplo SFTON P001
a variável P001 é na verdade um vetor
de posição com as coordenadas
OBS:
alteradas para o valor que
deslocar e.g. 10,0,0,0,0,0
Função Parar um deslocamento
SFTOF Itens adicionais –
Exemplo SFTOF

TAB. 8.10: Instruções (ARITH) (adaptado de YASKAWA (2014a))

Instrução Informações úteis


Função Torna nulo o valor de uma ou mais variáveis
CLEAR Itens adicionais
Exemplo CLEAR P001 (Apaga a variável de posiçao P001)
Incrementa em uma unidade
Função
uma variável inteira apontada
INC
Itens adicionais –
Exemplo INC B010 (Adiciona 1 à variável B010)
Fornece o valor de uma variável
Função
a outra
SET
Itens adicionais –
Exemplo SET P1100 P1101
(Fornece o valor de P1101 em P1100)

TAB. 8.11: Instruções (DEVICE) (adaptado de YASKAWA (2014a))

Instrução Informações úteis


Função Torna on a unidade de trabalho (efetuador-final)
TOOLON Itens adicionais
Exemplo TOOLON
(Não disponível no Motoman, a garra é um Output)
Torna off a unidade de
Função
trabalho (efetuador-final)
TOOLOF
Itens adicionais
Exemplo TOOLOF (Adiciona 1 à variável B010)
(Não disponível no Motoman
do IME, a garra é um Output)

142
8.6 APÊNDICE 6: CENÁRIO CIM–MECATRIME DO LABORATÓRIO VIRTUAL

Esta seção apresenta as variáveis de junta das Cadeias Virtuais de Posicionamento de cada
componente de cenário do CIM do laboratório MecatrIME, organizadas nas TAB. 8.12, 8.13
e 8.14. Esse cenário totaliza em 94 componentes, como pode ser visualizado na FIG. 8.19.
Cada um dos componentes foi modelado utilizando os critérios abordado na Seção 3.3.1.3.
Este cenário requer, implantação futura das funcionalidades dos outros equipamentos, e não
somente dos robôs Motoman MH5F que é a contribuição desta dissertação. Além disso neces-
sita do código do CAMPS em si, de forma a diminuir o custo computacional demandado pelas
simulações realizadas atualmente no CAMPS, que hoje inviabilizam a utilização deste cenário,
ficando como sugestão para trabalhos futuros.

TAB. 8.12: Localização CIM–Mecatrime

Componentes de Cenário X Y Z Rx Ry Rz
Conveyor -6159,37 135,63 0 0 0 90
Manager Mesa1720 0 0 0 0 0 90
Manager CadeiraOfficer1720 550 500 0 0 0 90
Manager CadeiraOfficer1720 542 -240 0 0 0 90
Manager Monitor Duplo -133,03 -568,73 755 0 0 110
Manager Monitor Duplo2 -150,9 598 755 0 0 70
Manager Teclado 233,25 -241,37 755 0 0 90
Manager Mouse 222,11 62,08 755 0 0 -90
Botoeira Intelitek -55 170 755 0 0 0
ASRS -2049,37 -1061,24 0 0 0 90
Mesa1420 -2015 1650 0 0 0 0
CadeiraOfficer1420 -1473 1960 0 0 0 90
RackPreto -2245 1070 755 0 0 0
RackBranco -2245 1330 755 0 0 0
Alimentador Gravitacional -1909,39 1018,75 755 0 0 90
Alimentador Gravitacional -1909,39 1240,75 755 0 0 90
Teclado -1845,16 1964,1 755 0 0 90
Mouse -1834,33 2267,4 755 0 0 -90
Monitor Duplo -2167,76 2002,69 755 0 0 90
Trilho -2620 1572 0 0 0 0
Robo MH5F Trilho -2620 901,5 1172 0 0 -90
Torno CNC -3485,54 2734,8 0 0 0 -90

143
TAB. 8.13: Localização CIM–Mecatrime (Continuação)

Componentes de Cenário X Y Z Rx Ry Rz
Buffer -2760,5 485 934,72 0 0 0
Mesa1420 -6001,09 1537,34 0 0 0 0
CadeiraOfficer1420 -5459,09 1777,34 0 0 0 90
Monitor Duplo1420 -6157,36 1908,5 755 0 0 90
Teclado1420 -5784,4 1783,24 755 0 0 90
Mouse1420 -5790,46 2108,45 755 0 0 -90
Alimentador Pneumático -6141,59 1140,17 755 0 0 -90
Flip Pneumático -5987,2 742,27 615 0 0 90
Mesa740 -4641,09 886 0 0 0 -90
CadeiraOfficer740 -4661,09 1428 0 0 0 180
Mouse740 -4934,54 1061,55 755 0 0 0
Teclado740 -4635,19 1059,18 755 0 0 180
MonitorDuplo740 -4630,61 734,17 755 0 0 180
Trilho -6626,09 1547,34 0 0 0 0
Robô MH5F Trilho -6626,09 1044,62 1172 0 0 -90
Centro de Usinagem -7911,59 2518,47 0 0 0 0
Rack -6231 957,34 755 0 0 0
Gaiola de Soldagem -9829,47 1089,9 0 0 0 90
Alimentador Gravitacional -9431,35 1426,01 808,9 0 0 130
Tocha -9769,2 1548,8 902,07 0 0 180
Robo MH5F -10106,99 867,46 808,9 0 0 0
Mesa740 -11169,37 1391,26 0 0 0 -90
CadeiraOfficer740 -11139,37 1933,26 0 0 0 180
Mouse740 -11444,63 1609,78 755 0 0 0
Teclado740 -11126,16 1603,4 755 0 0 180
MonitorDuplo740 -11176,55 1254,14 755 0 0 180
Exagon -11244,53 359,08 0 0 0 90
Mesa740 -12149,37 311,26 0 0 0 90
CadeiraOfficer740 -12189,37 -230,74 0 0 0 0
Teclado740 -12179,5 115,5 755 0 0 0
Mouse740 -11873,15 88,63 755 0 0 180
MonitorSimples740 -12164,55 526,26 755 0 0 180
Mesa1420 -10724,37 -1168,74 0 0 0 -90
CadeiraOfficer1420 -10454,37 -1710,74 0 0 0 0
Teclado1420 -10451,32 -1379,51 755 0 0 0
Mouse1420 -10125,48 -1417,19 755 0 0 180
MonitorDuplo1420 -10424,37 -1043,74 755 0 0 0
RackApoiadoPequeno -11158,51 -965,74 755 0 0 0
AlimentadorPneumatico -11359,54 -1038,24 755 0 0 180
TrilhoRobo -10719,37 -563,74 0 0 0 90
Robo MH5F Trilho -11209,24 -585,84 1172 0 0 180
Pedestal -8845,37 -494,04 0 0 0 0

144
TAB. 8.14: Localização CIM–Mecatrime (Continuação)

Componentes de Cenário X Y Z Rx Ry Rz
Robo MH5F -8840,87 -500,04 866,7 0 0 -90
MesaMontagem -8844,37 -896,24 0 0 0 -90
RackApoiadoPequeno 1 -9109,37 -945,74 870 0 0 0
RackApoiadoPequeno 2 -8849,37 -945,74 870 0 0 0
RackApoiadoPequeno 3 -8589,37 -945,74 870 0 0 0
BufferSimples 1 -8232,87 -445,99 870 0 0 0
BufferSimples 2 -8232,87 -594,49 870 0 0 0
BufferSimples 3 -8429,87 -594,49 870 0 0 0
BufferSimples 4 -8429,87 -445,99 870 0 0 0
Mesa1420 -7344,37 -788,74 0 0 0 -90
CadeiraOfficer1420 -7554,37 -1330,74 0 0 0 0
MonitorDuplo1420 -7474,37 -683,74 755 0 0 0
Teclado1420 -7550,25 -1012,68 755 0 0 0
Mouse1420 -7240,43 -1009,05 755 0 0 180
BufferSimples 1 -6732,87 -505,99 755 0 0 0
BufferSimples 2 -6929,87 -505,99 755 0 0 0
AlimentadorPneumatico -6821,87 -1068,91 755 0 0 0
Pedestal Robo -6329,37 -833,74 0 0 0 0
Robô MH5F -6324,87 -839,74 1166,7 0 0 -90
Impressora a Laser -5644,37 -606,24 70 0 0 0
Mesa740_1 -4449,37 -633,74 0 0 0 90
CadeiraOfficer740_1 -4479,37 -1128,27 0 0 0 0
MonitorDuplo740_1 -4439,37 -528,74 755 0 0 0
Mouse740_1 -4141,7 -865,29 755 0 0 180
Teclado740_1 -4472,08 -852,82 755 0 0 0
Mesa740_2 -3194,37 -778,74 0 0 0 90
CadeiraOfficer740_2 -3254,37 -1320,74 0 0 0 0
MonitorDuplo740_2 -3184,37 -653,74 755 0 0 0
Mouse740_2 -2914,46 -996,58 755 0 0 180
Teclado740_2 -3253,41 -992,09 755 0 0 0

145
FIG. 8.19: Cenário desenvolvido do CIM - MecatrIME. (Autoria própria)

146

Você também pode gostar