paulo faria santos amaral - ipen.br · tese apresentada à escola ... aos amigos antônio sérgio...

399
PAULO FARIA SANTOS AMARAL Eng. de Eletrônica, Instituto Tecnológico de Aeronáutica, 1976 Mestre em Engenharia, Instituto de Pesquisas Espaciais, 1979 CONCEPÇÃO E IMPLEMENTAÇÃO DE UM LABORATÓRIO PARA DESENVOLVI MENTÓ DE TÉCNICAS E PROGRAMAÇÃO DE TAREFAS DE ROBOS INDUS TRIÁIS. VOLUME I Tese apresentada à Escola Politécnica da USP para a obtenção do Título de Doytor em Engenharia. Orientador: Prof. Dr. Lucas Antonio Moscato Professor Adjunto do Departstmento de Engenharia de Eletricidade da EPUSP. São Pa:ulo, 1985 C:;FRG:A TsiUCLEAR/SP

Upload: vutuyen

Post on 10-Nov-2018

254 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

PAULO FARIA SANTOS AMARAL

Eng. de Eletrônica, Instituto Tecnológico de

Aeronáutica, 1976

Mestre em Engenharia, Instituto de Pesquisas

Espaciais, 1979

CONCEPÇÃO E IMPLEMENTAÇÃO DE UM LABORATÓRIO PARA DESENVOLVI

MENTÓ DE TÉCNICAS E PROGRAMAÇÃO DE TAREFAS DE ROBOS INDUS

TRIÁIS.

VOLUME I

Tese apresentada à Escola

Politécnica da USP para a

obtenção do Título de

Doytor em Engenharia.

Orientador: Prof. Dr. Lucas Antonio Moscato

Professor Adjunto do Departstmento de

Engenharia de Eletricidade da EPUSP.

São Pa:ulo, 1985

C : ; F R G : A T s i U C L E A R / S P

Page 2: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-y

V

A Teresa, amiga e companheira de todas as horas e aos meus pais, Carlos e lolanda.

Page 3: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Este trabalho contou com o suporte financeiro das

"!' seguintes Instituições.

.0 Q FDTE : Fundação para o Desenvolvimento Tecnológi^

o

CO da Engenharia.

LSD : Laboratório de Sistemas Digitais da Esco

Ia Politécnica da Universidade de São Pau

O Io.

GAM : Grupo de Aplicação de microcomputadores do

^ Centro Tecnológico da Universidade Fede

^ ral do Espirito Santo.

1 ^ FAPESP: Fundação para o Amparo a Pesquisa do Esta

do de São Paulo.

- CAPES : Coordenadoria de Aperfeiçoamento de Pro

fessores do Ensino Superior.

Page 4: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

- ^

AGRMíECIMEiríTOS

'.7^ Aq Professor Lucas Antonio Moscato pela orienta

ção e apoio irrestrito a este trabalho.

Ao Professor Antonio Marcos de A. Massola pela

~ sua amizade e incentivo durante toda a minha permanência no

LSD.

Ao amigo Benedito Geraldo Miglio Pinto, pelo pro

^ jeto da parte mecânica do robô e pelas suas sugestões no d£

^ correr do trabalho.

Aos amigos Antônio Sérgio de Souza, pela ajuda na

utilização do sistema de visão para o robô, e Carlos Eduar

C do Cugnasca, pela implementação do processador do nível O

de controle para o robô.

Ao amigo Jun Okamoto Junior, pela sua dedicação

* como estagiário no início do projeto.

^ Ao Sr. Giacomo Henrique Doro pela dedicação e e£

V mero na construção das partes mecânicas do robô e a todos

os amigos da oficina mecânica.

Aos desenhistas Marcos Augusto Rosa, Sônia de

Queiroz e Almerita E. Monteiro pelo capricho na confecção

dos vários desenhos deste trabalho.

^ A amiga Nadia Aparecida Vicentini pela datilogra

fia cuidadosa dos originais.

A todos os amigos que me acolheram com tanta sim

patia no Laboratório de Sistemas Digitais e que direta ou

indiretamente contribuíram para a execução deste trabalho.

Page 5: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

••V

Este trabalho é dedicado à concepção e implementa

ção de um laboratório para desenvolvimento de técnicas

e programação de tarefas de robos industriais.

Inicialmente o estado da arte dos robôs indus

Zi triáis é apresentado e,em seguida, o desenvolvimento e a

J ¡ , construção do robô industrial do tipo braço articulado com

cinco graus de liberdade, acionados por motores de passo

controlados em malha fechada de posição, projetado para

equipar o laboratório são detalhados.

As características deste robô desenvolvido e da

arquitetur^a hierárquica em três níveis e distribuída do si£

tema de controle do laboratório são apresentadas.

Os programas desenvolvidos para o ensino por

aprendizagem, calibração e execução de tarefas para o micro

computador dedicado ao controle do robô são detalhados,

assim como o sistema operacional, as linguagens de programa

ção, as rotinas para transformação de coordenadas e ^s faci^

lidades do computador do nível 1 de controle, dedicado a

servir de infra-estrutura de programação para o laborat£

rio.

Uma linguagem de alto nível para programação de

robôs industriais, LIPRI, concebida e implementada para ser

mais uma ferramenta de desenvolvimento do laboratório é

apresentada.

Finalizando, alguns exemplos de programação de

tarefas típicas de robôs industriais são implementados com

os recursos do laboratório concebido.

Page 6: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.-0

ABSTRACT

This work is concerned with the design and implementation of a laboratory for the development, research and task programming of industrial robots.

The state of the art in industrial robots is presented together with the detailed design and construction of the laboratory's manipulator with 5 degrees of freedom. This robot is driven by stepping motors controlled with position feedback.

Also presented are characteristics and specifications of the manipulator and the laboratory's control system, based in a 3 level hierarchically distributed architecture.

Also described is the calibration, teaching by showing and task execution programs of the robot's

•" microcomputer. The system microcomputer's operational system, programming languages, coordinates transform

C procedures and facilities are shown.

A high level language for industrial robot programming, named LIPRI, was conceived and implemented as a development tool for the laboratory.

Finally, some examples of tipical industrial robot tasks are implemented.

Page 7: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•'" I M D I C E

^ Pág.

•V

-V

INTRODUÇÃO 01

CAPITULO I - SOBRE OS ROBOS INDUSTRIAIS

1.1 - INTRODUÇÃO 08

Q 1.2 - COMPONENTES DE UM ROBO INDUSTRIAL 10

Sj 1,2.1 - Arquitetura mecânica dos robôs indus

- triáis 13

_ 1.2.2 - Mão-ferramenta de robôs industriais .. 20

1.2.2.1 - Mão-ferramenta do tipo gar

ra 21

1.2.2.2 - Mão-ferramenta tipo ferra

menta 24

^ 1.2.3 - Acionamento de robôs industriais 25

1.2.4 - Sistema de controle dos robôs indu£

triáis 28

1.2.5 - Dispositivos de sincronização com

eventos externos 38

1.2.6 - Sistema sensorial ^. 41

V 1.3 - PROGRAMAÇÃO DA TAREFA 53

1.3.1 - Programação por aprendizagem 54

1.3.2 - Programação por linguagem de alto ní

vel 58

1.4 - PROPOSTA PARA UM LABORATORIO DE DESENVOLVI

MENTO DE TÉCNICAS E PROGRAMAÇÃO DE TAREFAS

^ PARA ROBOS INDUSTRIAIS 62

V 1.5 - CONCLUSÃO 66

CAPITULO II - ARQUITETURA MECÂNICA E CARACTERlSTI

CAS DO'ROBO INDUSTRIAL DESENVOLVIDO

2.1 - INTRODUÇÃO 70

2.2 - ARQUITETURA MECÂNICA 71

Page 8: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-V

-'-^

2.2.1 - Acionamento do giro do robô 76

2.2.2 - Acionamento do braço 78

2.2.3 - Acionamento do ante-braço 79

2.2.4 - Acionamento do punho 82

^ 2.3 - CARACTERÍSTICAS DO ROBO DESENVOLVIDO 86

^.Z 2.3.1 - Volume de trabalho 87

2.3.2 - Precisão do robô 87

- 2.3.3 - Capacidade de carga 89

2.3.4 - Velocidade de operação 92

2.3.5 - Outras características 93

2.4 - SISTEMA DE REALIMENTAÇAO DE POSIÇÃO E DETE

ÇAO DE FIM DE CURSO 94

2.4.1 - Mecânica do sistema de realimentaçao . 95

2.4.2 - Sinais gerados para o sistema de

controle 98

¡) _ 2.5 - GARRA MECÂNICA DO ROBO INDUSTRIAL 100

2.5.1 - Construção mecânica da garra 100

2.5.2 - Sistema de acionamento e realimenta

ção da garra 102

2.6 - APLICABILIDADE DO ROBO INDUSTRIAL DESENVOLVI — *

DO 104 2.7 - CONCLUSÃO 107

CAPITULO III - SISTEMA DE CONTROLE PROPOSTO PARA

O LABORATORIO

3.1 - INTRODUÇÃO 110

3.2 - SISTEMA HIERÁRQUICO PROPOSTO 111

3.3 - DESCRIÇÃO DO NÍVEL O DE CONTROLE 115

3.3.1 - Arquitetura do computador de contro

le . 118

3.3.2 - Acionamento dos motores de passo 122

•3.3.3 - Sistema de realimentaçao 133

3.3.4 - Caixa de aprendizado de tarefas 139

Q Pág.

Page 9: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-V

^

Pag.

^ ^ 3.3.5 - Sincronização com eventos externos ... 140

3.3.6 - Deteção de chaves limites 142

3.3.7 - Comunicação com o nível 1 de contro

le 145

3.4 - DESCRIÇÃO DO NiVEL 1 DE CONTROLE 147

3.4.1 - Arquitetura do computador do nível

1 149

3.4.2 - Interface controladora de. acesso di

reto à memória 150

_ 3.4.3 - Interface controladora de discos

flexíveis 152

3.4.4 - Interface para digitalizador de ima

gens e monitor de vídeo 153

'Z 3.4.5 - Interfaces para comunicação serial:

terminal de vídeo, impressora, ni

^. vel O e nível 2 154

3.5 - NÍVEL 2 DE CONTROLE 155

3.5.1 - Configuração do nível 2 de controle .. 157

^ 3.5.2 - Funções do nível 2 de controle 160

3.6 - CONCLUSÃO j . 161

CAPITULO IV - PROGRAMAS SUPORTE PARA O LABORATÓRIO

4.1 - INTRODUÇÃO 164

^ 4.2 - PROGRAM/.S PARA O NiVEL O DE CONTROLE 165

4.2.1 - Programa MONITOR 167

^ 4.2.2 - Programa de CALIBRAÇÃO 173

4.2.3 - Programa de aprendizado de tarefas ... 183

Z 4.2.4 - Programa de execução de tarefas 190

4.3 - PROGRAMAS DO NiVEL 1 DE CONTROLE 192

- 4.3.1 - Programa "Bootstrap" e programa MO

NITOR : 194

^ 4.3.2 - Sistema operacional do nível 1 de

controle 196

•J

Page 10: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

w

Pág,

4.3.3 - Programa formatador de discos 199

4.3.4 - Programas suportes e linguagens Jde

programação de microcomputadores di£

poníveis 200

4.3.5 - Programa emulador de terminal e edi_

^ tor de figuras 201

^ 4.4 - TRANSFORMAÇÃO DE COORDENADAS 205

4.4.1 - Resolução das equações cinemáticas

para o robô do laboratório 209

4.4.2 - Transformação de coordenadas de jun

ção para coordenadas de motor e vi

ce-versa 215

4.4.3 - Transformação de coordenadas de jun

ção para coordenadas cartesianas 218

4.4.4 - Transformação de coordenadas carte

sianas para coordenadas de junção .... 221

4.5 - CONCLUSÃO 221 .-.jm-

CAPÍTULO V - LIPRI: LINGUAGEM PARA PROGRAMAÇÃO DE

^ ROBOS INDUSTRIAIS ,

5.1 - INTRODUÇÃO 226

* 5.2 - ESTRUTURA DA LINGUAGEM 228

5.2.1 - Configuração do sistema 228

^ 5.2.2 - Sintaxe dos programas em LIPRI 236

^ 5.3 - DECLARAÇÃO DA LINGUAGEM LIPRI 240

5.3.1 - Declarações das variáveis de proce£

samento 241

V 5.3.1.1 - Declaração BYTE 241

% 5.3.1.2 - Declaração WORD 241

- 5.3.1.3 - Decalração COOLEAN 242

5.3.1.4 - Declaração STRING 242

5.3.1.5 - Declaração ARRAY 243

^ 5.3.1.6 - Declaração FILE 244

j

Page 11: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

5.4 -

5.3.1.7 - Declaração LABEL 246

5.3.2 - Declarações de entidades geométricas . 246

5.3.2.1 - Declaração POINT 246

5.3.2.2 - Declaração LINE 248

5.3.2.3 - Declaração CIRCLE 250

5.3.2.4 - Declaração TRAJECT 252

5.3.2.5 - Declaração FIGURE 254

5.3.3 - Declarações de procedimentos 255

5.3.3.1 - Declaração PROCEDURE 255

5.3.3.2 - Declaração INTERRUPT PROCE

DURE 256

5.3.3.3 - Declaração TASK 256

COMANDOS DA LINGUAGEM LIPRI 257

5.4.1 - Comandos de controle de processamen

to 258

5.4.1.1 - Comando GO TO 258

5.4.1.2 - Comando IF 258

5.4.1.3 - Comando FOR 259

5.4.1.4 - Comando WHILE 260

5.4.1.5 - Comando PROCEDURE .*. . 260

5.4.1.6 - Comando TASK . . . 261

5.4.1.7 - Comando RETURN 261

5.4.1.8 - Comando WAIT 261

5.4.1.9 - Comando PAUSE 262

5.4.1.10- Comando STOP 263

5.4.1.11- Comando HALT , 263

5.4.1.12- Comando BEGIN 264

Comandos de linhas de sincronismo ... 264

5.4.2.1 - Comando SET . 264

5.4.2.2 - Comando RESET 265

5.4.2.3 - Comando INPUT 265

5.4.2.4 - Comando OUTPUT 266

Page 12: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

5.4.3.1 - Comando

mética

de atribuição arit

5.4.3.2 - Comando de atribuição boo

leana .

5.4.4 - Comandos de movimentação do robô

5.4.4.1 - Comando MOVE

5.4.4.2 - Comando HOME

5.4.4.3 - Comando FOLLOW

5.4.4.4 - Comando APPROACH

Z- 5.4.4.5 - Comando DEPART

5.4.4.6 - Comando CLOSE

z 5.4.4.7 - Comando OPEN

5.4.4.8 - Comando SPEED

5.4.4.9 - Comando INTERPOLATE

5.4.5 - Comandos de entrada e saída

5.4.5.1 - Comando DISPLAY

5.4.5.2 - Comando READ

266

268

269

269

273

274

276

277

278

279

280

280

281

281

281

5.4.5.3 - Comando PRINT 282

5.4.6 - Comandos de visão 282 tf

5.4.6.1 - Comando FIND 282

5.4.6.2 - Comando LEARN 283

5.4.6.3 - Comando RECOGNIZE 284

5.4.6.4 - Comando INSPECT 284

5.4.7 - Comando de controle de interrupção ... 285

5.4.7.1 - Comando EI 285

5.4.7.2 - Comando Dl 285

5.5 - UTILIZANDO O COMPILADOR LIPRI 286

5.6 - COMPARAÇÃO COM OUTRAS LINGUAGENS PARA PROGRA

MAÇAO DE ROBOS INDUSTRIAIS 288

5.7 - CONCLUSÃO 297

5.4.3 - Comandos de atribuição 266

Page 13: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

..V

-V

Pág.

APÊNDICE I - CONJUNTO DE INSTRUÇÕES EXECUTÁVEIS PE

^ LO NlVEL O DE CONTROLE 309

APÊNDICE II - MENSAGENS DE ERRO DA LINGUAGEM LIPRI . 333

APÊNDICE III - EXEMPLOS DE PROGRAMAÇÃO DE TAREFAS

TÍPICAS DE ROBOS INDUSTRIAIS COM O

2 LABORATÓRIO 340

^ A3.1 - ESTAÇÃO SE SOLDA PONTO ROBOTIZADA 342

V A3.2 - ROBO COMO EQUIPAMENTO DE TRANSFERÊNCIA DE

Zi PEÇAS 346

A3.3 - ESTAÇÃO DE SOLDA A ARCO ROBOTIZADA 352

A3.4 - ESTAÇÃO ROBOTIZADA DE INSPEÇÃO DE PEÇAS COM

SISTEMA DE VISÃO 359

BIBLIOGRAFIA 367

CONCLUSÕES FINAIS 299

Page 14: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

LISTA DE FIGUHAS

i:^ Pág.

Fig. 1.1 - Diagrama de blocos de um robô indu£

trial típico 11

Fig. 1.2 - Graus de liberdade de um corpo sóli

do no espaço 14

Fig. 1.3 - Configurações básicas para os três

primeiros graus de liberdade da ar

quitetura mecânica de' um robô indu£

trial 16 -V

..'Zi Fig. 1.4 - Estrutura clássica para a parte me

^ canica responsável pela orientação

da mão-f erramenta 17

7* Fig. 1.5 - Especificação do volume de trabalho

^ de um robô industrial 18

Z Fig. 1.6 - Alguns tipos de garras 22

Fig. 1.7 - Garra mecânica de duas mãos 23

Fig. 1.8 - Algumas ferramentas usuais adapta

das em robôs: a) solda a arco; b)

cabeçote de solda ponto; c)maçarico;

Vv d) tirador de porcas automático; e)

^ cadinho 24

^ Fig. 1.9 - Troca de ferramentas tipo baioneta ... 25

' Fig. 1.10 - Diagrama de blocos de controle de

uma junta de um robô 31

Page 15: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

Fig. 1.11 - Sistema de coordenadas de junção pa

ra um robô articulado com seis graus

de liberdade 33

Fig. 1.12 - Diferença entre movimentos retilí^

neos no sistema cartesiano e no sis

tema de coordenadas de junção para

um manipulador com duas articulações .. 34

Fig. 1.13 - Sistemas de coordenadas cartesiano

(x,y,z) e de ferramenta (x',y',z') .... 35

"-- Fig. 1.14 - Geração de trajetórias retilíneas no

espaço cartesiano para um robô com

duas articulações 36

Fig. 1.15 - Robô executa a tarefa enquanto a

peça passa pela sua região de traba

lho 41

Fig. 1.16 - Montagem de um sensor de trilha de

solda 46

Fig. 1.17 - Opções de montagem de sensores de

visão utilizados com robôs indu£

triáis 49

Fig. 1.18 - Desenho esquemático de um sensor ti

po pele artificial 52

Fig. 1.19 - Sistema sensorial de um robô avança

do 53

Page 16: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág,

Fig. 1.20 - Métodos de programação por aprendi^

zagem para robôs industriais 55

Fig. 1.21 - Níveis de descrição de tarefas pa

ra robôs industriais 60

Fig. 1.22 - Diagrama de blocos do laboratório

proposto 63

Fig. 1.23 - Fotografia do LÍDER -. Laboratório

Integrado para Desenvolvimento e En

sino da Robótica 67

Fig. 2.1 - Fotografia da arquitetura mecânica

do robô desenvolvido 72

Fig. 2.2 - Sistema de transmissão sem-fim / co

roa para todos os cinco graus de li

berdade 74

* Fig. 2.3 - Detalhes de montagem do sistema de

acionamento do giro do robô 77

Fig. 2.4 - Diagrama esquemático de montagem da

caixa de engrenagens móvel do robô .... 80

Fig. 2.5 - Diagrama de montagem das engrena

gens no cotovelo do braço 81

Fig. 2.6 - Diagrama esquemático de montagem

do punho 83

Fig. 2.7 - Graus de liberdade do robô desenvol^

vido e volume de trabalho 86

Page 17: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

Fig. 2.8 - Curva de torque x velocidade do

motor 90

Fig. 2.9 - Sinais gerados e montagem dos senso

res no disco do codificador angu

lar incrementai 95

Fig. 2.10 - Montagem do sistema de acionamento

e realimentaçao de cada grau de \\_

berdade do robô 97

Fig. 2.11 - Posição das chaves limites para ca

'•' da grau de liberdade 99

^ Fig. 2.12 - Montagem esquemática da garra mecâ

.. nica desenvolvida para o robô 103 ---té

Fig. 3.1 - Estrutura típica de um sistema de

'" ^ controle hierárquico 112

V Fig. 3.2 - Estrutura hierárquica proposta para

o laboratório 114

Fig. 3.3 - Diagrama de blocos esquemático do

nível O de controle 116

Fig. 3.4 - Diagrama esquemático da arquitetura

do computador de controle do nível

O 121

Fig. 3.5 - Esquema geral do acionamento dos mo

tores de passo 124

Page 18: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

, ^

Fig. 3.10 - Diagrama esquemático do sistema de

realimentaçao de posição para um

motor (A) 134

Fig. 3.11 - Esquema de interrupção do processa

dor ao se atingir a contagem final ..^ 138

Fig. 3.12 - Esquema das linhas de sincronismo

do robô 141

Fig. 3.13 - Circuito de deteção das chaves limi^

tes 144

Fig. 3.14 - Interface de comunicação serial com

o nível 1 de controle 146

Fig. 3.15 - Diagrama de blocos esquemático do

nível 1 de controle 148

jáQ ^ Fig. 3.6 - Interligação das fases do motor . de

passo de quatro fases 126

Fig. 3.7 - Diagrama esquemático da placa con

troladora de motores de passo 128

Fig. 3.8 - Diagrama de geração dos sinais de

pulso e direção para os motores de

— ^ passo 131

Fig. 3.9 - Curva de aceleração e desaceleração

^ gerada pelo controlador de acelera

-'•' ção 133

Page 19: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág.

Fig. 3.16 - Diagrama de blocos da interface con

troladora de acesso direto à memo

ria 151

Fig. 3.17 - Interface controladora de discos

flexíveis 153

Fig. 3.18 - Interfaces seriais de comunicação

com terminal de vídeo, impressora e

nível O de controle 156

Fig. 3.19 - Configuração do sistema PDPll/34 158

Fig. 4.1 - Definição da posição de origem do

robô 174

Fig. 4.2 - Listagem de uma seção com o progra

ma de aprendizado 189

Fig. 4.3 - Seção de utilização do programa de

execução de tarefas utilizando o

programa do sub item anterior 193

Fig. 4.4 - Configuração de memória do computa

dor do nível 1 com o sistema opera

clonal carregado 197

Fig. 4.5 - Seção de edição de figuras e o ar

quivo correspondente criado pelo

editor 206

Fig. 4.6 - Modelo cinemático utilizado pelas

rotinas de transformação de coorde

nadas 208

Page 20: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

— •

:0

Fig. 4.8 - Figura para a solução inversa do

Z robô desenvolvido 213

Fig. 4.9 - Rotinas TESTATING, MOTANG, ANGMOT

para teste de atingibilidade e con

_ versão de coordenadas de motor para

coordenadas de junção e vice-versa . . . 219

V Fig. 4.10 - Rotina para transformar um ponto em

coordenadas de motor (junção) em

coordenadas cartesianas 220 -•V

Fig. 4.11 - Rotina que converte as coordenadas

de um ponto no sistema cartesiano

< para as coordenadas de junção e em

Z seguida para as de motor ^ 222

.. Fig. 5.1 - Configuração do compilador LIPRI,

_ suas saídas e seu relacionamento

com os arquivos do usuários 229

Fig. 5.2 - Arquivos de entrada do compilador

Zí LIPRI na configuração atual do Ia

^ boratório LÍDER 232

• -J

_ Fig. 5.3 - Execução de um programa objeto cria

do pelo compilador LIPRI na configu

^ ração atual do laboratório LÍDER 235

Fig. 4.7 - Vista lateral do robô posicionado

em um ponto T onde são dadas as

suas coordenadas de junção 210

^ Pág,

Page 21: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Pág,

Z^ Fig. 5.4 - Seção com o compilador LIPRI 287

Fig. 5.5 - Arquivo de listagem gerado pelo com

pilador LIPRI 289

Fig. 5.6 - Arquivo objeto criado pelo coipilador ... 290

Fig. A3.1- Robô executando uma solda ponto simu

lada 344

Fig. A3.2- Robô transferindo peças de um alimen

tador para caixas 347

Fig. A3.3- Robô executando uma solda a arco 354

Fig. A3.4- Estação robotizada de inspeção de pe

ças com sistema de visão 361

CG".;;:::^:o ; ; A C : 0 : , ; L zi Lr : E R G ; A r j u c L E A R / S P

Page 22: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

LISTA BE TABELAS

•li

Pág.

Tab. 2.1 - Características construtivas do para

fuso sem-fim 75

Tab. 2.2 - Características construtivas da co

roa 76

Tab. 2.3 - Características das engrenagens côni^

cas do diferencial do punho do robô ... 85

Tab. 2.4 - Relação entre velocidade de trabalho

e carga transportável 93

Tab. 2.5 - Características principais do robô

industrial desenvolvido 105

Tab. 3.1 - Especificação dos sinais dos barra

mentos externos do computador do ní

^ vel O * 120

Tab. 3.2 - Características dos motores de passo

utilizados no robô e na garra 125

I

Tab. 3.3 - Freqüência de fases para movimentar

o motor em passo completo 126

Tab. 3.4 - Freqüência de fases para movimentar

o motor de passo em meio passo 127

Tab. 3.5 - Dados armazenados na memoria do deco

dificador de estados 136

Page 23: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-V Pág,

Q . Tab. 4.1 - Teclas de movimentação dos motores

— para o programa de aprendizado 185

-V

y

' y

" J

Page 24: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:';:.-_v

Zi

.01

A construção de máquinas e dispositivos que reali^

zassem o trabalho pesado, repetitivo e em grande quantidade

sempre teve uma importância primordial em toda a história

da humanidade.

Desde as mais simples ferramentas, passando pelas

máquinas a tração animal, as máquinas movidas a água e a

vento, sempre foi uma preocupação constante a automatiza

ção dos meios de produção.

Com a invenção da máquina a vapor, o controle da

fonte de energia passou a ser feito de uma maneira fácil e

ZJ precisa, tendo ainda a grande vantagem de ser facilmente

transportável, sendo essa uma das causas principais da indus

- trialização das cidades e da revolução industrial ocorrida

no século passado.

Com o domínio da tração elétrica, as desvantagens

da utilização do vapor para movimentar as máquina,p das fá

V bricas foram sendo gradualmente eliminadas pelas vantagens

I" da energia elétrica, que possibilitou a construção de moto

- res menores, silenciosos e limpos além de possuírem lom ren

dimento consideravelmente maior.

As guerras mundiais deste século deram um impulso

enorme à automação dos processos industriais, principalmen

V te àqueles em que um mesmo produto era produzido da mesma

forma e em grandes quantidades.

O aumento exponencial do custo da mão-de-obra le

vou à idéia das linhas de montagem onde um determinado pro

cesso de fabricação é sub-dividido em etapas pequenas e sim

MTROBUÇAO

Page 25: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.02.

pies permitindo a utilização de operários semi-qualifloa

dos, principalmente nas funções de transporte de materiais

" e pequenas montagens; para tarefas mais qualificadas, máqui

-rJ nas especiais, dedicadas e custosas eram desenvolvidas e

O construídas.

O o alto custo para se automatizar a produção de um

_ produto, associado à sua rápida desvalorização, incentiva

ram pesquisas na direção de uma automatização mais flexí

vel, voltada para produtos que tivessem vida curta no merca

"•Zj do ou exigidos em pequenas quantidades e que possibilitas

sem, de uma forma fácil e econômica, a mudança da produção

de um produto para outro em uma mesma fábrica utilizando as

mesmas máquinas.

Com o advento das máquinas de comando numérico pa

ra a automação flexível dos processos de fabricação, resta

va a etapa, bastante difícil de ser automatizada, de manipu

lação de peças e ferramentas necessárias para a execução de

uma determinada tarefa, principalmente dentro do conceito

de. automação flexível onde as peças e ferramentas variavam

dependendo do produto produzido, o que tornava inviável ec£

nomicamente o desenvolvimento de máquinas automáticas espe

cíficas para esta função.

* George Devol, em 1956 [16], deu o primeiro passo

* na direção da solução deste problema com a invenção de um

dispositivo automático para manipulação e transferência de

peças. O rápido desenvolvimento da indústria de microeletrô

nica, gerando processadores e componentes periféricos pode

rosos a um custo cada vez mais baixo, tornou economicamente

possível o surgimento dos robôs industriais que estão preen

^ chendo cada vez mais a lacuna que faltava na automatização

flexível das linhas de produção.

Page 26: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.03.

Assim, é de fundamental importância que a pesqui^

sa e o desenvolvimento da tecnologia de robôs industriais

seja por nós dominada para evitarmos que, como tantos outros

avanços tecnológicos (computadores, semicondutores, perifé^

ricos, etc) as iniciativas para o seu desenvolvimento ocor

ram somente quando o mercado já estiver saturado de "know-

~^ A colocação de robôs nas indústrias vem sendo

apontada como a causa de uma nova revolução industrial,

^ " principalmente em países como o Japão e os EUA, onde a sua

.-.v utilização vem crescendo de uma maneira impressionante, ten

; do seus reflexos em países não detentores desta tecnologia,

notadamente na indústria automobilística onde o seu emprego

é mais numeroso.

^ Esses robôs industriais podem ser separados em

três grupos: os robôs de primeira geração, que não possuem

'^Z sensores para verificar mudanças de estado do ambiente de

trabalho sendo incapazes de se adaptarem automaticamente a

qualquer evolução não previsível no tempo e no espaço deste

ambiente, sendo deste grupo a grande maioria dos robôs uti_

lizados atualmente; os robôs de segunda geração, munidos de

sensores capazes de verificar alterações não previsíveis no

"••• ambiente de trabalho e automaticamente alterar o seu compor

.':Z tamento para se adaptar ao novo estado deste ambiente e os

^ robôs de terceira geração, com capacidade de auto-aprendiza

— do, dedução e conclusão, estes ainda num estágio muito pri

^ mijbivo.

*

No Brasil, a utilização de robôs industriais, mes

* mo os de primeira geração, é ainda praticamente inexisten

te; mas, a exemplo do que vem ocorrendo nos países indu£

. . V » . trializados, o seu emprego deverá sofrer um rápido desenvo¿

vimento nos próximos anos, dentro do nosso parque indu£

trial.

Page 27: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.04.

how" estrangeiro.

7^^

,Um número bastante elevado de pesquisas vem sen

do desenvolvido visando melhorar o desempenho e aplicações

de robôs industriais, principalmente no que se refere à sua

precisão de posicionamento e velocidade, sua velocidade de

execução de tarefas, seus sensores e seus métodos de progra

mação, mas bem poucos são os trabalhos referentes ao desen

volvimento de equipamentos dedicados ao ensino e pesquisa

das várias técnicas associadas ao desenvolvimento de robôs

industriais.

O objetivo desta tese é o desenvolvimento e cons

trução de um laboratório que tenha toda a infra-estrutura

necessária para a pesquisa de novas técnicas e o ensino da

robótica voltada para aplicações industriais.

Como robótica entendem.os a ciência que estuda os

robôs e suas aplicações, sendo completamente multidiscipM

nar envolvendo a mecânica, eletrônica, matemática, processa

mento de dados, multiprocessamento, sensoreamento, teoria

de linguagens, organização industrial e outras mais.

Assim, este laboratório consta de ferramentas ne

cessarias e suficientes para permitir qué vários aspectos

desta diversidade de disciplinas aplicadas à robótica indus

trial possam ser ensaiadas, pesquisadas e ensinadas de uma

maneira rápida, eficiente e o mais próximo possível da rea

lidade industrial.

Este trabalho, que descreve a concepção e imple

mentação do LÍDER - Laboratório Integrado para Desenvolvi^

mento e Ensino da Robótica, é dividido em cinco capítulos.

O primeiro capítulo tem como objetivo mostrar o

Page 28: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

z^

:'Z

.05.

estado da arte dos robôs industriais e da sua programação

de tarefas, servindo de base para a proposta do laboratório

M " desenvolvido.

Zè "Sj O capítulo II aborda a arquitetura mecânica do ro

bô industrial projetado e construído para o laboi-atório,

^ apresentando seus detalhes construtivos, seu sistema de

~^ acionamento e realimentaçao de posição, suas característi^

^ cas e especificações bem como sua aplicabilidade.

No capítulo III é apresentado o sistema de contro

le implementado para o laboratório; sua concepção de contro

le é hierárquica, dividida em três níveis distintos de con

trole, sendo que apenas dois estão completamente implementa

dos. A descrição de todos os componentes de cada nível, bem

como a de seus programas de controle, é detalhada neste ca

Z pítulo.

••- O capítulo IV trata dos programas-suporte imple

mentados descrevendo os algoritmos utilizados para a tran^

formação de coordenadas, as rotinas de calibr^ação e manuten

ção do robô, o programa de aprendizado e controle de execu

ção de tarefa e outros programas de apoio disponíveis no Ia

Z boratório.

O quinto capítulo se refere à apresentação da lin

guagem de alto nível para programação de robôs industriais

desenvolvida para o laboratório. A estrutura dos programas,

suas estruturas de dados e seus comandos são apresentados

neste capítulo.

No apêndice III são apresentados alguns exemplos,

¿a. de utilização de robôs industriais, implementados no labora

tório.

Page 29: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

—-r-X

.06.

Se a utilização de robôs industriais no Brasil

ainda é uma questão polêmica devido às estruturas sociais e

econômicas • atuais e mesmo se esta utilização é economicamen

te viável, a pesquisa e o desenvolvimento desta tecnologia

se encontra, sem sombra de dúvida, bastante atrasada. O

objetivo principal deste trabalho é tentar dar um passo na

direção de solucionar este problema sendo voltada para o

verdadeiro fator de domínio de qualquer tecnologia: a forma

ção de recursos humanos.

..V

-y

Page 30: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

'"'3 -r^

"_^7Z CAPlTUIX) I - SOBKE OS ROBOS HffiUSTRIAIS

:::.::Z

"Does a robot displace a human being? Certainly, but he does so at a job that, simply because a robot can do it, is beneath the dignity of a human being; a job that is no more than mindless drudgery. Better and more human jobs can be found for human beings - and should"

(Isaac Asimov)

.,v

Page 31: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Q . 08.

1.1 - IfíTRODUÇÂO

Zi>

•- ''- Desde sua aparição, a palavra robô vem sendo_ asso

,V ciada à uma idéia popular negativa representando sempre uma

ameaça aos seres humanos. Esta palavra, vinda do inglês

, "robot" é originária da palavra tcheca "robota" que signify

^ ca trabalhador. Ela foi primeiramente empregada em 1921 nu

ma peça de teatro de Karel Capek chamada R.U.R ("Rossum's

Universal Robots") [ 1 ]. Nesta peça, um brilhante cientista

Zi criou uma linha de robôs projetados para liberar a humanida

ZJ de do trabalho. No começo o projeto é completamente bem su

^ cedido até que estes robôs começajn a ser utilizados em guer

ras para matar seres humanos. Depois que um cientista irre£

ponsável do laboratório de Rossum coloca emoções e sentimen

tos nos robôs a tragédia se consuma. Os robôs, mecanicamente

perfeitos, não toleram mais serem tratados como escravos p£

los humanos imperfeitos, se rebelam e aniquilam toda a vida

humaiia. . -y

A partir daí, vários autores de ficção científica

continuaram utilizando o termo robô geralmente para descr£

ver seres extremamente fortes e inteligentes quase* sem.pre

em luta contra a humanidade. Esta imagem sinistra persiste

até hoje no imaginário popular, a despeito de esforços de

autores tais como Isaac Asimov e de filmes na linha de "Per

didos no Espaço" e "Guerra nas Estrelas", que tentam modifi^

car esta imagem nos apresentando o verdadeiro papel a ser

desempenhado pelos robôs nas próximas décadas, que é o de

auxiliar a humanidade liberando-a de trabalhos que não são

próprios para seres humanos seja devido à periculosidade da

tarefa ou limitações físicas (força por exemplo) para execu

tá-la, seja devido à falta de atributos necessários para

torná-la interessante para a mente humana.

Mesmo quando aplicada à robótica industrial, a pa

Page 32: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.09.

lavra robô é usada ainda para denominar uma grande divers_i

dade de máquinas começando desde dispositivos mecânicos ex£

cutando uma única e repetitiva série de movimentos, passan

do por equipamentos mais sofisticados, controlados por com

3 putador, indo até aos robôs ditos inteligentes com um sist£

^ ma sensorial avançado permitindo uma capacidade de decisão

-j^ e geração de planos para a execução de uma dada tarefa.

-V

Todos estes dispositivos denominados de robôs in

dustriais podem ser classificados em uma das duas catego

•- rias: aqueles que já atingiram um nível de confiabilidade e

V tecnologia suficiente para torná-los economicamente viáveis

na indústria; e aqueles cujas dificuldades e necessidades

tecnológicas, pelo seu grau de complexidade, ainda são in

viáveis economicamente de serem utilizados.

Apesar das aplicações dos robôs nas indústrias ain

da se restringirem a tarefas simples e sem. muita necessida

de de equipamentos de grande complexidade, a tendência é

que, devido à elevação constante do custo de mão-de-obra,

associada ao desenvolvimento de tecnologias a um custo cada tf

vez menor, tarefas cada vez mais complexas sejam realizadas

por robôs industriais gerando as fábricas versáteis e total^

mente automatizadas.

Este capítulo tem como objetivo principal apresen

tar o estado da arte da robótica industrial no que concerne

à arquitetura mecânica e acionamento dos robôs, seu sistema

de controle, seus dispositivos de sincronização, seus sens£

res e suas formas de aprendizado de tarefas.

Ao final do capítulo apresentaremos a proposta de

um laboratório que possibilite, de uma maneira econômica e

versátil, abranger grande parte dos tópicos referentes aos

robôs industriais no que diz respeito ao ensino e à pesqui

Page 33: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

z^

sa desta tecnologia.

1.2 - COMPOffíEKTES BE ÍM KOBO IMJÜSTRIAI-

Segundo a definição do RIA ("Robot Institute of

America"), um robô industrial é um manipulador reprograma

vel multi-funcional projetado para mover materiais, partes

ferramentas ou dispositivos especiais, através de movimen

--^ tos programados para a execução de uma diversidade de tare

,S fas.

Desta forma, as características importantes para

que o dispositivo seja considerado um robô são: versatilida

de, programabilidade e que, uma vez programado, ele realize

a tarefa por si só, sem a interferência de operadores huma

nos.

Um robô industrial típico pode ser mostrado como

tendo os componentes apresentados na figura 1.1 e descritos

abaixo. .

- Manipulador com mão-ferramenta e acionadores:

Uma estrutura mecânica composta de engrenagens,

elementos de transmissão e acionadores, possuin

do graus de liberdade suficientes para a execu

ção das tarefas destinadas ao robô. A mão-ferra

menta é o dispositivo responsável pela execução

do trabalho útil.

- Fonte de potência:

Fornece a energia na forma adequada para os

acionadores e o sistema de controle do robô.

.10.

Page 34: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.11

SISTEMA SENSORIAL

\7

DISPOSITIVO DE PROGRAMAÇÃO DE

TAREFA

FONTE

POTENCIA

CONTROLADOR <F

o MEMORIA

DE TAREFA

MANIPULADOR COM MÃO-FERRAMENTA E

ACIONADORES

\7

DISPOSITIVOS DE

SINCRONIZAÇÃO

Fig. 1.1 - Diagrama de blocos de um robô

trial típico.

indus

- Controlador: *

É o responsável pela coordenação e execução das

funções a serem executadas pelo robô.

- Memória de tarefa:

Ê o meio de armazenamento utilizado pelo contro

lador para guardar programas de novas tarefas

ou, a partir de programas anteriormente guarda

dos, executar uma tarefa já aprendida.

- Dispositivo de programação de tarefa:

Uma unidade de entrada e saída com funções tais

que facilite a programação do robô por um opera

Page 35: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

o

•O

.12.

^ dor.

- Dispositivos de sincronização:

3 São dispositivos que permitem a coordenação das

ações do robô com máquinas e/ou eventos exter

^ nos.

- Sistema sensorial:

Z Conjunto de sensores que permitem ao robô reco

'2^ nhecer mundaças de condições no seu meio amblen

-> te de trabalho.

Desta forma, um robô industrial, composto da int£

gração dos vários dispositivos descritos acima, possui as

características de versatilidade, aprendizado e automação

O que têm sido os principais atrativos para a sua crescente

^ utilização na automiação de processos industriais.

Embora possuindo uma mesm.a definição, os robôs in

dustriais diferem enormemente uns dos outros segundo sua

forma, seus tipos de acionamento, seu sistema de oontrole e

V seus sensores dependendo do tipo da aplicação para a qual

Z ele é construído.

Estes vários tipos de robôs industriais podem ser

classificados em três categorias ou gerações [58]:

^ - Primeira geração (1960 - 1970)

São os robôs do tipo "playback". Possuem sistema

de controle e sensores necessários apenas para

'3 memorizarem uma determinada tarefa e executá-la

repetidamente sem possibilidade de alteração da

mesma durante sua execução.

Page 36: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 1 3 .

. J

o

- Segunda geração ( 1 9 8 0 ) :

São robôs dotados de sistema de controle que

permitem a integração de sensores externos (vi_

são, tato, ultra-som, etc) para verificar mudan

ças no seu ambiente de trabalho e alterar a sua

programação para se adaptar automaticamente ã

condições não previstas neste ambiente.

- Terceira geração ( 1 9 9 0 ) :

Serão robôs capazes de. aprenderem sem interf£

rência de operadores tendo ainda a capacidade

de dedução e conclusão sobre o seu ambiente de

trabalho e a tarefa a ser executada.

Ao contrário do que acontece na indústria de ml

croeletrônica, onde componentes mais modernos tornam obsol£

tos e inúteis outros mais antigos, é de se esperar que, nas

fábricas do futuro, robôs pertencentes a cada uma destas ca

tegorias trabalhem em harmonia nos vários estágios componen

tes do processo de fabricação.

' Tentaremos nos itens seguintes apresentar o esta

^ do da arte dos vários componentes dos robôs industriais.

- 1 . 2 . 1 - ATMJUÍtetara raecânica dos robôs industriais

•O o A arquitetura mecânica de um robô industrial con

^ siste de uma estrutura composta de juntas articuladas e/ou

de deslizamento, dotada de vários graus de liberdade, de mo

do a ser capaz de, quando comandada, posicionar sua mão-fer

ramenta em um determinado ponto do espaço de trabalho, se

gundo uma determinada orientação.

Page 37: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.14.

Para se especificar a localização e orientação de

um corpo rígido em um determinado sistema de coordenadas,

são necessários seis parâmetros, sendo que três servem para

localizar o centro de gravidade deste objeto e os outros

três especificam a sua orientação em relação ao centro de

gravidade, como visto na figura 1.2.

Fig. 1.2 - Graus de liberdade de um corpo sólido

no espaço .

o - 'O

Desta forma, podemos dizer que um corpo rígido no

espaço tridimiensional possui seis graus de liberdade. Supon

do a mão-ferramenta de um robô um corpo rígido, para que

ela possa ser colocada em qualquer ponto do espaço de traba

lho do robô, em qualquer orientação, este robô necessita

ter no mínimo seis graus de liberdade.

Assim, a arquitetura mecânica de um robô pode ser

Page 38: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ .15.

-J Já para a orientação da mão-f erramenta, os vários

Z tipos de robôs possuem uma arquitetura semelhante, com os

^ três graus de liberdade mostrados na figura 1 . 4 , correspon

^ dentes aos graus de liberdade de um punho.

o

sub-dividida em duas partes: a primeira que posiciona a

mão-ferramenta no espaço e a segunda que a orienta.

O .

o Robôs industriais comerciais usualmente possuem

três graus de liberdade para a primeira parte e de um a

três graus de liberdade para a segunda, dando um total de

quatro a seis graus de liberdade dependendo da aplicação a

^ que se destina o robô.

Para a parte da arquitetura mecânica do robô, re£

Z ponsável pela localização da mão-ferramenta, uma variedade

^ de configurações já foram construídas, mas sempre sendo uma

^ combinação das estruturas básicas associadas aos sistemas

^ de coordenadas cartesiano, cilíndrico, polar e de revolução

como mostrado na figura 1.3 a seguir.

Ê claro que nada impede a construção de robôs cora

Z mais de três graus de liberdade para esta primeira parte.

Isto levaria à vantagem de uma maior versatilidade do robô

referente à capacidade de contornar obstáculos mas por outro

lado, aumenta sobremaneira a complexidade dos algoritmos de

controle devido à redundância da estrutura. *

Page 39: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.16,

.J

Fig. 1.3 - Configurações básicas para os três pri^

meiros graus de liberdade da arquitetu

ra mecânica de um robô industrial.

Page 40: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.17.

-y

Fig. 1.4 - Estrutura clássica para a parte mecâni^

ca responsável pela orientação da mão-

ferramenta.

O número de graus de liberdade e a maneira como

eles são estruturalmente implementados dependem bastante do

tipo de aplicação, mas a prática mostra que seis graus de

liberdade, como visto acima, torna o robô bastante versátil

para um grande número de aplicações.

Outras características importantes da estrutura

mecânica de um robô são: [20]

- Volume de trabalho:

É o conjunto de pontos atingidos pelo robô quan

do ele passa por todas as suas combinações geo

métricas possíveis. Este volume de trabalho é

Page 41: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.18.

•O

função das grandezas geométricas do robô, seus

graus de liberdade e suas limitações mecânicas

para cada um destes graus de liberdade. A figu

ra 1.5 abaixo mostra a especificação do volume

de trabalho para um determinado robô industrial.

40»

719 ^ - ^ ^ • ^ f e w

0

Fig. 1.5 - Especificação do volume de trabalho de

um robô industrial [ 4 ].

CO.-:::: : : . : [ : : : E R G : A T ^ U C L E A R / S P

1. p. E. N.

Page 42: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.19.

- Peso do robô:

Como o nome diz, é quanto o robô pesa, variando

desde alguns quilos até algumas toneladas para

os varios tipos de robôs encontrados no merca

do. Esta é uma característica importante quando

o robô tem que ser fixado no teto ou em vigas

para a execução do seu trabalho.

- Capacidade de carga:

É o peso máximo que o robô consegue manipular

mantendo as suas especificações. Para os robôs

^ atuais esta capacidade de carga varia desde al

gumas gramas até algumas centenas de kilos, d£

Z pendendo do robô e da aplicação a que ele se áes_

tina.

_ - Resolução:

Também chamada de precisão, é o menor intervalo

entre dois pontos adjacentes do volume de traba

lho que podem ser distinguidos um do outro pelo

sistema de controle do robô. A resoluçíão é nor

malmente dependente do controlador do robô,

seus sensores e sua capacidade de carga, varían

do de alguns milímetros até alguns centésimos

de milímetros para os mais precisos.

- Repetibilidade:

Refere-se a maior diferença de posicionamento

atingida pelo robô quando comandado várias v£

zes para retornar a uma mesma posição. Este pa

râmetro mede a estabilidade do sistema de coor

denadas interno do robô e suas folgas, sendo

correntemente o parâmetro mais importante utili

Page 43: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

,20.

zado para avaliar um robô, devido ao fato de a

maioria deles manipularem objetos entre locali_

" zações conhecidas sem a utilização de sensores

externos [ 30] .

3

- Velocidade e aceleração:

Podem ser definidos como a velocidade e acelera

ção máximas que um robô consegue deslocar sua

mão-ferramenta de um ponto para outro. Estes pa

râmetros dependem muito da estrutura mecânica

do robô, de seus acionadores e sistema de con

trole e da carga transportada, atingindo valo

res de até 120 graus/s para movimentos rotati_

vos e até 3 m/s para movimentos translacionais.

Estes parâmetros são importantes na determina

ção do tempo do ciclo de trabalho para um deter

minado robô em uma determinada aplicação.

Ê importante ressalvar que várias destas caract£

Z rísticas são também dependentes do sistema de controle do

robô, seus acionadores, seus elementos de transmissão, seus

^ sensores etc. Pesquisas vêm sendo realizadas de modo a tor

_ nar os robôs industriais mais rápidos, mais precisos e mais

leves, transportando cargas maiores.

O 1.2.2- Mão—ferransenta de robos induistriáis

Podemos classificar em dois tipos, as operações

possíveis de serem executadas por um robô industrial: a ma

nipulação de partes ou peças e o posicionamento de uma de

terminada ferramenta ou aparelho necessário para a execução

Z) de uma dada tarefa.

J

Page 44: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.21 .

Para o primeiro tipo é utilizada uma espécie de

garra, que normalmente é projetada para otimizar o processo

onde ela é empregada, enquanto para o segundo tipo, a me

Ihor solução é fixar a ferramenta ou aparelho, diretamente

ao braço do robô.

Enquanto a parte de posicionaunento de um robô é

extremamente versátil, a sua mão-ferramenta deve ser proje

tada para a aplicação que se tem em vista para aquele robô.

1.2.2.1 - íSão-ferraEsenita do tipo garr-a

Normalmente, quando a tarefa do robô consiste em

manipular peças ou partes em um determinado processo de fa

bricação, utiliza-se uma mão-ferramenta do tipo garra cone£

tada diretamente ao punho do robô.

O tipo de garra utilizado depende da foi'-ma, peso

e material a ser manipulado; existindo uma diversidade de

opções. As mais utilizadas são as garras mecânicas, a vá

cuo e as magnéticas. *

Garras que possam ser utilizadas em uma diversida

de de operações, normalmente tentando emular a mão humana,

são objetos de inúmeras pesquisas mas não se encontram ain

da em um estágio tal que possam ser empregadas na indÚ£

tria [48 ] .

Alguns tipos de garras mais utilizadas estão mos

tradas esquematicamente na figura 1.6,

Page 45: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.?2

<0¥

GARRA EVOLUÍDA

GAIIO A VÜCUO

GARRAS MAGNÉTICAS

GARROS MECÂNICAS

Fig. 1.6 - Alguns tipos de garras

A for'ca com que uma de Lermiriada garra deve segu

rar um objeto a ser manipulado deponde de váraos fatores»

entre eles o peso da peça, a distância de pegada em relação

ao centro de gro.vidade da peça, a direção do movimfento a

ser realizado e a máxima aceleração do manipulador car^regan

do a peça. Esta força tem que ser calculada de forma que a

garra nunca largue o objeto ou permita uma mudança de orlen

tação da peça em relação ao robô.

Os tipos de aciona-mento de uma garra mecânica p o

dem ser elétrico, pneií.inático e hidráulico, sendo que todos

os três tipos são bastantes utilizados na pi-^ática.

Para a aplicação de r-obôs industriais alimentando

máquinas fer'ra . iT ientas em células flexíveis de fabricação, uma

garr'a mecânica muito utilizada é a com. duas mãos, mostrada

na figura 1.7 a S E A ' U i r .

Page 46: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.23.

Fig. 1.7 - Garra mecânica de duas mãos.

Z Esta garra tem a vantagem de diminuir o número de

movim.entos a ser realizado pelo robô, pois com uma aproxima

^ ção ela pode pegar a peça já usinada com uma das mãos, gi

rar o conjunto e colocar, com a outra mão, uma peça não us^

nada na máquina. Este tipo de operação reduz consideravel^

^ mente a duração do ciclo de trabalho do robô.

-Q

" As garras a vácuo e magnéticas são mais dependen

tes ainda da aplicação, pois variam bastante com o tipo de

^ superfície disponível para a pegada, sua temperatura e o ma

^ terial a ser pego. Por exemplo, uma garra magnética só pode

pegar materiais ferro-magnéticos.

'Z^ Em [ 32] vemos um exemplo de aplicação de robôs na

C manipulação de tubos de televisores onde a melhor solução

encontrada, devido à fragilidade dos mesmos, foi a utiliza

,^ ção de uma garra a vácuo.

Algumas pesquisas tem sido feitas utilizando-se li

gas com memória [42] na confecção de garras mecânicas para

robôs industriais. Tais ligas são elementos mecânicos cuja

•1 forma depende de sua temperatura. Controlando-se esta

Page 47: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.24.

temperatura por meio da corrente elétrica que passa pelos

elementos, controla-se então a sua forma.

1.2.2.2 - Eão—ferraiŒeinita tipo ferran.enita

Um robô em uma linha de produção tem, normalmen

te, uma função específica. Quando para esta função é neces

sário utilizar uma determinada ferramenta ou aparelho, tor

na-se mais conveniente adaptá-lo diretamente ao braço do ro

bô ao invés de se projetar uma garra para segurá-lo.

Algumas ferramentas tipicamente empregadas podem

ser vistas de maneira esquemática na figura 1.8.

'Z

Fig. 1.8 - Algumas ferramentas usuais adaptadas

em robôs: a) solda a arco; b) cabeçote

de solda ponto; c) maçarico; d) tira

dor de porcas automático; e) cadinho;

f) esmeril [16].

Page 48: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.25.

Se for o caso de um mesmo robô necessitar de duas

ou mais ferramentas e/ou aparelhos para a execução de uma

dada tarefa; um sistema de encaixe por baioneta pode ser

utilizado, semelhantemente aos existentes em máquinas ferra

mentas de comando numérico, como o mostrado na figura 1.9.

Fig. 1.9 - Troca de ferramentas

[16].

tino baioneta

Ao se escolher um determinado robô para utilizar

uma determinada ferramenta deve-se levar em conta o peso

daquela ferramenta e seus acessórios, a precisão requerida

e os máximos esforços originados na execução do trabalho.

1.2.3 - AcionsüDentò de i > D b ô s imdiasItríaLis

J

Como mostrado, a arquitetura mecânica de um robô

industrial é um conjunto de estruturas e juntas capazes de

movimentos em várias direções para realizar um determinado

trabalho. Estes mecanismos são acionados por atuadores que

Page 49: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z'Zj

.26.

podem ser acoplados diretamente às estruturas ou juntas cor

respondentes ou podem transmitir movimentos para estas jun

tas através de correntes, engrenagens, correias, parafusos

de esferas recirculantes etc.

Os três tipos de acionadores mais utilizados em

robôs industriais são os hidráulicos, elétricos e pneumát_i

COS.

Os acionadores hidráulicos, lineares e rotacio

nais, oferecem a maior relação entre potência e peso sendo,

até o momento, a melhor opção para os grandes robôs. Como

o custo dos atuadores hidráulicos não é proporcional à po

tência entregue, este tipo de acionamento se torna caro pa

ra robôs de pequeno e médio porte.

Os robôs utilizando acionamento elétrico têm como

atuadores motores de corrente contínua com imã permanente,

motores de passo e mais recentemente motores de corrente a.l_

ternada.

Os motores CC têm sido os mais empregadoè devido

principalmente à facilidade de servo controladores tanto de

posição como de velocidade, bem como à grande variedade de

motores deste tipo no mercado.

Os motores de passo são empregados em robôs pequ£

nos e devido à grande facilidade de se controlar velocidade

e posição muitas vezes são empregados em malha aberta, di£

pensando a necessidade de sensores e codificadores custo

SOS. Problemas de se detetar perda de pulsos, devido a tor

ques grandes, às vezes torna impraticável trabalhar em ma

lha aberta quando grande precisão e repetibilidade são exi^

gidas.

Page 50: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.27.

O avanço na eletrônica de chaveamento tem levado

à possibilidade de se controlar motores de corrente alterna

da tanto em posição como em velocidade sendo esta uma área

promissora de acionamento principalmente devido ao baixo

custo dos motores envolvidos.

Todos estes motores elétricos possuem uma caracte_

rística de torque-velocldade que obrigam o uso de engrena

gens e sistemas de transmissão na construção destes robôs.

Pesquisas utilizando motores elétricos com terras raras

(magnetos de samarium-cobalto) têm levado à construção de

motores CC com uma alta relação de torque/peso tornando po£

sível a utilização de acionamento direto, isto é, o motor

é colocado diretamente na junta a ser acionada. Este tipo

de construção vai aumentar a precisão e repetibilidade, bem

como diminuir a necessidade de manutenção dos robôs, uma

vez que eliminará as engrenagens e sistemas de transmissão

atualmente utilizados no acionamento eléti-ico que, devido

aos desgastes e folgas, contribuem para degenerar as especi^

ficações iniciais dos robôs [55].

O acionamento pneum.ático, similar ao acitinamento

hidráulico, tem como vantagens sobre este o seu baixo custo

e a não utilização de fluídos, mas por outro lado, tem a s£

ria desvantagem de ser de difícil controle quanto ao pos^^

cionamento e velocidade de servo-atuadores. Esta desvánta

gem tem levado à utilização deste tipo de acionamento em ro

bôs de sequência fixa, ou seja, robôs que possuem pontos de

paradas determinadas mecanicamente.

Ê interessante frizar que o ambiente onde o robô

será utilizado têm alguma influência sobre o melhor tipo de

acionamento para aquele robô. Por exemplo, para tarefas de

pintura com solventes altamente inflamáveis e explosivos,

os robôs com acionam.ento hidráulico, por sua característi

Page 51: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"Z

.28.

-3 ;:3 O- tipo de acionamento a ser utilizado em um robô

. depende de cada caso específico, sendo que algumas vezes a

(fc, melhor solução é empregar uma combinação dos três tipos de

_ acionamento vistos acima.

1.2.4 - Sistenüa de comtrole dos robôs iiradustriais

Os sistemas de controle dos robôs industriais va

riam desde simples seqüenciadores mecânicos até computado^

res de grande porte, passando por seqüenciadores eletro-m£

caniços, eletrônicos, controladores lógicos programáveis, ml_

crocomputadores, minicomputadores e sistemas distribuídos de

computadores.

Funções inerentes a todos os sistemas de controle

de robôs industriais são:

1 - Possibilitar a programação ("memorização") de

uma determinada tarefa. 4

2 - A partir de dados armazenados na memória de

tarefa e de sinais vindos de dispositivos de

realimentaçao localizados no robô, controlar

a trajetória do manipulador de maneira a que

ele realize a tarefa programada.

^ 3 - Comunicar-se com dispositivos externos (ou

3 tras máquinas, sensores, etc) de forma a sin

^ cronizar a execução da tarefa com eventos ex

^ ternos e/ou alterar esta execução de forma a

adaptá-la a modificações percebidas no amblen

'" te de trabalho do robô.

ca menos inflamante e explosiva, são os mais indicados.

Page 52: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 2 9 .

Estas funções variam enormemente, quanto à compl£

"" xidade, na implementação de cada robô, sendo dependentes da

^ " gama de atividades previstas para aquele robô, sendo que a

3 sua potencialidade e versatilidade são determinadas pelo

^ seu sistema de controle.

^ A função 1 acima, será tratada com mais detalhes

^ no item 1.3 a seguir e a função 3 nos sub-itens 1.2.5 e

1.2.6. Desta forma, neste sub-item trataremos apenas da fun

ção 2, qual seja, o controle da trajetória do robô na realã^

Z zação da tarefa.

^ Quanto ao tipo de controle de trajetória, os ro

^ bôs industriais podem ser divididos em dois grupos:

— - Robôs não-servocontrolado.

- Robôs servocontrolados.

Os robôs não-servocontrolados são aqueles em que

o comando dos atuadores, realizado em malha aberta, é do ti

po liga-desliga, sendo que o controle do posicionanífento é

dado por chaves de fim de curso no manipulador ou em sequen

O dadores fora do robô.

Robôs empregando este tipo de controle são os mais

^ simples sendo conhecidos também por robôs "bang-bang", "pick

and place" ou de seqüência limitada. A programação destes

robôs é feita determinando a seqüência de movimentos deseja

da e posicionando-se convenientemente as chaves de fim de

O curso de cada eixo do manipulador.

Este robôs operam com velocidades altas, com boa

repetibilidade, baixo custo e grande confiabilidade. Suas

desvantagens são a pequena capacidade de programação e posi_

Page 53: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.30.

cionamento, a grande dificuldade de alteração de programas

tornando a sua utilização pouco flexível.

Embora ainda seja, atualmente, o tipo de robô mais

utilizado na indústria, provavelmente ele não será utiliza

do nas fábricas do futuro, por não permitir mudanças contro

ladas automaticamente por uma linha de transmissão. Somente

os robôs controlados por computador permitem esta facilida

de. Assim, no decorrer deste sub-item, concentraremos nossa

atenção nos robôs servocontrolados comandados por computa

dor.

Nos, robôs servocontrolados, o comando dos aciona

dores é feito em m.alha fechada com realimentaçao de posi^

ção, velocidade e/ou aceleração.

A vantagem deste tipo de controle em relação ao

anterior é que o robô pode ser posicionado em. qualquer pon

to do seu volume de trabalho, ponto este não mais determina

do por chaves limites mas sim por valores de referência ar_

^ ma?;enados em memórias. Esta facilidade implica em uma m.aior

flexibilidade na programação pois desvios, subrotiíias e S £

leção de programas de acordo com sinais externos podem ser

facilmente conseguidos com este tipo de sistema de contr£

Z le. E mais, agora o controle do robô é dependente de sinais

(bits) idênticos aos gerados em sistemas de projeto assist_i

^ dos por computador, abrindo a possibilidade de interligação

^ entre os mesmos.

^ O diagrama de blocos de um controlador PID (Pr£

'Zj porcional Integral Derivativo) para uma das junções de um

robô pode ser visto esquematicamente na figura 1.10 abaixo.

Nesta figura, K é o ganho do erro de posição que

tem por função melhorar o tempo de resposta do sistema, L

Page 54: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.31.

é o ganho da integral do erro que garante um controle de

estado estacionário e H é o ganho derivativo que melhora a

estabilidade" e evita oscilações no sistema. Estes três valo

res, que podem ser diferentes para cada uma das junções de

um robô, caracterizam completamente um sistema de realimen

tação.

Um esquema deste tipo é implementado no(s) compu

tadores que formam o sistema de controle do robô, sendo que

mesmo o tipo de controle pode ser facilmente alterado depen

dendo do estado da tarefa sendo executada. Um exemplo é a

mudança do esquema da figura 1.10 acima de controle para um

esquema onde a variável a ser realimentada é o tonque do mo

tor, bastante utilizado em aplicações de montagem [34].

« Y

e-ed

ANGULO COMANDADO

- ed

K K

H H VELOCIDADE

ÂNGULO

Fig. 1.10 - Diagrama de blocos do controle de uma

junta de um robô.

Page 55: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

p- -

. 3 2 .

Quanto ao controle da trajetória muitas pesquisas

vêm sendo feitas para torná-lo mais rápido, preciso e ef¿

ciente. Neste controle, tanto os fatores cinemáticos (geome_

tria do robô, velocidade e aceleração) bem como os dinâmi^

COS (tonques, massas, energia) são de grande valia na obten

ção de sistemas de controle melhores.

Estudo da dinâmica, dos manipuladores com a obten

ção de modelos teóricos e ferramentas de estimação automát_i

ca de parâmetros dos robôs tem uma im.portância fundam.ental

na otimização das respostas dos manipuladores [18 ] [38 ].

A cinemática de robôs refere-se à geometria, velo

cidade e aceleração de suas partes referentes a um dado si£

tema de coordenadas.

A posição de um determinado robô pode ser reprie

sentada em qualquer um dos três sistemas de coordenadas a

^ seguir.

.y - Sistema de coordenadas de junção.

- Sistema de coordenadas cartesiano.

- Sistema de coordenadas de ferramenta.

O sistema de coordenadas de junção é o mais natu

ral sendo o conjunto de ângulos e deslocamento de cada jun

ta do robô, como mostra a figura 1.11 para um robô articula

do.

Neste sistema, um determinado ponto do espaço mais

a orientação da mão-ferramenta do robô é representado por:

PI = (e, 3, a, ç. 6, Y)

Page 56: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 3 3 .

Fig. 1 . 1 1 - Sistema de coordenadas de junção para

um robô articulado com seis graus de

liberdade

J

'O

Quando na programação de uma determinada tarefa

somente os pontos extremos de uma trajetória são importan

tes, sendo que o caminho percorrido pelo mianipulador entre

estes pontos é irrelevante, o sistema de coordenadas de jun

ção, por ser o mais simples e direto de se controlar, é o

mais indicado.

Um movim.ento interpolado neste sistema de coord£

nadas corresponde a calcular a velocidade de cada atuador

de junção de forma a que todos comecem a se movimentar ao

mesmo tempo e terminem o movimento também ao mesmo tempo.

Page 57: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.34.

i 3

Uma vez que a relação entre as coordenadas de jun

ção e as coordenadas cartesianas é altamente não linear, es

te tipo de-interpolação normalmente conduz a caminhos curv_i

líneos no sistema cartesiano para a maioria das arquitetu

ras mecânicas dos robôs, como mostra a figura 1.12 para um

robô com duas articulações.

ZJ

DESTINO

INICIO

Fig. 1.12 - Diferença entre movimentos retilíneos

no sistema cartesiano e no sistema de

coordenadas de junção par^a um manipu

lador com duas articulações [ 9 ].

o sistema de coordenadas de junção, embora sim

pies, é muitas vezes difícil de ser utilizado para determi^

nadas tarefas. Quando é necessário exprimir relações entre

pontos a serem atingidos pelo robô ou mesmo se estes pontos

estiverem se movendo segundo uma determinada lei, torna-se

impraticável a utilização deste sistema de coordenadas.

Para resolver este tipo de problema, sistemas de

coordenadas externos ao robô são utilizados. A figura 1.13

abaixo mostra a definição dos outros dois sistemas de coor

denadas mais utilizados.

Page 58: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.35.

O

o

Zj

z

:.Z)

:0

:0 ::0

Fig. 1.13 - Sistemas de coordenadas cartesiano

(x, y, z) e de ferramenta (x', y', z').

No sistema de coordenadas cartesianas a posição

do robô é especificada por três valores associados a cada

eixo do sistema de coordenadas mais três ângulos definindo

a orientação da mão-ferramenta do robô.

'O

'O

•o 'O

PI = (x, y, z, ç, 6, Y)

A cinemática dos robôs trata das relações de

transformação entre os sistemas de coordenadas de junção pa

ra os sistemas de coordenadas externos ao robô e vice-versa.

Para se obter movimentos retilíneos no espaço car

Page 59: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 3 6 .

tesiano normalmente são feitas interpolações entre os pon

tos extremos da reta e utiliza-se interpolação no sistema

de coordenadas de junção entre dois pontos adjacentes. A

precisão da trajetória é função do número de pontos interpo

lados no sistema cartesiano, como mostra a figura 1.14.

•V

:0

Fig. 1.14 - Geração de trajetórias retilíneas no

espaço cartesiano para um robô com

duas articulações.

Page 60: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 3 7 .

No terceiro sistema de coordenadas, o de ferramen

ta, a origem e orientação do sistema são alinhadas com a

mão-f erramenta do robô, daí vindo o nome. Este alinhamento

permite definir-se naturalmente movimentos na direção da

ferramenta e no plano normal a esta direção, facilitando a

especificação do algumas tarefas.

Desta forma, devido à natureza e quantidade de

computação exigidas, uma parte crítica do sistema de contro

O le de robôs é dedicada ao cálculo de posições e ti-ansforma

ções necessárias pela movimentar o robô de uma determinada

maneira.

A solução mais adotada para a resolução destes

problemas é a utilização de matrizes de transformação homo

gêneas onde a posição do robô, seguindo uma determinada sé_

rie de movimentos, é representada pelo produto de matrizes

de transformação especificando movimentos incrementais [45 ] .

A arquitetura de um sistema de controle de robôs

industriais, para executar as três funções básicas definj^

das no início deste sub-item, possui uma enormidadej» de so

luções dependentes dos tipos de sensores integrados ao ro

bô, dos sistemas de coordenadas possíveis de serem utiliza

das, das suas especificações, e t c . Elas podem ser implemen

tadas com um único microcomputador até ao extremo de utili_

zar-se redes de computadores de médio e grande porte para o

controle do robô.

A complexidade dos programas de controle cresce

de forma exponencial com o número de sensores, com a quan

tidade de informação entregue por estes sensores e com as

maneiras que estas informações são processadas para modifi_

car as trajetórias do robô. Para robôs com uma interação

complexa com sistemas sensores, a tendência é a utilização

Page 61: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 3 8 .

Uma nova possibilidade é a utilização de memórias

EEPROM ("ellectrically erasable programmable -read only

memory") que possuem a não volatilidade das EPROM's tendo

ainda a capacidade de alteração dos programas do robô por

uma linha de comunicações sempre que for necessário, o que

é muito desejado para as fábricas do futuro [29],

1.2.5 - Bispositivos de siocixniizagao CCM eventos externos

O robô como uma parte integrante de um determina

do processo, deve ter a capacidade de sincronizar suas ações

com as de outros dispositivos e eventos deste mesmo proce£

so.

i. P . E. N.

de estruturas hierárquicas de controle, onde o sistema é

particionado em módulos tais que cada um apresente uma com

plexidade limitada independente da complexidade total do

sistema [ 1 ].

Com o custo decrescente dos computadores, a imple

mentação destes sistemas hierárquicos de controle é feita

utilizando-se redes distribuídas de processadores chegando

—^ a ter-se um computador dedicado ao controle específico de

O cada uma das junções do robô [51].

Quanto às memórias de tarefas de robôs industriais

^ uma grande variedade de tipos são utilizadas sendo as mais

^ frequentes atualmente os discos flexíveis, fitas magnéti^

cas, discos rígidos e memórias de bolha magnética, princi^

pálmente pelo fato de serem meios não voláteis de armazena

O mento. Memórias do tipo EPROM ("erasable programmable read

Z only memox-Y") também são utilizadas em robôs se não é nece^

^. sária uma mudança muito frequente dos programas de tarefas.

Page 62: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:'0

.39.

Por exemplo, num processo de descarga de um torno

de comando numérico, o robô só deve pegar a peça usinada

quando for .garantido que o eixo da árvore está em repouso e

que a placa esteja aberta, ou, num processo de alimentação

de uma prensa, tem que ser garantido que só ocorrerá a pren

sagem após o robô ter colocado a peça e se retirado. Esta

sincronização é obtida pelos dispositivos do robô de sincro

nização com eventos externos.

Assim, todos os robôs industriais devem dispor de

sinais de entrada e saída de forma a sincronizar suas ações

de acordo com os eventos do processo onde ele é utilizado.

Estes sinais dependem bastante da aplicação podendo vir des

de simples chaves limites até sinais vindos de outros sis

temas eletrônicos de controle, seja de máquinas de comando

numérico, outros robôs ou computadores de supervisão de

processos.

Estes sinais podem ser utilizados de duas mane^^

ras pelo sistema de controle do robô. Na primeira o progra

ma de controle testa um determinado sinal e dependendo do

seu estado executa uma determinada ação. Na segunda, este

sinal é ligado ao sistema de interrupção do controlador.

Quando ele ocorre, o sistema de controle suspende a ativida

de que estava sendo executada e desvia para uma rotina que

tratará a ocorrência daquele sinal. Uma vez tratada, o pro

grama de controle retorna para a atividade que foi suspendi^

da.

Um. exemplo de uma aplicação típica de um robô em

pregado para soldagem ponto a ponto de uma carrocería de

automóvel serve para ilustrar o tipo de sincronização que

um robô deve ter:

- Quando a carrocería do automóvel entra na linha

Page 63: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.o

'O

. 4 0 .

de soldagem, o seu tipo é determinado, seja por

leitura óptica de um código, seja por informa

• ção de um sistema central, de controle, e passa

do ao robô a fim de que ele selecione o progra

ma de soldagem daquele tipo de carrocería.

- Quando a carrocería está posicionada, esta in

formação é passada ao sistema de controle do ro

bô para que ele inicie a soldagem.

- A partir do sinal anterior, o robô posiciona a

pistola de soldagem na primeira posição a ser

soldada e envia um sinal para o equipamento de

solda iniciar a soldagem.

- Quando a solda está pronta, o equipamento de

O soldagem avisa o robô e ele posiciona a pistola

na próxima posição e o ciclo continua até que

,^ todos os pontos tenham sido soldados.

- Quando o robô tiver se afastado da carrocería

ele envia um sinal para o controlador <ie esteí^

ra e o automóvel é retirado daquela estação de

ZJ soldagem.

Outro tipo de sincronização possível é quando o

robô tem que realizar a tarefa em uma peça sobre uma estei^

ra em movimento contínuo.

Duas soluções são possíveis. A primeira é ensinar

tj o robô com a peça parada e depois colocá-lo em uma plata

forma que se desloca sincronam.ente com a esteira. Esta solu

^ ção envolve uma mecânica mais complexa além de se perder

tempo com o retorno da plataforma do robô após a execução

da tarefa.

Page 64: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.41.

.—

A segunda maneira é, com o robô parado, fornecer

informação contínua da posição da peça na esteira e o sist£

ma de controle utilizar esta informação para corrigir, o po

sicionamento do manipulador enquanto a peça passa pela r£

gião de trabalho, como mostra a figura 1,15.

'.^

SENSOR

Fig. 1.15 - Robô executa a tarefa enquanto a pe

ça passa pela sua região de trabalho.

Para este tipo de solução, o controlador do robô

deve ser capaz de trabalhar em coordenadas cartesianas ao

invés de coordenadas de junção, como foi visto no item an

terior.

1.2.6 - Sistessa sensorial

O sistema sensorial tem um papel fundamental para

o desenvolvimento e aplicação de robôs industriais, pois

Page 65: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.42.

possibilita a sua adaptação a mudanças no ambiente de traba

^ Iho, a verificação da execução de uma tarefa ou comando, o

controle de- posicionamento e velocidade, a deteção de obsta

> culos, a identificação e localização de objetos e outros fa

^ tores que possam influenciar o funcionamento do robô na ex£

cução de um determinado serviço.

^ Isto não significa que um robô tenha que ter n£

" çessariamente um sistema sensorial complexo para ser aplica

" do. A própria utilização industrial atual desmente este fa

^ to pois a maioria dos robôs em uso tem um sistema senso

" rial simples e mesmo assim é largamente empregada. Esta po£

.... sibilidade ocorre somente para aplicações onde possa ser

^ garantido que não ocorrerão mudanças no ambiente onde o TO_

^ bô irá funcionar e que todas as peças a serem manipuladas

" por ele sejam apresentadas na mesma posição com a mesma

^ orientação.

\ C o m o em inúmeras aplicações isto não é possível,

ou se for é muito caro e pouco flexível com relação à alte

^ rações, existe a necessidade de robôs mais flexíveis e ver

^ sáteis em termos de interações com as peças e coiíiponentes

da tarefa, e a única maneira de se conseguir isto é dotá-lo

. de um sistema sensorial desenvolvido.

Por exemplo, seria muito mais interessante e eco

^ nômico se um robô fosse capaz de pegar uma peça dentro de

^ uma caixa cheia, orientá-la e continuar a execução da tar£

^ fa do que ter que apresentá-la já posicionada e orientada

para o robô pegá-la.

"'Zj

' Concluímos então que um robô será tanto mais ver

sátil e flexível quanto mais desenvolvido for o seu sistema

^ sensorial. Esta conclusão tem levado a um grande esforço de

pesquisa nesta área, no intuito de aumentar a capacidade

Page 66: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.43.

dos sensores e a sua integração com o sistema de controle

dos robôs.

Os sensores utilizados por um robô industrial po

dem ser classificados em dois tipos: sensores de percepção

interna e sensores de percepção externa.

Os sensores de percepção interna estão mais asso

ciados à dinâmica e acionamento da estrutura mecânica sendo

utilizados para fornecerem informações para o sistema de

realimentaçao do controlador do robô. Os mais empregados

são os sensores de posição, velocidade, aceleração e tor

que podendo cada uma das juntas do manipulador possuir um

conjunto destes sensores.

A informação destes sensores têm como principal

função verificar se o acionamento dos atuadores foi executa

do conforme comandado e também se está dentro dos limites

admitidos pela estrutura mecânica do manipulador.

Os sensores de percepção externa estão associados

à informações fora da estrutura mecânica, sendo aelaciona

das ao ambiente e ao contexto da execução da tarefa. Eles

têm a finalidade de equipar o robô com sentidos rudimenta

res parecidos com os sentidos fundamentais do ser humano:

visão, audição e tato.

Passaremos a dar uma breve idéia dos sensores

mais empregados com robôs industriais.

- Sensores de partes e peças:

São os sensores mais simples servindo basicamen

Z te para detectar se em uma dada posição existe

uma peça ou não. Eles podem ser por contato

(chaves) ou a distância, por meio de detecção

Page 67: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.44.

óptica, magnética, elétrica, térmica, acústica

e t c .

Sensores de proximidade:

A finalidade destes sensores é determinar a àis

tância de um objeto referente ao sensor, tanto

para manipulação do objeto como para evitar ohs^

táculos na trajetória do robô [43].

Os sensores de proximidade podem ser divididos

em três categorias conforme o tipo de detecção

do sinal [11]:

a - Aqueles em que o objeto a ser detectado na

turalmente transmite o sinal (temperatura,

radiação, e t c ) .

b - O objeto está equipado com um transmissor

do sinal.

c - O sinal é transmitido para o objeto e o

refletido é detectado.

Embora existam sensores de proximidade* nestas

três categorias, a terceira categoria oferece

vantagens que a tornam mais promissora pois,

principalmente, independe das características

intrínsecas do objeto a ser detectado.

Vários tipos de sinais transmitidos são utiliza

dos em sensores de proximidade da terceira catie

goria. Entre eles, os mais utilizados são:

1 - Ultra-som: a medida da distância é obtida

pela determinação do intervalo de tempo en

tre o sinal transmitido e o sinal refleti^

do. A aplicação do efeito "doppler" permi

Page 68: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.45.

te também medir-se a velocidade entre o

objeto e o sensor.

2 - Ondas de rádio freqüência: são de uso limi^

tado na atualidade devido à sua complexida

de e alto custo.

3 - Radiação luminosa: são os mais utilizados

atualmente sendo os mais empregados os de

radiação infra-vermelha e lasers. Normalmen

te a distância é medida pela diferença de

fase entre o sinal • transmitido e o recebi^

do. Os lasers, pelo fato de serem de radia

^ ção coerente difíceis de serem encontradas

..V no ambiente de trabalho do robô e de grande

,.Z- precisão, oferecem os sensores de proximida

* de mais exatos; e, utilizando-se de técni^

cas de reflexões múltiplas, vários pontos

do objeto podem ser medidos, existindo tra

balhos que utilizam este fato tanto para me_

dir distâncias como para reconhecimento de

objetos [59].

Embora as câmaras de televisão possam ser usa

^ das como detectores de proximidade, elas serão

discutidas no item específico de sensores de vi

são.

'Z - Sensores de trilha de solda:

" São sensores que determinam a linha de soldagem

-• entre duas peças.

Dois tipos de sensores são utilizados: um que

^ detecta o esforço e a direção deste esforço

através do contato físico entre um sensor e a

trilha a ser soldada; outro detecta opticamen

V

Page 69: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.46.

te o caminho a ser soldado medindo as caractie

rísticas da junção.

Um sensor do segundo tipo fabricado pela ASEA

[ 5] pode ser visto esquematicamente na figu

ra 1.16.

ENTRADA DE AR

SAÍDA DE AR

SENSOR Ó P T I C O

Fig. 1.16 - Montagem de um sensor de trilha de

solda [ 5 ].

J

Page 70: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

D

•D

.D

7j

.47.

O sensor é um medidor de distância unidimensio

nal, montado na garra do robô na frente do fio

O de solda. Quando detectando a trilha, o robô mo

^ ve o sensor na direção da superfície ou através

>. da borda ou junção a ser soldada. O sinal é

^ processado pelo computador e o robô é comandado

convenientemente até que condições de fim de

soldagem sejam detectadas. Além de determinar a

junção, este tipo de sensor pode medir o espaça

^ mento entre as partes o que permite ao robô

^ automaticamente adaptar os parâmetros de solda

para aquela junção.

- Sensores de visão:

Estes sensores têm por objetivo, através do pro

cessamento de imagens, o reconhecimento de p£

ças e a localização e determinação de caract£

rísticas geométricas de um objeto e entre vá

rios objetos [11].

As pesquisas em visão artificial para robôs tem

_ por fim o desenvolvimento de novos sensores de

imagens, principalmente os de visão tridimensio

' nal, as modelagens da imagem obtida, algoritmos

O de reconhecimento de formas e análises de c£

nas.

^ Os sensores de visão podem ser divididos em >

duas categorias:

- bidimensionais;

- tridimensionais.

A visão bidimensional, atualmente a única com

Page 71: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.48.

algumas aplicações práticas na indústria, utili^

za como principais sensores os tubos vidicom,

matrizes de foto-diodos e circuitos integrados

do tipo CCD. Enquanto os dois últimos tipos já

fornecem a imagem digitalizada, o tubo vidicom

necessita de um digitalizador de imagem. Esta

imagem é digitalizada em uma matriz, normalmen

te em torno de 256 x 256 pixels ("picture

element") onde cada pixel possui de 2 até 256

níveis de cinza. Imagens mais simples, chamadas

de imagens binárias, sao aquelas cujos pixels

possuem apenas dois níveis de cinza e são as

mais freqüentes atualmente na indústria.

Uma vez digitalizada a imagem, ela pode então

ser submetida a várias técnicas de filtragem pa

ra separar características não importantes da

mesma, e em seguida, algoritmos de análise de

cenas são empregados para extrair as informa

ções desejadas da imagem.

A visão tridimensional será certamente ¿a mais

utilizada no futuro, por ser deste tipo o uni^

verso de trabalho do robô.

Atualmente consegue-se a visão tridimensional

utilizando-se duas cameras bidimensionais em

planos ortonormais, embora sensores tridimensi£

nais já estejam em desenvolvimento.

A figura 1.17 mostra diversas possibilidades de

montagem de sensores de visão para uso com ro

bôs industriais.

Page 72: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.49.

rn-A A-^ 1—K V/ •

Fig. 1.17 - Opções de montagem de sensores de vi

são utilizados com robôs industriais.

i

Os sensores de visão bidimensionais são suficien

tes para uma série de problemas tais como con

trole de qualidade, inspeção de peças, localiza

ção e reconhecimento de objetos planos e t c .

O processamento de imagens visando o reconheci^

mento de formas tem uma série de dificuldades,

entre as quais se destacam:

- o grande volume de informação a ser processa

do, entregue pelos sensores;

• J

Page 73: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.50.

- a variação da imagem obtida devido as transia

ções e rotações dos objetos;

- os problemas de sombreamento e perspectivas;

- o tempo necessário para o processamento.

Para evitar que o sistema de visão aumente con

sideravelmente o tempo do ciclo de trabalho de

um robô, todo o processamento da imagem deve

ser feito em um intervalo que vai de décimos de

segundos até alguns segundos.

Os trabalhos em visão artificial estão direcio

nados em aumentar e estender estas capacidades

apresentadas acima.

- Sensores de tato:

Também chamados de pele artificial, têm como

principal objetivo determinar os esforços real^^

zados ao se pegar lama peça, a forma desta peça

e a existência de deslizamento entre a t>eça e

a garra. Estes sensores têm normalmente a infor

mação apresentada de forma matricial.

Sensores utilizando agulhas que, dependendo se

encostam ou não no objeto, fecham contatos já

foram utilizados. Em outros, estas agulhas são

colocadas dentro de núcleos magnéticos e o de£

locamente das mesmas, proporcional ao esforço

em cada uma, pode então ser medido.

Um sensor determinando também o esforço, pode

ser visto na figura 1.18, onde coloca-se sobre

uma matriz de contatos um elastômero carregado,

Page 74: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.51.

cuja resistencia e proporcional ao esforço nor

mal [ 1 2 ] . Desta forma, a corrente que passa por

cada contato da matriz é proporcional ao esfor

ÇO sobre o,elastomero naquele ponto.

Assim, a pele artificial fornece sinais elétri_

eos correspondentes à parte pegada do objeto e

à posição desta parte relativa à garra do robô

com uma precisão dependente apenas do passo da

matriz de contatos.

O processamento dos sinais vindos deste sensor

pode ser feito de modo semelhante, mas de manei^

ra mais simples em relação ao dos sinais de vi_

são, podendo algoritmos de reconhecimento e Io

calização de partes serem desenvolvidos.

- Sensores de voz:

A finalidade destes sensores é comandar a execu

ção de uma tarefa através de comandos falados e

também permitir que o robô, através de fonemas,

informe as condições da realização de suâ tar£

fa. Já existem dispositivos que reconhecem a.!

guns fonemas e a grande quantidade de pesquisas

neste campo sugerem que este tipo de sensores e

transdutores serão bastante utilizados.

Embora estes sejam os tipos de sensores mais co

muns, existem aqueles que são voltados para aplicações es^

pecíficas tais como sensores de temperatura, radioatividade,

cores, etc..

Um robô dotado de vários sensores integrados ao

seu sistema de controle pode ser visto de maneira esquema

Page 75: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.52,

Zj

-O

Z ALIMENTAÇÃO

/7777 m n rm

z

z Fig. 1.18 - Desenho esquemático de um sensor tipo

pele artificial [12] .

tica na figura 1.19 a seguir.

Assim, um robô equipado com estes sensores, tor

na-se multo mais flexível dispensando equipamentos custosos

e difícies de serem alterados necessários para apresentar

as peças em posições e orientações definidas. Mesmo o reco

nhecimento de falhas e ocorrências imprevistas podem ser m£

Ihor tratadas pelo sistema de controle se o robô possuir um

Page 76: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

A 3

.53.

::;:3

A ; 3

:::3

3

".• 3

U L T R A SOM

C O N T A T O _

V E L O C I D A D E

A C E L E R A Ç Ã O

T E L E M E T R I A

P E L E A R T I F I C I A L

V I S A O

SENSORES DE

TORQUE

MEDIDOR DE

PROXIMIDADE

Fig. 1.19 - Sistema sensorial de um robô avança

do [19].

3

•3

7~'3

r:-3

: r3

sistema sensorial mais desenvolvido.

Um exemplo prático onde um robô dotado de visão

consegue pegar e orientar uma peça dentro de uma caixa chela

delas já foi demonstrado experimentalmente [ 7 ]. *

Estes robôs, embora possuindo sensores rudimenta

res, já são capazes de nos dar uma idéia das capacidades

dos futuros robôs e das limitações dos atuais.

1.3 - PROGRAMAÇÃO DA TAREFA

A programação da tarefa consiste em dispositivos

e programas suportes necessários para se ensinar uma deter

minada tarefa a um robô industrial.

Existem dois métodos para se programar esta tare

Page 77: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.54.

fa: o método direto ou programação por aprendizagem e o mé

todo indireto, correspondente à programação da tarefa com

uma lingagem do tipo utilizada em computadores.

Mesmo sendo a maioria dos robôs empregados na in

dústria programados por aprendizagem, as linguagens para pr£

gramação de robôs tem sido alvo de constantes pesquisas o

que em breve refletirá em um aumento de sua utilização in

dustrial.

Neste item serão feitas considerações sobre estes

dois métodos de programação de tarefas para robôs indu£

triáis.

1.3.1 - PrograMação por apreedizageia

Este tipo de programação é mais indicado para ta

refas simples, fortemente repetitivas e em um ambiente de

trabalho totalmente conhecido e invariante.

Neste método, a tarefa a ser executada é í)artici£

nada em uma série de trajetórias e ações e cada uma delas

é "mostrada" ao robô, no modo de aprendizagem, que as mem£

riza, podendo depois repeti-las.

A maneira física de se ensinar uma tarefa neste

tipo de programação assume três modos, como mostrado na fi_

gura 1.20.

O primeiro método é o de aprendizagem direta onde

o operador guia fisicamente o robô pela sua mão-ferramente,

num modo de aprendizagem do seu sistema de controle. Este

método é mais indicado para robôs com estrutura mecânica l£

ve e com movimentos reversíveis, tendo a vantagem de se uti

Page 78: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

. 5 5 .

3

3

3

-V

3

3

Fig. 1.20 - Métodos de programação por aprendiza

gem para robôs industriais.

lizar os próprios sensores do robô para fornecer os sinais

da tarefa a serem memorizados.

Na segunda maneira, indicada para robôs de grande

porte ou com estruturas mecânicas não reversíveis, i m simu

lador físico da estrutura do robô, com as mesmas dimensões

e sensores de posicionamento e velocidade, é utilizado du

rante a fase do aprendizado. A tarefa é executada pelo ope

rador guiando esta estrutura, ligada ao sistema de controle

do robô que vai memorizando a tarefa para depois comandar o

robô para os mesmos movimentos realizados no simulador. A

principal desvantagem deste método é a necessidade de se

construir outra estrutura idêntica geométricamente à do r£

bô, com os mesmos sensores o que é bastante caro de se

obter.

Na terceira maneira, utiliza-se um simulador ou

caixa de aprendizado para telecomandar o robô. Neste meto

3

Page 79: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-o

.56.

A memorização da tarefa durante a aprendizagem por

3 estes três métodos pode ser feita de duas maneiras pelo

sistema de controle do robô, conforme comandado:

- Programação ponto a ponto:

Nesta maneira o operador comanda a memorização

de cada ponto essencial de um.a trajetória e so

mente estes pontos são gravados na memória de

tarefa, de forma que o caminho entre dcjls pon

tos consecutivos não é determinado, sendo depen

dente do algoritmo de controle utilizado.

Este método é empregado para transferência de

^ peças, soldagem ponto a ponto e outras aplica

^ çoes que não requeiram um controle preciso da

^ trajetória e velocidade entre os pontos da tare

3 fa.

- Programação por caminhos contínuos:

Aqui, o sistema de controle é comandado para

memorizar os pontos da trajetória com uma deter

minada frequência de airiostragem elevada (60 Hz

do, o operador, através desta caixa, comanda os acionado

res do robô para a execução da tarefa que é também mem£

rizada pelo sistema de controle para execução futura. A van

tagem deste método em relação ao anterior é que o próprio

robô e seus sensores são utilizados, o que é bem mais bara

to e preciso, sendo também possível comandar-se tanto es

truturas de movimentos reversíveis como de movimentos irr£

versíveis.

Facilidades como movimentos retilíneos e circula

res tanto no sistema de coordenadas cartesianas como no de

ferramentas podem ser facilmente implementados.

Page 80: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

.57.

por exemplo), sendo a posição de cada ponto

amostrado armazenado na memoria de tarefa do ro

bô.

Assim, devido ao grande número de pontos armaz£

nados e à inércia dos acionadores e da própria

estrutura do robô, ele percorrerá a trajetória

de uma maneira contínua e precisa, tendo tam

bém controle sobre a velocidade de execução que

poderá ser a mesma ensinada, maior ou menor de

pendendo da aplicação. A frequência de amostra

gem pode ser também programada.

Devido ao grande número de pontos armazenados,

uma memória de massa é necessária para este mo

do de programação sendo também limitado o núm£

ro máximo de programas disponíveis ao mesmo tem

po na memória do robô.

Uma terceira maneira de memorização da tarefa po

de^ser a combinação das duas primeiras, ou seja, armaz£

na-se os pontos importantes de uma trajetória e define-se o

tipo de interpolação a ser feita entre eles (linear ou cir

cular) durante a execução. Desta maneira, reduz-se consid£

ravelmente a necessidade de memória e pode-se ter tanto o

controle da trajetória como o de velocidade entre os pon

tos.

A programação por aprendizagem é indicada para a

memorização de trajetórias simples, sendo bastante utiliza

da nos ambientes industriais principalmente pela simplicida

de e rapidez de se ensinar a tarefa e por não ser necessá

rio um grande conhecimento de técnicas de programação, po

dendo o operário ensinar a tarefa ao robô.

Page 81: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

' .58.

3 Por outro lado, este tipo de programação por

-• aprendizado possui sérias desvantagens listadas a seguir:

- Todas as posições devem ser ensinadas mesmo aque

Ias que podem ser determinadas por processamen

to.

:0 - Fica muito difícil ensinar tarefas requerendo

uma grande precisão de posicionamento (montagem

^ mecânica por exemplo).

- A utilização de sensores é difícil de ser feita

usando-se a programação por aprendizado.

— Z^ - A alteração de programas é bastante difícil e

^ trabalhosa tendo-se que, na maioria das vezes,

_ ensinar toda a tarefa para o robô.

^ - O robô é utilizado durante a aprendizagem dim.i

nuindo o seu tempo de máquina útil.

::0

- Ê difícil se não impossível, a interligação de

sistemas CAD/CAM ("Computer Aided Design"/"Com

puter Aided Manufacturing") com robôs utilizan

do este tipo de aprendizado [24].

Assim, para evitar-se todas estas desvantagens,

tem sido feito um grande esforço no desenvolvimento de lin

guagens de programação para robôs industriais.

1.3.2 - Programação por linguageca de alto nivel

As linguagens de programação para robôs indu£

triáis possuem uma sintaxe parecida com a das linguagens

! CU; . : : : ; : .í ; . 0 N A C : 0 : ; / L D F F - E R G í A ! A ; C L E A R / S P

í I. P. E . N .

Page 82: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ .59.

^ de alto nível para computadores (BASIC, PASCAL, ALGOL,

^ FORTRAN etc.) tendo, além dos comandos e estruturas destas

;_D "~ linguagens,, outros comandos associados a funções de movimen

to do robô e interligação com sensores externos.

Basicamente, para a programação do robô, a tarefa

a ser executada é particionada em etapas e descrita segun

do a linguagem de programação, que por sua vez é compilada

-• ou interpretada, gerando comandos de uma linguagem de nível

mais baixo ou diretamente executáveis pelo sistema de con

trole do robô.

Os cinco níveis de descrição de uma tarefa a ser

executada por um robô, que podem ser vistos na figura 1.21,

são: nível de objetivo, nível de programação estruturada,

nível de movimentos primitivos, nível de ponto a ponto e

nível de microcomputadores [ 8 ] .

No nível mais baixo não podemos dizer que exista

uma linguagem para robôs, pois as tarefas são programadas

utilizando-se as instruções do microcomputador que controla

o robô. Este nível é também conhecido como nível df aciona

O dor.

... O nível ponto a ponto está mais relacionado com a

programação por aprendizado, também não existindo uma lin

guagem propriamente dita.

-O

^ O primeiro nível, onde pode-se dizer que existe

3 uma determinada linguagem de programação, é o nível de mo

vimentos primitivos. As linguagens deste nível estão para

as do anterior assim como os montadores estão para o código

de máquina de um processador. O que caracteriza as lingua

gens deste nível são desvios condicionais, chamadas de sub

rotinas com ou sem parâmetros, uma maior capacidade de inte

J

Page 83: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.60.

ragir com sensores e alguma forma de processamento paral£

lo.

NIVEL DE I N T E L I ­

G E N C I A HUMANA

N I V E L O R I E N T A D A

PARA A T A R E F A

NIVEL DE PROGRAMA-

CAO E S T R U T U R A D A

T

N I V E L DE

MICROCOMPUTADOR

N Í V E L :

TOS PRI

)E MOVIMEN-

MITIVOS

N I V E L DE

A P O N T O

: PONTO

Fig. 1.21 - Níveis de descrição de tarefas

robôs industriais.

para

No nível de programação estruturada, as lingua

gens são caracterizadas por estruturas de controle mais so

fisticadas, possuem estruturas de dados abstratas mais com

plexas, utilizam bastante as transformações de coordenadas

e permitem a integração de sensores e processamento paral£

Io.

Para o nível de objetivo, a característica princj^

pai das linguagens é tratar automaticamente as interfaces

Page 84: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.61.

^ com sensores e transformação de coordenadas sem a interven

- ção do programador, tendo capacidade de decisão e geração

de planos de trabalho. Este tipo de linguagem não possui

». ainda nenhuma implementação prática sendo a que mais se

aproxima a AUTOPASS [37].

^ Linguagens existentes comercialmente encontram-se

^ ainda entre os níveis de movimentos primitivos e programa

Z ção estruturada, principalmente porque algumas dificuldades

^ não foram ainda, superadas tais como:

.'A

^ - Dificuldade de se determinar quantitativamente

o universo de trabalho do robô;

- Imprecisões nas estruturas dos robôs e das pe_

ças a serem manipuladas;

_ - Ineficiência dos algorítm.os para evitar c o M •y

soes e tratar de condições de erros; ~^

- Dificuldade de interpretação das informações dos

Z diversos equipamentos sensoriais e uma integra

^ ção eficiente com o sistema de controle dos ro

- bôs;

^ - Dificuldade de geração automática de planos de

ação e modelagem do universo do robô*

C A despeito destas dificuldades tecnológicas, as

•^IJ linguagens de programação de robôs têm o seu lugar garant¿

do no futuro porque são as únicas soluções para resolver os

^ problemas apresentados cora a programação por aprendizado

vistas no sub-item anterior.

Page 85: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.62.

Voltaremos a tratar com mais detalhes das lingua

gens de alto nível para programação de robôs industriais no

capítulo V deste trabalho, onde apresentaremos a concepção

e implementação de uma linguagem no nível de programação es^

truturada.

1.4 - PROPOSTA PARA IM LABORATORIO BE BESEM¥OL¥I]MEMTO BE

TÊOCICAS E PSQGRAMAÇiíO DE TAREFAS PARA ROBOS IfJDlíS

TRIÁIS

Como apresentado nos itens anteriores, a robótica

é uma ciência extremamente multidisciplinar envolvendo vá

rios tópicos que vão desde mecânica simples até processamen

to digital de imagens, passando por uma grande diversidade

de outras tecnologias.

Pouca ênfase vem sendo dada ao desenvolvimento de

equipamentos dedicados ao ensino e pesquisa na área de robó

tica. Neste item apresentaremos a proposta de um laborató

Z rio chamado LÍDER - Laboratório Integrado para o Desenvolvi^

mento e Ensino da Robótica, concebido e implementadq^ de for

, ma a fornecer a infra-estrutura necessária para que as dis

cipllnas mais importantes da robótica industrial possam ser

ensinadas e pesquisadas com um baixo custo mas possuindo to

das as características encontradas nos robôs utilizados na

indústria.

Um diagrama de blocos simplificado da estrutura

do laboratório desenvolvido está mostrado na figura 1.22 a

• seguir.

O robô industrial desenvolvido para o laboratório

é do tipo manipulador articulado com 5 graus de liberdade e

uma mão-ferramenta do tipo garra mecânica acionados por mo

Page 86: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.63.

r-« O

m o o :

-1 o UJ ü ^>

X CJ O UJ

-1 tl.

_l O O CO o tu

_l

Ul

_l bJ >

^— —. N

i « i s

n

r -s ^ < q: te UJ o i -

« Ol O O .

Fig. 1.22 - Diagrama de blocos proposto.

do laboratório

Page 87: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.64.

1 - Suporte para a programação de microcomputad£

res tanto para o nível 1 como para o nível

O de controle.

O tores de passo e com realimentaçao de posição através de

,3 codificadores opto-eletrônicos incrementais.

A arquitetura de controle do laboratório possui

uma estrutura hierárquica de controle com três níveis áes_

critos sucintamente a seguir.

O O nível O de controle é baseado em um microcom

; putador dedicado ao controle do robô tendo interfaces para

Q controle dos seis motores, um sistema de realimentaçao de

^ posição, interfaces para sinais de'sincronismo com eventos

externos, interface para uma caixa de aprendizado interati^

^ va com o operador e uma interface para comunicação com o ní.

vel superior.

3 Os programas deste nível constituem basicamente

— um pacote para aprendizado ponto a ponto através da caixa

'- de controle, rotinas de calibração e movimentação do robô

e interfaceamento com os sinais de sincronismo, além dos

u" programas de comunicação com o nível 1 de controle.

-V ''Z O nível 1 de controle é baseado em um mifirocompu

tador com sistema operacional compatível com o CP/M e

64Kbytes de memória, tendo interfaces para terminal de ví_

^ deo, impressora serial, interface para dois acionadores de

disco flexível e um digitalizador de imagens de camera vidi^

com, além das interfaces de comunicação para os outros dois

níveis.

Para este nível, podemos separar os programas em

três tipos:

Page 88: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.65.

2 - Suporte para programação de robôs industriais

3 - Programas de comunicação para os outros ní_

veis.

Os programas suporte para programação de microcom

putadores são implementados no sistema operacional compatí_

vel com o CP/M tendo todas as facilidades de um sistema de

desenvolvimento de programas para microcomputadores tais

como primitivas de entrada e saída, gerenciamento de arqui^

vos em disco, montadores, editores,' testadores de programas

e várias linguagens de programação de alto nível entre elas

o BASIC, FORTRAN, PL/I e PASCAL.

Os programas suporte para a programação de robôs

implementados no laboratório são:

- Program.as para transformação de coordenadas.

- Programas para interpolações lineares e circula

res no espaço.

*

- Linguagens de alto nível para programação "off-

line" de robôs industriais.

- Programas de execução de tarefas.

Os programas de comunicação serão responsáveis pe_

las trocas de dados entre este nível e os outros dois.

Para o nível 2 de controle está prevista a liga

ção com o minicomputador PDP 11/34 possuindo, entre outros

periféricos, um terminal gráfico de alta resolução, tendo

como objetivo aumentar a capacidade de processamento do la

boratório. A comunicação entre este nível e o nível 1 será

Page 89: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•V

. 6 6 .

feita por intermédio de uma interface serial de alta veloci^

dade, sendo que programas de simulação do robô e de tarefas

programadas.em outros níveis e mesmo lingaugens mais sofÍ£

ticadas poderão ser implementadas neste nível.

Assim, entendemos que esta arquitetura permitirá

cobrir a maior parte dos tópicos apresentados no decorrer

deste capítulo podendo experiências serem feitas cobrindo

desde robôs de primeira geração até os de terceira geração

equipados de sistemas sensoriais desenvolvidos e possuindo

alguma capacidade de decisão.

Toda a estrutura do laboratório foi feita de uma

maneira modular e flexível de modo que novas característi^

cas possam ser facilmente implementadas.

A fotografia da figura 1.23 mostra uma vista g£

ral do laboratório implem.entado.

Nos capítulos seguintes apresentaremos com mais

detalhes cada um dos componentes do laboratório proposto.

1.5 - COMCUJSSO

Este capítulo teve por objetivo apresentar uma

idéia do estado da arte dos robôs industriais no que se

refere aos seus componentes e métodos de programação, não

pretendendo de forma alguma, esgotar todas as pesquisas e

trabalhos realizados e em. andamento na área.

Uma enquete realizada no Japão para se determinar

as principais causas da introdução de robôs nas indústrias

levou ao seguinte resultado [35]:

Page 90: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.67.

-J

•O —\ •V

-J

O O O

o

-o Fig. 1.23 - Fotografia do LÍDER - Laboratório In tegrado para Desenvolvimento e Ensino da Robótica.

Page 91: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.68.

J economia de mão-de-obra 44,

V

melhoria nas condições de trabalho 25,0%

aumento da flexibilidade de fabricação .... 13,5%

melhor controle da produção 8,0%

outros 9,0%

^ Isto nos mostra que a principal causa da robotiza

ção nos países desenvolvidos é ainda a substituição da mão-

de-obra, bastante cara. Para o Brasil, devido ao custo ha.±_

xo da mão-de-obra, provavelmente demorará alguns anos até

que a sua substituição seja economicamente viável, sem con

tar ainda com as dificuldades originárias da nossa estrutu

ra sócio-econômica.

Mesmo sendo discutível a aplicação ou não de ro

bôs nas indústrias brasileiras, indiscutível é que já nos

encontramos atrasados em relação ao desenvolvimento desta

tecnologia.

Estes robôs apresentados neste capítulo, conside

rados ainda primitivos, já servem para demonstrar que a ro

botização veio para ficar e, com toda certeza, será^uma rea

lidade nos parques industriais do futuro em todos os paí^

ses, desenvolvidos ou não.

Assim, apresentamos neste capítulo a proposta de

um laboratório visando o desenvolvimento de recursos huma

nos e novas tecnologias em robótica industrial.

Page 92: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

CAPITULO I I - ARQOTTETTUKA KiECÂMICA E CARACTERlSTI_

CAS DO KOBO IIÍDUSTRIAL DESElIWOL¥IDO

Com a suprema ousadia de tentarmos

imitar a criatura é que percebemos

a perfeição do Criador.

Page 93: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

3 .70.

2.1 - IMTHODOÇSO

j O.objetivo deste capítulo é apresentar os deta

lhes construtivos e as características principais da arqul

tetura mecânica do robô industrial desenvolvido para o labo

ratório apresentado neste trabalho

3 A concepção e o projeto mecânico deste robô foram

) feitos pelo Grupo de Aplicação de Microcomputadores (GAM)

^ da Universidade Federal do Espírito Santo e a sua constru

ção e montagem foram realizadas na Oficina Mecânica do De

partamento de Engenharia de Eletricidade da Escola Politéc

' nica da USP [3 ] .

* Este robô, tendo uma arquitetura mecânica sim

; pies, possui todas as características e funções dos robôs

^ industriais de sua categoria comercializados nos EUA e Ja

pão, sendo ainda que o seu projeto foi feito de modo que

sua arquitetura permitisse testar-se várias técnicas de

construção mecânica e acionamento freqüentemente utilizados

em, robôs industriais com acionamento elétrico.

Ele possui cinco graus de liberdade rotativos,

acionados por motores de passo controlados em malha fecha

da realimentados por codificadores angulares incrementais,

tendo uma capacidade de carga de Ikg e uma extensão máxima

de 70cm.

Na primeira parte do capítulo descreveremos com

detalhes a mecânica de acionamento de todos os seus graus

de liberdade. A seguir listaremos as suas características

principais tais como volume de trabalho, precisão de pos3_

cionamento, capacidade de carga e velocidade de operação.

Na seqüência serão apresentados o sistema de rea

Page 94: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.71.

-3

.O o

2.2 - ARQUITETUKA MECAlMICA

A arquitetura mecânica do robô industrial desen

volvido é baseada no sistema de coordenadas de revolução

possuindo três graus de liberdade rotativos para o posicio

namento de sua mão-ferramenta e dois graus de liberdade,

também rotativos, para a orientação desta mão-ferramenta no

espaço de trabalho. Todos estes graus de liberdade são acio

nados por motores de passo situados na base do robô e reali^

mentados em posição por codificadores angulares incremen

tais.

Toda a sua estrutura é construída em duro alum.í_

nio sendo que o braço foi construído a partir de um perfil

com ranhuras, de forma a obter-se uma estrutura IcAse e rígj^

da o suficiente para não comprometer a precisão do robô.

A fotografia da figura 2.1 mostra uma vista da

arquitetura mecânica do robô, equipado com a sua mão-ferra

menta do tipo garra mecânica.

Podemos ver que todos os motores de acionamento

dos graus de liberdade se situam na base de forma a que o

braço fique o mais leve possível. A única exceção é o motor

de acionamento da garra mecânica que, por ser destacável, a

melhor solução foi colocá-lo na parte inferior do braço. A

mecânica da garra será detalhada no item 2.5 a seguir.

limentação de posição e seus detalhes construtivos e as ca

—^ racterísticas da garra mecânica desenvolvida para o robô.

^ Finalmente serão mostradas algumas aplicações pa

ra este robô industrial construído.

Page 95: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.3 3 .72,

3

Fig. 2.1 - Fotografia da arquitetura mecânica do robô desenvolvido.

Page 96: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.73.

' 3 1 - Caixa de engrenagens da base fixa do robô.

2 - Caixa de engrenagens da base móvel do robô.

O

3 3 - Braço com cotovelo e punho.

Estes blocos básicos são compostos de estruturas,

^ mancais e rolamentos, engrenagens e sistemas de redução, cor

_ rentes e correias, eixos e motores de forma a permitir a

transmissão de movimento para todas as articulações do bra

ÇO.

A transmissão do movimento do eixo do motor para

- a estrutura do robô é feita utilizando-se uma redução do ti

^ po sem-fim/coroa, padrão para todos os seus cinco graus de

liberdade.

—' A montagem desta redução sem-fim/coroa pdde ser

3 vista esquematicamente na figura 2.2 abaixo.

O parafuso sem-fim feito em aço SAE-1045, montado

sobre rolamentos de esfera, é fixado ao eixo do motor atra

vés de uma chaveta redonda e travado axialmente por anéis

de encosto na tampa e no motor, de forma que ele possa g^

rar livremente sem folgas axiais e com baixo atrito.

A coroa, confeccionada em bronze fosforoso para

diminuir o atrito e o desgaste, é montada em um eixo orto

gonal ao eixo do sem-fim, podendo ser chavetada neste eixo

ou montada sobre rolamentos de agulhas para rodar livremen

te em relação ao eixo suporte, dependendo do grau de liber

3

Assim, podemos dividir a arquitetura mecânica do

3 robô, sob o ponto de vista construtivo, em três blocos prin

cipais:

Page 97: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

-3

O

D

3

3

3

3

3

3

.74.

Fig. 2.2 - Sistema de transmissão sem-fim / coroa

para todos os cinco graus de liberda

de.

dade correspondente a ser acionado.

As tabelas 2.1 e 2.2 fornecem as características

Page 98: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3

' 3 . 3 •3

3

3

.75.

construtivas principais do parafuso sem-fim e da coroa res

pectivamente.

A partir das tabelas podemos ver que a redução total

do sistema de transmissão é de 30, sendo esta a única redu

ção pois todos os outros sistemas de transmissão não possuem

redução.

Embora esta transmissão seja padrão para todos os

graus de liberdade, a transmissão do movimento da coroa pa

ra a junta correspondente àquele grau de liberdade é dife

rente para cada um deles sendo que os detalhes serão aprig

sentados nos sub-itens a seguir.

Tabela 2.1 - Características construtivas do para

fuso sem-fim.

.3

"3

Módulo axial (Mx): 2,01044

Módulo normal (Mn): 2

Diâmetro primitivo (d): f9.65

Número de roscas (Z): 1

Ângulo de pressão normal (an): 20°

Ângulo de hélice ( B ) : 5°50'29"

Sentido da hélice: direito

Passo axial (Px): 6,316

Passo normal (Pn): 6,283

Altura da rosca (h): 4,5

Entre eixo (a): 39,9815

(dimensões em mm)

Page 99: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-3

.76.

Tabela 2.2 - Características construtivas da co

roa.

Módulo (M): 2,01044

Módulo normal (Mn): 2

Diâmetro primitivo (d): 60,313

Número de dentes (Z): 30

Ângulo de pressão normal (an): 20°

Ângulo de hélice (3): 5°50'29"

Sentido da hélice: direito

'Z Passo aparente (Pt): 6,316

Passo normal (Pn) : 6,283

Altura do dente (h): 4,5

Entre eixo (a): 39,9815

(dim.ensões em mm.)

2.2.1 - ACIOOAÜEAEIRNTO do giro do robô

O primeiro grau de liberdade é o responsável pelo

giro de todo o braço do robô. Este movimento é conseguido

através da caixa de engrenagens da base fixa do robô.

Uma vista em corte da montagem desta caixa é mos

trada esquematicamente na figura 2.3.

O movimento do motor é transmitido para a coroa

através do sistema sem-fim/coroa padrão mostrado anterior

mente. A cor-oa é fixada ao eixo vertical vasado, sendo este

eixo montado na caixa sobre dois rolamentos de esfera, tra

vados por anéis de pressão.

Page 100: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.77,

0 0

MOTOR A

Fig. 2.3 - Detalhes de montagem do sistema de acio namento do giro do robô.

Page 101: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.78.

-3? 3 A caixa móvel de engrenagens é fixada à parte

3 superior deste eixo sendo que todos os cabos de ligações

para ela passam através do furo interno deste eixo.

3 3

-3

A coroa é fixada ao eixo por meio de um sistema

de travamento que possibilita o deslocamento axial da mesma

de forma a eliminar completamente a folga entre o sem-fim e

a coroa e a permitir uma compensação do desgaste por atri^

to.

A montagem do eixo da caixa móvel sobre relamen

tos permite um giro sem folgas e com baixo coeficiente de

atrito.

2.2.2 - AcionaEsento do braço

O segundo grau de liberdade do robô consiste na

elevação e abaixamento do braço. O acionam.ento deste grau

de liberdade é feito a partir da caixa de engrenagens mó

vel, assim como todos os outros graus de liberdade restan

tes. *

Um desenho esquemático de montagem desta caixa

de engrenagens é apresentado na figura 2.4 a seguir.

O sistema de transmissão sem-fim/coroa (SCB), cor

respondente ao acionamento do braço, é montado na caixa de

engrenagens móvel. A coroa é montada sobre rolamentos de

agulhas em um eixo (El) ortogonal ao eixo do sem-fim, sendo

posicionada e travada axialmente por intermédio de espaça

dores montados sobre este mesmo eixo.

O braço do robô é montado sobre dois suportes sen

do que um, (S2) gira livremente sobre rolamentos de agulhas

co::::::zy.Q NAC.C::,'l. D E E r j c R G i A n u c l e a r / s p

i. P. E. N.

Page 102: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.79.

Z^ sobre o eixo E2 e o outro (SI) é travado por meio de uma

chaveta no pescoço da coroa do sistema de transmissão sem-

^ fim/coroa (SCB).

^ o posicionamento e o travamento da coroa corres

^ pendente ao grau de liberdade do braço permitem ajustar-se

"" a folga de transmissão de modo a compensar o desgaste dos

•.•O dentes e obter-se uma transmissão bastante precisa.

A estrutura do braço é feita com dois perfis de

^ duro alumínio nas laterais e duas tampas, superior e infe . . . ^ — ^ rior, também de duro alumínio, formando uma caixa de secção

^ quadrada leve e rígida. Espaçadores de alumínio são utiliza

dos de modo a aumentar ainda mais esta rigidez. O

Z Por ser o braço do robô um sistema bastante des

^ balanceado, um contra-peso de m.ola foi colocado preso à tam

-V pa superior do braço de forma que, sem carga, o sistema fi

^ que em equilíbrio, aumentando a velocidade de operação do

z" mesmo e sua capacidade de carga.

2.2.3 - Acioiiaiaento tJo aute—braço

O ante-braço do robô é montado fixado a um eixo

que gira sobre mancais de bronze na extremidade superior do

braço. O grau de liberdade do ante braço consiste na eleva

ção e abaixamento deste em relação ao braço.

A figura 2.5 mostra a montagem das engrenagens no

eixo E3 do cotovelo do braço.

O motor que aciona o ante-braço é fixado à base

móvel (figura 2.4) e seu movimento é transmitido para a co

roa através da transmissão sem-fim/coroa SCC montada no

Page 103: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.80.

•O

"Z

3

•O

1^

l¡)( )( )( )( )( \\'^

]}{ )< )< )( X N \ V

Fig. 2.4 - Diagrama esquemático de montagem da

caixa de engrenagens móvel do robô.

Page 104: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

' 3 3 3

.81

3

3 3 3

3

-3 3 3

E I X O E3

\ -1

Fig. 2.5.-- Diagrama de montagem das engrenagens no cotovelo do braço.

eixo E2. A coroa é fixada ao eixo por meio de chaveta e seu posicionamento axial é feito através de espaçadores de modo que as folgas sejam eliminadas.

Page 105: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.82.

V

Esta corrente, por ter o seu curso limitado, é

tensionada por um distorcedor de forma a obter-se uma tran£

missão sem folgas e com pouca perda de potência do motor.

As engrenagens de corrente são de nylon e possuem

um sistema de aperto que elimina a folga nas chavetas per

mitindo uma montagem fácil.

O acionamento do ante-braço é pantográfico em, r£

lação ao braço, ou seja, ao movimentar-se o braço do robô, a

orientação do ante-braço em relação à base do robô não se

altera, mudando apenas a sua localização.

O ante-braço é também construído com perfis de

duro alumínio nas laterais tendo tampas do mesmo mgiterial

em cima e embaixo. Espaçadores são fixados entre as lat£

rais de maneira que sua rigidez seja aumentada.

2.2.4 - Acionamento do pimlno

São dois os graus de liberdade do punho do robô.

Um corresponde ao abaixamento e levantamento da mão-ferra

menta no plano do braço e ante-braço e o outro corresponde

ao giro da mão-f erramenta ao redor de seu eixo principal.

Estes dois movimentos são obtidos por intermédio

de um, sistema diferencial de engrenagens cónicas montadas

O

o o movimento da coroa é transmitido para uma en

, grenagem de corrente fixada por chaveta na extremidade do

, -- eixo E2. A corrente passa pelo interior do braço e engata

^ em outra engrenagem de corrente fixada por chaveta ao eixo

E3 do cotovelo, sendo que o ante-braço é fixado por parafu i

SOS na flange deste eixo.

Page 106: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

' . 3

.-3

-3

O

3

•3 3

.83.

em uma cruzeta fixada sobre mancáis de bronze na extremida

de do ante-braço do robô, como mostra a figura 2.6.

Quando as duas engrenagens cónicas laterais giram

no mesmo sentido e com a mesma velocidade, temos o abaixa

mento e elevação da mão-ferramenta. Quando elas giram com a

mesma velocidade mas em sentidos opostos, temos apenas o gi

ro desta mão-ferramenta. Ao girarem com velocidades diferen

tes teremos uma combinação de rotação e abaixamento ou el£

vação da mão-ferramenta do robô, sendo esta fixada por meio

de rosca ao pescoço da engrenagem cónica central do diferen

ciai.

3

3

-3 -. ^

•3 ;:3 - 3

Fig. 2.6 - Diagrama esquemático de montagem

punho.

do

Page 107: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

sa .84.

:3 A transmissão do outro sistema SCE para a outra

engrenagem cónica é semelhante ao anterior com a única dif£

rença de que a engrenagem de corrente na caixa móvel de en

3 grenagens é fixada diretamente ao pescoço da coroa^

Como o giro do punho não é limitado mecanicamen

te, isto é, várias voltas podem ser programadas, as corren

tes e as correias dentadas não são emendadas. Este fato

obrigou a necessidade de esticadores. Os esticadores das

correntes são rodas montadas na tampa inferior do braço e

reguláveis de forma a dar a tensão adequada às correntes.

Os esticadores das correias dentadas são montados nos espa

çadores do ante-braço. Desta forma consegue-se uma transmis

são sem folgas da caixa móvel para o punho do robô.

O eixo central da cruzeta é vazado de modo a per

mitir que cabos e fios passem dentro dele para a mão-ferra

Os movimentos do punho são originados de dois mo

tores de passo fixados na lateral da caixa móvel de engrena

gens. Estes motores transmitem o movimento para dois sist£

mas sem-fim/coroa, SCD com a coroa chavetada ao eixo El

^ e SCE com a coroa apoiada sobre rolamentos de agulhas ao

eixo E2, como mostra a figura 2.4. — \

A coroa do sistema SCD transmite movimento para

O o eixo El que tem na sua extremidade uma engrenagem de cor

Q rente tajnbém chavetada, que transmite, pela corrente, para

^ uma engrenagem dupla apoiada no eixo do cotovelo. Esta en

^ grenagem dupla tem de um lado dentes para corrente e do

outro dentes para correia dentada. Esta correia dentada, pas N ~

sando pela lateral do ante-braço na sua parte interna, tran£

—' mite o movimento para outra engrenagem de correia dentada

O fixada ao pescoço da engrenagem cónica correspondente, do

^ sistema diferencial do punho.

Page 108: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.85,

menta.

O pescoço da engrenagem central do diferencial é

rosqueado de forma a poder-se montar a mao-ferramenta nela.

O movimento do punho também é pantográfico tanto

em relação ao movimento do braço como em relação ao movimen

to do ante-braço do robô, assim, a sua orientação relativa

à base do mesmo só pode ser alterada acionando-se os moto

res associados ao punho.

A tabela 2.3 abaixo mostra as características das

engrenagens cónicas do sistema diferencial do punho do ro

bô.

Tabela 2.3 - Características das engrenagens côni

cas do diferencial do punho do robô.

Módulo (M): 2,0

Número de dentes (Z): 4 21

'3 Passo (P): 6,28

Altura dos dentes (h): 4,5

Angulo externo (al): 48°51•

Angulo de fundo (ai): 40°11'12"

Angulo de pressão (a): 20°

- Semi-ângulo do cone

primitivo (y): 45°

(dimensões em mm)

Page 109: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.86.

:3

~3 .O

.3)

:3

:0 O

O

^3 3

2.3 - CARACTERÍSTICAS BO ROBO DESEIWOIL¥IBO

Como visto no item anterior, este robô possui uma

arquitetura articulada, com cinco graus de liberdade rotat_i

vos, como mostrado na figura 2.7.

3

Fig. 2.7 - Graus de liberdade do robô desenvolvi^

do e volume de trabalho.

a : Giro do braço em relação a um eixo perpendicu

lar a base.

e : Abaixamento e elevação do braço.

Page 110: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.87.

Y : Abaixamento e elevação do ante-braço.

p : Abaixcimento e elevação do punho no plano • do

braço e ante-braço.

r : Rotação do punho.

Apresentaremos a seguir as principais caracterí^

ticas da arquitetura mecânica construída.

2.3.1 - Yolioaiae de traballio

Todos os graus de liberdade do robô, exceto o de

' rotação do punho, têm limites mecânicos bem definidos.

Estes limites mecânicos configuram o volume de

trabalho do robô, isto é, todos os pontos possíveis de se

rem. atingidos pela mão-ferramenta do robô. O volume de tra

balho para este robô esta mostrado na figura 2.7, correspon

' dendo ao volume varrido pela área hachurada quando esta so

^ fre uma rotação de 180 graus ao longo do grau de* liberda

3 de a.

É importante frizar que na determinação deste vo

lume de trabalho não foi considerada nenhuma mão-ferramenta

fixada ao robô, ou seja, este volume sofrerá algumas modif_i

cações quando ao punho do robô for fixada uma mão-ferramen

ta.

2.3.2 - Precisão do robô

A precisão do robô pode ser definida como o inter

valo entre dois pontos adjacentes do volume de trabalho que

Page 111: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.88.

-.3 3 '3 -3 Tanto os motores de passo como o sistema de reali^

mentação empregados na construção do robô distinguem 400

- pontos por cada revolução do motor.

^ A redução do sem-fim/coroa é de 30, o que implica

"" na divisão da circunferencia por 12.000 pontos.

3 Assim temos:

•3 Q - Grau de liberdade a (giro do robô).

rmax = comp. braço + com.p. ante-braço + comp. punho =

= 344 + 297 + 36 = 677 mm

. ~ 2 . ir. rmáx , , p = precisão = donde

ndiv

2 TT 677 pa = — — - = 0,35 mm para o pior caso,

12000

Para a média teremos:

2. TT.677/2 -pa = -— = 0,18 mm

12000

-O í3 podem ser distinguidos pelo sistema de controle do robô.

^ Esta precisão depende do acionamento e realimen

tação, das reduções na arquitetura mecânica e do máximo

raio associado ao movimento. Assim, podemos calcular a' pr£

cisão de acionamento para cada grau de liberdade do robô.

Page 112: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3

:3

- Grau de liberdade B (braço do robô),

rmáx = comp. braço = 344 mm

'3 p0 = 2,JL.344 ^ p^^3

-3

:3

:3

:3

-3

.89.

12000

- Grau de liberdade Y (ante-braço do robô)

rmáx = comp. ante-braço = 297 mm

3 PY = ^-"^ •^^'^ = 0,16 mm 12000

- Grau de liberdade p (punho do robô)

rmáx = 36 mm

pp =: '" = 0,02 mm 12000

Assim, o pior caso é quando o robô estiver com o

braço todo esticado tendo uma precisão de 0,35 mm. Como e£

ta é uma situação extrema, podemos admitir que a precisão

média do robô é de 0,2 mm.

2.3.3 - Capacidade de carga

A capacidade de carga está relacionada ao torque

máximo que o motor consegue executar, à redução do sistema

de acionamento e seu rendimiento, bem como ao tamanho da

Page 113: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3

.90.

alavanca onde a força é exercida.

Uma curva característica do torque versus veloci

dade do motor de passo utilizado funcionando em meio passo

(400 pulsos/volta) pode ser vista na figura 2.8 [53].

£ ü O.

I N O

UJ

O

CC

TORQUE V S V E L O C I D A D E 150

(10.8)

30 (2 .-16)

O 500 1000 1500 2000 2500 3OO0 3500 4000 4500 5000

V E L O C I D A D E ( P U L S O S / S)

Fig. 2.8 - Curva de torque x velocidade do motor,

Para uma freqüência máxima projetada de 3000 pul^

sos/seg vemos que o torque desenvolvido pelo motor é de

4/32 Kgf.cm.

Desta forma, o torque máximo do motor de passo utj^

lizado é de 4,32 Kgf.cm, para a velocidade máxima desejada,

a redução do sistema sem-fim/coroa é de 30 e podemos cons¿

derar um rendimento de 80%. Logo temos que a carga máxima

para cada grau de liberdade será aproximadamente:

C = T.RE.RD

B

P

2 onde

C : carga máxima

T : torque desenvolvido pelo motor

RE : redução

RD : rendimento do sistema

33

zQ

Page 114: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.3

3

^ B : braço de alavanca

3 P : peso do braço

:3

3

3

^ - Grau de liberdade B (braço do robô).

.91.

Assim, substituindo os valores para cada grau de

liberdade temos:

Para este grau de liberdade existe uma mola para

contra-peso resultando em um peso total do braço visto pelo

motor de 1 Kg.

3 C = ^'3^-30.0,8 _ 1 ^ ^^Q3

67,7 2

- Grau de liberdade y (ante-braço do robô)

C = ^'^^-^P-P'^ - 2 . 2,49 Kg ^ ' 29,7 2

3 - ^ - Grau de liberdade p (punho do robô) .

C ^ 4,32.30.0,8 _ 0 ^ ^ 28,55 Kg

3,6 2

Para os graus de liberdade a e r, a carga é ap£

nas de inércia sendo bem maior do que 1 Kg especificada pa

ra o robô.

Concluímos então que a carga máxima suportada pe

Page 115: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.92.

lo robô mantendo as suas características é de 1 Kg. É claro

que reduzindo-se a velocidade de operação a máxima carga

transportável aumenta, como será mostrado no próximo sub-

item.

2.3.4 - Velocidade de operação

A velocidade de operação do robô pode ser defini^

da como a máxima velocidade que ele consegue se deslocar

mantendo as suas especificações.

Para o item anterior, a carga máxima do robô foi

calculada para uma velocidade de 3000 pulso/seg o que cor

responde, com o sistema de redução utilizado, a uma veloci^

dade angular de 90 graus/seg, sendo esta a sua velocidade

de operação.

Ao se diminuir a velocidade de trabalho do robô,

há um aumento da carga máxima transportável por ele. Podje

mos ver na tabela 2.4 abaixo, a relação entre a velocidade

de operação e a carga transportável, sempre para o aior ca

so.

Ê importante frizar que as velocidade mais altas

de trabalho só podem ser conseguidas com um procedimento de

aceleração e desaceleração tanto por limitações do motor

como da própria estrutura mecânica do robô. A maneira como

esta aceleração e desaceleração são obtidas será apresenta

da no capítulo III.

Page 116: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3 .93.

Tabela 2.4 - Relação entre velocidade de trabalho

w e carga transportável.

Velocidade Carga Kg •D graus/seg Carga Kg

— 15 2,56

30 2,18

45 1,80

60 1,52

75 1,27

90 1,03

2.3.5 - Oetras características

Podemos citar como outras características do' robô

desenvolvido as seguintes:

- Peso total : o peso total do robô é de 20 Kg.

*

- Tipo de montagem : a montagem do robô foi proje

tada para um funcionamento unicamente horizon

tal.

- Fixação : para que os motores de passo funcionem

corretamente, a base do robô deve ser fixada

rigidamente. Para tanto existe uma placa presa

à base fixa do mesmo e esta deve ser fixada

por quatro parafusos a uma mesa sólida.

Page 117: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

fe

fe .94.

2.4 - SISTEMA BE REALIMEITÍTAÇAO BE POSIÇJSO E BETEÇAO BE FIM

DE CURSO

O sistema de realimentaçao de posição é responsa

vel pelo correto posicionamento do robô conforme comandado.

Embora os motores de passo sejam, por si só, àis

positivos que possibilitam o controle do posicionamento em

malha aberta, para o caso de aplicação em acionamento de

robôs industriais, concluímos que o seu funcionamento só é

satisfatório em malha fechada de posição, devido principa]^

mente às características dinâmicas particulares de uma es

trutura articulada com cinco ou mais graus de liberdade

que não permitem determinar-se precisamente o máximo torque

gerado para cada jnotor, ocasionando, inevitavelmente, per

das de pulsos nos motores de passo.

Assim, embora o robô tenha sido inicialmente pro

jetado para funcionar em malha aberta, foi necessário desen

volver um sistema de realimentaçao de posição para se atin

g i ^ a precisão e repetibilidade necessárias.

*

Com o intuito de garantir que um erro de programa

ção, ou mesmo uma distração do operador, não ocasionassem

prejuízos mecânicos à estrutura do robô ao serem atingidos

os seus limites, um conjunto de chaves de fim de curso foi

colocado para cada grau de liberdade de forma a que estas

interrompessem o acionamento de todos os motores ao ser

qualquer uma delas, atingida, preservando assim o robô. Além

desta função de segurança, estas chaves servem para se de

terminar a posição de referência ao se energizar o sistema

de controle do robô.

Neste item descreveremos tanto o sistema de reali

mentação do robô como o seu sistema de deteção de fim de

Page 118: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.95,

curso, sob o ponto de vista dos detalhes mecânicos de con£

trução.

2.4.1 - Mecânica do sistesaa de realinDentação

Para o sistema de realimentaçao do robô foi proje

tado um codificador angular incremental com sensores ópti^

eos (diodo emissor de infra-vermelho e foto transistor) men

tados em um disco ranhurado fixado ao eixo do motor, para

cada um dos graus de liberdade [31].

Para se conseguir a mesma resolução dos motores de

passo utilizados é necessário que os codificadores apresen

tem 400 pulsos por volta. Um disco com 100 divisões como o

mostrado na figura 2.9, com dois sensores foi utilizado.

QA

QB

SENSOR A SENSOR B

DISCO COM

Fig. 2.9 - Sinais gerados e montagem dos sensores

no disco do codificador angular incr£

mental.

Page 119: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.96.

Os sensores fornecem uma onda quadrada e são defa

sados de 1/4 do período, um do outro, gerando ondas quadra

das como as mostradas também na figura 2.9 [57].

O circuito eletrônico associado ao codificador g£

ra um sinal de direção e de pulso a cada transição de cada

uma destas ondas quadradas. Com o disco possuindo 100 divi_

soes e cada período tendo quatro transições, teremos a reso

lução desejada de 4 0 0 pulsos/volta.

Um dispositivo de ajuste permite calibrar a dis

tância entre os sensores de modo a obter-se uma defasagem

exata, pois todo o princípio de funcionamento depende desta

relação entre as ondas geradas por cada sensor. Os detalhes

do princípio de funcionamento deste sensor e do circuito

utilizado para a contagem dos pulsos serão mostrados no pro

ximo capítulo.

O disco ranhurado é fixado ao eixo de cada motor

e os sensores são montados em um anel espaçador.como deta

lhado na figura 2.10, que apresenta o sistema completo com.

acionamento e realimentaçao para cada. grau de liberjdade do''

robô.

Tanto a caixa de engrenagens como o anel espaça

dor possuem rebaixamentos que permitem um perfeito alinha

mento entre o sem-fim e o eixo do motor, acoplamento este

feito por uma chaveta redonda.

O disco é fixado ao eixo do motor com um sistema

de bucha que não permite qualquer tipo de deslocamento en

tre ele e o eixo.

Os sensores são fixados no anel e uma vez calibra

dos, podem ser retirados e todo o conjunto desmontado sem

Page 120: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Oq

O I

1—T

O (D o

0. M O H-

cr-

C C

c ^ ^

o • o

o Ul

o. m (? rl-

(D o 3 P

D. a CD p

!13 o C UJ.

O D. 0) 1

1_J CP 1 -'.

ri-Ò O d

IP CD

Page 121: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

3

3

3

3

3

"3

.98.

3 se alterar a calibração.

3 o sistema de fixação dos codificadores incremen

tais são idênticos para todos os graus de liberdade do ro

bô.

' Desta forma, os sinais originados nos sensores

) ópticos permitem ao sistema de controle do robô determinar

2) precisamente a posição de cada grau de liberdade independen

Q temente se houve perda de pulso no motor de acionamento

^ e mesmo se aquele motor esta conseguindo acionar aquela jun

ta. 3

3 3 2.4.2- Sinais gerados para o sistema de controle

Os sinais gerados na arquitetura mecânica do robô

que são entradas para o seu sistema de controle são de dois

tipos:

- Sinais vindos dos codificadores angulares in

crementais do sistema de realimentaçãoído robô.

- Sinais vindos de um conjunto de chaves limites

associadas a cada fim de curso de. cada um dos

graus de liberdade do robô.

Os sinais do primeiro tipo já foram explicados no

sub-item anterior..

Como dito anteriormente, são duas as funções dos

sinais vindos das chaves de fim de curso:

1 - Proteger a estrutura do robô interrompendo o

acionamento dos motores ao ser atingida alguma

chave.

-

i. P . F. N.

Page 122: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

~3

:3

:3

.99.

2 - Fornecer uma referência para o sistema de con

trole determinar a posição inicial do robô ao

ser energizado.

Um total de nove chaves são montadas na arquitetu

ra mecânica do robô, reguladas de modo a dar a excursão

mostrada na figura 2.7 para cada grau de liberdade.

Elas são em número de dois para todos os graus de

liberdade exceto o giro do punho, pois este, por não po£

suir limites mecânicos tem apenas uma chave para marcar a

posição de referência.

O posicionamento das chaves é mostrado na

ra 2.11 a seguir.

figu

CPA

3

C L R

CPB

Fig. 2.11 - Posição das chaves limites para cada

grau de liberdade.

Page 123: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.-3

.O

::3

.100.

Estas chaves são normalmente abertas e quando

atingidas levam uma entrada do sistema de controle para o

nível lógico O e este então processa a informação, ou para

interromper o acionamento dos motores, ou para avisar que

um determinado grau de liberdade atingiu sua posição de r£

^ ferência.

A eletrônica e o processamento destes sinais oriun

dos da arquitetura mecânica do robô serão detalhados no ca

pítulo III.

^ 2.5 - G M Í H A MECÂJraCA D O R O B O IMíBSTRIAI.

Como foi dito anteriormente, a arquitetura mecâni^

ca do robô é utilizada para posicionar uma determinada mão-

ferramenta que executará realmente o trabalho útil do robô.

Esta mão-ferramenta, como o nome sugere, pode ser

do tipo garra ou do tipo ferramenta, dependendo da aplica

ção a que o robô se destina.

Para o robô em questão, a engrenagem cónica cen

trai possui uma rosca que permite a adaptação de uma garra

ou de uma ferramenta ao seu punho.

Neste item apresentaremos uma garra mecânica de

senvolvida para o robô, sua construção mecânica, seu sist£

ma de realimentaçao e suas características principais.

2.5.1 - Construção imecânica da garra

A garra mecânica projetada e construída para o

robô industrial do laboratório possui dois dedos, sendo o

Page 124: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

' .101.

¡3 seu desenho esquemático de montagem mostrado na figura

2.12.

A montagem dos dedos na garra é feita através de

barras paralelas que possibilitam um funcionamento pantográ

fico dos mesmos, ou seja, os dedos ficam sempre paralelos

3 ao abrir ou fechar a garra.

O 3 Estes dedos podem ser destacados de modo a que

outros, com formas específicas para outras aplicações, pos_

^ sam ser adaptados na garra. Com dedos retos, a máxima aber

tura é de 5 cm.

3 -3 Toda a garra é construída em duro alumínio sendo

: 3 que apenas as barras paralelas são de nylon.

:';3 r 3

3

o fechamento da garra é realizado através de um

cabo de aço e o seu retorno à posição aberta é feito pox'-

molas situadas na garra. Este acionamento por cabo permite

a montagem do motor na parte inferior do robô diminuindo a

influência do peso da mão como carga do robô.

A mecânica do acionamento está mostrada na parte

superior da figura 2.12.

Um motor de passo aciona um sistema de parafuso

e porca com um travamento que impede a mesma de girar mas

permite o seu deslocamento axial em relação ao parafuso. A

capa do cabo de aço é fixada na ponta da montagem e o cabo

é preso à porca através do pino de travamento como mostra

do na figura.

A outra ponta da capa do cabo de aço é fixada à

tampa inferior do ante-braço do robô, e um. distorcedor é co

locado no meio do cabo de forma a permitir que várias rota

Page 125: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 3

. 3

• D

.3

3

3

3

.102.

ções da garra não enrole o cabo de aço.

^3 Todo o conjunto mecânico é fixado na tampa sup£

Z 3 rior do braço do robô, como mostra a fotografia da figu

O ra 2.1.

2.5.2 - Sistema de aciomaimeinito e realiimeinitação da garra

3 o acionamento da garra é realizado por um motor

3 de passo com 400 pulsos por volta como indicado na figu

ra anterior.

Este motor de passo é realimentado em posição com

um codificador angular incrementai utilizando disco ranhura

do montado no eixo do motor e sensores ópticos, da mesma ma

neira explicada para os outros graus de liberdade do robô.

Uma chave limite atuada pelo pino de travamento

da porca do sistema de acionamento permite iniciar a posi_

ção da garra toda aberta, como sua posição de referência. *

0 sistema de realimentaçao possui duas funções bá

sicas:

1 - Garantir a posição real dos dedos da garra in

dependentemente de erros de acionamento no mo

tor de passo;

2 - Verificar, por processamento no programa, que

a garra, mesmo acionada não fecha mais, indi_

cando que o objeto já foi pego com a máxima

força e então, permitir a determinação do ta

manho do objeto pego.

Page 126: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

73 .103.

:3 :0 3

..3

Assim, um objeto de dimensões desconhecidas pode

ser pego por esta garra, desde que ele seja rígido e tenha

uma dimensão na pegada menor do que a máxima abertura da

garra

-3

:3>

3

3

3

SENSORES

DISCO

3 Fig. 2.12 - Montagem esquemática da garra mecâni^

ca desenvolvida para o robô.

Todo o processamento dos sinais vindos da garra

é feito de maneira idêntica aos sinais vindos dos outros

graus de liberdade do robô, sendo que os seus detalhes s£

rão apresentados no capítulo seguinte.

Page 127: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

..13

m

-O

. 1 0 4 .

2 . 6 - A P L I C A B I L I D A O E D O R O B O I I S D Í I S T R U S lL D E S E I J ¥ 0 L V I D 0

Às características principais do robô industrial

desenvolvido, vistas neste capítulo, estão resumidas ria ta

bela 2 . 5 abaixo:

Tabela 2 . 5 - Características principais do robô

industrial desenvolvido

3>

Tipo de arquitetura: Braço articulado

Número de graus de liberdade: 5

O Excursão dos graus de liberda

de a: (_90O-*+90o) 0 B: (00-90°)

y : (e-1200-e) p: (y"90°-y + 90° )

Dimensões: h: 235 mm

b: 344 mm

.A c: 2j97 mm

p: 36 mm

Tipo de acionamento: motores de passo

com realimentaçao

de posição

Carga máxima: 1 Kg

Velocidade de operação: 90°/seg

- Peso do robô: 20 Kg

Precisão de posicionamento: 0 , 2 mm

- Mão-ferramentas disponíveis: garra mecânica ser

vocontrolada

Page 128: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

li? 3

.105.

Um robô industrial com as características mostra

"' das acima possui diversas aplicações na indústria, escolas,

universidades e outros ambientes. Entre elas podemos citar:

- Desenvolvimento de técnicas e ensino em robóti_

ca

Esta foi a aplicação primordial para a qual ele

foi projetado. A sua arquitetura simples perm^

te a troca, de motores de passo por motores de

corrente contínua com dimensões compatíveis mu

dando completamente o tipo de acionamento do

robô. O estudo de sistemas de transmissão com

~/ correntes, correias dentadas e sem-fim/coroa po

3 de ser realizado nesta arquitetura. Novos sist£

mas sensores podem ser desenvolvidos, novas gar

ras e uma vasta gama de programas aplicados à

^ robótica podem ser realizados com este protóti^

po.

- Manipulação de peças e partes na indústria

^Z ' Este robô com a sua capacidade de cargaa^ sua

• j precisão de posicionamento e sua velocidade de

operação pode ser empregado na indústria, como

parte integrante do processo de fabricação na

manipulação de peças e partes seja para carga

e descarga de máquinas operatrizes, seja para

aplicações de armazenamento e empilhamneto de

peças ou de distribuição das mesmas para outros

processos.

• 5 ^

3

•V

- Sistemas de inspeção de peças

Munido de um sistema de visão computadorizado,

este robô pode ser empregado na automação de

sistemas de inspeção de peças, onde a sua fun

Page 129: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

;3

O

3

3

•o

.3

r3)

.106.

Q Com um equipamento de soldagem a arco de pequ£

no porte, este robô pode ser utilizado em aplj^

cações de automação do processo de soldagem de

peças.

Montagem mecânica

Esta também é uma aplicação possível para este

robô desde que não seja necessária uma grande

força para inserir as peças nem que estas p£

ças sejam muito pesadas.

Ensaios de fadiga em equipamentos

3 Este robô pode ser programado para ficar op£

rando equipamentos com botões e o seu computa

dor de controle receber informações do funciona

mento dos botões de forma a que testei de fadi^

ga em condições reais de operação possam ser

automatizados.

- Auxílio a pessoas com alto grau de deficiência

^ física

Munido de sensores especiais e de uma programa

ção especial, este robô pode ser colocado jun

to a uma pessoa com grande deficiência física

(quadraplégicos) de forma a aumentar a sua capa

cidade de manipulação tais como se servir de

Z alimentos, telefone, virar páginas de livros,

3 colocar fitas e discos etc. [6] [36].

ção seria o correto posicionamento de peças na

estação de medição e a sua retirada e destina

ção uma vez terminado o teste.

- Sistemas de solda a arco de pequeno porte

Page 130: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ .107.

O robô, como o computador, sendo um equipamento

flexível e programável, tem suas aplicações limitadas ap£

^ nas pela criatividade das pessoas que com ele operam. As

e¡3 aplicações descritas acima são apenas algumas sugeridas, mas

zf^ de forma alguma, esgotcim toda a gama possível de utilização

—^ de robôs deste tipo.

2.7 - COMCJLUSM

Neste capítulo apresentamos a parte referente à

construção e características da arquitetura mecânica do ro

bô no que diz respeito ao seu acionamento, suas especifica

ções e seu sistema de realimentaçao de posição. ;0

3

Apresentamos também os detalhes de construção da

garra mecânica utilizada no robô e demos uma idéia de algu

3 mas aplicações possíveis para o equipamiento desenvolvido.

O Entretanto, só poderemos entender completamente

como os sinais gerados pelos dispositivos apresentados nes

te capítulo asseguram um funcionamento correto do^robô, ao

entrarmos nos detalhes do seu processamento pelos circuitos

utilizados no seu sistema de controle.

O

-^j A utilização de motores de passo para o aciona

mento do robô tornou, por um lado, mais fácil o seu contro

le de posicionamento e velocidade, mas não dispensou, por

outro lado, a utilização de um. sistema de realimentaçao

de posição, e, por ser este motor um injetor de vibrações

^ mecânicas em várias freqüências, ressonâncias na estrutu

O ra mecânica ocorrem, perturbando a suavidade do movimento,

"3 e ocasionando também perdas de pulsos, detetadas e corrigi

^ das pelo sistema de realimentaçao [22].

•o

"3

-o

Page 131: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

D

•3

.108.

A parte crítica na estrutura mecânica do robô que

afeta o seu correto posicionamento são as folgas e a não

rigidez de"seus componentes. Estas folgas foram levadas a

um mínimo possível sem prejudicar o seu funcionamento - e a

influência da não rigidez é diminuída com procedimentos de

aceleração e desaceleração nos movimentos.

Embora este robô tenha sido projetado e construí,

do para ser um equipamento dedicado ao laboratório, objeti^

vo deste trabalho, as suas características permitem uma vas

ta gama de aplicações industriais.

Page 132: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-3 •D

3 ) 3

3

:0

3

CAPITUM) III - SISTEMA DE C01P3TR0LE PROPOSTO PARA

O LABORATORIO

3 '' "... A maquinaria, como instrumen

O tal que é, encurta o tempo de tra

\ ' balho, facilita o trabalho, é uma

vitória do homem sobre as forças

naturais, aumenta a riqueza dos

que realmente produzem, mas, com

sua aplicação capitalista, gera re_

3 sultados opostos: prolonga o tempo

3 de trabalho, aumenta sua intensida

de, escraviza o homem por meio das

forças naturais, pauperiza os ver

_ dadeiros produtores ..."

(Karl Marx)

Page 133: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:.0 .110.

3.1 - IMTItODUÇAO

Como dito anteriormente, temos por objetivo neste

'" trabalho apresentar a concepção e implementação do LÍDER -

D Laboratório Integrado para Desenvolvimento e Ensino da Robó

tica, realizado no Laboratório de Sistemas Digitais da Esco

Ia Politécnica da USP.

Neste capítulo nos deteremos na estrutura e nos

"' circuitos do sistema de controle proposto para este labora

tório. A arquitetura de controle proposta é hierárquica, ten

...O do no nível mais alto, nível 2, um microcomputador PDPll/34

do LSD com a função de aumentar a capacidade de processamen

• Q to do laboratório proposto no que diz respeito à simulação

^ gráfica, linguagens complexas de programação de robôs, ban

C O S de dados, processamento sofisticado de imagens, etc.

3 No nível mais baixo a seguir, nível 1, temos um

O sistema para desenvolvimento de programas para robôs basea

3 do em um microcomputador com memória de massa e com sistem.a

.í»> operacional compatível com o CP/M, tendo a função principal

de ser ferramenta para desenvolvimento de programas e cir

cuitos voltados para aplicações em robôs industriais. Este

nível será capaz de se comunicar com processadores do ní_

3 vel mais inferior, nível O, que tem como função principal o

controle dedicado de movimentação do robô e de suas interfaces

de comunicação com o ambiente externo.

A primeira parte do capítulo é dedicada à apresen

tação detalhada do sistema hierárquico proposto e às fun

ções de cada nível de controle.

3 A seguir descreveremos com detalhes a implementa

3 ção de cada um destes níveis sob o ponto de vista de arqui_

tetura e interfaces implementadas bem como de funcionamento

Page 134: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.111

dos circuitos que executam estas funções.

Um sistema hierárquico distribuído de controle

consiste num conjunto de micro/minicomputadores dispostos

em uma estrutura de árvore onde, aos processadores de nível

mais baixo são associadas funções dedicadas e específicas e

aos de mais alto nível funções de propósitos mais geral tais

como controlar e coordenar o sistema como um todo [62].

3 3

Num sistema hierárquico os processadores na base

da pirâmide são usualmente baseados em miicr^oprocessadores

com um número reduzido de periféricos enquanto o processa

dor do topo consiste em um minicomputador ou mesmo um compu

tador de grande porte com grande capacidade de processamen

to e arm.azenamento de informação.

A figura 3.1 apresenta um sistema hierárquico de

controle típico, possuindo três níveis.

O nível O de controle pode ser um microcomputador

^ dedicado a funções básicas tais como ler informação de sen

"2 sores, atuar motores e interfaces, executando um determina

-j do programa de controle.

O nível 1 pode ter funções diversas como transmj^

" tir para o nível O.programas e comandos de controle e rece

^ ber dados para armazenamento em dispositivos de memória,

além de executar funções de análise em tempo real e desen

3 volvimento de programas.

^ No nível mais alto, nível 2, estão as funções de

coordenação de todo o processo, bancos de dados mais so

3 3.2 - SISTEMA HIERÁRQUICO PROPOSTO

3

Page 135: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.112.

fisticados e armazenamento de todos os dados e

funcionais do piocesso controlado.

paramètres

3

3

Normalmente a comunicação entre estes níveis é

feita utilizando-se linhas dedicadas entre cada processador

e seus inferiores e superior na hierarquia.

A grande vantagem deste sistema de controle é a

divisão do processo como um todo em partes dedicadas, meno

res e mais simples podendo ser feito um procedimento "top-

down" ou "bottom-up" de desenvolvimento tanto dos circui^

tos como dos programas para cada um destes níveis, facili^

tando e n o r m e m i O n t e a implementação e manutenção futura dos

dispositivos que controlam o processo.

f

N l V E L NlVEL NlVEL N l V E L N lVEL N l V E L £5 0 0 0 0 0

Fig. 3.1 - Estrutura típica de um sistema de con

trole hierárquico.

Page 136: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3)

3

:0

.113.

As suas desvantagens principais são o "overhead"

de comunicação entre os vários níveis e os seus aspectos de

confiabilidade, isto é, se o processador do topo da pirâmi^

de falha, todo o controle do sistema é comprometido, e se

algum dos elos de comunicação falha, todos os processadores

em níveis mais baixo são desconectados do sistema.

Estas desvantagens não pertubam muito a implemen

tação de um laboratório baseado nesta arquitetura de contro

3 le, embora sejam cruciais para um sistema de controle de

3 processos em tempo real.

^ A figura 3.2 apresenta um diagrama esquemático da

estrutura proposta para o laboratório integrado para desen

volvimento e ensino da robótica.

o o nível O de controle do laboratório corresponde

3 a um processador dedicado ao controle do robô e às interfa

ces de comunicação do robô com equipamentos externos. Este

processador executa programas de controle fixos, residentes

em sua memória, e recebe e transmite informações (dados e

programas de tarefas do robô) para a memória de maGsa do ní_

3 vel 1 através de uma linha de comunicação serial.

—3 O nível 1 de controle é baseado em um microcompu

tador com sistema operacional compatível com o CP/M tendo

como funções principais servir de sistema de desenvolvimen

to para programas do nível O de controle e possibilitar o

interfaceamento de sensores tais como sistemas de visão da

área de trabalho dos robôs a ele conectado. Ele se comunica

com os dois níveis, superior e inferior através de linhas

de comunicação serial.

O nível mais alto de controle está previsto para

ser implementado em um minicomputador PDPll/34, tendo como

Page 137: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

¡3

-3

.114.

13 :3

•3 ^3 .3 .3 -3 .3

3

"3

P D P n / 3 4

N I V E L l

CP/M

NIVEL

0

ROBO 3

NIVEL

0

ROBO 4

Fig. 3.2 - Estrutura hierárquica proposta para o

laboratório.

Page 138: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.115.

funções aumentar a capacidade de processamento do laborató

rio no que diz respeito à implementação de linguagens para

programação.de robôs mais sofisticadas sistema de simula

ção e coordenação de trabalho entre vários robôs e t c . A co

municação com o nivel 1 de controle será feita utilizando

linhas de comunicação serial de alta velocidade.

No atual estágio do trabalho encontra-se implemen

tada apenas a área marcada na figura 3.2, sendo que nos

itens seguintes deste capitulo apresentaremos os detalhes

de funcionamento e implementação dás várias partes componen

tes dos dois niveis implementados e as funções previstas pa

ra o nivel mais alto de controle.

3.3 - DESCRIÇSO DO ]Ml¥E]L O DE COJSTROtE

O nivel O de controle consiste em um microcomputa

dor e interfaces dedicados ao controle do robô associado a

este processador.

Um diagrama de blocos esquemático da organização

deste computador e de suas interfaces principais está mos

trado na figura 3.3.

As funções básicas deste nivel de controle podem

ser vistas a seguir:

- Acionamento dos motores de passo do robô com

velocidade, aceleração e direção programadas.

- Processamento dos sinais vindos dos codificado

res angulares incrementais montados nos motores

do robô.

Page 139: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

,\ O O O o i> 1

I 6 1 1 } \ } , . ) c 1. l i 11 l i w ÛJ> k ü h ^

< a>

Oq

W

W

I

a

P

O O

ET-

O M O CO O

m o w C CD 3 P> r t o O

CL O

C

\ 7

Comunicação Nível 1

CD INT. I N I CR COMUN. SINCRON. M 1-1

J>í PROCESSADOR

A

7S

Linhas ds Sincronisrtx) ^

Caixa (Je Aprendizado

INT ACIONA­SISTEMA

CHAVES ACIONA­

SISTEMA CHAVES MENTO

SISTEMA

REALIM, LIMITES MOTOR

REALIM,

l2. 01

Page 140: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.117.

•D

:0 3

bô.

Interface para os sinais de sincronismo com even

tos externos relacionados ao robô.

3 - Interface de comunicação serial com o nível 1

de controle.

Todo este processamento dos sinais vindos das vá

rias interfaces existentes no nível O de controle é feito

^ por cinco programas principais implementados neste nível a

O saber:

O jfcj - Programa monitor

f 3 Fornece suporte para a programação e testes dos

A ' programas para o microcompuatdor. ^

- Programa de calibração

Movimenta os motores do robô de forma a que, in

dependentemente de sua posição inicial, ele

atinja a sua posição de referência.

- Programa de aprendizado

A partir de sinais e comandos vindos da caixa

de aprendizado, movimenta o robô e guarda na me

mória de tarefa o programa aprendido.

- Programa de execução

A partir do programa aprendido carregado na me

- Processamento dos sinais vindos das chaves limi_

^ tes de cada um dos graus de liberdade do robô.

2 - Interface e processamento dos sinais e comandos

vindos da caixa de aprendizado de tarefas do ro

Page 141: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

mória de tarefa, controla o robô de forma

executar aquele programa.

O

-o 3 3 - Programa de comunicação

O São rotinas básicas que cuidam da tansferência

3 de dados e programas do nível 1 de controle pa

ra o nível O e vice-versa.

O funcionamento de cada um destes programas será

visto com detalhes no capítulo IV deste trabalho. Neste

item nos deteremos na descrição do computador e de cada uma

das interfaces que configuram o nível O de controle do labo

ratório.

3.3.1 - Arquitetura do coiaputador de conti-ole

O computador de controle do nível O é baseado no

microprocessador 18085 da INTEL com relógio de 3,072 MHz

(cristal de 6,144 MHz com divisão por dois interna ao pro

cessador).

Este processador possui instruções de tamanho va

riável de 8, 16 ou 24 bits e palavra de dados de 8 bits sen

do o menor ciclo de instrução (quatro períodos do relógio)

de 1,45 microsegundos. Ele possui seis registradores de pro

pósito geral de 8 bits e um acumulador. Estes seis registra

dores podem ser endereçados individualmente ou em pares

dependendo do tamanho do operando (8 ou 16 bits).

Sua capacidade de endereçamento de memória é de

64 Kbytes e possui ainda cinco entradas de interrupção prio

rizadas (TRAP, RST7.5, RST6.5, RST5.5 e INTR) que geram en

dereços únicos de memória para rotinas de tratamento destas

- • '•• - • • Í - - E R G : A Í J Ü C L E A R / s p !. P . E . Í \ I .

Page 142: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

— . 1 1 9 . « ' - « ^

interrupções. Todas elas, com excessão da TRAP são mascará

veis através de programação.

O processador 18085 é descrito completamente em

[26] de forma que não será dada uma descrição mais detalha

da aqui.

Um diagrama esquemático da arquitetura do computa

dor de controle do nível O pode ser visto na figura 3.4.

Todos os sinais originários do processador são

amplificados por questão de "fan-out" gerando três barramen

tos principais internos (PABI, PDBI e PCBI) e três barramen

tos externos (PMAB, PMDB e PMCB) sendo que uma especifica

ção de cada um destes sinais pode ser vista na tabela 3.1

para os barramentos externos.

A memória do computador do nível O é organizada

em três bancos:

y

,^ . 1 - 1 6 Kbytes de memória EPROM (O - 3FFF em hexa

decimal) montadas na placa do processador. • W

^ 2 - 8 Kbytes de memória EPROM (4000H - 5FFFH) e'

3 8 Kbytes de memória RAM (6000H - 7FFFH).

3 - 1 6 Kbytes de memória RAM (8000H - BFFFH).

Os dois últimos bancos de memória são montados em

placas separadas e conectadas ao barramento externo como

^ mostra a figura 3.4, sendo que mais um banco de 16 Kbytes po

de ainda ser adicionado.

Page 143: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.120.

3

Sinal Descrição funcional Conector

PMAB(0-15) Barramento de endereços do 032,S32 ...

processador ... C39,S39

PMDB(0-7) Barramento de dados do 05,S5 ...

processador ... C8,S8

PMCB :

NMEMR Leitura de memória C9

NMEMW Escrita de memória S9

NMIOR Sinal de leitura de E/S CIO

NMIOW Sinal de escrita de E/S SIO

PMLAL Limpa ao ligar Cll

PIN5.5 Interrupção RST5.5 Sll

PINT6.5 Interrupção RST6.5 S20

PINT7.5 Interrupção RST7.5 017

PMHOLD Pedido de HOLD 016

PMHLDA Atendimento de HOLD C15

PMCOUT Relógio de saída * S15

PAEN Inibe barramento de saída S16

PMSID Entrada serial do 8085 S17

PMSOD Saída serial do 8085 S22

PMSO,PMSl Linhas de status do 8085 021,022

PMIOM Linha de lO/M do 8085 020

PMALE Sinal de validade de endereço S21

PREADY Sinal de READY do processador 028

NMINT7... Pedidos de interrupção que C29,S29 ...

. . .NMINT2 geram INTR ... 031,S31

Tabela 3.1 - Especificação dos sinais dos barra

mentos externos do computador do ní

vel O

Page 144: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.121.

3

"3

OUTRAS INTERFACES

PABI mum

Fig. 3.4 - Diagrama esquemático da arquitetura do computador de controle do nivel O.

-O

.3

Page 145: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

13

:3 "3

-3

'3

.122.

^ As outras interfaces necessárias para implementar

3 as funções do nível O de controle são colocadas no barramen

2i3 to externo do computador sendo que elas serão descritas d£

^ talhadamente nos itens que se seguem.

3.3.2 - Acionaimento dos imotores de passo

Para robôs de pequeno porte e grande precisão, a

utilização de acionamento elétrico vem sendo dominante, como

visto no capítulo I deste trabalho.

As principais razões da utilização de motores de

passo ao invés de motores de corrente contínua na constru

ção de robôs são [41] [47]:

a - O motor de passo é por si só um dispositivo

de movimentos discretos sendo adequado para

comando por microcomputadores.

b - O erro de posicionamento em um motor de passo

corretamente controlado não é acumuíativo, i£

3 to é, pode-se obter um controle de posição e

Ij velocidade acurado com estes motores.

o - Motores de passo produzem alto torque estáti^

co, dispensando a utilização de freios.

d - Para velocidades baixas pode-se movimentar e

parar o motor instantaneamente e mesmo rever

'3 ter a direção do movimento.

e - Uma vez que os motores de passo utilizam pul^

SOS digitais de potência o seu controle dis

pensa a implementação de amplificadores linea

Page 146: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-3

:0 -O

'O

1.0

.123.

res de potência de alto custo de desenvolvi^

mento.

f - Os procedimentos de projeto para um controla

dor com motores de passo são mais simples do

que para um motor de corrente contínua.

g - Não é necessário ter conhecimento preciso tan

to das características do motor como de sua

carga para o correto funcionamento do mesmo ,

desde que suas condições de torque/freqüência

máximas sejam respeitadas.

Todas estas razões nos levaram a utilizar motores

de passo para o acionamento do robô. Para garantir o seu

correto posicionamento, um sistema de realimentaçao foi im

plementado com codificadores angulares incrementais monta

dos no eixo dos motores como foi detalhado no capítulo an

terior.

Neste sub-item apresentaremos os detalhes de fun

cionamento dos cartões que convertem os sinais de plilso e di

reção no chaveamento das fases do motor e a lógica de gera

ção dos pulsos e direções para todos os motores. No próximo

sub-item explicaremos o funcionamento do circuito de reali

mentação de posição.

Um esquema geral do acionamento dos seis motores

de passo (um para cada grau de liberdade mais o acionamento

da garra) está mostrado na figura 3.5 a seguir.

O circuito de acionamento dos motores de passo po

de ser dividido em duas partes. A primeira é responsável

pela geração de pulsos de freqüência e curvas de aceleração

e desaceleração, bem como dos sinais de direção para todos

Page 147: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.124.

3>

3)

PMDB

c

PMAB

PMCB

C

t o o

m hl CC

t o o

UJ <I Q UJ DC Q <

o < CE ' o

o -l l j

CC

MOTB

DRIVER E MOTE

Fig. 3.5 - Esquema geral do acionamento dos moto

res de passo.

os motores de passo do,robô, e a segunda parte é responsa

vel pela conversão destes sinais de pulso e direção em um

seqüenclamento específico de chaveamento das fases do motor

para a sua movimentação correta em uma ou outra direção.

Page 148: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.125.

Os motores de passo utilizados tem alta resolução

(200 pulsos por volta ou 400 pulsos em meio passo) sendo

que as suas. características principais estão mostradas na

tabela 3.2 para os motores do robô e da garra.

Tabela 3.2 - Características dos motores de passo

utilizados no robô e na garra.

Parâmetros motor do motor da

Parâmetros robô garra

Angulo de passo 1,8° 1,8°

Tensão de alimentação 2,9 V 5,9 V

Corrente/fase 3,1 A 0,88 A

Resistência/fase 0,95 n 5,9 íl

Indutância/fase 3,8 mH 11,0 mH

Torque estático 10,8 Kpcm 3,8 Kpcm

Torque residual 0,36 Kpcm 0,^6 Kpcm

Inércia do rotor 0,67 Kpcm* 0,12 Kpcm*

Peso 1,48 Kg 0,57 Kg

Número de fases 4 4

Um esquema de como as quatro fases dos motores

de passo são interligadas internamente e a seqüência de co

mutação das fases para passo completo e meio passo estão mos

tradas nas figuras 3.6 e tabelas 3.3 e 3.4 respectivamente.

Page 149: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3 ::3

.126,

FASE I A

F A S E 2A

FASE TB

FASE 2 B

Fig. 3.6 - Interligação das fases no motor de pas

so de quatro fases.

3

3

CW

Tabela 3.3 - Seqüência de fases para movimentar o

motor em passo completo.

IA IB 2A 2B

XXXX XXXX

XXXX XXXX

x x x x XXXX

x x x x XXXX

XXXX XXXX

Início

CCW

XXXXj LIG,

I ( DES,

Page 150: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.127.

Tabela 3.4 - Seqüência de fases para movimentar

CW

o motor de passo

IA IB 2A 2B

XXXX

XXXX XXXX

XXXX

XXXX XXXX

XXXX

XXXX XXXX

XXXX

XXXX XXXX

XXXX

Início

CCW

Assim, uma placa foi projetada e construída para

do com I —

tabelas

servir de interface entre os sinais digitais vindos do com

putador e a seqüência de fases mostradas nas duas

anteriores para motores de passo de quatro fases.

Um diagrama esquemático desta placa pode ser vis

to na figura 3.7 que segue. Ela se compõe de três partes

principais: geração de seqüência de fases, regulador das ca

racterísticas do motor e excitadores de potência.

A parte de seqüência de fases tem três entradas

a saber:

- PULSO

A cada transição negativa deste sinal, gera-se

Page 151: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

3

.128.

o CO CO <t a. til Q

3

— 2 r,

< CD m

CM 111 o < < lu CE Ü CO ~o Ul Z < 5 Q'UJ U-i "8 S UJ CO

CONTADOR

DRIVER

1 , CO o < UJ U_

Q o 111

8 CO < Q.

Fig. 3.7 - Diagrama esquemático da placa ladora de motores de passo.

contro

Page 152: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:0

3

SI»

.129.

uma nova seqüência de fase conforme uma das ta

belas anteriores de modo a que o motor avance

W um passo.

3 - DIREÇÃO

_^ Determina o sentido de rotação do motor de pa£

so (nível O é CW e nível 1 é CCW).

- PASSO/MEIO PASSO

Determina se o motor vai se mover no modo de

^ passo ou de meio passo (nível O e nível 1 res^

pectivamente).

O As seqüências de fases para passo e meio passo

2 são armazenadas em uma memória PROM ("Programmable read

-» only memory") sendo que a tabela é selecionada pelo sinal

PASSO/MEIO PASSO. Os sinais de PULSO e DIREÇÃO são entradas

^ de um contador de duplo sentido de contagem. As saídas da

" memória passam por excitadores de potência transistorizados

- que comutam as fases do motor.

Q O controle da corrente que passa em cada fase do

motor é feito por um oscilador "chopper" sendo que a corren

te é determinada pelo tempo de nível O da onda do oscila

dor, tempo este regulado por um potenciómetro da placa, po

dendo variar desde 0,5 A até 5 A, dependendo do motor a ser

acionado.

A alimentação do cartão é 24 V e o pico de corren

te que passa na fase do motor que foi imediatamente aciona

da é regulado por outro potenciómetro.

As principais vantagens desta placa em relação a

outras que controlam motores de passo são:

:3

Page 153: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.130.

-V

3

•y Este contador programável é utilizado neste cir

cuito no modo de funcionamento 3, como divisor de frequen

cia. A frequência do relógio do microcomputador (3,072 MHz)

é dividida por dois sendo esta freqüência a entrada do con

tador programável utilizado para gerar as curvas de acel£

ração e desaceleração dos motores. A saída deste contador

é entrada para os outros seis contadores sendo cada um d_e

les dedicado à geração do sinal de pulso de um motor.

A direção é programada carregando um valor do

barramento de dados em um registro de direção endereçado co

- Elimina a necessidade de resistores de baixo va

lor e grande capacidade de dissipação de poten

. cia para limitar a corrente nas fases.

- Permite alimentar um motor com tensão bem maior

do que a nominal melhorando sua curva de tor

que/velocidade.

- Maior eficiência em termos de corrente exigida

da fonte.

- Características do motor são ajustáveis sem prie

cisar trocar ou adicionar componentes.

A segunda parte do acionamento dos motores de pas

so correspondem à geração dos sinais de pulso e direção

para os cartões controladores dos motores de passo.

Um diagrama esquemático do circuito utilizado pa

ra este fim está mostrado na figura 3.8. Toda a lógica

do, circuito é baseada nos contadores programáveis da pasti^

lha 18253-5 da INTEL, onde suas principais caractftrísticas

W são vistas em [28].

Page 154: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3 . 1 3 1

3 •3

3

< o o o Q ^ ^

£ S í £ - í o o o o D Q.

REGISTRO DE

DIREÇAOÍPDIR)

A A A

00 < z

D.

s

c

iS o < CC z UJ . , .

N •I-

CM

4 CO

CO CO o Q l»-

CO C3 CO CG

Cl. Cl

BUFFER

I

m

a:

> ^ I l-^ 5

o

g o

i -o

UJ

a. o UJ

o

i r

o u .

| . | -

o

REGISTRO DE

HABILITAÇÃO HABIM

A / \ A OD O

03 O

..V

Fig. 3.8 - Diagrama de geração dos sinais de pul^

so e direção para os motores de passo.

Page 155: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

.132.

mo uma porta de saída do processador.

^ Outro registro é utilizado para habilitação do

5 motor, ou seja, ao se carregar 1 em um determinado bit do

Zj registro, habilita-se o motor correspondente àquele bit,

ao se carregar O, inibe-se o movimento daquele motor.

Desta forma, para se conseguir a interpolação do

movimento dos motores no espaço de coordenadas de junção,

3 isto é, fazer com que o robô ao se deslocar de um ponto pa

O ra outro, todos os motores comecem a se movimentar ao mesmo

2 tempo e terminem o movimento também ao mesmo tempo, progra

- ma-se valores calculados de divisores de freqüência para

_ cada motor, como será visto no próximo capítulo. Assim, os

seis contadores dedicados aos motores são responsáveis por

gerar pulsos em freqüências proporcionais ao número de pul_

SOS que o seu motor irá se deslocar.

7j

A aceleração é conseguida em todos os motores de

^ forma proporcional à calculada acima para cada motor mudan

^ do-se o valor do divisor do contador de aceleração durante

o movimento de forma a que a curva de aceleração e*desacel£

•** ração mostrada na figura 3.9 seja obtida.

2, Assim, esta curva de freqüência gerada pelo conta

^ dor de aceleração é dividida pelos contadores dedicados a

^ cada motor gerando curvas de aceleração e desaceleração pro

^ porcionais para cada motor, preservando a interpolação em

coordenadas de junção dos movimentos.

3 A medida que cada motor atinge o seu ponto de des

3 tino, o contador dedicado àquele motor é automaticamente ini

bido parando o movimento e gerando uma interrupção para o

^ processador como será visto no próximo sub-item do sistema

de realimentaçao

Page 156: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.133.

FREQÜÊNCIA

FftR. INICIO ACELER. PERCURSO DESACEL. CHEG4DA PAR TEMPO

Fig. 3.9 - Curva de aceleração e desaceleração

gerada pelo controlador de aceleração.

..V

3.'3.3 - Sistema de realimeinitação

Conforme mostrado no item 2.4 do capítulo ant£

rior, o sistema de realimentaçao de posição utilizada no ro

bô é baseado em codificadores angulares incrementais com

sensores opto-eletrônicos.

Um diagrama completo do circuito de realimentaçao

de posição para um motor (motor A no caso) pode ser visto

na figura 3.10.

Cada sensor é composto de um diodo emissor de

infra-vermelho e de um foto transistor, polarizados como

mostra a figura e montados sobre o disco ranhurado de forma

Page 157: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

, a ,\ i» i) 4 ' t> 4 » <• 4.' v» ^ \> Áj^ii i i i ) 4 ' i ) v r^u 'U í T ^ o 1) I I í' v.t o

OP

CO

o

r t 4 Ö 0 (D M->S tü P M H-> 3

CD • P

r t CD W

PI JO 0 c

CD 3 CD ct "a H-

0 0 w 0 a

P! 0 0 M •a p m

c+ p 0

3 d P 3

P

.3 & Io CD

A + 1 2

X

n ç v ^ 4 1234

J J , I

SAA^

S A B .

COMPA­RADOR

t , _ l SENSORES MONTADOS NO DISCO

<C-L_1—- > " " ° c c 3

CWA N/W

CCWA

CONTADOR A CW(A)

TCWA

ÍM1 CONTADOR A

C C W ( A ) TCCVIÍA

PMDB

PMCB

ÄHMOA w

Page 158: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•O

.135.

a ficarem em quadratura de fase. Os sinais vindos destes

sensores são quadrados por um comparador e entram em um

circuito decodificador de estados gerando pulsos a cada

transição de qualquer dos dois sinais na direção do movimen

to.

Este circuito decodificador de estado é baseado

em um registro que endereça a memória com os estados atuais

O (QA^lN, QABN) e anteriores (QAAN-1, QABN-1), amostrados com

uma freqüência bastante alta (1,5 MHz) de forma a que todas

as transições gerem pulsos de contagem, e mais o sinal de

habilitação do motor (GATEA) e um comando (PULSTIM) de for

ma que, com os dados mostrados na tabela 3.5 armazenados na

memória, os sinais de pulso na direção CW (CWA) e pulsos na

Ti direção CCW (CCWA) sejam adequados para o circuito de conta

^ gem da parte inferior da figura 3.10.

Assim, olhando na tabela 3.5 referenciando os es

tados marcados nas formas de onda da figura 3.10 podemos

ver que quando o motor está andando (GATEA=1), enquanto

estivermos amostrando os sinais na região 1, CWA e CCWA es

3 tarão em nivel 1 (1->1). Ao avançarmos na direção ÇW, de 1

^ para 2, vemos que durante um periodo de amostragem a saida

CWA irá para zero (l->2) e no próximo retornará para 1

(2->2) gerando um pulso na direção CW. Se ao invés de irmos

para o estado 2, a partir do 1, irmos para o estado 4, ou

seja, andarmos na direção CCW, a saida CCWA irá para zero

(l->4) durante um período de amostragem e em seguida retor

nará para 1 (4->4), gerando um pulso na direção CCW.

Assim, a cada transição de qualquer um dos sinais,

o decodif icador de estados gera um pulso de contagem na d_i

reção correta. Com um disco de 100 divisões, obteremos com

este circuito um total de 400 pulsos por volta, que é a

resolução do motor de passo.

Page 159: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.136.

" - ^ PULSTIM GATEA QABN-1 QABN QAAN-1 QAA CWA CCWA ESTADO

" - ^

X 1 0 0 0 0 1 1 1->1

O X 1 0 0 0 1 0 1 l->2

X 1 0 0 1 0 1 0 2->l

o X 1 0 0 1 1 1 1 2->2 o "~J

X 1 0 1 0 0 1 0 l->4

X 1 0 1 0 1 1 1 ?

X 1 0 1 1 0 1 1 ?

Zj X 1 0 1 1 1 0 1 2->3

X 1 1 0 0 0 0 1 4->l

X 1 1 0 0 1 1 1 ?

' X 1 1 0 1 0 1 1 ?

X 1 1 0 1 1 i 0 * 3->2

X 1 1 1 0 0 1 1 4->4

X 1 1 1 0 1 1 0 4->3

X 1 1 1 1 0 0 1 3->4

X 1 1 1 1 1 1 1 3->3

1 0 X X X X 1 1 PAR

0 0 X X X X 0 0 PAR

X=0 ou 1, ?=ilegal, PAR=motor parado

Tabela 3.5 - Dados armazenados na memória do deco dificador de estados.

Page 160: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 1 3 7 . 7^

Estes pulsos gerados por esta máquina seqüencial

3 são contados por dois contadores programáveis implementados

com o timer 18253-5 da INTEL, como mostra a figura 3.10 na

sua parte inferior, sendo que um deles conta os pulsos na

direção CW e o outro na direção CCW.

Estes contadores são programados no modo O, modo

' este que interrompe o processador na contagem terminal.

Quando qualquer um dos contadores atingir a conta

--j gem final o circuito lógico gera dois sinais, HMOA que in

terrompe a contagem dos contadores e a geração de pulsos pa

ra o motor de passo correspondente (figura 3.8) e RA que,

^ na figura 3.11, gera uma interrupção RST6.5 para o processa

dor e coloca em um registrador endereçado como porta de en

^ trada, o vetor correspondente ao motor de mais alta priori^

^ dade que atingiu a contagem final [56].

Assim, o seguinte algoritmo é utilizado para ga

^ rantir que o motor se deslocou da quantidade de pulsos cor

reta ao se movimentar de uma posição para outra:

g 1 - A partir da posição atual e da posição deseja

da, determina-se a direção do movimento (CW

ou CCW) e o número de pulsos que o motor dev£

rá andar de uma posição para a outra.

2 - Calcula-se a velocidade que o motor se deslo^

cará e coloca-se o valor no contador divisor

de freqüência correspondente àquele motor (f_i

gura 3.8).

3 - Armazeña-se o número de pulsos a ser contado

no contador da direção correspondente e FFFFH

no outro contador (figura 3.10).

Page 161: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

.138.

A+5

RA

GATEA

RB

GATEB

RC

GATEC

RD

GATED

RE

GATEE

RF 6ATEF

> > > > > >

-C 0

-C 1

-04

-C 5

-C 6

Í8 o < Q CC O d:

Q l

lU o

8 < u Üs o o o

E I

I

A 0

A l

A2

>

EO >

t e

g Ui

> u o o oc I-52 o TU a:

PMDB

RST6 5

Fig. 3.11 - Esquema de interrupção do processador

ao se atingir a contagem final.

4 - Habilita-se a interrupção do processador e o

motor que irá se deslocar (GATE).

5 - Quando a interrupção ocorrer, inibe-se o mo

tor (GATE) e determina-se o número de pulsos

que ainda falta andar, correspondendo ao núme

ro de pulsos recebidos no contador da dir£

ção oposta ao movimento.

C O M I S G A O N A C I G ° . : A L O E E N E R G Í A N U C L E A R / S P

1. P . E . N .

Page 162: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.139.

3.3.4 - Caixa de aprendizado de tarefas

A interface para a caixa de aprendizado de tar£

fas tem por função permitir o controle dos movimentos do ro

bô por meio de um teclado montado em um terminal portátil

de forma a que tarefas possam ser ensinadas ao robô.

Esta entrada de programas a serem executados pelo

robô é feita particionando-se a tarefa em pontos principais

e levando manualmente o robô, através do acionamento de

seus motores, comandados pelas teclas da caixa de aprendiza

do.

Uma vez posicionado o robô no ponto desejado, te

cias da caixa permitem armazenar o ponto, colocar parame

tros tais como velocidade de saida etc.. Outros comandos

de controle de execução da tarefa podem ser entrados a par

tir da caixa de aprendizado.

Existem duas caixas de aprendizado para o labora

tório. Uma tem como terminal de entrada uma caixa portátil

com teclas e um mostrador alfa-numérico de 32 caracteres.

6 - Se este número for maior do que 1, retorna-se

ao passo 3, senão, termina.

Desta forma, com este procedimento garante-se que

o motor sempre andará o número exato de pulsos independente

de eventuais perdas.

O circuito da figura 3.10 é repetido para cada um

dos motores do robô e o algoritmo de realimentaçao é reali^

zado para os seis motores, como será visto com detalhes na

programação da rotina de deslocamento, a ser vista no próxi

mo capitulo.

Page 163: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.140.

que possibilita apresentar os comandos entrados e mostrar

um menu de comandos selecionáveis pelas teclas. Esta caixa

e o seu correspondente programa de aprendizado e execução

de tarefas estão detalhados em [13].

A segunda utiliza o terminal de vídeo do nível 1

-Z> de controle como a caixa de aprendizado.

* A interface para esta segunda caixa de aprendizado

- é, então, a própria interface de comunciação entre os dois

^ níveis de controle, que será detalhada no sub-item 3.3.7.

A definição das teclas e a sintaxe dos comandos pa

ra o aprendizado de tarefas utilizando o terminal de vídeo

O será mostrada no sub-item 4.2.3 do próximo capítulo.

3.3.5 - S i n c r o n i z a ç ã L O CCMB e v e n t o s e x t e r n o s

No processo produtivo, o robô deve interagir cora

outros equipamentos componentes deste processo de forma a

sincronizar suas ações e iniciar funções dependen^do de esta

dos e comandos destes outros equipamentos.

Esta sincronização é feita através de uma interfa

ce com sinais de entrada e saída que podem ser processados

e testados através de comandos implementados no programa

3 de execução do robô, comandos estes que são entrados atra

O vés da caixa de aprendizado de tarefas ou através do código

^ gerado pela compilação da linguagem de alto nível para pro

gramação do robô, que será vista no capítulo V.

Esta interface de sincronismo possui oito linhas

binárias TTL ("transistor transistor logic") de entrada

Z e oito linhas binárias de saída TTL além de seis linhas TTL

Page 164: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.141.

de entradas de interrupção, como mostra a figura 3.12 a se

gulr.

As oito linhas de entrada e as oito linhas de saí^

da são implementadas com duas portas da interface periféri^

ca programável I8255A da INTEL [27].

As linhas de saida são programadas escrevendo-se o

valor do acumulador em uma porta de saida do processador e

as de entrada são lidas através de uma porta de entrada,

sendo que comandos do robô podem testar ou colocar um nivel

em bits separados destes registradores ou ler e escrever os

oito bits de uma vez só.

C

C í l

/ \/ a; REGISTRO DE

S A I D A

BUFFER T T L

8 LINHAS SAJDA

5

REGISTRO DE

ENTRADA

A

BUFFER T T L

8 LINHAS ENTRADA

PMAB

PMDB

PMCB

\/ v \ / CODIFICADOR

INTERRUPÇÃO

BUFFER T T L

l A

6 LINHAS DE I N T R

Fig. 3.12 - Esquema das linhas de

do robô.

sincronismo

Page 165: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ .142.

3.3.6 - Deteção de chaves limites

Como explicado no sub-item 2.4.2, são duas as fun

ções das chaves limites associadas a cada grau d^ liberdade:

1 - Proteger a estrutura do robô interrompendo o

acionamento dos motores ao ser acionada algu

ma chave.

2 - Fornecer uma referência de posição para a de

terminação da posição inicial do robô.

As chaves estão posicionadas no robô conforme mo£

trado na figura 2.11 e fornecem entradas para o circuito de

deteção das chaves ' limites apresentado na figura 3.13 a S(B

guir.

^ As seis entradas de interrupção geram as interrup

1% ções RST2 - RST7 do 8085, sendo que elas podem ser habilita

das ou mascaradas também através de comandos do robô.

Sempre que uma interrupção for gerada através das

linhas de entrada, e ela estiver habilitada, o controle do

robô passará a ser feito por comandos em rotinas de intei^

rupção, que, uma vez terminadas, retornarão o controle para

:3 o comando seguinte ao último executado antes da interrup

ZZ^ ção.

Desta forma, estas linhas de sincronismo permitem

"" uma grande flexibilidade na interface do robô com outros ro

3 bôs ou equipamentos componentes do processo de produção tais

como máquinas de comando numérico, prensas, equipamentos de

•Z\ soldagem, eventos comandados por chaves, e t c .

Page 166: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.143.

A Interrupção TRAP do processador 8085, não masca

rável por programação, é associada às chaves limites por

ser esta interrupção a de maior prioridade do processador.

O circuito lógico da parte inferior da figura

3.13 tem a função de fazer um mascaramento por circuitos

desta interrupção. Ao se iniciar o processador (RESETIN=1),

ZZZJ tanto o flip-flop FFl como o FF2 são zerados inibindo a in

terrupção TRAP.

:Z^Zé

O sinal HTRAP, vindo de üma porta de saída progra

mável do processador é utilizado para habilitar (transi^

••'-" ção 0->l) ou inibir (nível O) a interrupção TRAP, conforme

---'- mostra o circuito.

- Todas as entradas das chaves possuem resistores

_ de forma que, quando elas estiverem no seu estado normal

_ (abertas), estas entradas estejam em nível 1 fazendo com

que o codificador de prioridade não codifique nenhuma entra

da, deixando sua saída GS em nível O. Quando uma ou mais cha

^ ves são atingidas, elas fecham e colocam nível O nas suas

2, entradas correspondentes do codificador, sendo qu| a de

j maior prioridade (0->7) é codificada nas linhas A3-A0 e a

saída GS vai para nível 1. Estas saídas, GS e A3-A0 podem

ser lidas através de uma porta de entrada do processador

para se determinar se alguma chave foi atingida (GS=1) e

qual foi atingida (A3-A0).

Se a interrupção TRAP estiver habilitada, ao ser

atingida alguma chave, a transição de GS (0->l) faz o

flip-flop FF2 ir para nível 1, interrompendo o processador

e então pode-se determinar qual chave foi atingida lendo-se

a porta de entrada deste circuito.

Assim, na iniciação do robô aciona-se os motores

Page 167: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-3 •V

3 .144,

t n i n o ü C L Q - _ i _ i _j o o o O ü O o o o

Fig. 3.13 - Circuito de deteção das chaves

tes.

limi

Page 168: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 1 4 5 .

adequados até atingir as chaves correspondentes de forma

a calibrar os graus de liberdade; como será visto no progra

ma de calibração apresentado no sub-item 4.2.2 do próximo

capítulo.

Uma vez calibrado, coloca-se uma rotina de segu

rança na interrupção TRAP que, ao ser atingida alguma chave

limite, para imediatsimente todos os motores do robô e en

via uma mensagem de erro para o terminal.

3.3.7 - Comariicação cem o nível 1 de controle

A comunicação entre os dois níveis de controle é

^ feita por uma linha serial de alta-velocidade que permite

transmitir dados e comandos de um nível para o outro.

Esta comunicação serial é implementada com a in

terface programável de comunicação I8251A da INTEL [28j, s£

gundo o padrão RS-232C conforme mostra a figura 3.14.

A taxa de transmissão é obtida através da divisão

do relógio processador por dois e por um valor armazenado

em um contador programável 8253-5 funcionando em modo três

(divisor de freqüências). Esta taxa de transmissão pode ser

programada desde 110 até 19200 Bauds.

o*

A comunicação é assíncrona com sete bits sem par¿

dade, sendo estes parâmetros carregados no registro de co

mando do 8251A.

Linhas de interrupção e de pedidos de interrupção

podem ser usadas pará fazer uma comunicação por pedido de

interrupção ou, utiliza-se o teste da interface para saber

se algum dado foi recebido.

Page 169: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

73 .146,

'3í 73

'3

C C O

PMAB

7

11 8253 - 5

•f N

1,536 MHz

•f2

PCLK

i I US ART

8251A

CONVERSOR RS232C

PMDB

PMCB

7>

7>

A

— ' A A A ) q : : t t t Q w CC

, q t t t - (0 T * ^ 0

-3 Fig. 3.14 - Interface de comunicação serial com o

nível 1 de controle.

Outra interface de comunicação serial por progra

mação está implementada utilizando as linhas SID e SOD do

processador, podendo um terminal de vídeo ser conectado di

retamente ao processador de nível O. A taxa de transmissão

desta interface é automática, sendo determinada ao se ini^

ciar o processador e teclando-se espaço no terminal.

Page 170: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.-Z^J 3.4 - DESCRIÇÃO DO MlVEL 1 DE GOIITHOI^

.147.

•y

•Í0

O nível 1 de controle tem por componentes um mi

crocomputador e interfaces necessárias para dotar o labora

tório de uma infra-estrutura flexível de desenvolvimento de

programas de controle para os computadores de níveis inf£

riores e programas mais sofisticados para programação do r£

bô tais como,rotinas de transformação de coordenadas, ínter

polações no espaço e linguagens de alto nível para progra

mação de tarefas, além do desenvolvimento de novos sensores.

Um diagrama de blocos esquemático da organização

deste microcomputador e suas interfaces para os equipamen

tos periféricos existentes neste nível pode ser visto na fi

gura 3.15.

As funções básicas implementadas neste nível de

controle são:

- Tornar disponível para todos os outros níveis

os recursos de periféricos existentes neste n¿

vel tais como impressora, memória de massa, sen

sores, terminal de vídeo, etc.

- Ser uma infra-estrutura eficiente e flexível pa

ra desenvolvimento de programas de controle e

aplicativos para os níveis inferiores.

- Ter capacidade de expansão para o desenvolvimen

to de sensores de alta integração necessitando

um processamento sofisticado dos seus sinais

de saída (visão, tato, voz, etc).

- Prover comunicação serial entre este nível e os

níveis inferiores e superior da estrutura de

controle.

Page 171: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

i I ! vV ò ti O V» i> O i\ ò ò a 4 » U i.l li ü i> i.i U o U U li i) (¡1 IJ ü ü Ü 4

OQ

CO

cn

3 O

< 05 (í OQ

SU a CD a

CD o o cr r+ *^ o

CD

O O O M

M •Q C CD 3 et H-o o

a o

16K

EPROM

O 3—]

O RAM

O O 48K

RAM

O

A RST2

SEL.BANCO

RST7

I N T .

PROCESSADOR

7\

_INT, N Í V E L 2

: N T .

N Í V E L 0

TV 7 \ I N T

I M P R

C

L

COMUNICAÇÃO SERIAL

<

i

INT TVD

IMPRESSORA TERMINAL! DE VIDEO

DIGITALIZADOR DE .IMAGENS

INTERFACE

FUDFPY - DISK

A

0> iz

CONTROLADOR DMA

(TTÎ

MONITOR

CAMARA CANAL ÇS CANAL 1 VIDEO

00

Page 172: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

73 .149.

Z3

Os programas disponíveis neste nível e o seu si£

tema operacional serão tratados no capítulo seguinte deste

'• trabalho, Sendo que aqui apresentaremos os detalhes de im

plementação de cada uma destas interfaces e o seu computa

-3 dor de controle.

3.4.1 - Arquitetura do coimputador do nível 1

O microcomputador de controle tem como processa

dor o 18085 da INTEL, sendo utilizada a mesma plr.ca descri_

ta no item 3.3.1 para o microcomputador de controle do nível

O.

A única modificação, decorrente da necessidade do

sistema operacional compatível com o CP/M implantado neste

nível precisar de memória RAM e partir da posição O de end£

reçamento é a existência de um circuito ehaveador de banco

de memórias EPROM para memórias RAM, através do endereçamen

to de uma porta de saída do processador.

Assim, ao se iniciar o processador (sinal RESET),

o banco de mem.órias EPROM interno à placa do processador

é habilitado a partir da posição O até 3FFFH e o seu banco

de RAM correspondente é inibido, ficando em alta impedância

as suas saídas.

Desta forma, um programa de iniciação é gravado

permamentemente em memória EPROM e sempre executado ao se

iniciar o sistema. Quando for necessário o banco de memória

RAM para executar o sistema operacional residente em disco,

este programa cuida do chaveamento de um banco para outro

através da programação de uma porta de saída. Uma vez cha

veado para memória RAM, a memória EPROM só será de novo

habilitada ao se iniciar o sistema.

Page 173: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3

-3

3

3

.150.

Todos os sinais do barramento do processador são

idênticos aos descritos na tabela 3.1 com a inclusão do sl

nal PMRAM ho conector S13 que é responsável pela habilita

ção do banco de memória RAM na posição de endereçamento de

O a 3FFFH.

Este processador do nível 1 de controle possui

16 Kbytes de memória EPROM ou RAM (O - 3FFFH) e 48 Kbytes

de memória RAM (4000H - FFFFH), num total de 64 Kbytes de

memória.

As outras interfaces colocadas nos barramentos de

endereço, dados e controle do processador, existentes neste

nivel, serão descritas a seguir.

3.4.2 - Interface controladora de' acesso direto à jmemiioria

Esta interface controladora de acesso direto à

memória foi implementada baseada no controlador programável

de' acesso direto à memória 18257-5 da INTEL [27 ] .

Um diagrama de blocos simplificado da interface

implementada pode ser vista na figura 3.16.

A interface possui quatro canais disponíveis para

permitir que periféricos transfiram ou recebam dados dir£

tamente da memória, em alta taxa de transmissão, sem a in

terferência direta do processador.

Sua função básica é gerar, depois de receber um

pedido do periférico através das linhas PMDRQ0-PMDRQ3, ende

recos seqüenciais de memória e sinais de controle que permi

tirão ao periférico, associado àquele canal, ler ou escrje

ver dados diretamente na memória. A aquisição dos barramen

Page 174: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.151

•D

r

C PMI o c

t u

3 m

C PMC!

C PMAB

OL t u

3 m

a: t u

t m

7>

7\

CONTROLADOR

DMA

8 257 -5

8212

PMDRQ0 . NDACK0 * PMDROl NDACKl ^

BUFFER PMDRQ2^ NDACK2 ^ PMDRQ3 ^ NDACK3 ^

Fig. 3.16 - Diagrama de blocos da interface con

troladora de acesso direto à memória. I

tos do processador é feita através do sinal PHOLD e PAEN

do PMCB. Conflitos de pedidos são resolvidos pela lógica

de prioridades programáveis do 8257-5.

Dois canais de acesso direto à memória já estão

ocupados na interface. O canal 2, com sinais de controle

PMDRQ2 e NDACK2, utilizado pela interface controladora de

discos flexíveis e o canal 3, com sinais PMDRQ3 e NDACK3,

que é utilizado pelo digitalizador de imagens para transm_i

tir a imagem digitalizada da câmara para a memória ou a ima

gem processada na memória para o monitor de video do sist£

ma de visão.

Page 175: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.152.

Os outros dois canais (PMDRQO, NDACKO e PMDRQl,

NDACKl) estão disponíveis para outras aplicações tais como

sensores ou interfaces de comunicação para outros níveis.

3.4.3 - Interface controladora de discos flexíveis

^ Esta interface é baseada no controlador programa

^ vel de discos flexíveis 18271 da INTEL [27] sendo utilizada

para prover a memoria de massa necessária para o funciona

mento do nivel 1 de controle, memoria esta obtida por dois

C acionadores de disco flexível de oito polegadas, face sim

—. pies e densidade simples no formato IBM 3740 num total de

Q 512 Kbytes de memoria na linha.

^ O diagrama de blocos desta interface está mostra

^ do na figura 3.17.

Um oscilador de 4 MHz gera a freqüência básica

— . para o controlador de disco. As características dos aciona

dores e da formatação dos discos são programadas em regi£

_ tros internos do 8271, na sua iniciação, e então, * comandos

de leitura e escrita de setores no disco geram pedidos para

a interface controladora de acesso direto à memoria, sendo

'Z as leituras e escritas feitas sem a interferência do proces^

'3 sador.

Z Códigos de fim de transferência e resultados (se

^ houve erros ou não.)» são lidos e processados pelo computa

dor, e caso tenha havido algum erro, uma nova tentativa é

feita, repetindo-se a operação.

'ZJ Um programa especial de formatação e verificação

de discos foi implementado e será descrito no próximo cap_í

^ tulo.

Page 176: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.153.

Z3

'D

PMDB

0 0 CC LI U. Ü.

m

PMAB

PMCB c 8,0,

MHz

oc UL u . u . m

CC Ui u . u . ID 03

C O

- > PMDRQ2

NDACK2

CONTROLADOR

D E DISCOS

t

F L E X Í V E I S

8271

C

O S C I L ; 4,(ZÍd0MHz

ac UL u . u . m

DC UL

3

UJ CO

DISCO

A

S E L A

S E L B

Disco B

iz

3 Fig. 3.17 - Interface controladora de discos fie

xíveis.

3.4.4 - Interface para digitalizador de imciagens e monitor

de vídeo

Estas interfaces e os seus programas corresponden

tes são explicados detalhadamente em [52] sendo que aqui,

apresentaremos apenas a sua funcionalidade.

A interface digitalizadora de imagens tem como

entrada um sinal de vídeo vindo de uma câmara vidicon de

- - O

Page 177: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

7^

-3

.154.

circuito fechado de televisão. Esta imagem é amostrada e d¿

gitalizada em dois niveis (imagem binaria) em uma freqüên

cia tal que o quadro é obtido como uma matriz de 256 x 256

pixels. Na aquisição da imagem a interface do digitalizador

é programada de tal forma que sempre que um byte de imagem

for formado, um pedido para a interface controladora de

acesso direto à memoria é gerado e o byte transferido, re

petindo-se a operação até que toda a imagem tenha sido

adquirida.

•O A interface para o monitor de video funciona de

3 duas maneiras, selecionáveis por chaves. Na primeira, a

-Q imagem atual digitalizada da câmara é mostrada e na outra ,

^ pode-se mostrar uma imagem já processada na memória do com

putador ou do disco. O

^ Para a segunda maneira, existe na interface um

Q banco de memórias RAM suficiente para o armazenamento de

-3 uma imagem, e a transferência da memória do computador para

este banco é feita trambém com a interface de acesso direto

à ipemória.

* -

Os programas que fazem a aquisição da imagem, a

transferência para o monitor de video e os algoritmos de

O localização, reconhecimento e aprendizagem de peças, utili^

-' zando este sensor de visão, estão também apresentados em

[52].

3.4.5 - Interfaces para comunicação serial: terminal de ví

deo, inapapessora, nível O e nível 2

As interfaces de comunicação serial são todas

implementadas de maneira semelhante à descrita no item

3.3.7. Um esquema das interfaces montadas pode ser visto

Page 178: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

;3 —

.155.

na figura 3.18.

• A taxa de transmissão é selecionada em um divisor

programável para cada uma das interfaces seriais de comun^

cação implementadas com a pastilha I8251A, sendo que tanto

para o terminal de vídeo como para a impressora, elas fun

cionam em 9600 Bauds.

A interface de comunicação para o nivel O é im

plementada com todos os sinais do padrão RS-232C de forma

a que seja possível colocar-se um MODEM para transmistir

por linha telefônica do nivel 1 para o nivel O, colocado

remotamente.

A interface de comunicação para o nivel 2 de con

trole deverá respeitar os protocolos de comunicação do

PDPll/34. Espaço físico e conectores estão previstos.no com

putador de nivel 1 para esta implementação, assim como para

^outras interfaces de comunicação serial para outros compu

tadores do nível O de controle, para o caso de mais de um

ro^ô estar ligado ao nivel 1.

3.5 - Ml¥E]L, 2 DE COIÍTROUE

Para o nivel 2 de controle do laboratório está

prevista a interligação entre o computador de nível 1 e o

minicomputador PDPll/34 do Laboratório de Sistemas Digitais

da EPUSP.

Esta interligação terá por objetivo principal au

mentar consideravelmente os recursos de processamento, uma

vez que para várias aplicações, o processamento com um mi^

crocomputador de oito bits é insuficiente.

Page 179: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.156,

00 o c i _ i _

< 40

</> CM CD

—J —J

05 ü o- <M n r o

<o

8"

-4DSR — CTS á —íRXD >

RTS " Z

- • D T R •TXD

Fig. 3.18 - Interfaces seriais para comunicação

com terminal de video, impressora e

nivel O de controle.

Page 180: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.157.

É importante ressaltar que o laboratório encon

tra-se implementado apenas com um processador de nível 1 e

um processador de nível O controlando um robô, embora a sua

concepção tenha sido feita para o controle de diversos ro

bôs, agindo em separado ou coordenados de maneira a coopera

rem na execução de uma dada tarefa, problemas estes que s£

rão vitais para a automação completa das fábricas do futuro.

Estes tipos de problemas envolvem um processamento

veloz e poderoso,em tempo real, de forma que a possibilidade

de ter-se um minicomputador para implementar estas funções

foi prevista para o laboratório.

3.5.1 - Configiiração do nível 2 de controle

A configuração atual do sistema PDPll/34 existen

te no laboratório pode ser vista na figura 3.19.

—> A unidade central de processamento é o PDP11/34A

^ possuindo os seguintes equipsunentos periféricos e interfa

ces:

- Memória a semicondutor

256 Kbytes de memória a semicondutor, sendo es

^ tá a máxima capacidade do PDPll. . A

2 - Console

Terminal para entrada e saída de dados e coman

dos para o sistema operacional do computador.

_ - Unidades de fita magnética

o sistema possui uma unidade de fita magnética

^ de 1600 bits por polegada podendo acessar fitas

5

Page 181: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ U \\ W \\ í - ^ r r - ^ - ^ r T T ^ O O ^' u O i . » i..) o U i.1 l» U ü 4J ü O t

1""

c."

rn I 9 1

c;

r-

:2D

OP •

CO • M CO

o o 3 i-b p-

CP c p o P! O

O cn H-02 c+ CD 3 P a

M CO J5w

F I T A

M A G N É T I C A

A

i z INTERFACE

COMUNICAÇÃO SERIAL

A

DISCO

R Í G I D O

A

i z

AZ

IMPRESSORA

A

i z TERMINAL

GRAFICO

256 KBYTES

RAM

A

i z TERMINAL

DE VIDEO

A

I z UNIBUS

7> 16 INiTERFACES DE COMUNICAÇÃO SERIAL RS232 C (M AXIMO 9600 BAUDS)

A

íl

7>

DISCOS

FLEXÍVEIS

CO - D

00

Page 182: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.159.

O - Impressoras

O sistema esta equipado com uma impressora de

linha em 300 Ipm.

- Terminal gráfico

Acoplado ao sistema existe um terminal gráfico

^ . AED512 da MITSUBISHI, colorido, de alta resolu

ção e com programas de suporte tais c*omo roti^

nas para traçado de retas, círculos, endereça

mento de cursor e "zoom" automático da imagem.

- Interfaces de comunicação serial

Existe a possibilidade de se colocar até dezes

O seis equipamentos com comunicação serial no pa

2) drão RS-232C na taxa de transmissão de 9600

- Bauds.

^ Qualquer outra interface da DEC ("Digital Equlpnent

Corporation") pode ser colocada no sistema. Entre elas po

demos citar interfaces para digitalização de imagens em vá

Z rios níveis de cinza e mesmo coloridas de alta velocidade

em vários formatos de gravação.

.- Unidades de discos rígidos

São duas as unidades de discos rígidos, \_ ambos

removíveis tendo uma capacidade total de 56

MBytes de armazenamento.

- Unidades de discos flexíveis

A configuração existente no laboratório possui

duas unidades de discos flexíveis de oito pol£

gadas e gravação em densidade simples e dupla

existindo programas para conversão de formatos.

Page 183: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.160.

e interfaces para unidade de processamento aritmético de

ponto flutuante, que podem ser de bastante interesse para

o laboratório de robótica.

O sistema operacional deste computador é o RSXllM

versão 3.2, sendo que várias linguagens de programação tais

como FORTRAN, PASCAL, ASSEMBLER, C e outras, são disponí^

veis para a programação.

3.5.2 - Ftmções do nível 2 de controle

As funções básicas previstas para o computador

do nível 2 de controle são:

Implementação de linguagens mais sofisticadas pa

ra programação de tarefas de robôs industrias ,

linguagens estas que podem, possuir geração auto

-mática- de planos- de- ação -e-um-maior—interfacea­

mento com sensores do meio ambiente do robô.

*

- Implementação de programas de simulação de tare

•o fas e de controle de trajetória com saídas para

^ o terminal gráfico de alta resolução do computa

»> dor.

^ - Programas que acessem bancos de dados de sist£

mas CAD/CAM e retirem dados de posicionamento

" geométrico que possam ser processados por lin

guagens de programação de tarefas executáveis

^ neste nível ou no nível 1 de controle.

- Sensores de visão mais sofisticados com imagens

em vários níveis de cinza ou mesmo coloridas e

até possivelmente imagens tridimensionais.

Page 184: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.161.

Estas são apenas algumas funções previstas para

este nível de controle, sendo que a sua flexibilidade é to

tal, dependendo apenas da criatividade de quem for operar

com este laboratório.

3.6 - COIÍCIUUSSO

Neste capitulo nos dedicamos a apresentar a arqui^

tetura de controle do LÍDER - Laboratório Integrado para

-iD Desenvolvimento e Ensino da Robótica, arquitetura esta ba

seada em um sistema de controle hierárquico e distribuído.

^ Apresentamos os detalhes de implementação dos cir

_ cuitos componentes dos processadores e interfaces de contro

le e comunicação do nível O, dedicado ao acionamento e con

trole do robô e do nível 1, voltado para fornecer a infra-

V estrutura de desenvolvimento de novos programas e senso^

,V res voltados para a robótica.

• • ^

^ y Finalmente, mostramos as funções básicas previs

tas para o nível 2 de controle e os trabalhos possíveis de

serem desenvolvidos neste nível, junto com os recursos dos

^ outros níveis, voltados para a robótica.

No próximo capítulo mostraremos os programas im

plementados neste níveis de controle do laboratório, sendo

que eles são alguns exemplos de algoritmos de controle e

^ programas suportes já implementados com seus recursos.

Outros trabalhos [13] [52] já estão sendo feitos

Z no L Í D E R , de forma a aumentar os seus recursos e melhorar

"3 as formas de programação e interação do robô com o seu am

-- biente de trabalho.

Page 185: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.162.

A implementação dos computadores de nivel O e ní

vel 1 com processadores e interfaces de baixo custo visa,

^ principalmente, tornar o seu preço acessível para possibili

tar que universidades e escolas técnicas possam dispor des

te equipamento de forma a que seus alunos tenham um treina

mento rápido e eficiente, tão perto quanto possível da rea

lidade da robótica, esta nova disciplina, do presente e

mais seguramente do futuro.

Page 186: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

— ^ - . ^ .'-î-i'- X.;:* ¿A. • •• »"S^-i

Page 187: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

PAULO FARIA SANTOS AI'íARAL

Eng. de Eletrônica, Instituto Tecnológico de

Aeronáutica, 1976

Mestre em Engenharia, Instituto de Pesquisas

E; T ' < = ' C Í a i s , 1979

CONCEPÇÃO E IMPLEMENTAÇÃO DE UM LABORATÓRIO PARA DESENVOLVI

MENTO DE TÉCNICAS E PROGRAMAÇÃO DÉ TAREFAS DE ROBOS INDUS

TRIÁIS.

VOLUME II

Tese apresentada à Escola

Politécnica da U^P para a

obtenção do Título de

Doutor em Engenharia.

Orientador: Prof. Dr. Lucas Antonio Moscato

Professor Adjunto do Departamento de

Engenharia de Eletricidade da EPUSP.

São Paulo, 1985

\ •

"1

c c ; . : ; : : ^ vJ 1

Page 188: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

V

C A P I T U L O I ¥ - P R O G R A M A S S O P O R T E P A R A O JLABORATORIO

•J

"1 - A robot may not injure a human

being or, through inaction, ,Y

< ^ allow a human to be Ijarmed.

2 - A robot must obey orders given

by humans except when that

Zi conflicts with the First Lav/.

3 - A robot must protect its own

"v existence unless that con

flicts with the First or Second

Laws."

(As três leis da robótica de

Isaac Asimov)

Page 189: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.164.

4.1 - HÍTffODOÇ^O

Neste capítulo nos dedicaremos a apresentar os

programias desenvolvidos como suporte para o laboratório LI

DER, de forma a permitir que o mesmo possa ser utilizado co

mo infra-estrutura de ensino e pesquisa em robótica indus

trial.

Como mostrado anteriormente, o desenvolvimento do

laboratório foi uma atividade multidisciplinar envolvendo

projetos de componentes mecânicos,'eletrônica de sensores

e atuadores, projetos de circuitos digitais de controle e

desenvolvimento de programas de controle e linguagens de pro

gramação.

O objetivo principal deste capítulo é mostrar co

mo a arquitetura mecânica do robô, seus sensores e atuado

res junto com çs dois microcomputadores do laboratório e os

seus circuitos de interface específicos para o controle do

robô, são relacionados e controlados de maneira a obter-se

um^movimento fácil e preciso bem como um,a grande facilida

de de utilização dos recursos disponíveis de forma*a poder

mos ter programas de tarefas sofisticadas e eficientes em

um curto espaço de tempo.

Primeiramente, apresentaremos os programas desen

volvidos para o nível O de controle, implementados com a

infra-estrutura do nível 1, para serem utilizados no compu

tador do nível O voltado para o controle do robô, o aprendi

zado e a execução de tarefas.

A seguir, apresentaremos os programas existentes

no nível 1 de controle, dedicado a servir de infra-estrutu

ra de programação para o laboratório. O sistema operado

nal e o programa monitor disponível neste computador serão

Page 190: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.165.

3

-3

Na seqüência, mostraremos os programas voltados

para a transformação de coordenadas de junção para coordena

das cartesianas e vice-versa, bem como os de transformação

de coordenadas de junção para coordenadas de motor utiliza

dos pelo programa de controle do robô. Neste item mostrar£

1 mos a resolução das equações cinemáticas para o robô desen

_j volvido.

Para que todos estes recursos pudessem ser utili^

^ zados com facilidade e de uma maneira mais transparente e

eficiente para o usuário, foi desenvolvida uma linguagem de

Z alto nível para a programação de robôs industriais que será

O objeto do próximo capítulo.

Zé E importante frizar que todos estes programas

desenvolvidos e apresentados neste capítulo, em.bora aumen

tem consideravelmente a capacidade de ensino e pesquisa do

^ laboratório e permitam um fácil e preciso controle^do robô,

Q são exemplos de aplicação da infra-estrutura proposta, sen

Zj do que outros, utilizando outras técnicas e filosofias di

ferentes podem também ser implementados.

Zj '

4.2 - PROGRAMAS PARA O MtVEL O DE COMROLE Zd

Estes programas têm por finalidade permitir ao

^ usuário do laboratório testar programas para o computador

^ do nível O de controle e também permitir o desenvolvimentoe

^ testes de tarefas para o robô.

^ Os programas implemientados neste nível são os se

z

apresentados, suas linguagens de programação, os programas

para suporte de desenvolvimento' e para comunicação com o

Q nível O serão detalhados nesta parte.

Page 191: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.166.

guintes:

O - Programa MONITOR

Permite ao usuário carregar e testar programas

ZJ armazenados na memória do microcomputador bem

como verificar conteúdos de posições de memória

• e registradores.

- Programa de CALIBRAÇÃO

Independentemente da posição inicial do robô,

ao se executar este programa, o mesmo é movimen

tado de forma que no final ele esteja colocado

na sua posição de referência.

Zd

'Z)

Q

z Zà

ZJ

Programa de APRENDIZADO

Z Através do terminal de vídeo do nível 1 de con

trole, utilizado como caixa de aprendizado, es

te programa permite ensinar uma determinada se

qüência de movimentos ao robô e também colocar

na sua memória de tarefa, instruções executa

veis pelo computador do robô. Em conjiyito com o

; programa editor de figuras do nível 1, pode-se

Q criar um arquivo em disco com pontos, linhas,

Q círculos e trajetórias, arquivo este utilizável

pela linguagem de alto nível, o que será visto

no próximo capítulo.

- Programa de EXECUÇÃO

Uma vez carregada uma determinada tarefa, este

programa permite executar a tarefa passo a pa£

so, de maneira contínua, modificar pontos apren

didos em temipo de execução e listar os comandos

da tarefa carregada na memória.

Page 192: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.167.

Todos estes programas e sua maneira de utilização

serão vistos com detalhes nos sub-itens apresentados a sje

guir.

4.2.1 - Prograr-na MCfflTOR

Este programa MONITOR é gravado em memoria EPROM

e ocupa os primeiros 2 Kbytes de memoria do processador, sen

do executado sempre ao se ligar o computador ou ao se aper

tar o botão RESET do nível 0. • '

A sua função é permitir ao usuário, através de co

mandos vindos de uma entrada serial (usualmente acoplada a

um terminal de vídeo), carregar programas na memória do com

putador, salvar programas testados em um dispositivo de ar

mazenamento, transferir o controle.do processador para o

programa do usuário, mostrar o conteúdo de posições de memo

ria como dados ou como instruções, mostrar o conteúdo de r£

gistradores, programar portas de entrada e saída e outras

fupções a serem vistas a seguir.

*

Na concepção atual do laboratório, a interface de

entrada e saída configurada para o monitor do nível O está

ligada na interface de entrada e saída serial para comunica

ção com o nível O, do nível 1 de controle. Desta forma, pa

^ ra se executar o programa monitor do nível O, deve-se tam

bém executar no nível 1 o programa emulador de terminal, que

configura este nível 1 de controle como terminal para o ní

'• vel O, permitindo a utilização do mesmo terminal de vídeo

^ para os dois níveis e de outros recursos tais como memória

de disco e impressora também para o nível O de controle.

Os comandos aceitos por este programa monitor pos

suem uma sintaxe bem simples, sendo todos os números entra

Page 193: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.168.

Zj

<end. inicial> : :=<núm.ero hexadecimal>

dos em código hexadecimal. A seguir apresentaremos uma des^

crição simplificada, na metalinguagem BNF, de cada comando

do programa monitor. Todos os seus comandos ter-minam com a

tecla retorno do carro e alimentação de linha do terminal

(<CRLF>).

- Comando GO:

<comando G0>::=G<end.programa>|

G<end.programa>-<ponto parada>|

G<end.prógrama>-<ponto parada>-

<ponto parada>

<end.programa>::=<número hexadecimal>

<ponto parada> : : =<númiero hexadecimal>

Este comando tem por finalidade transferir o con

trole do processador para o programa do usuário que está

na posição de memória definida por <end.programa>. A especi^

fiçação de pontos de parada é opcional, sendo que até dois

pontos podem ser especificados no comando. Caso se especif_i

que um ou dois pontos de parada, ao ser o primeiro deles

^ atingido pelo processador, é gerada uma interrupção do pro

grama e o controle do processador volta para o monitor sem

modificar o estado do programa interrompido. Os pontos de

^ parada só funcionam se o programa estiver carregado em memo

ria RAM.

- Comando LIST:

<comando LIST>::=L<end.lnicial> <end.final>

Page 194: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•i

Z4

Z-t

.169.

<end.final>::=<número hexadecimal>

Este comando serve para listar uma " determinada

parte da memoria, da posição definida por <end.inicial> até

a definida por <end.final>, no formato de instruções. A saí_

da do comando é apresentada no terminal como a posição de

memória onde está colocada a instrução e a instrução pro

priamente dita. Se em uma determinada posição for encontra

do um código inválido, uma mensagem de erro é enviada e a

listagem continua daquele ponto.

- Comando DISPLAY:

<comando DISPLAY>::=D<end.inicial> <end.final>

A finalidade deste comando é listar, como dados,

o conteúdo da memória desde a posição inicial até a final.

- Comando SUBSTITUTE:

^ • <comando SUBSTITUTE>::=S<end.inicial> <seqüência

de valores> *

<seqüêncla de valores>::=<espaço><novalor>|

<espaço><novalor><seqüên

cia_de valores>|

<espaço>

Este comando tem por objetivo substituir o conteú

do de uma ou várias posições de memória. A cada espaço en

trado, é apresentado o conteúdo da memória daquela posição

e se um novo valor for entrado ele é substituido. Se não

for desejada a substituição entra-se com espaço e o conteú

do da posição seguinte é mostrado. O comando termina com

<CRLF>.

Page 195: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.170.

- Comando INSERT:

' <comando INSERT> : : =I<end. inicialxCRLFxseqüência

ZJ de números hexadecimal><ESC>

Zi

ZJ

<seqüêncla de números hexadecimal>: :=<seqüência

de dígitos>I

<seqüência de dígitos><CRLF>

<seqüêncla de números hexadecj^

mal>

O objetivo deste comando é inserir uma determina

da seqüência de dados a partir da posição dada por <end.in3^

cial>. Todos os dígitos entrados são colocados dois a dois

em cada posição de memória, A inserção termina com o carac

ter ESC.

- Comando MOVE:

<comando MOVE>::=M<end.incial> <end.flnal>

<end.dest>

Como o próprio nome diz, este comando serve para

^ transferir o conteúdo das posições de memória desde o

Z <end.inicial> até o <end.final> para as posições a partir

do <end.dest> ela incluída.

- Comando REG:

<comando REG>: :=X<CRLF>|

X<id.de registro> <seqüência de

~v valores>

<id.de registro: : =A | B | D 1 H | S

Page 196: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.171.

O objetivo deste comando é verificar ou alterar o

conteúdo de um determinado registro. Ao se enviar só o X, o

conteúdo de todos os registros são apresentados. Se for" o

caso de se alterar um registro, entra-se com X mais o iden

tificador de registro e o valor a ser colocado naquele re_

gistro.

- Comando PORT:

<comando PORT>::=P<end.do port> E|

:. P<end.do port> S <novalor>

Este comando é utilizado para se programar um va

lor em uma porta de saída cujo endereço hexadecimal é dado

por <end.do port>, ou para se 1er o valor de uma determina

da porta de entrada.

- Comando FILL:

<comando FILL>::=F<end.iniclal> <end.flnal>

<valor>

*

Ao se executar este comando terem.os o byte esp_e

cificado por valor colocado na memória desde a posição da

da por <end.inicial> até a dada por <end.final>.

- Comando TEST:

<comando. TEST>::=T<end.inicial> <end.final>

<valor>

Este comando tem por objetivo executar um teste

de memória desde a posição <end.inicial> até a posição

<end.final>. Se o valor for diferente de O, testa-se a es

crita e leitura com o valor e seu comiplemento. Se for O, t£

das as combinações possíveis de O a FFH serão testadas.

Page 197: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

O ! »

.172.

Assim, com os comandos READ e WRITE associados

ao progrsima emulador de terminais no nível 1, podemos guar

dar programas desenvolvidos no nível O em discos flexíveis

no nível 1 ou criar arquivos do tipo hexadecimal através das

- Comando READ: • :

<comando READ>::-R<valor>

A função deste comando é ler um arquivo no forma

to hexadecimal através da porta serial de entrada. Quando o

programa emulador de terminal estiver ativo no nível 1, ao

se executar este comando é solicitado o nome de um arquivo

hexadecimal em uma das unidades de disco, do nível 1. Uma

vez especificado o arquivo, o processador do nível 1 acessa

o mesmo e transfere o seu conteúdo para o nível O que se

encarrega de colocá-lo na posição determinada pelos regi£

tros do arquivo somado ao valor especificado no comando.

Desta forma podemos ter todos os arquivos e programas do ní_

vel O armazenados na memória de disco do nível 1 e carr£

gá-los quando for desejado com este comando do monitor.

- Comando WRITE:

<comando WRITE>::=W<end.inicial> <end.final>

Este comando tem por função escrever os conteúdos

de memória desde a posição dada por <end. inicial> até a po

sição dada por <end.final> em um arquivo hexadecimal e

transmití-lo para a porta serial de saída. Quando o progra

ma emulador estiver, ativo no nível 1, o processador recebe

o arquivo transmitido e em seguida solicita o nome do arqui^

vo hexadecimal onde ele será colocado no disco. Se o arqui^

vo já existir, o anterior é apagado e o recebido é colocado

no disco. Se não existir o arquivo, um novo é criado com o

iè nome especificado mais a terminação .HEX.

Page 198: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

• Z

O

.173.

várias linguagens existentes no nível 1 de controle e trans

mití-los para a memória do comiputador do nível O.

4.2.2 - P r C ' g r a i E a de CALIBmÇÍÍO

Como mostrado no sub-item 2.4.2, os sinais vindos

das chaves limites associadas a cada grau de liberdade po£

suem duas funções, sendo uma delas, a de fornecer uma ref£

rência para o sistema de controle determinar a posição ini^

ciai do robó, independentemente da posição em que ele se en

centrar.

O programa que realiza o controle da movimentação

do robô de forma a que ele atinja a sua posição de referen

cia é o de calibração.

Como mostrado na figura 2,11, a cada grau de

berdade estão associadas duas chaves limites. O programa

consiste em movimentar ordenadamente cada grau de liberdade

do,, robô até que ele atinja uma determinada chave limite e

uma vez calibrado cada um deles, é realizado um * movimento

controlado de formia a que ele chegue na sua posição de

ferência.

Como posição de referência para o robô foi defini_

do o seguinte ponto no espaço de coordenadas de junção:

Porig = ( a , B, Y, p, r) -

Porig = ( 0 ° , 45", -45°, 0 % O")

mais a garra, quando estiver acoplada ao robô, no seu esta

do aberto, como mostra a figura 4.1 abaixo.

Page 199: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.174.

•0«

Zi

Fig. 4.1 - Definição da posição de origem do robâ

Nesta posição inicial os motores são iniciados

com o valor 8000H; desta forma, o ponto de origem em coordje

nadas de motor, incluindo a garra é:

Porig = (NA, NB, NC, ND, NE, NF) =

Porig = (8000H, 8000H, 8000H, 8000H, BOOOH, 8000H)

1*»

Em coordenadas cartesianas, levando em conta os

Page 200: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

c r

Zi

.175.

•a'

•Cf

Z - Rotina ZERCHL

As rotinas principais componentes do programa de

calibração são:

' Verifica se alguma chave limite está acionada

e movimenta o robô até que esta chave deixe de

w estar acionada. -

- Rotina MOVE

Dados uma freqüência máxima de deslocamento, a

direção que cada motor irá se deslocar, o deslo

camento de cada um deles em número de pulsos e

um vetor de habilitação indicando os motores

que se movimentarão, esta rotina movimenta cada

-. motor habilitado do robô, na direção especifica

Zi da com o número de pulsos especificado para aque

le motor. Para os três primeiros graus de liber

dade (a, B, Y ) , correspondentes aos miotores A,

B, e C respectivamente, é feito um cálculo de

freqüência de cada um de forma a executar um mo

vimento interpolado em coordenadas de junção,

isto é, todos os motores começajn a se deslocar

'i ao mesmo tempo e terminam o movimento ao mesmo

eixos XYZ mostrados na figura 4.1, o ponto de origem será:

Porig = (x, y , z , p, r) =

Porig = (0,600.3, 268.2, 0°, 0°)

onde X , y , z são dados em mm e p, r dados em graus.

Assim, este programa de calibração tem por finalñ^

dade dar esta posição de referência única para todos os pro

gramas desenvolvido para o robô.

Page 201: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.176.

tempo. Esta rotina utiliza uma rotina associa

da à interrupção RST6.5 do processador.

- Rotina INT6.5

Cuida da realimentaçao de posição de todos os

motores, ou seja, quando o controlador de um mo

tor pede interrupção, esta rotina utiliza a in

formação vinda do sistema de realimentaçao para

determinar se o motor já atingiu a sua posição

final.

A seguir serão apresentados os algoritmos, em lin

guagem algorítmica, para cada uma destas rotinas e finalmen

te o programa de calibração.

a - Rotina ZERCHL:

1 - Lê vetor das chaves limites (CHAVEL fig. 3.13).

2 - Se nenhuma chave atingida então faça:

para motores. , •*

retorna.

y 3 - Para a chave limite atingida, movimenta o mo

tor correspondente na direção contrária à da

chave.

4 - Volta para passo 1.

5 - Fim.

Ao final desta rotina, todas as chaves limites es^

tão desligadas e o robô está parado.

Page 202: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.177.

'-Z>

ZJ

"Zi

PDIR : Registro de direção dos motores (Fig.3.8).

PHABIM : Registro de habilitação de movimento dos

motores (Fig. 3.8).

CW(m) : Contador de pulsoc do sistema de realimen

tação da direção CW para o motor m (Fig. 3.10).

CC¥(m) :. Contador de pulsos do slstemia de reali_

mentação da direção CCW para o motor m (Fig.3.10).

DIVISOR(m) : Freqüência correspondente à velocida

de que o motor m se deslocará (Fig. 3.8).

Com estas informações, o algoritmo para a rotina

b - Rotina MOVE:

Esta rotina é a rotina de movimentação do robô.

São dados os seguintes parâmetros:

FREQ : Freqüência correspondente à velocidade má

xima de movimento dos motores.

DIR(m) : Se O, motor m na direção CW, se 1 motor

m na direção CCW.

HABIL(m) : Se O, motor m não anda, se 1, motor m

anda.

DESL(m) : Número de pulsos que motor m vai andar

em DIR(m) se HABIL(m). for 1. .

O Os seguintes símbolos são utilizados para mostrar

•"^ o algoritmo da rotina move:

Page 203: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 178.

MOVE implementada é o seguinte:

V 1- - MAX = O. Para m = A, B, C faça:

^ Se HABIL(m)=l então faça:

Z>> MAX=máximo (MAX , DESL (m) ) .

---p 2 - Para m = A, B, C faça:

Se HABIL(m)=l então faça:

DIVISOR(m)-(FREQ*MAX)/DESL(m)

3 - Para m = D, E, F faça:

DIVISOR(m)=FREQ.

4 - Para m = A, B, C, D, E, F faça:

Se HABIL(m)=l então faça:

CW(m)=DESL(m).

CCW(m)=FFFFK.

senão faça:

CCW(m)=DESL(m).

CW(m)=FFFFH.

5 - PDIR^DIR. PHABIM=HABIL.

5 6 - Habilita interrupção RST6.5.

"\ 7 - Se HABIL(m) = O para m = A, B, C, D, E, F

então: retorna,

senão: volta para 6.

8 - Fim.

Esta rotina coloca nos contadores correspondentes

'• à direção na qual o motor andará o número de pulsos deseja

Z dos. Conforme as figuras 3.10 e 3.11, quando um contador de

Page 204: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.179.

um motor habilitado atinge a contagem O, a interrupção

RST6.5 é gerada e o número de pulsos recebidos no contador

da direção contrária é o que ainda falta para aquele motor

<e* andar, como foi explicado no sub-item 3.3.3. A rotina INT65

Z é que trata das interrupções como será visto a seguir.

A rotina MOVE fica em um ciclo nos passos 6 e 7

esperando até que todos os motores tenham atingido o ponto

final (HABIL(m)==0 para qualquer m) . Ao final da rotina

^ MOVE, todos os motores habilitados terão se deslocado da

^ quantidade de pulsos especificada para cada um deles.

^ 2 - Lê vetor de interrupção INTV (Fig. 3.11)

Z^

c - Rotina INT65

1 - Inibe interrupção RST6.5.

3 - Se INTV=0 então faça:

Habilita interrupção RST6.5.

Retorna.

senão faça:

m==motor correspondente a INTV.

^ 4 - PHABIM(m)=0 (Para motor m ) .

Z 5 - Se DIR(m)==0 então faça:

CW(m)=FFFFH-CCW(m).

Q Se CW(m)<l então faça: HABIL(m)=0.fim.

senão faça: CCV/(m) =^FFFFH.

senão

faça:CCW(m)=FFFFK-CW(m).

Se CCW(m)<l então faça:HABIL(m)=0.fim,

senão faça:CW(m)-FFFFH.

Page 205: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.180.-

6 - PHABIM(m)=l. Volta para 2.

7 - Fim.

Esta rotina calcula o número de pulsos recebidos

pelo contador da direção contrária do motor que interrom

peu, e se for igual a O, marca o motoi como terminado, se_

não, programa o número de pulsos que ainda falta andar, mo

vimenta o motor e vai verificar se outro motor já interrom

peu. Se nenhum outro interrompeu, retorna.

O programa de calibração utiliza estas rotinas vi£

tas acima, sendo que o seu algoritmo de controle está mos

trado a seguir.

- Programa de CALIBRAÇÃO

As definições dos símbolos utilizados no programa

de calibração estão miostradas abaixo:

^ CBA : Chave limite superior do motor B (Fig. 2.11

e 3.13). *

CCB : Chave limite inferior do motor C.

CPA : Chave limite superior do levantamento do

pulso (motores D e E ) .

CLR : Chave limite do giro do pulso (motores D

e E) .

CAA : Chave limite da esquerda do giro (motor A ) .

CLEA : Chave limite da garra no estado aberto

(motor F ) .

Page 206: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.181.

INIT : Variável correspondente ao motor que está

em processo de calibração.

TRAP : Rotina inicialmente associada à interrup

ção TRAP do processador que para os motores e d£

v-^lve a chave atingida em CHAVE.

SAFEMO : Rotina associada à interrupção TRAP no

final da calibração que para todos os motores e

imprime mensagem de erro ao ser alguma chave lim_i

te atingida, retornando o controle para o progra

ma monitor.

0 algoritmo do progi^am.a de calibração está mostra

do a seguir:

1 - Programa todos os contadores do controlador

do robô e inicia todos os registros de contro

2 - Coloca rotina TRAP na interrupção TRAP.

3 - Chama rotina ZERCHL. INIT=B.

4 - Habilita a interrupção TRAP.

5 - Movimenta motor B para atingir CBA.

6 - Entra em HALT esperando interrupção TRAP.

7 - Se CHAVE=CBA então faça: Para motor B.

INIT=C

8- Chama ZERCHL.

Movimenta C para CCB.

Habilita TRAP.

Volta para 6.

Page 207: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

J

.0

ZJ

- V

9 - Se CHAVE=CCB então faça:

Se INIT o C então volta para 3.

senão faça: Para motor C.

INIT=E

y 10- Chama ZERCHL.

7j Movimenta E para CPA

Habilita TRAP.

Volta para 6.

^ 11 - Se CHAVE=CPA então faça:

^ Se INIT o E então volta para 8.

^ senão faça: Para motor E.

INIT=D

Chama ZERCHL. -V

Move D e E para gi

rar na direção de

CLR.

Z Habilita TRAP.

Z Volta para 6.

- , 12 - Se CHAVE=CLR então faça:

Se INIT o D então volta para 10. *

senão faça: INIT=A.

^ Chama ZERCHL.

-* Move A para atingir

Z CAA.

^ Habilita TRAP.

Volta para 6.

13 - Se CHAVE=CAA então faça: INIT=F.

Chama ZERCHL.

^ Move F para CLFA.

Habilita TRAP.

- Volta para 6.

o .182.

Page 208: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Zi

.183

14 - Se CHAVE <> CLFA então faça: Imprime erro.

volta para moni^

tor.

15 - Coloca rotina SAFEMO na interrupção TRAP.

16 - Coloca deslocamento e freqüência para atingir

ponto de origem. Habilita interrupção TRAP.

17 - Chama rotina MOVE.

18 - Fim.

Ao final da execução deste programa o robô estará

parado na posição inicial. Independentemente da posição on

Z de ele estava localizado.

4.2.3 - PrograaEa de spr^odizado de tajrefas

São duas as funções deste programa de aprendizado

de tarefas: ., • , <

1 - Utilizando o terminal de vídeo como caixa de

aprendizado, ensinar uma determinada tarefa

ao robô.

2 - Utilizando o terminal de vídeo do nível 1 jun

to com o programa editor de figuras a ser vi£

to no sub-item 4.3.5, posicionar o robô em

pontos do espaço e guardar as coordenadas de^

te ponto em um determinado arquivo.

Sempre que o programa de aprendizado é chamado,

ele calibra o robô de forma a que todas as tarefas sejam

Page 209: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

'Z

'Z

"Iv

.184.

ensinadas com relação ao mesmo ponto de origem. Uma vez ter

minada a calibração, a seguinte mensagem é colocada no ter

minai indicando que o programa está pronto para receber c£

mandos:

PROGRAMA APRENDIZADO

As teclas correspondentes aos comandos possíveis

de serem entrados no programa de aprendizado podem ser s£

^ paradas em dois gr.pos:

1 - Teclas de movimentação de motores.

2 - Teclas para outros comandos de aprendizado.

As teclas para movimentação de motores podem ser

^ vistas, junto com a sua função na tabela 4.1 a seguir.

O movimento do motor comandado começa ao se aper

tar a tecla correspondente e termina quando qualquer tecla

for apertada no terminal de vídeo ou algumai chave* limite

ter sido atingida.

Além destas teclas, a tecla W é utilizada para

movimentar o robô para um ponto já aprendido. O formato

do comando é:

W<end.da memória de tarefa em hexadecimal><CRLF>

Se o comando da memória de tarefa for o de posi^

cionamento de todos os motores (código 4FH), o robô é leva

do automaticamente para aquela posição. Se o comando for

outro, é enviada uma mensagem de erro e o comando é anula

do.

Page 210: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•V

T O

:Zj

- ' ^

"Z

-'Zi

zz

zZ.

: Q

izz

•-Zi

:ZZ

Ty

•-^

-V

"y

:i

\:ZZj

.185.

TECLA EFEITO COORD.DE MOTOR

A motor A na direção a+ aumenta

S motor A na direção ci­ diminui

B motor B ña direção 3+ aumenta

N m.otdr B na direção P- diminui

C motor C na djreção Y- aumenta

V motor C na direção Y+ diminui

D motor D nas direções p- e r+ aumenta

F motor D nas direções p+ e r- diminui

E motor E nas direções p+ e r+ aumenta

R motor E nas direções p- e r- diminui

G motor F para abrir a garra aumenta

' H motor F para fechar a garra diminui

Z motor D e E na direção r-

X motor D e E na direção r+

T motor D e E na direção p-

Y motor D e E na direção p+

Zi

z^

ZZi

Este comando W é muito interessante para posicio

nar o robô com precisão em um ponto já aprendido anterior

mente.

As outras teclas do programa de aprendizado tem

Tabela 4.1 - Teclas de movimentação dos motores

para o programa de aprendizado.

Page 211: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.186.

r i »

ZZ

as seguintes funções:

Zj

L - Lista na tela do terminal de vídeo os coman

dos já aprendidos. O formato do comando L e o

seguinte:

'-- O - Envia para a porta de comunicação com o nível

O l a posição atual do robô em coordenadas de

ZZ motor.

"Zé

'Zt

'Zi

Z L<end.inicial> <end.final> <CRLF>

' -y

Após este comando, a memória da tarefa é lis

tada com o mnemiônico das instruções e os seus

parâmetros em hexadecimal, sendo que se o có

digo encontrado for inválido, uma * mensagem

Z de erro é enviada e a listagem continua daque

Z la posição em diante.

Z - Q - Este comando serve para definir o valor de

^ freqüência máxima (FREQ) dos movimentos progra

mados até o próximo comando Q. Seu formato é

o seguinte:

Z

Z Q<valor da freqüência> <CRLF>

Z ^ P - Uma vez posicionado o robô, ao entrar-se com ^ o comando P, aquele ponto especificado pelas Z

coordenadas atuais e guardado como um comando iZ

z

Z , . •

'Z • '

z

tz ,.-

7Zj "-^ M - Termina o aprendizado e retorna o controle pa

:Q ra o programa monitor, mostrando o último en

dereço da memória de tarefa programada, para

um possível comando WRITE do monitor para saj^

var o programa aprendido.

Page 212: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

sz

T w

'Z

.187.

I - Além dos comandos de posicionamento do robô

mostrados acima, existe um vasto conjunto de

instruções que também podem ser colocadas na

_ memória de tarefa do robô e executadas pelo

~^ programa de execução a ser visto no próximo

sub-item. A definição de cada uma destas xr\B_

'Z truções e a sua finalidade e parâmetros estão

mostrados no Apêndice I deste trabalho, sendo

que elas podem ser divididas nas seguintes ca

tegorias:

a - Instruções de movimentação do robô.

b - Instruções de tratamento de linhas de sin

cronismos.

_ . c - Instruções de entrada e saída.

d - Instruções de controle de interrupção,

e - Instrução de controle de processamento,

Zj

:0

ZZ

„o

"Z - h - Instruções de conversão de formatos.

f - Instruções de desvios condicionais,

g - Instruções de atribuição.

i - Instruções de endereçamento indexado,

j - Instruções de operações aritmiéticas.

na memória de tarefa e o seu endereço é mo£

trado no terminal de vídeo para um possível

comando de retorno (W). i '

Page 213: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.188.

1 - Instruções de operações booleanas.

•Q . A função do comando I do programa de aprendi_

zado é colocar na memória de tarefa uma des

tas instruções de cada vez. Ao se teclar I,

_ o programa pede o código da instrução a ser

inserida (Apêndice I) e em seguida os parâ]Ti£

. tros daquela instrução especificada. Uma vez

completada a instrução, ela é mostrada no ter

:0 minai e o programa espera as teclas P para

programar a instrução ou a tecla Q para abor

tá-la e voltar para o aprendizado.

^ Um exemplo de uma utilização do programa de apren

dizado com os comandos mostrados acima pode ser visto na

listagem da figura 4.2.

Este programa de aprendizado definido acima permi

te utilizar-se extensivamente e com grande facilidade todos

os recursos do computador do nível O, sendo ainda bastante

fácil e eficiente de se programar tarefas complexas para o

robô do laboratório. «

Uma vez terminada a aprendizagem de uma tarefa,

pode-se armazená-la em um arquivo hexadecimal na memória

de disco do nível 1 de controle, pela utilização do comando

^ WRITE do monitor.

Page 214: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

..,y

'Z

' O

zz

.189.

.86800

D PROGRAMA DE APRENDIZADO

. =60 «80 í O «8020 «8030

Z ENTRE COM CÓDIGO DO COMANDO OB SET Oi

SET Oí REPROGRAMA Q=ABORTA 8040

Z » ENTRE COM CÓDIGO DO COMANDO OA UAIT 20

WAIT 0020 P-PROGRAMA Q^ABORTA 8042 *•

= 8000 «8045 «L 8000 8045

8000: MOVP 0080 8000 8000 8000 8000 8Ü00 8000 00 80í0: MOVP 0060 8íC0 8000 8000 8000 8000 8000 00 0020s MOUP 0060 8íC0 8Í3E 8000 8000 8000 8000 00 8030: MOVP 0060 OíCO 8Í3E 8000 82A0 7D60 8000 OQ 8040s SET Oí 8042: UAIT 0020 8045: MOVP 0060 9000 8000 8000 8000 8000 8000 00 «8055

.W8000 8055 :í08000004F800000800080008000a000800ü8000AÍ :Í08010004F6000C08Í0080008000000080008000FO :Í08020004F6000C08Í3E8Í008000800080008000AÍ :í08030004r6000C08í3E8í0080Aü82607DOD8DD092 : Í08040000B0Í.0A20004F600000800080008000804B

Z :068050000080008000002A :O0OOOO0íFF

^ ENTRE COM O NOME DE ARQUIVO TIPO HEX (R OU W) OU APR ( E D I T ) B:TESD3

Fig. 4.2 - Listagem de uma seção com o programa

de aprendizado.

Page 215: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.190,

4.2.4- Pixígraaa de execução de tarefas

CZ A finalidade deste programa é permitir a execução

;3 de uma tarefa já armazenada na memória de tarefa do robô.

:0

'O

'.-V

Esta tarefa pode ter sido aprendida pela utiliza

ção do programa de aprendizado ou criada pela linguagem de

alto nível para a programação de robôs industriais a ser

descrita no próximo capítulo.

Uma tarefa armazenada era arquivo hexadecimal na

memória de disco do nível 1 de controle pode ser carregada

na memória de tarefa do robô pela utilização do comando READ

do monitor.

São seis os comandos possíveis de serem entrados

no programa de execução de tarefas a saber:

Uma vez chamado o programia de execução de tare

'Z fas, ele realiza a iniciação de todas as portas e registros

do controlador do robô e im.prlme a seguinte mensagem no ter

. .-j minai de vídeo indicando que está pronto para receber coman

dos:

^ PROGRAMA DE EXECUÇÃO t '

' Q —

"'Z Comando de Calibração:

'•• H : Chama o programa de calibração do robô sem

alterar o conteúdo da memória de tarefa.

"Z

Comando de Listagem:

ZJ L<end.inicial> <end.final> <CRLF>

' L i s t a as instruções armazenadas na memória

:."J de tarefas desde a posição dada por <:end.

"Z

"O

Page 216: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z^

.191.

inicial> até a dada por < end. final > . Códj^

gos de operação inválidos geram . mensagens

"'•O - de erro.

'"'Zi

Zi

Z^

z^

Zj

Comando de execução passo a passo:

ZZj P : Este comando causa a execução de uma instru

-- ção do programa armazenado na memória de ta

refas e o retorno do controle para o progra

ma de execução. A instrução a ser executada

é listada, a execução é completada para ca

da vez que a tecla P for aper-tada.

'ZZJ

TZJ Comando Aprendizado:

Z~J A : A função deste comando é alterar uma deter

'Z minada instrução já armazenada na memória

;v de tarefa uo robô sem ser necessário ensi^

nar todo o programa de novo. Executa-se o

programa no modo passo a passo até a instru

ção imediatamente anterior à que se deseja

V~—^Z alterar seja executada. Então entra-se com

Z^ZZt a tecla A e o controle é transferido para

ZZZ'Z ° programa de aprendizado até que uma nova

instrução seja entrada (comando P do apren

dizado), quando o controle retorna para o

programa de execução. É importante que a

instrução a ser entrada ocupe o mesmo espa

Ç O de memória da instrução anterior, pois

y senão pode-se destruir outras instruções se

Z guintes ou deixar alguma sujeira na memória

de tarefa.

Comando de Execução:

E : Uma vez testado o programa passo a passo can

o comando P, ou alterado com o comando A,

Page 217: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

il 92

pode-se executar diretamente o programa com

o comando E. A execução é terminada ao ser

encontrada a instrução STOP (código OOH) que

faz com que o controle retorne ao programa

Z de execução.

.Z

"z

"Z

V

•V

:y

Comando Monitor:

M : Termina o programa de execução retornando o

controle para o programa monitor.

Uma seção de utilização do programma de execução

pode ser vista na figura 4.3 a seguir.

V O programa de execução é capaz de executar todas

as instruções mostradas no Apêndice I. Se durante a execu

ção da tarefa for encontrado um código de instrução inváli_

do, uma mensagem de erro é enviada para o temrinal e a

execução do programa é abor ,ada.

4.3 - PEO>GRiy; SAS EQ ííI\rEL 1 D E COFjTHOLE

As funções básicas previstas para o nível 1 de

controle, como mostradas no item 3.4, são as seguintes:

- Servir de infra-estrutura básica para o desen

•O volvimento de programas para os demais níveis de

---^ controle do laboratório e para ele próprio.

- Prover meios de comunicação serial com os outros

níveis.

- Dotar o laboratório de programas mais sofisti^

'O cados para programação de robôs industriais tais

ZJ como programas para transformação de coordena

Page 218: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.193,

G72Í3 ZZ PROGRAMA DE EXECUÇÃO

.... •TT»'

- z

—Z

•"V

• Q

. V

Zj

-l. 8ÜÜ0 8055

8000: MOVP 0080 8000 8000 8000 8000 8000 8000 00 80Í0: MOVP 0060 8íC0 8000 8000 8000 8000 8000 00 8020: MOVP 0060 81C0 8Í3E 8000 8000 8000 8000 00 8030: MOVP 0060 8íC0 8Í3E 8000 82A0 7D60 8000 00

ZS^ 8040: SET Oí ' 8042: WAIT 0020 8045: MOVP 0060 8000 8000 8000 8000 8000 8000 00 8055: STOP

801.0,: MOVP 0060 8iC0 8000 8000 8000 8000 8000 00

8020: MOVP 0060 8100 8i3E 8000 8000 8000 8000 00

8030: MOVP 0060 8iC0 8Í3E 8000 82A0 7D60 8000 00

— , ... V -

8040: SET Oi

'• 8042: WAIT 0020 *

ZrJZj 8045: MOVP 0060 8000 8000 8000 8000 8000 8000 00 8055: STOP EXECUÇÃO COMPLETADA PROGRAMA DE EXECUÇÃO

Fig. 4.3 - Seção de utilização do programa de

^ execução de tarefas utilizando o pro

- Q grama aprendido no suL-item anterior.

Page 219: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.194,

das, linguagens de alto nível para programação

de robôs, rotinas de interpelação e desenvolvi^

• mento de outros sensores.

.'lO

Neste item nos dedicaremos a apresentar os progra

mas suporte disponíveis para a implem.entação das duas pri^

meiras funções listadas acima. As rotinas de transformação "1—<y

^ de coordenadas serão apresentados no item 4.4 a seguir e a

linguagem de alto nível para programiação de robôs, junto

T^-Z com as rotinas de interpelação serão vistas no próximo capí

IT.Q tulo. Os programas para desenvolvimento de outros sensores

'• ^ são objetos de outros trabalhos sendo realizados no labora

tório.

"Z Passaremos neste item a descrever os programas su

portes para desenvolvimento de novos programas para o ní_

vel 1 e outros níveis de controle.

'.O

4.3.1 - PRTD.'gra.i3a "Bootstrap" e pr-ograiaa MOlTíITOR

O programa "Bootstrap" e MONITOR estão * armazena

dos em memória EPROM e ocupam os primeiros 4 Kbytes de memo

,-O ria do computador do nível 1, sendo o início do "Bootstrap"

a posição OOOOH de memória.

Desta forma, sempre ao ligar-se o computador de

^ nível 1 ou ao apertarmos a tecla RESET do nível 1, execu

ta-se o programa "Bootstrap". Este programa executa as s£

^ guintes ações mostradas no algoritmo a seguir:

:'Zi .Z - Programa "Bootstrap":

1 - Se autocopia e copia o programa MONITOR para

um banco de memoria RAM único r..(fora dos

Page 220: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.195.

2 - Chaveia o banco de memória EPROM inicial para

memória RAM (Fig. 3.15).

3 - Verifica se a unidade de disco A está pronta.

Se estiver pronta então faça:

Tenta copiar o sistema Operacional.

Se conseguiu então transfere o controle

para o slstemia op£

racional.

senão vai para 4.

4 - Recopia o MONITOR para os primeiros 2 Kbytes

de memória RAM:

5 - Transfere o controle para o programa MONITOR.

6 - Fim.

7- Q

-O

o

Assim, sempre ao se ligar o sistema ou apertar-se

o botão RESET teremos ativo no nível 1 ou o sistema opera

clonal, se o disco de sistema estiver colocado na unidade A

de disco ou o programa MONITOR caso haja algum problema na

carga do sistema operacional.

O programa MONITOR possui os mesmos comandos úes

critos para o programa MONITOR do nível O, apresentado no

sub-item 4.2.1.

O sistema operacional será descrito no sub-item

a seguir.

16 Kbytes iniciais que são chaveados por me_

mória RAI^) .

Page 221: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.196.

-z

- SBOD : Sistema Básico de Operação de Disco,

- PCT : Processador de Comandos de Terminal.

- ATP : Area Transitoria de Programas.

a configuração de memoria para um sistema com

-Q 64 Kbytes de memoria é mostrada na figura 4.4 a seguir:

-O zj •

Z o processador de comandos do terminal ocupa as po

' Zj sições de E400H até EBFFH e o SBES e SBOD ocupam de ECOOH

As 2 5 6 primeiras posições de memoria são reserva

das para os parâmetros do sistema sendo que 1 2 8 bytes são

dedicados a um "buffer" de leitura e escrita em disco.

a FFFFH.

A área do PCT pode, durante a execução de progra

mas, ser ocupada pelo programa do usuário, desde que ao fi

-•^ 4 . 3 . 2 - Sisteii7:a cperacional do mí-^el 1 de controle

; 0_ sistema operacional implementado no computador

-•^j do nível 1 de controle é compatível com o sistema operado

nal CP/M ("Control Program for Microcomputers") versão 2.2

_ da Digital Research [ 1 4 ] .

A principal função do sistema operacional é tor

'Z nar disponível de uma forma simples os recursos de periférj^

eos e escrita e leitura de discos do sistema.

Como o C P / M , o sistema operacional é composto de

quatro partes a saber:

- SBES : Sistema Básico de Entrada e Saída.

Page 222: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.197,

'-.Zi

7Zy

-Z

zZ

ZZ-j

•Zj

V

«y

"y

FFFFH:

ECOOH:

E400H:

lOOH:

OH:

SBES + SBOD

PCT

ATP

PARÂMETROS DO SISTEMA

Fig. 4.4 - Configuração de memória do comiputador

do nível 1 com o sistema operacional

carregado.

nal seja executado uma reiniciação do sistema (Desvio para

a posição 0 H ) .

Desta forma, um programa que ocupe até 59 Kbytes

de miemória pode estar carregado ao MIESMO tempo na memória

do computador do nível 1.

Facilidades disponíveis para o usuário podem ser

ZZ^

Page 223: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.198,

divididas em dois grupos:

-, Operações de entrada e saída simples

Z Incluídas neste grupo estão a leitura de um ca

racter no terminal, a escrita de um caracter

no terminal ou na impressora, verificação do

status de dispositivos de entrada e saída, im

primir um conjunto de caracteres na impressora e

1er um conjunto de caracteres do terminal,entre

outras.

zZ

- Operações de escrita e leitura de disco

Temos neste grupo a iniciação do sistema do

[Z disco, seleção do acionador, criação, abertura,

fechamento, apagamento, mudança de nome, leitu

ra e escrita aleatória ou seqüencial em arqui_

_ vos, colocação de endereços de acesso direto à

mem.ória etc.

.'-V Todas estas funções são executáveis com una ini^

•^j ciàção de parâmetros e uma chamada de subrotina para o pon

- to de entrada localizado na posição 0005H. Maiores informa

^ ções sobre estas rotinas disponíveis podem -ser encontra

das em [14 ] .

Todos os arquivos do sistema operacional são

"Z catalogados no diretório com um nome de até 8 caracteres

ZZ começados por letra e uma extensão de até 3 caracteres.

Comandos intrínsecos para ler o diretório (DIR) J

escrever um arquivo ASCII no terminal (TYPE), mudar de nome

um determinado arquivo (REN), apagar um arquivo (ERA) e

guardar um programa da ATP em disco (SAVE) são im.plementa

Z dos no próprio sistema operacional.

Page 224: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

î

î

V

V

1

.199

Outros comandos para copiar arquivos, editar ar

quivos, verificar espaço e tamanho de arquivos em disco,

testar programas, transformar programas em formato hexade

cimal para formato executável e etc, são também disponíveis

como comandos transitórios.

Informações de como utilizar estes comandos e

^ ^ suas opções estão descritos em [63 ] e [25 ] , sendo que não

nos deterem.os m.ais sobre o sistema operacional do nível 1

de controle.

Importante é frizar que qualquer programa ou lin

guagem executável no sistema operacional CP/M versão 2.2 po

de ser utilizado no computador do nível 1 de controle. Unia

descrição de alguns destes programas existentes será dada

no sub-item 4.3.4 deste capítulo.

4 . 3 . 3 - Frog.ra-a for^rataidor de discos

Este programa foi desenvolvido em FORTRAN com o

^ objetivo de iniciar um disco não formatado ou apagar com

pie tamente um» disco fazendo um.a nova formatação do mesmo.

Ele está gravado em um arquivo com o nome FORMA

TA.COM e pode ser utilizado para formatar discos tanto na

unidade A como na unidade B, sendo que para gravar o sist£

ma no disco formiatado deve-se utilizar o programa gerador

de sistema (SYSGEN).

Uma vez formatadas todas as trilhas o programa ve

rifica uma a uma para garantir uma formatação correta. Ura

disco gravado pode tar;bém ser verificado tirando-se o selo

que peiiiiJ t.e a escrita no disco e chamando o programa forma

-T^ tador para testar o disco, i

Page 225: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.200,

A formatação dos discos é feita segundo o padrão

IBM 3740 para discos de 8 polegadas face e densidade sim

pies.

4.3.4 - Prograüsas suportes e lirrguagens de prograüisação de

laicrocc - ü i i p t E t a d o r e s dispomivêis

Como dito anteriormente, qualquer programa compa

tível com o sistemia operacional CP/M pode ser utilizado no

computador do nível 1 do laboratório desde que ele esteja

armazenado em disco de 8 polegadas densidade simples e face

simples, em código do processador 8085.

Entre os vários progra.mas existentes, compatíveis

com o sistemia operacional CP/M podemos citar:

- Programa DDT ("dynamic debugging tool'!*)

Permite executar program.as passo a passo, com

pontos de paradas, executar apenas uma parte do

""Z programa, listar valores de memória e de regi£

*- Zj tradores, listar instruções em código mnemonic

- . -^ C O etc, sendo um programa completo para testes

de programa [^3].

- Programas editores ED e WORDSTAR

São programas que permitem a criação e modifica

ção de arquivos em disco sendo que o último per

mite trabalhar com arquivos documentos e não do

cumentos tendo facilidades para imiprimir, apa

-j* ga.r, copiar e uma série de comandos para proces

z:

•ZJ

""^ Vários discos podem ser formatados sendo que o

programa de formatação retorna o controle para o sistema

;:Q "" operacional ao se apertar a tecla ESC.

Page 226: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.201.

4.3.5 - Pi ogr-aiaa eciulador de terminal e editor de rig ;¿Ar£S

Como mostrado no item 4.2, os programas do nivel

O de controle são ativados a partir do terminal de vídeo do

nível 1 com um programa emulador de terminal e editor de

V figuras chamado MONITED, desenvolvido para a comunicação en

tre os dois níveis.

Como o próprio título deste sub-item deixa claro,

são duas as funções deste programa MONITED:

samento de palavras [25] e [39].

- Prograrrias montadores ASM e macromontadores MBO

[49].

- Linguagem de programação FORTRAN IV [SO].

- Linguagem C de programação.

- Linguagem COBOL.

- Linguagem PASCAL [15].

- Linguagem BASIC interpretado e compilado [40].

'•y - Linguagem PL/I.

- Programa BBII para gerenciamento de banco de

dados.

"''""" e vários outros programas aplicativos compatíveis o :com o

CP/M disponíveis no mercado de programas. i,

-O

Page 227: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-.4

.202

1 - Fazer com que o computador do nível 1 emule

um terminal para o computador do nível O, per

IZZ-Z . mitindo ainda que este tenha acesso aos recur

\.ZZ SOS do nível 1 (principalmente disco e impres^

^ - 3 sora).

\-:Z F 2 - Implementar um editor de figuras para a lin

f""'^ guagem de alto nível a ser vista no próximo

capítulo.

f ZZZ-Z Para a primeira função, ó programa implementado

simplesmente transmite para o nível O qualquer caracter en

trado no teclado do terminal de vídeo e mostra no terminal

qualquer caracter recebido do nível O de controle.

Além desta função, o programa reconhece os coman

dos READ e WRITE do monitor do nível O e, para o comando

READ, solicita o nome do arquivo hexadecimal a ser lido, e

uma vez especificado, acessa o arquivo e o transmite para o

nível O. Para o comando WRITE, o programa armazena todos os

caracteres recebidos do nível O e depois solicita o nome do

arquivo onde serão armazenado os dados recebidos, *e uma vez

especificado o arquivo, guarda os dados naquele arquivo.

:j "j A tecla control-N ("N) faz com que o programa emu

lador termine, passando o controle para o sistema operado

^ nal do nível 1.

Ao receber um control--P ("P) do nível O, o progra

ma monitor redireciona todos os dados recebidos do nível

Z 0-^para a impressora até receber outro caracter "P.

A segunda função do programa, como editor de fi

^ guras para a linguagem de alto nível, deve ser utilizada em

conjunto com o programa de aprendizado ativo no nível O de

^ controle.

C C : , Í ; : C . . .•.rz.c.UL zi L M E R G : A N U C L E A R / S P

Page 228: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.203.

As figuras possíveis de serem editadas são: PON

:'ZJ TOS, LINHAS, ClCULOS e TRAJETÓRIAS.

Uma vez ativados os programas KONITED no nivel 1

-j de controle e o programa de aprendizado no nivel O, as se_

_ guintes teclas são utilizadas pai-a a edição de figuras:

r o

ZZ

-V

ZZj

"Z^

o "O

- Control-E ( E ) :

Inicia a edição de um arquivo de figuras, se ne

nhum estiver em edição. O programa solicita a

O especificação do nome do arquivo a ser editado.

Q Se o arquivo já existir o programa coloca as no

vas figuras no final do arquivo sem destruir as

já existentes. Se o arquivo não existir, um ar

quivo é criado com aquele nome e as figuras

editadas serão colocadas nele. A extensão de um

arquivo criado por este editor ,<--.e será sempre

. APR.

- Control-F ("F):

..V Termina a edição do arquivo corrente, permltln

do que outro arquivo possa ser editado.

Uma vez que um determinado arquivo esteja sendo

editado, as seguintes teclas são comandos para o editor de

figuras:

- Control-P ("P):

V Avisa ao editor de figuras que um ponto será

7J editado. Ao se entrar com esta tecla, o editor

solicita o nome daquele ponto devendo ser espe_

cificado um nome com até 8 caracteres, sendo o

primeiro uma letra. Durante a edição todas as

outras teclas do programa de aprendizado funci£

nam como descritas naquele programa. Desta for

Page 229: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.204 .

ma, pode-se posicionar o robô no ponto a ser

Z^ editado com aquele nome e tecla-se Control-W

Z-Z " • (" W) para armazená-lo.

--' - Control-V/ ("W) :

ZZj Avisa ao editor que aquele ponto onde esta o

robô é um ponto da figura em edição. Se a figu

ra for um ponto, basta um para terminar a

edição do ponto, se for uma linha, dois são

necessários, se um círculo três e se for uma tra

- jetória são necessários tantos "W quantos forem

os pontos da trajetória.

':7.Z .. - - Control-L ("L) :

Avisa ao editor que uma linha será editada. O

editor solicita o nome da linha e espera . dois

referentes aos dois pontos no espaço do robô

que determinam aquela linha.

-y - Control-C C^C) :

Edita um círculo com o nome especifioiado e os

3 três pontos correspondentes às posições do robô

.Zj ao serem entrados os três comandos "V/.

- Control-T C^T) :

Edita uma trajetória. Uma trajetória é definida

como sendo um conjunto de N pontos (N>=1), sen

do que o editor solicita o nome ' e o número

de pontos daquela trajetória. A partir daí, fi

ca esperando a entrada de N comandos para es

pecificar os N pontos correspondentes àquela

trajetória.

Tantas figuras quanto se queira podem ser armaze

Page 230: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"-O

-.hi

"Z

•"O .o

'Z

.205.

nadas em um arquivo. Uma vez terminada a edição do arqui_

vo, a tecla ' N retorna o comando para o sistema operacional

O do nível 1 de controle e o arquivo editado pode ser visto

Q com o comando TYPE do sistema operacional.

O arquivo criado pelo editor de figuras é do tipo

texto sendo que ele pode ser modificado, acrescentado, fi

guras podem ser apagadas, coordenadas alteradas etc, com

O qualquer um dos editores de textos disponíveis no labora

:¿j ' tório. .

A figura 4.5 mostra uma.seção com o editor de

figuras MONITED e o arquivo correspondente criado.

Como estas figuras e este arquivo serão utiliza

Zi dos pela linguagem de alto nível desenvolvida, será mostra

do no capítulo seguinte.

Os pontos componentes das figuras em arquivos

criados pelo editor de figuras terão sempre o atributo JUNC

para especificar que as coordenadas são coordenadas de jun

ção. *

4.4 - TEAííSFOREíAÇM DE C(D>ORB'EIÍADAS

Para a implementação das rotinas de transformação

de coordenadas foi considerado o modelo cinemático do robó

com um sistema de coordenadas cartesianas e um sistema de

coordenadas de junção como mostrado na figura 4.6. O robô

pode ser visto como o conjunto de segmentos retos articula

dos com as dimensões também mostradas na referida figura.

A especificação da posição e orientação da mão-

ferramenta, no ponto T nos dois sistemas de coordenadas é:

Page 231: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

>

• -4

.206

.G6B00 PROGRAMA DE APRENDIZADO

ZJ E D I T O R DE F I G U R A S

E N T R E COM 0 NOME DE A R Q U I V O T I R O HEX ( R OU W) OU APR ( E D I T ) B : F I G U R A

A R Q U I V O N O V O

e d i t a n d o . . .

e n t r e com nome do ronto ( 8 c a r a c t . max) ORIGEM PONTO e d i t a d o *

Z ENTRE COM NOME DA LINHA <8 CARACT. MAX) RETA « « LINHA EDITADA

ENTRE COM NOME DO CIRCULO (8 CARACT. MAX) SOLDA

CIRCULO EDITADO ~j *

ENTRE COM NOME DA TRAJETÓRIA (8 CARACT. MAX) TRAJT

ENTRE COM NUMERO DE PONTOS DA TRAJETÓRIA 03

TRAJETÓRIA EDITADA

FIM DA EDICAO

TYPE B:FIGURA.APR

POINT ORIGEM JUNC

S>8000 T,8000 ^8000 9>8000 ^,8000 9>8000

RETA O JUNC

S>8D00 <r>8000 gi8000 Í 8 0 0 0 S8000 ÍSOOO Í>80D0 9Í8000 S8000 'B80Q0 'J>8000 Í80ÜO CIRCLE SOLDA JUNC 9)8000 Í 8 0 0 0 T,8000 Î8000 Î8000 T,8000 S7F98 SeOOO Ï80U0 58000 <j;8000 9)8000 SÍ7F98 9Í8087 9)8000 3,8000 S8Q00 Í 8000 TRAJECT TRAJT 03 JUNC 9)7F98 9-)8087 T)8000 9Í8000 SiOOQO Ï S O O O Î808F 9ie087 <Í80Ü0 SiBOOO SBOÜO 18000 Î.80SF Ï8087 SiSOOO 9Í80D0 9Í7F2E 9)8000

Fig. 4.5 - Seção de edição de figuras e o arquivo

correspondente criado pelo editor.

MONITED

EMULADOR DE COMANDOS PARA MONITOR NIVEL O

APERTE RESET NIVEL O E TECLE ESPAÇO « ROBOVOO

Page 232: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-Z

J

ZJ

•—\

.207.

- Solução direta : Transforma a posição dada em

coordenadas de junção para coordenadas cartesia

nas.

"Z

' - ^

Para que estas rotinas possam ser diretajnente ut_i

::ZZi lizáveis no laboratório, são ainda necessárias as seguintes

sub-rotinas:

- Solução inversa : Converte um ponto dado em coor

denadas cartesianas para coordenadas de junção.

Z ANGMOT : Converte um ponto dado em coordenadas de

- junção para as coordenadas de motor utilizáveis

MOTANG : Converte um ponto dado em coordenadas de

motores para as coordenadas de junção dò robó.

pelo controlador do robô.

TESTATING : Testa se um ponto dado em coordenadas,

de junção e atingível pelo robô, ou seja, se este

ponto, está dentro do seu volume de trabalho esp£

Zi4 cificado no item 2.3.

Todas estas rotinas e sub-rotinas serão vistas cem

detalhes no decorrer deste item.

junção : T = ( a , B, Y , P , r)

cartesiano : T = (x, y, z, p, r)

O objetivo deste item é prover um conjunto de

fórmulas matem.áticas e duas rotinas que realizem a transfer

mação da posição de um sistema para o outro, rotinas estas

que implementami as soluções do robô chamadas de [l7].

Page 233: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

• Z

.208,

Zí>

-•al'

I O

¡'0

- o

l O

O 'O 'O

Fig. 4.6 - Modelo cinemático utilizado pelas roti

nas de transformação de coordenadas.

.•4

Page 234: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-O

-O

y

" O

.209

No primeiro sub-item apresentaremos a dedução das

equações matemáticas das duas soluções para o robô desenvol_

vido e na seqüência apresentaremos as rotinas escritas em

PASCAL para os vários procedimentos.

4.4.1 - KesQjltiçao das equaçõss cineiaáticas para o rctoô do

laboratório

- Solução direta:

Para a solução direta, o ponto T onde esta pos3^

clonada e orientada a mão-ferramenta do robô é dado por:

T = ( o t , B , Y . P . 0"de

a = Angulo em radíanos do giro do braço.

3 = Angulo em radíanos da elevação do braço.

•y = Ângulo em radíanos da elevação do ante-braço.

p = Ângulo em radíanos da elevação do punho.

r = Ângulo em radíanos da rotação do punho.

A figura 4.7 a seguir apresenta o posicionamento

do robô em um ponto T qualquer, tendo o plano do braço e

ante-braço coincidente com o plano do papel.

A solução direta do robô consiste em determinar

mos o ponto T em coordenadas cartesianas, ou seja,

T = (x, y, z, p, r)

Page 235: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.210,

cs-

Fig. 4.7 - Vista lateral do robô posicionado em

um ponto T onde são dadas as suas coor

denadas de junção.

-vi

Os ângulos p e r são os mesmo do sistema de coor

denadas de junção.

O primeiro passo é determinarmos a altura z do

ponto T e a distância d da projeção do ponto T no plano XY

até a origem O do sistema de coordenadas cartesianas.

Page 236: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

r,0

-y

Logo,

z = h + KN + GI + ET ( 4 . 1 )

-O d = MN + KG + IE ( 4 . 2 )

"O donde,

onde

z = h + b.sen(B) + a.sen(Y) + l.sen(p) (4.3)

d = b.cos(B) + a.cos(Y) + l.cos(p) ( 4 . 4 )

Zé Do triângulo OFy temos que:

X = d.sen(a) ( 4 . 5 )

y = d.cos(ci) ( 4 . 6 ) 'y ' i

Z Substituindo ( 4 . 4 ) em ( 4 . 5 ) e ( 4 . 6 ) temos:

X = sen(oi). (b.cos(3) + a.cos(Y) + l.cos(p)) ( 4 . 7 )

y = cos(a).(b.cos(6) + a.cos(Y) + l.cos(p)) ( 4 . 8 )

Assim a solução direta é dada por

T = (x, y, z, p, r)

X é dado por ( 4 . 7 ) ,

Temos que z é a soma das contribuições verticais

dos vários segmentos do robô e d é a soma das contribuições

... Q ' horizontais destes mesmos segmentos.

~ ^ .211.

Page 237: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•-T-â • z é dado por (4.3) e

VO :.::0 P = P

O

. o

• y

•TOt

"O

.212,

r = r.

- Solução inversa:

Para esta solução consideramos o ponto T dado por

T = ( x , y , z, p, r)

e desejamos encontrar as coordenadas de junção deste ponto

^ a saber:

T = ( a , B , Y , P, J-'- )

Para a solução inversa utilizamos a figura 4.8 pa

ra servir de base para as deduções.

Da figura temos:

a = a r c t a n ( x / y ) sendo que (4.9)

se X = y = O então assumimos que oí = O.

Os segmentos hl=IN e ã^MN são dados por:

hl = z - l.sen(p) - h (4.10)

x ' + y ^ - l.cos(p) (4.11)

y é dado por (4.8),

Page 238: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.213,

-S

-O -O

"O •Z

-O

"O

•O

:0

'O

:0

'.Zà

Fig. 4.8 - Figura para a solução inversa do robô

desenvolvido.

Do triangulo retângulo MNI temos que:

o + hl^' e

e = arctan(hl/d)

(4.12)

(4.13)

Desta forma, para o triangulo líKI temos os três

lados conhecidos (b, a, o) e desejamos conhecer o ângulo R.

A trigonometria nos mostra que se o<b+a, ou seja,

o triangulo MKI existe, temos:

Page 239: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"Z

-O

•V

"Z

"O "O

.214.

tg(R/2) = rc/(pe - a) (4.14)

onde re é o raio da circunferencia inscrita ao triángulo e pe o semiperímetro do mesmo [ip].

pe = (a + b + o)/2 (4.15)

4 re (pe-a) (pe-b) (pe-o)/pe (4.16)

7.Z Substituindo (4.15) e (4.16) em (4.14) temos:

tg(R/2) = / ( (a+o-b) (a+b-o) )/(a+b+o) (b+o-a) ) (4,17)

logo,

O R - 2.arctan(A/((a+o-b)(a+b-o))/(a+b+o)(b+o-a))) O (4.18)

Da figura 4.8 podemos ver que

B = R + e (4.19) *

"'• y Dos triângulos MKC e KGI temos que:

•-- d = b.cos(B) + a.cos(Y) (4.20) rO

:::Z - a.sen{y) = hl - b.sen(B) {A. 22)

hl = b.sen(3) + a.sen(Y) (4.21)

logo.

a.cos(Y) = d - b.cos(B) (4.23)

Dividindo (4,22) por (4.23) temos:

Page 240: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.215.

: ~- Y - arctan( (hl-b.sen(B ) )/(d-b.cos(í3 )) (4.25)

-V

tan(Y) - (hl-b.sen(B))/(d-b.cos(B)) (4.24)

onde temos que se tanto numerador como o denominador forem

menores do que O teremos

Y = Y ~ e se

o denominador for igual a O então

Y = T r/2 se hl-b.sen(3) > O e

Y = - T r / 2 se hl-b.sen(B) < O

Assim, a solução inversa é dada por

T = (a, B, Y. P» r) onde

a é calculado por (4.9),

3 é calculado por (4.19), *

Y é calculado por (4,25) e

P = P

r = r

V 4.4.2- Transfonsacsio de coordenadas de juoção para ' coorde

E x a d a s ; de E s o t o r e vice-versa

Como visto, o ponto de origem é definido com:

Page 241: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Oy

- y

;0

.216.

Porig = ( a , 3 , Y , P » r ) =

Porig = (0°, 45°, -45°, 0°, 0°).

0 programa de aprendizado e de execução conside

ram este ponto em coordenadas de motor como sendo

Porig = (8000H, BOOOH, BOOOH, 8000H, 8000H)

Por coordenadas de motor entendemos os valores in

teiroE utilizados pelo sistema de controle para o posicio

namento do robô. Como visto no capítulo II, o sistema de

acionamento divide a circunferência por 12000 partes para

todos os graus de liberdade, o que faz com que.a cada pulso

do motor corresponda a;

1 pulso = 360°/l200 = 0,03° (4.26)

Na tabela 4.1 temos a relação do sentido de varia

ção dos vários graus de liberdade em relação à variação

das coordenadas de motor para cada um deles.

*

Desta tabela e da equação (4.26) miais o valor das

coordenadas de motor e de junção para o ponto de origem, po_

demos concluir que as relações entre os ângulos de junção

e as coordenadas de motor são:

a = 0,03°.(MOTA - BOOOH) (4.27)

3 = O,03°.(MOTB - BOOOH) + 45° (4.28)

Y = 0,03°.(BOOOH - MOTC) - 45° (4.29)

p = 0,015°.(MOTE - MOTD) (4.30)

r = O,015°.(MOTE + MOTD) (4.31)

Page 242: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.217.

'O

"'" Destas equações podemos tii- ar as relações entre as

coordenadas de motor e os ângulos de junção para os varios

-.srO graus de liberdade.

" O

"Z

ZZ ZÉ

Z'-Za

-ZZ.ZZ

MOTA = INTEIR0(l00.a/3 + BOOOH) (4.32)

MOTB = INTEIROdOO. (3-45)/3 + BOOOH) (4.33)

MOTC = INTEIR0(8000H - 100.(Y+45)/3) (4.34)

MOTD = INTEIR0(8000H - 100.(9p-r)/3) (4.35)

MOTE = INTEIR0(8000H + 100.(p+r)/3) (4.36)

onde a, 8, Y> P» r são dados em graus. *

.y Zi Assim três rotinas foram desenvolvidas:

O T E S T A T I N G ( A N G ) :

> ^ A N G é um vetor real de coordenadas de junção. E £

ta rotina testa se todos os ângulos de A N G levam

o robô para um ponto dentro do seu volume de tra

balho. O resultado, verdadeiro ou falso é coloca

' do em uma variável booleana global ( A T I N G ) . No

y vetor ANG temos que ANG(l)=a, ANG(2)=3, ANG(3)=Y,

Z A N G ( 4 ) - P e ANG(5)=r.

• • - O n d e MOTA, MOTB, MOTC, MOTD e MOTE são as coorde

- r - õ nadas de motor dos motores A, B, C, D e E respectivamente e

.:, O a , B , Y » P > r são dados em graus, sendo que os seus limites

mecânicos estão mostrados na tabela 2.5 onde limitamos para

estas rotinas o ângulo de rotação da mão-ferramenta supon

do n = 2.

Page 243: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

z 3

.218.

:.:;y MOTANG(MOT,ANG):

MOT é um vetor inteiro de coordenadas de motores.

Esta rotina transforma os valores de coordenadas

de motores em MOT (MOT( 1 ) =:MOTA, M0T(2)=M0TB, MOT

(3)=M0TC, M0T(4)=M0TD, M0T(5)=M0TE) nos ângulos de

junção correspondente e testa se 0 resultado é

um ponto atingível.

'".•RO

ANGMOT(ANG,MOT):

: R . O Realiza 0 inverso de MOTANG , ou seja, testa se

as coordenadas de junção em. ANG representam um pon

to atingível pelo robô e se for, coloca os valo

res correspondentes às coordenadas de motor em

-V MOT.

" O

Uma listagem destas três rotinas está mostrada

na figura 4.9 a seguir, sendo que a codificação foi feita

em PASCAL e as definições de constantes e variáveis estão no

Início da listagem, sendo válidas para todas as rotinas des

te item.

:)

: o 4. 4.3 - TransfojL'îiiaç.ao de C C O R D E F I I A D R T S de J U F B Ç S O para coorde

ïïiadas cartesianas

" O

" O

Esta transformação de coordenadas é realizada

pela rotina abaixo:

JUCART(MOT,COOR):

MOT é um vetor de coordenadas de motor e COOR é

" • . ' O um vetor real de coordenadas cartesianas sendo

- " O que, COOR(l)=x, COOR(2)=yCOOR(3)=z, C00R(4)=p,

. 0

: 0

C00R(5)=r. Nesta rotina chajria-se inicialmente a . 0

: 0 rotina MOTANG e então aplica-se as equações desen

' 0

" •RO -

ro

Page 244: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

7^

rõ .219.

'O MODULE TRANSCOR; CONST PI= -3. Í4i5?27y

B=344.(3; A-297.0;

-O L=i47.0j

TO Tí0G--=0.Õ3-T200=^D.0ííi: K = 33. 33333: P li 80=^0. 01:^45329: P 12--= í .570796; HBAL=ia23.0 5 AMB=64i.O:

•Z^ AMEB = -47.Ó-BHEA^47.0-

—^ MPI2—Í .5:^0796; Cí 80^:57. 29578;

T-v ' TYPE COORD = ARRAYCÍ..61 OF REAL; MOTOR = ARRAY Í : Í..6: OF INTEÓER;

«-K- K « « - J f ii « « ii K íí- «•« * «•«• ii ii ü K-«• ) ( -;<• • « • « K- ii ii ii ii ii ii ii a ii -» ii ) VAR ATING: EXTERNAL BOOLEAN:

, - {aHii -)!• H -H-« •« • « • « • ) ! • « « « - K ii ii ii a •¥.• ii -K- ii ii ii •><• tt •>(• ii ii ii -Á- ü- ii ii « ü * -K- ii ) PROCEDURE TESTATING<VAR ANG ÍCOORD): BEGIN ATING:-TRUE; IF

O If' ]: F < A N G C 31< - A N G C 2 3 - í 2 o ) O R < A N G i: 31 > A N G C 21 > T H É N ' A TI ís! G: = F- A L 8 E IF (ANGI:41<=:ANG1:3-J-9D)0R(ANG!:4:J>ANGí;3H90) ti-ien ATINGS-FALÔE? IF (ANGC53<--360)0R<ANGC51>360) THEN ATINGs =^FALSE; END; PROCEDURE MOTANG(VAR MOT:MOTOR;

O VAR ANG:COORD í ; BEGIN ANGL" í 1: -Ti00« <MOTC i 1 -1) ; ANGr21: =-T í OO-h (MOTC21 -1) +45; ANGC 33 s =Tí 00« <I-MOTC31)-45 :

y ANGC4i:=T200«(M0Tr:5:i~M0TC4fl> ; i A N G C 5 : : 7- 2 O O « ( M O 7 C 5 :i M O T C 4 3 ) = TESTATING( ANG) ; END;

_ ( rr ¥ : « « í< -« ii ii V: )(• « « « « « « V 4r « 5(-« « « « «ÍK- )f « « X « « « * « « K í( ) PROCEDURE ANGMOKVAR ANGsCOORD;

VAR MOT: MOTOR); BEGIN TESTATING(ANG);

O IF ATING THEN BEGIN

- MOTCíl:=I+ROUND(K«ANGCil)-M0TC2l: = I + R0UND(K«(ANGC21-45)) ;

^ M0TC31: = I-R0ÜND(l<«(ANGC31 + 45) ) í M0TC4l: = I-R0UND(K«(ANGC41~ANGCS-J) ) ; M0TC5l: = I+R0UND(i<«(AN8C41+ANGC51) ) ;

O END; END;

^ ( « « « « « « « « « « « « « « « « « « « « « « « » « « « « « « í í « « « « X « « « « « « « « « « « « « « í 4 « í t )

V - •

'O

Fig. 4.9 - Rotinas TESTATING, MOTANG e ANGMOT pa

^ ra teste de atingibilidade e conversão

"" de coordenadas de motor para coordena

-y das de junção e vice-versa.

:0

'O ' • • -

Page 245: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•y

V

• V

•y -.V

.220.

volvidas em 4.4.1 para a solução direta do robô.

"'-' ' -Esta rotina implementada em PASCAL está mostrada

VO na figura 4.10.

T Q

PROCEDURE JUCARKUAR MOTs hOTOR y VAR COOR: COORD);

VAR P,D,TETAC:REAL; BEGIN

v NOTANG(MOT,COOR); IF NOT ATING THEN EXIT ELSE

-y BEGIN P:-C00RC43«PIÍ80; COOR C11 : = (COOR Li 1«P1180); C00R[:21 ::=(C00RL21«PI180) ; TETAC s = < COOR C31;!P1180) ;

-y COOR 1131 : : H+B 1N ( COOR f. 21 ) + A«81N ( TETAC ) +L«81N ( P ) ; D : -B-KCOS ( COOR 1:2:J ) +AÍ!-C0G ( TETAC ) +L-XC03 ( P ) ; C00R[:2JS-D*C0S(C00RCÍ1) ; C00R1;Í:I n:n:D»si>.HC00RCí D ) ; END; END;

«• « ¥: « « ¥: Í<- « « -K- ÍÍ IC- « « « V: X « K «• Í I « « « K « « X « I{ K « )

Fig. 4.10 - Rotina para transformar um ponto em

coordenadas de m»otor (junção) em coor

denadas cartesianas.

Page 246: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3 T^ ' -

m _ 4.4.4 - Transfornaacao de coordeimadas cartesianas para coor

denadas'de junção

Q Esta transformação é realizada pela rotina/

CARTJU(COOR,MOT):

-r^ Como mostrado na figura 4.11, onde se encontra a

implementação em PASCAL desta rotina, inicialmen

te aplica-se as equações da solução inversa àe_

senvolvidas em 4.4.1 e uma vez calculadas as coor

• denadas de junção é chamada a rotina ANGMOT para

O termos em MOT as coordenadas de motor equivalente

O . o ponto cartesiano inicialmente em COOR.

"Z É importante frizar que todas estas rotinas encon

_ tram-se implementadas em um único módulo separado, compila

do em separado e possível de ser ligado a qualquer programa

do nivel 1 que necessite uma tra.nsf ormação de coordenadas pa

•y ra o robo desenvolvido.

' Outra característica importante destas rg)tinas é

que as dependencias de parâmetros físicos do robó estão to

das concentradas nestas rotinas, sendo que se alterarmos

estes parâmetros do robo, ou mesmo se desejarmos utilizar

os programas para outro robo, apenas estas rotinas devem

•y

•V ser alteradas.

4.5 - amciÀssm

Neste capítulo nos dedicajDOs a apresentar os pro

gramas suporte para o laboratório LÍDER, tanto para o nível

O de controle, dedicado especificamente ao acionamento, p£

riféricos e sistema de realimentaçao do robô, como para o

nível 1 de controle, voltado para prover a infra-estrutura

Page 247: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

',:0

'Z

« 222,

..J

.V

'..V

"Z

• ZJ

Fig. 4.11 - Rotina que converte as coordenadas de

um ponto no sistema cartesiano para

as coordenadas de junção e em seguida

para as de motor.

CQ:::,ZZ:Z i ' T C C . : : ; L 'ÒZ l ; : E R G : A M U C L E A R / S P

;;;to

:;s--'0 procedure cartju(var coor: coord; VAR MOT: MOTOR);

^ VAR TETA, ALFA, BETA, GAMA, D,H1 ,P , O, R: REAL; BEGIN,

^ IF (CÒ0RCi3=--0) AND(C0ORC23-0) THEN BEGIN ALFA:=-PI2;

O IF C0ORL"4:i-9O THEN IF C00RL33OHBAL THEN BEGIN ATING:^=FALSE; EXIT; END;

^ END ELGE IF C00RL-2I--0 THEN

BEGIN ATINGn-FALSE; EXIT; END ELSE

ALFA : =--:ARCTAN (COOR C i J /COOR C 2:1) ; P:=-C00Rr4:ftPIiBG; D : =SQR T ( SQR < COOR C i 3 ) -í SGR ( COOR 1123 ) ) ~L«COS (P ) ;

.-Q Hi :-::^COORC33-L«SIN(P)-H; TETA:-ARCTAN(Hi/D);

Zj 0: = GQR T < SQR < D) iSCxR (H Í ) ) ; IF 0>AHB THEN BEGIN

ATING:=FAL,SE; O E:>^^T;

END ELSE O IF 0-AMB THEN BEGIN _ BETA:=TETA; Z GAMA:=TETA;

END ELSE BEGIN R:=SORT< ( (AM£B+0)K(AMB-0) )/( (AMB-fO)«(BMEA+0) ) ) • BETA:=-2>fARCTAN<R)+TETA; P:-Hi--B«SIN(BETA) ; 0s=D-BKCOS(BETA);

O IF 0-0 THEN IF P>0 THEN GAMA:=PI2 ELSE GAMA:-MP 12

ELSE BEGIN GAMA:=-ARCTAN(P/0) ; IF (0<0) AND (P<0) THEN GAMA:-GAMA-PI; END;

END; Z C00RC13 5=ALFA«Cí8O;

C00Ri:23:-BETA)tCí80; COORCSls=GAMA«Ci80; ANGMOT(COOR,MOT); END;

Page 248: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 2 2 3 .

de desenvolvimento de programas aplicativos para microcom

putadores voltados para a robótica e de programas de tare

' fas para robôs industriais.

Para o nível O de controle, foi miostrado neste

capítulo o programa básico MONITOR, que permite testar pro

gramas e prove o m.eio de comunicação com o nível l œ controle

para troca de comandos e arquivos em formato hexadecimal,

funcionando em conjunto comi o prograjna MONITED no nível 1.

O programa de CALIBRAÇÃO'do robô, também executa

do no nível O fazendo com que, independentemente da posição

em que ele se encontre, ao terminar a sua execução o robô

esteja localizado na sua posição de origem também foi apre_

sentado.

Os programas de APRENDIZADO de tarefas e de EXECU

ÇÃO, suas funções e seus comandos foram descritos no decor

rer do capítulo sendo que o conjunto de instruções executa

veis encontra-se detalhado no Apêndice I.

Para o nível 1 de controle, mostramos t) progra

ma "Bootstrap" que se encarrega da carga do sistema opera

cional ou do monitor do nível 1, sendo que o sistema opera

cional, compatível com o sistema CP/M, e os diverses progra

mas suportes utilizáveis para desenvolvimento de outros pro

gramas foram apresentados.

O programa editor de figuras em arquivos direta

mente utilizáveis pela linguagem de alto nível com os seus

respectivos comandos foram mostrados, sendo que a referida

linguagem será objeto do próximo capítulo.

Finalmente apresentamos a resolução das equações

cinemáticas para o robô desenvolvido, tanto no sentido di

Page 249: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

ZZJ

.224.

""^ Acreditamos que este conjunto de programas mostra

dos neste capítulo e no próximo, tornem o laboratório bas_

O tante sofisticado e eficiente no que diz respeito ao ensino

e desenvolvimento de novas técnicas em robôs industriais.

•V Convém ressaltar que todos estes programas já são

exemplos de utilização do próprio laboratório e de seus r£

cursos para o desenvolvimento da robótica.

reto (coordenadas de junção para coordenadas cartesianas),

como no sentido inverso (coordenadas cartesianas para coor

denadas de -junção). As rotinas necessárias para a utiliza

"Zè ção destas soluções encontram-se explicadas no final do ca

O pítulo, sendo disponíveis para qualquer usuário do labora

tório e em particular para o com.pilador da linguagem de a.\_

to nível.

Page 250: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

ro :o O? Oí

O O o

O

CAPITULO V - LIPHI: LIKGUAGEM PAMA FROGHiMAlQlJÍO DE ROBOS IMDIiSTRIAIS

'One of the most basic features of language is that it is a form of behavior. . . . The unique ifeature of language behavior is that it allows communication between individuals to enlist help, to issue carroands, to organize group behavior, and to receive feedback information from the sensory experiences of others".

(James S. Albus)

Page 251: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

,;::0 -^^e.

5.1 - IfíTRODUÇAO

:;:zz

- O • • Neste capítulo descreveremos a linguagem de alto

nível LIPRI: Linguagem para Programação de Robôs Indu£

V O triais, desenvolvida para servir de ferramenta para progra

mação de tarefas de robôs industriais e utilização de sens£

res de alta integração ijunto com a capacidade de sincroni^

mo de eventos externos mais evoluída para o laboratório

LÍDER.

Os primeiros robôs industriais, nos idos de 1960

só podiam ser programados através de caixas de aprendizado

onde coordenadas de pontos relevantes da tarefa a ser execu

tada eram memorizadas por meio de comiandos. Embora grande

parte dos robôs industriais em utilização atualmente ainda

^ sejam programados desta maneira, as dificuldades apresenta

das no sub-item 1.3.1 levaram à única solução possível para

V viabilizar a automação completa das fábricas do futuro, on

de robôs serão utilizados com sistemas CAD/CAM: as lingua

gens para programação "off-llne" de tarefas para robôs in

dustriais [33] [46].

'4

^ Desde então, apareceram várias linguagens, prat_i

^ camente uma para cada robô que dispunha desta facilidade,

Z em niveis de complexidade variando desde linguagens volta

^ das para movimentos primitivos até linguagens tentando im

^ plementar algumas características da inteligência humana

tais como geração de planos de ação e decisões baseadas em

^ modelos dinâmicos do ambiente de trabalho, como mostrado no

" sub-item 1.3.2 deste trabalho.

V

Z A grande parte destas linguagens normalmente n£

cessitam de uma grande capacidade de processamento, e são

usualmente implementadas em um ou mais computadores de gran

de porte, para executarem os seus programas, ficando restri

Page 252: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.227.

tas a laboratorios de pesquisas de universidades e institu

tos [8 ] [24] [44], raramente chegando a ter alguma utiliza

O ção industrial.

zZ

zQ

Além da exigencia de grande capacidade de proce£

samento, a maioria delas é bastante dedicada a um determina

do robô ou a uma familia de robôs, algumas sendo ainda dedi^

cadas a uma determinada aplicação, mas todas tendo uma pe

quena ou quase nenhuma portabilidade de uma máquina para

•'--• outra.

O nosso objetivo nesta parte do trabalho foi áe

senvolver uma linguagem a nivel de linguagem estruturada ,

com a preocupação de possuir os principais atributos de uma

linguagem de alto nivel para programação de robôs mas que

necessitasse de uma pequena capacidade de processamento

(usualmente eficiente até em microcomputadores de 8 bits),

sendo de um custo consideravelmente menor e ainda o mais

transportável possivel de um robô para outro.

A linguagem implementada é do tipo compilador, ten

do sido desenvovlida em PASCAL padrão e executável em qual_

quer sistema operacional compatível com o sistema CP/M.

Ê esta linguagem, a estrutura de seus programas ,

suas declarações e comandos que passaremos a descrever nes

te capítulo.

Na seqüência apresentaremos uma seção com o compi^

lador LIPRI e no final faremos uma comparação entre esta

linguagem implementada e outras linguagens desenvovlldas pa

ra robôs industriais.

Page 253: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.228.

Q 5.2.1 - Configuração do sisteraia

Como dito anteriormente, o compilador LIPRI foi

implementado na linguagem PASCAL padrão, sendo executável

em qualquer sistema compatível com o sistema oí^eracional

Z CP/M versão 2.2.

Zj O diagrama esquemático da figura 5.1 apresenta a

configuração do compilador e o seu relacionamento com os vá

rios arquivos de entrada do usuário e a geração dos seus

arquivos de saída, ao ser entrado o comando [23]:

y

ry

onde o compilador LIPRI e seus "overlays" estão na unidade

LIPRI B:ARQDOUSU<crlf>

de disco de sistema e o arquivo do usuário está na outra

unidade.

... O 5.2 - ESIROTILFRA DA LUíGUAGEM

-- A linguagem LIPRI é do tipo linguagem compilada,

-V ou seja, tendo como entrada um arquivo do programa fonte

escrito segundo a sintaxe de linguagem, temos como saída um

arquivo de listagem deste programa compilado e, se o progra

ma estiver sintaticamente correto, um arquivo do programa

^ objeto equivalente ao programa fonte, executável pelo com

putador controlador do robô.

Neste item veremos como são criados e quais as fi_

nalidades dos vários arquivos processados è componentes do

compilador LIPRI, as informações contidas nos seus arquivos

de saída, como executar o arquivo objeto no computador do

robô e ainda a sintaxe dos programas escritos em LIPRI.

Page 254: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

1 í

O b u V o u c) ü i) i) D ó o y ü ü ú y ü ú v i\ u l' i> i'' <L) v ü ü 4 Í

1

cn O C P o

3 < a H> O p H-m w oq

C CD --í

o P w «O

c CO PI m c o c 'S D.

CD O H- M O P O • O o

H- 3 0 Xí rs H-p M

3 P CD a

o rt O

O H O Tí 3

H O m

W d P m

ENTRADA COMPILAÇÃO SAIDA rv3 rv> CD

Page 255: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.230.

•V

- LIPRI.001

0 É o arquivo do primeiro "overlay" do compilador

Z LIPRI, sendo carregado após a iniciação feita

- por LIPRI.COM. Ê este "overlay" que executa a

^ análise sintática do programa do usuário (B:ARQ

DOUSU.LIP) gerando em LIPRI.TMP uma forma Ínter

mediarla em quádruplas para o programa do usuá

^ rio, e em (B:ARQDOUSU.PRN) um arquivo de lista

V gem do programa compilado com os erros de sin

taxe que porventura houver. .

- LIPRI.002

É o arquivo do segundo "overlay" do compilador

LIPRI, sendo carregado na memória após ter sido

completada a análise sintática e geração da for

ma intermediária no arquivo LIPRI. TMP pelo prá^

meiro "overlay" do compilador. Esta parte do

compilador é responsável pela geração de código

no arquivo (B:ARQDOUSU.HEX) tendo como entradas

o arquivo da forma intermediária LIPRI.TMP e

quantos arquivos de dados com figuras geométri^

cas especificados no programa do usuário. Caso

haja algum tipo de erro no processo de geração

Pela figura 5.1, podemos ver que o compilador LI_

PRI é composto dos seguintes arquivos tendo as funções lis

tadas a seguir:

- LIPRI.COM

—>. É o arquivo principal, raiz do compilador LIPRI,

sendo ele responsável pelas iniciações necessá

rias do compilador e pela coordenação geral do

^ processo de compilação, estando ativo na memo

"' ria do processador durante toda a compilação.

Page 256: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.-.V .231 .

• J

ZJ

de código, mensagens são enviadas para o termá^

nal de vídeo e tcunbém para o arquivo de lista

Z gem do programia fonte.

^ - LIPRI.TMP

Como ficou evidenciado na descrição dos outros

arquivos, este arquivo tem por finalidade o ar

mazenamento da forma intermediária em quádru

pias, equivalente ao programa fonte do usuário

sendo apenas um arquivo existente durante a com

pilação, não sendo acessível ao usuário.

- LIPERROS.TXT

É o arquivo que contém as mensagens de erro en

viadas pelo compilador LIPRI. Caso este arquivo

não esteja presente na unidade de disco de si£

tema, as mensagens de erro são enviadas apenas

com um número correspondente ao erro, sendo que

o seu significado encontra-se mostrado no Apên

dice II deste trabalho.

Mensagens indicando o estado da compilação e de

erros na geração de código, criação de arquivos e outros tl_

pos são enviados para o terminal de vídeo de forma a que o

operador saiba exatamente em que fase e o que está acont£

cendo com o seu programa durante a sua compilação.

O relacionamento e a criação pelo usuário dos vá

rios arquivos que são entradas para o compilador LIPRI po

dem ser vistos esquematicamente na figura 5.2, para o labo

ratório LÍDER na sua configuração atual, sendo que o sign¿

ficado de cada um destes arquivos é dado logo a seguir.

Page 257: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.232,

Q

• y

Fig. 5.2 - Arquivos de entrada do compilador L I

PRI na configuração atual do laborató

rio l í d e r .

Page 258: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.233.

- Arquivos com extensão .LIP

São arquivos de programas fonte para o compila

dor LIPRI, sendo criados e modificados por qual_

quer um dos editores de texto do computador, do

nível 1 de controle. É neste arquivo que uma d£

terminada tarefa é codificada em linguagem LI

PRI com as declarações e comandos a serem vi£

tos nos próximos itens.

- Arquivos com extensão .APR

São arquivos com figuras geométricas componen

tes da tarefa a ser executada pelo robô, cria

dos utilizando o programa MONITED, monitor e

editor de figuras como explicado no sub-item

4.3.5 deste trabalho.

- Outros arquivos de dados

São arquivos também com figuras geométricas, po

dendo ter qualquer tipo de extensão, estes cria

dos diretamente com um editor de textos do ní_

vel 1 de controle ou através de outros * progra

mas aplicativos, podendo conter pontos em coor

denadas de junção ou coordenadas cartesianas

mais os ângulos de orientação da mão-ferramenta

Estes programas aplicativos podem ser tais que

acessem bancos de dados de sistemas CAD/CAM e

gerem arquivos de dados diretamente utilizáveis

pelo compilador LIPRI.

- Arquivos de figuras

São arquivos gerados pelo sistema de visão do

laboratório LÍDER [52] contendo características

de figuras aprendidas pelo mesmo e possíveis de

serem reconhecidas ou localizadas por comandos

Page 259: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z3> -234.

da linguagem LIPRI em tempo de execução.

Uma vez criado o arquivo objeto em formato hexade

^ cimal (B:ARQDOUSU.HEX) pelo compilador LIPRI, ele pode ser

"Z diretamente executado pelo com.putador do robô, como mostra

:j a figura 5.3.

zz

Inicialmente o arquivo objeto do programa do usuá

rio deve ser carregado na memória de tarefa do computador do

nível O. Isto é feito pela execução do programa MONITED no

nível 1 e do programa MONITOR no nível O como explicado nos

sub-itens 4.2.1 e 4.3.5. Uma vez carregado, executa-se o

programa de execução de tarefas (sub-item 4.2.4) e o robô

começará a executar a tarefa programada, podendo utilizar

os recursos de impressora e terminal de vídeo do nível 1 de

controle, seja para listagem de resultados da tarefa, seja

para entrada de dados em tempo de' execução.

'O

" -y

Quando os comandos de processamento de imagem ti

verem sido utilizados pelo usuário no seu programa fonte,

_ deve-se então, ao ser ativado o programa objeto no nível O

_ de controle, executar o programa de processamento de imagens

correspondente no nível 1 de controle, e então os arquivos

de figuras podem ser utilizados seja para reconhecimento de

O imagens, localização de peças, aprendizado de novas figu

'Z ras ou inspeção de peças.

^ Assim, com esta configuração de sistema, podemos,

^ através de comandos da linguagem LIPRI, utilizar todos os

recursos disponíveis do laboratório LÍDER, de uma maneira

—^ fácil, eficiente e de rápida alteração para novas tarefas.

Page 260: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

~z

ZZ

'Z

Z)

-Z/

o O

5 N Z

2 O

O o

o 1-S

to > UJ

.235,

to

LU

5 => s

o

Fig. 5.3 - Execução de um programa objeto criado

pelo compilador LIPRI na configuração

atual do laboratório LÍDER.

Page 261: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.236.

Para descrevermos a sintaxe do programa, das de

clarações e dos comandos, utilizaremos a meta-linguagem BNF

-y ("Backus-Naur Normal Form") sendo que exemplos de cada de

Q claração e comandos serão mostrados no decorrer das descr_i

2J ções.

-O Neste Ítem nos deteremos na sintaxe do programa

escrito em LIPRI, e nos dois itens seguintes apresentaremos

detalhadamente a sintaxe e funcionalidade de cada uma das

y declarações e comandos da linguagem. Exemplos de programas

;Q completos e funcionais escritos em LIPRI, serão mostrados

no Apêndice III deste trabalho.

- Estrutura Sintática do programa:

<programa>::=BEGIN <conjunto de declarações> <con

^ junto de comandos>END.

O

<conjunto de declarações> : : =<declaração> |

< dec laraçãox con junto

de declarações>

<conjunto de comandos>::=<linha de comando>|

<linha de comando <con

junto de comandos>

5.2.2 - Sintaxe dos programas em JLIPRI

"""^ 'A sintaxe dos progran-ias escritos em LIPRI é sem£

'""•Zl Ihante à sintaxe dos programas escritos em linguagens estru

turadas tais como PASCAL e ALGOL, tendo as declarações de to

dos os objetos da linguagem apresentadas no começo do pr_o

grama e em seguida os comandos de processamento.

Page 262: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.237,

<linha de comando>::=<comando>|

'"" < label> : < comando>

< comentário

-y

O

O

Zj

^i

. — y

<declaração::=<declaração de variável de pro

cess.>I

<declaração de entidade geom£

trica> I

<declaração de procedimento|

•jí <comentário>

—ZZi <comando>: : =<comando de controle de processamen

to> I <comando de linhas de sincronismo|

<comando de atribuição|

<comando de movimentação do robô>|

<comando de entrada e saída> |

!y <comando de visão |

<comando de controle interrupção

<declaração de variável de process.>::= <declara

ção BYTE>I *

<declaração WORD>|

<declaração BOOLEAN>|

<declaração STRINO i

<declaração ARRAY>|

^ <declaração FILE>|

^ • <declaração LABEL>

-- <declaração de entidade geométrica> : : =<declaração

'ZZ POINT>|

<declaração LINE>|

<declaração CIRCLE>|

<declaração TRAJECT>|

<declaração FIGURE>

Page 263: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•-• .238,

<declaração de procedimento>::=<declaração

PROCEDURE>I

<declaração INTERRUPT

PROCEDURE> I

-y <declaração TASK>

<comando de controle de processamento>::=<comando

GO T0>| =3

<comando IF>|

<comando FOR>|

"- <comando WHILE> |

:Q <comando PROCEDURE>|

<comando TASK>|

<comando RETURN>|

<comando WAIT>|

<coniando PAUSE> |

<comando STOP>|

<comando KALT>|

<comando BEGIN>

'Z

"Z

z

"Z

z

".Z

'Z

<comando de linhas de sincronismo>::=<comando

SET>I *

<comando RESET>|

<comando INPUT>|

Z <comando OUTPUT> i

<comando de atrlbuição>::=<comando de atribuição

arltmética>|

<comando de atribuição

booleana>

Page 264: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.239.

<comando de movimentação do robo>::= <comando

-Z MOVE>I

. < comando HOME> | -

<comando FOLLOW>|

' <comando APPROACH> |

<comando DEPART>|

_ <comando CLOSE>|

~^ <comando OPEN>[

'"• <comando SPEED> |

ZO <comando INTERPOLATE>

—¿y

^ <comando de entrada e saída>::=<comando DISPLAY>|

<comando READ> |

<comando PRINT> •

<comando de visão> : : =<comando FIND> |

C <comando LEARN>|

<comando REC0GI\1IZE> i

•• <comando INSPECT>

, <comando de interrupção> : :-<comando EI> |

^ <comando DI>*

. -a

Z <label>::=<identificador>

<identificador>::=<letra>I<letra><continuação do

identificador>

Para esta linguagem o tamanho do identificador s£

rá limitado em oito caracteres, sendo outros, se houver,

ignorados.

^.J^ <continuação do identif icador> :: =<letra> I <número>

<letra>::=A|BlC|. . . |Z

Page 265: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

[;,"_T,,y

' "y

"y :" 'y .y

-.y

.240.

'•-S <constante sem sinal> : : =<número> |

<número><constante sem

sinal>

<número real>::=<parte inteira>.<parte fraciona

ria>

ZZ

-Z

Zj

<parte inteira> : : =<constante sem sinal>

~y

:::: Q

' Z

-y Será considerado comentário qualquer caracter até

: Z o final do registro.

<parte fracionária>::=<constante sem sinal>

<comientário>: :=%<texto

A seguir serão detalhados cada um dos comandos e

das declarações especificados acima.

5.3 - DECLARAÇÃO DA LlfíGíIAGEM LIPRI

Como visto no item acima as declarações da lingua

gem LIPRI podem ser divididas em três grupos:

- Declarações de variáveis de processamento.

- Declarações de entidades geométricas.

- Declarações de procedimentos.

A sintaxe e a finalidade de cada uma destas decla

rações estão mostradas nos sub-itens a seguir.

<número>::=0 i 1|2| ...|9

Page 266: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.241

5.3.1 - Beclairações das variá-weis de processamento

5.3.1.1 - Beclaração BYTE

<declaração BYTE>::=BYTE <lista de identificado

res> ;

<lista de identificadores>::=<identificador>|

Z <identificador>,<lis

Z ta de identificado

— res>

• V

Exenplos: BYTE Bl ;

BYTE B2,A12345,BITE;

-0

Um byte é uma variável de processamento inteira

cujo valor pode estar contido entre -128 e +127, sendo que

se desejarmos uma variável inteira fora destes limites ela

deverá ser declarada como V/ORD. Um byte ocupa fisicamente

uma posição de memória num total de 8 bits.

*

5.3.1.2 - Beclaração ¥ORB

<declaração WORD> ::-V/ORD <lista de identificado

res> ;

Exemplos: WORD Wl;

WORD W34567,PALAVR,A;

z

Zj Esta declaração define uma variável inteira ocu

pando dois bytes de memória num total de 16 bits, podendo

seu valor estar compreendido entre -32568 e +32567.

Page 267: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z) .242.

Exemplos: BOOI.EAN FLAG;

BOOLEAN FLAGl,STATUS,READY;

-- xdeclaração BOOLEAN >::-BOOLEAN <lista de identif!

cadores> ;

"'"- A finalidade desta declaração é definir uma varia

vel lógica podendo assumir dois valores: VERDADEIRO e FAL

SO. Esta variável ocupa fisicamiente um byte de memória, sen

-Q do que o valor considerado como FALSO é o valor G e o VER

DADEIRO é qualquer valor diferente de O.

Q

Z 5.3.1.4- Declaração STRDíG

;j <declaração STRING>::-STRING <lista de strings>;

_ <lista de strings> ::-< identif icador de string> |

<identificador de string>,

<llsta de stringsx

O <identificador de string>::-<identificador>

'<texto>'

Zj

<texto>::= í qualquer seqüência de caracteres ex

ceto '}

O Exemplos: STRING MENS'ERRO DE EXECUÇÃO';

:0 STRING MENSl'ERROl',

MENS2'ERR0 NO CIRCUITO DE POS^

ÇAO' ;

O objetivo desta declaração é associar um identi

C O M : S G ; ^ O Í . A C O L Z Í Í E R G I A N U C L E A R / S P r:¡ r' r^.l

5.3.1.3 - Declaração EOOL:

Page 268: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.243.

ficador a urna seqüência de caracteres na memória. Um identi_

ficador representado desta maneira ocupa na memória do pro

cassador do robô o número de caracteres mais um de bytes de

memória.

5.3.1.5 - Beclaração AHJRAY

<declaração ARRAY>::=ARRAY <lista de identifica

dores de array> ;

: Q .

<lista de identificadores de array>::=<identifica

dor de array> |

<identificador de array>,

<lista de identificadores de

array>

V <identificador de array>::=<identificador>(<dimen

^ são>)<tipo do array>

_ , <dimensão>::= {número inteiro maior do que O}

<tipo de array>::=BYTElWORD IBOOLEAN

J Exemplos: ARRAY A(9) BYTE;

ARRAY Bl(45) BYTE,PALAVR(10) WORD,

FLAGS(5) BOOLEAN;

Um elemento declarado desta maneira é entendido

como uma matriz de uma dimensão de elementos correspondentes

ao <tipo de array> especificado na declaração. O número de

elementos é o valor de <dimensão> mais um, sendo que o pri^

meiro elemento da matriz é endereçado com O e o último

com o valor de <dimensão>.

Page 269: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

--7, .244.

O número de posições de memória ocupadas pela ma

triz dependerá do seu tipo, sendo que se for uma m.atriz de

'Z bytes ou de variáveis booleanas, ocupará tantos bytes quan

2> to for o número de elementos e se for do tipo WORD ocupará

^ duas vezes o número de elementos em bytes de memória.

O armazenamento da matriz na memória do robô é

^ feito de modo sequencial sendo a primeira posição ocupada

^ pelo elemento O e a última pelo último elemento da matriz.

O -j 5.3.1.6- Beclaração FILE

o

<declaração FILE>::=FILE <lista de identifie. de

arquivos>;

O <lista de identifie, de arquivos>::= <identifica

2) dor de arquivo>|

<ldentificador de arquivo>,

<lista de identifie, de ar

^ quivo> *

Z <identificador de arquivo>::=<identificador>•

V <especificação do ar

Q quivo>'

Zj ^ <especificação do arquivo: : = <identif icador>. <es

pecificação do tipo>

<especificação do tipo>::= { identificador com

O três caracteres}

Exemplos: FILE FILEI'ARQUI.DAD',ENTGEO•FIGS.APR';

^ FILE MEUFIL'ARQUIl.DAD' ,PONTOS

'PONTOS.COR •;.

Page 270: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.245.

Esta declaração associa um identificador a um

'• arquivo do sistema operacional do computador do nível 1. Es

O - te arquivo pode conter coordenadas de pontos ou figuras pro

•^ cessadas pelo sistema de visão do nível 1.

Os formatos dos dados armazenados nestes arqui

vos serão apresentados nas declarações correspondentes a ca

da uma das figuras possíveis de existirem no arquivo. A or

dem em que estas figuras e entidades geométricas estão arma

'Z zonadas no arquivo é irrelevante.

Se durante a compilação do programa do usuário

for especificada uma entidade geométrica em um arquivo e se

o arquivo não existir ou se a entidade não estiver no arqui^

vo especificado uma mensagem de erro será enviada.

Tantas entidades quanto necessário podem estar ar

mazenadas em um mesmo arquivo, e caso existam duas entida

des com o mesmo nome, a primeira que for encontrada será

considerada, sendo a outra desprezada.

A extensão destes arquivos definidos nestas decla

rações pode ser de qualquer tipo, sendo que o formato do

arquivo criado pelo programa MONITED, monitor e editor de

figuras é compatível com o formato exigido pelo compilador,

sendo que a sua extensão é .APR.

Os arquivos serão apenas lidos pelo compilador

LIPRI durante o processo de compilação, sendo que arquivos

protegidos podem ser colocados como entradas para o compila

dor e declarados da maneira vista acima.

Page 271: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:'z^ . V. 2 4 6 .

5 . 3 . 1 . 7 - D e c l a r - a ç ã o L A B E L

^ <declaração LABEL>::=LABEL <lista de identifica

dores de label>:

^ y <lista de identificadores de label>::=<identifica

dor de label>|

<identificador de label>,

<lista de identificadores de

label>

<identificador de label>::=<identificador>

Exemplos: LABEL LI;

LABEL LOOP,REPETE,VOLTA;

A finalidade desta declaração é associar um iden

tificador a um determinado ponto do programa do usuário sen

do que desvios podem ser realizados para aquele ponto atra

vés de comandos GO TO. Este identificador definido desta

maneira pode estar associado a qualquer comando em qualquer

ponto do programa dp usuário, sendo que apenas um comando d£

ve estar associado ao identificador.

A definição de rótulos existe apenas em tempo de

compilação, não ocupando posições de memória..

5 . 3 . 2 - B e c l a r a ç õ e s d e e n t i d a d e s g e o e é t r i c a s

5 . 3 . 2 . 1 - D e c l a r a ç ã o

<declaração POINT>::=POINT <lista de especifica

ção de pontos>;

Page 272: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

zO.

-Z <especificação de ponto>::=<lista de identifica

dores de ponto

IN<identificador de

'--Zi arquivo

ZZ-Zi

— < l i s t a de identificadores de ponto: := <identifi.

cador de ponto> i

<identificador de ponto>,

<lista de identifleaderes de

^ , ponto>

ZZ <identif icador de p o n t o ::-<identificador>

Exemplos: FOINT PI,P2,PEGA IN MEUFIL;

POINT PONTOORG IN PONTOS;

t

Esta declaração tem por finalidade associar um

identificador a um determinado ponto no espaço. As coordena

das deste ponto estão definidas no arquivo associado ao pon

to em sua declaração. Estas coordenadas podem ser de dois

tipo: coordenadas de junção e coordenadas cartesianas.

O formato de uma definição de um ponto no espaço

em um determinado arquivo pode ser:

POINT

<nome do ponto

JUNC

<mota> <motb> <motc> <motd> <mote> <motf>

"O •«'lista de especificação de pontos>::= <especifica

ção de ponto |

••'••O • <especif icação de ponto> ,

.'Z <lista de especificação de pontos>

.247.

Page 273: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 248.

-Z para um ponto definido em coordenadas de junção, onde os

valores <mota> até <motf> são os valores de coordenadas de

motor para aquele ponto em questão. Ë este formato de ponto

que é criado pelo programa editor de figuras.

O outro formato, corresponde a um ponto definido

em coordenadas cartesianas sendo o seguinte:

POINT

ZZj <nome do ponto

CART

<coord x> <coord y> <coord z> <ang p> <ang r>

<mão>

onde <coord x> <coord y> e <coord 2> são os valores reais das

coordenadas x, y e z do ponto definido, <ang p> e <ang r >

ZJ são os valores dos ângulos de orientação da mão-ferramenta

~ no ponto definido e <mão> é o valor de abertura da mão na

quele ponto.

5.3.2.2 - Declaração LIME *

<declaração LINE>::=LINE <lista de especificação

de retas>;

<lista de especificação de retas>::= <especifica

ção de reta>|

<especificação de reta>,

<lista de especificação

de retas>

<especificação de reta>::=<lista de identificado

res de retas>

IN<identificador de arqui

vo>

Page 274: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 249.

•y <identificador de reta>: :=<identificador>

Exemplos: LINE L1,L2,L3,L89 IN MEUFIL;

Z LINE RETA IN FILl;

Esta declaração define um ou mais segmentos de

retas no espaço de trabalho do robô. Um segmento de reta

é especificado por dois pontos não coincidentes no espaço,

sendo estes dois pontos definidos no arquivo associado à de

claração de cada segmento de reta.

O formato dos segmentos de retas definidos em um

dado arquivo pode ser visto de duas maneiras a seguir apre

sentadas:

4

- Formato em coordenadas de junção:

LINE

<nome da linha>

JUNC

<motal> <motbl> <motcl> <motdl> <motel> <motfl>

<niota2> <motb2> <motc2> <motd2> <mote2> <motf2>

- Formato em coordenadas cartesianas:

LINE

<nome da linha>

CART

<coord xl> <coord yl> <coord zl> <ang pl>

<ang rl> <mãol>

<lista de identificadores de retas>::= <identifi

cador de reta>|

'Z " <identificador de reta>,

3 <lista de identificadores

de retas>

Page 275: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-y

.250.

<coord x2> <coord y2> <coord z2> <ang p2>

<ang r2> <mão2>

onde os símbolos possuem os mesmo significados dados na de_

claração POINT só que um para cada ponto associado ao se£

mento de reta definido pela declaração LINE.

O .sentido de percurso pela mão-ferramenta do robô

seguindo o segmento de reta é definido sempre do primeiro

ponto especificado para o segundo, a não ser que tenha si

do especificado um movimento de trás para frente como será

visto no comando FOLLOW.

5.3.2.3 - Beclaraição CIRCLE

<declaração CIRCLE> ::-CIRCLE <lista de especif

ficação de circulos>;

<lista de especificação de círculõs>::- <especifi_

cação de círculo>|

<especificação de círculo,

<lista de especificação de

círculos>

<especificação de círculo>::=<lista de ident. de

círculos>

IN<identificador de arqu_i

vo>

<lista de ident. de círculos>::= < identificador

de círculo>|

<ident if icador de círculo,

<lista de ident. de círcu

los>

Page 276: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.251.

Exemplos: CIRCLE Cl IN FILl;

CIRCLE C1,CIRC,C2 IN MEUFIL,C3 IN FILl;

A definição de um segmento de círculo a ser Eegui_

do pelo robô é idêntica à definição do segmento de reta só

que para o círculo são necessários três pontos do espaço

não alinhados.

Os formatos para uma definição do círculo em um

dado arquivo são os seguintes:

- Formato em coordenadas de junção:

CIRCLE

<nome do círculo

JUNC

<motal> <motbl> <motcl> <motdl> <motel> <motfl>

<mota2> <motb2> <motc2> <motd2> <m.ote2> <motf2>

<mota3> <motb3> <motc3> <motd3> <mote3> <motf3>

- Formato em coordenadas cartesianas:

*

CIRCLE

<nome do círculo>

CART

<coord xl> <coord yl> <coord zl> <ang pl>

<ang rl> <mãol>

<coord x2> <coord y2> <coord z2> <ang p2>

<ang r2> <mão2>

<coord x3> <coord y3> <coord z3> <ang p3>

<ang r3> <mão 3>

O sentido de percurso do segmento de círculo é

sempre do primeiro ponto, passando pelo segundo e terminan

do no terceiro ponto a não ser que o sentido inverso tenha

sido especificado.

Page 277: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.252.

5.3.2.4 - Declairação TRAJECT

<declaração TRAJECT>::-TRAJECT <listade espe

cificação de trajetórias>;

<lista de especificação de trajetórias>::= <esp£

cificação de trajetória>|

<eEpecificação de trajeto

ria>,<lista de especifica

ção de trajetória>

<especificação de trajetória>::=<lista de ident.

de trajetória> IN

<identificador de arquivo

<lista de ident. de trajetória>::-<ident. de tra

jetória>|

<ident. de trajetória>,<li£

ta de ident. de trajeto

ria>

<ident. de trajetória>::=<identificador> («número

de pontos>)

Exemplos: TRAJECT CAMINH(IO) IN DADOS;

TRAJECT Tl(8),T2(4) ,T3(2) IN DADOS;

TRAJECT Tl(8),T2(56),T3(100)

IN DAD0S,DIR1(6),RET(5)

IN ARQUI;

Esta declaração tem por finalidade associar um

identificador a um conjunto de pontos no espaço considera

dos como uma trajetória a ser seguida pelo robô. Estes pon

tos podem ser definidos tanto em coordenadas de junção como

em coordenadas cartesianas, sendo a especificação de uma

Page 278: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ .253.

-V

- Form.ato em coordenadas de junção:

TRAJECT

<nome da trajetória>

<número de pontos n da trajetória>

O JUNC

<miotal> <motbl> <motcl> <motdl> <motel> <motfl>

I I I I I I I I I I I I

I I I I I I I I I I I I

<motan> <motbn> <motcn> <motdn> <moten> <motfn>-

- Formato em coordenadas cartesianas:

TPJVJECT

<nome da trajetória>

<número de pontos n da trajetória>

CART

<coord xl>.<coord yl> .<coord zl> <ang pl>,

<ang rl> <mãol> I I I I 11 I I

I I I I I I I I

I I I I I I I I

<coord xn> <coord yn> <coord zn> <ang pn>

<ang rn> <mãon>

O sentido de percurso da trajetória especificada

será sempre do primeiro para o último ponto especificado na

definição da trajetória no arquivo, sendo que se no comando

FOLLOW for especificado o sentido inverso, o robó percorr£

rá a trajetória do último ponto especificado para o primei^

ro.

•-^ trajetória em um determinado arquivo feita em um dos dois

O formatos abaixo:

:3

Page 279: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.?54.

o número de pontos de uma trajetória tem que ser

"fZ-Z sempre maior do que O, não possuindo um limite superior. A

Zj --. única restrição é ter-se o mesmo número de pontos definidos

na declaração, na especificação da trajetória no arquivo.

ZZ

.y

7.-Z

5.3.2.5 - Beclstração FIGÜíRE

-Vv <declaração FIGURE>::=FIGURE <lista de identifica

-'7j dores de f iguras> ;

<lista de identificadores de figuras> : : =<identifi_

cador de figura>| <ident_i

ficador de figura>, <lista

de identificadores de fi_

J guras>

<identificador de figura>::=<identificador> ±N

<identificador de arquivo

Exemplos: FIGURE FIGURA IN MINHFIG;

FIGURE FIGURA IN MINHFIG,CAIXA^IN

T-v FIGCAIXA;

Esta declaração define uma figura possível de ser

reconhecida pelo processador de imagens do nível 1, sendo

que apenas uma figura pode ser definida por arquivo especi_

ficado.

O formato da definição da figura é gerado automa

ticamente pelo processador de imagens, sendo inacessível ao

usuário. Maiores informações quanto a este arquivo de figu

ras podem ser encontradas em [52].

Page 280: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.255,

ZZ

'Z

'Zt

"Z

5.3.3 - Declarações de procedisentos

5.3.3.1 - Declaração FSOCEBURE

<declaração PROCEDURE>::-PROCEDURE <nome da

procedurexcorpo da proce

dure>;

w <noine da procedure> : : = <ldentif icador>

<corpo da procedure>::=BEGIN<conjunto de coman

dos>END;

Exemplos: PROCEDURE MOVEPl;

BEGIN

IF FLAG THEN Bl:-10;

MOVE PI;

END;

^ Esta declaração tem por objetivo definir uma roti_

na possível de ser chamada em qualquer ponto do prdgrama do

usuário .

Na implementação corrente da linguagem LIPRI os

procedimentos não admitem passagem de parâmetros, utilizan

^ do apenas variáveis globais. Outra restrição é que os pro

cedimentos devem ser definidos após as definições . anterio

res, sendo as últimas declarações do programa.

Z Qualquer comando dos especificados no próximo

Z item poderá ser utilizado no <conjunto de comandos> do pro

" cedimento.

Page 281: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.256.

•Z

Zj

•y

<número da interrupção::=0|1|2|3I4|5

3 Exemplos: INTERRUPT PROCEDURE 3;.

-5 BEGIN

Bl:=10;

END;

O objetivo desta declaração e associar um procedo^

mento a uma linha de interrupção do controlador do robô.

Z Sempre que a interrupção ocorrer e ela estiver habilitada,

a execução do programa é desviada para o procedimento ass£

ciado àquela interrupção. Se uma interrupção estiver habili_

tada mas nenhum procedimento for associado a ela, quando

ela ocorrer nada acontecerá, prosseguindo a execução do pr£

grama normalmente. *

5.3.3.3 - Declaração TASK

<declaração TASK>::=TASK <lista de identificad£

res de tarefa>;

<lista de identificadores de tarefa>::=: <identifj^

cador de tarefa> 1 <ldentifj^

- cador de tarefa>,<lista de

^ identificadores de tarefa>

5.3.3.2 - Beclaração IfüTERRUPT P5íOCED)lIIIKE

:ZZi <declaração INTERRUPT PROCEDURE>::-INTERRUPT

PROCEDURE <número da

interrupção> <corpo da

procedure>;

Page 282: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

]Z3

:zZ>

-y

f y

"•-••

. 257.

<identif icador de taref a >:: = <identif icador > IN

<identif icador de arquivo >

ZZO Exemplos: TASK LIMPB IN LIMPBT;

TASK Tl IN rUl,T2 IN PEG;

Esta declaração tem por objetivo definir uma tare

fa em um determinado arquivo, tarefa esta já diretamente

executável pelo controlador do robô, ou seja, criada pelo

'3 programa de aprendizado do robô ou pela compilação de um ar

quivo fonte pelo compilador LIPRI.

Sempre que um comando especificando uma determina

da tarefa for executado, a execução da tarefa corrente é

terminada e a nova tarefa é carregada na memória de tarefa

do robô e o controle do mesmo passa para os comandos compo

. n e n t e s da nova tarefa.

5.4 - COimif-MXíS DA LlfüCTAGEM LIPMI

Como visto no sub-item 5.2.2, os comandol exi£

tentes na linguagem LIPRI podem ser divididos em sete gru

y pos vistos a seguir:

- Comandos de controle de processamenteo.

- Comandos de linhas de sincronismo.

- Comandos de atribuição.

•\'Z - Comandos de movimentação do robô,

- Comandos de entrada e saída.

Page 283: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

zZ

•y

'Z

ZZ

.258,

..:.Z¿ - Comandos de interrupção.

Todos os comandos possíveis da linguagem LIPRI s£

rão detalhados tanto no ponto de vista de sintaxe como de

funcionalidade nos sub-itens a seguir.

^ 5.4.1 - Conaandos ds controle de processainento

5 . 4 . 1 . 1 - Coísando GO TO

•y

^ <comando GO T0>: :=G0 TO <identificador de label>;

Z Exemplos: GO TO LABEL;

- GO TO LI;

_ Este comando tem por objetivo desviar incondiclo

na,lmente o controle da execução da tarefa para o comando

'"" associado ao <identif icador de label> . Caso nenhum^ comando

tenha sido associado ao rótulo, uma mensagem de erro é en

"Zé viada para o arquivo de listagem.

5.4.1.2 - C o s a n d o IF

<comando IF> : :=IF <condição> THEN <comando>;|

Z IF <condição> THEN <comando> ELSE

.t <comando> ;

^ <condição>: :=<expressão booleana>

- Comandos de visão.

Page 284: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.259,

ZZ

'Z

"Z

' -Z

-y

• y

'Z

..-ii

Este comando tem o mesmo sentido do comando IF

das linguagens estruturadas.

' -y 5.4.1.3- CoHiando FOR

-y

<comando FOR>::=FOR <variável for>:=<lista do

for> DO <comando>;

<variável for>::=<identificador de byte>|

"•• <identificador de worda

<lista do for>::=<expressão aritméticaxparte de

iteração

<parte de iteração>::=T0 <expressão aritmética>I

DOWNTO <expressão

ZZ-^ aritmética>

Exemplos: FOR A:=B+C TO K DO BEGIN

D:=C+1;

FLAG:=TRUE;

END;

^ FOR A:-50 DOV/NTO 30 DO LISTA(A):=0;

'y

•'•'y

"y

•4

Exemplos: IF FLAG THEN MOVE PONTO;

IF •A+B<=20' THEN GO TO LI ELSE FOLLOW

. CAMINH;

IF IN(7) THEN BEGIN

APPROACH P1:100.5,DZ;

MOVE STRAIGHT PEGA TO

P3 > 80;

WAIT 20;

Q CLOSE 21;

:Q END; .

Page 285: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"•Zé

•Z

'. Zé

.260.

Este comando tem a mesma finalidade dos comandos

FOR das linguagens estruturadas.

5.4.1.4 - Cosaando l-JHILE

<comando WHILE>::=WHILE <expressao booleana> DO

<comando>:

^ Exemplos: WHILE FLAG DO GO TO LABELl;

WHILE 'A =100' DO TASKl;

WHILE NOT FLAG DO BEGIN

Bl:=20;

APPROACH P0NT:50.5QDX

'Zé > 60;

FLAG:=IN(5) ;

END;

A finalidade deste comando é idêntica à do coman

do WHILE das linguagens estruturadas.

5.4.1.5 - Conando PEOCEBÜBE

<comando PROCEDURE>::=<nome da procedure>;

Exemplos: MOVEPl;

SOMA;

O objetivo deste comando é desviar o controle do

processamento para a rotina definida pelo <nome da procedu

re> . Esta rotina deve estar declarada em uma declaração

PROCEDURE anterior, caso contrário há um erro de compila

ção.

Page 286: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"Z

.261.

5.4.1.6 - CoEsando TASK

•<comando TASK> :: =<identif icador de task> ;

Exemplos: LIMPBT;

T2;

Tl;

O objetivo deste comando é ativar o programa asso

ciado ao <identificador de task>. Este programa deve estar

definido em uma declaração TASK anterior. Se o arquivo cor

respondente especificado na declaração TASK não for encon

trado, uma mensagem de erro é enviada e a execução do pro

grama é abortada.

Este comando termina a execução do programa que

o ativou, no ponto da ativação, e destrói todas as varia veis utilizadas pelo programa anterior, começando uma nova

tax^efa especificada pelo comando.

5.4.1.7 - CoMaimdo METUMM. *

<comando RETURN>::-RETURN;

O objetivo deste comando é interrom.per a execução

de um procedimento ou de um procedimento de interrupção

retornando o controle para o ponto do programa imediatamen

te posterior ao ponto onde ocorreu o desvio para o procedi

mento.

5.4.1.8 - CcsEiído ¥AIT

<comando WAIT>::=WAIT <condição>;

Page 287: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

^ . 2 6 2 .

•y

•é

5.4.1.9 - Cc-sando PAUSE

<comando PAUSE>::-PAUSE ; i

PAUSE <identificador de

string>;

Exemplos: PAUSE;

PAUSE ERROl;

O objetivo deste comando é suspender a execução

do programa até qua a tecla C (valor 43H) seja recebida p£

Ia entrada serial correspondente ao monitor.

Se um <identificador de strlng> for especificado

no comando, antes da execução ser suspensa, o conjunto de

caracteres associado ao <identificador de string> é enviado

pela saída serial correspondente ao programa monitor.

CQziz.o z- Z N E R G I A W U C L E A R / S P

-• <condj.ção> ::=<número de segundos> |

1:3 <expressão booleana>

--j Exemplos: W A I T 2 0 ;

, W A I T IN(4)=T'RUE,

W A I T I N ( 6 ) = I N ( 7 ) OR FL A G ;

O objetivo deste comando é suspender a execução

r.3 do programa até que a <condição> ocorra. Esta <condição> p£

de ser ou um determinado número de segundos especificado por

— ^ <ni3mero de segundos> ou o controle é suspenso até que a ex

, pressão <expressão booleana> assuma o valor verdadeiro.

Page 288: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.263.

'Zé

ZJ

z z^

-Z

5.4.1.10 - Ccaianiíio STi

<comando STOP> : : =STOP; |

STOP <identificador de string>;

Exemplos: STOP;

STOP ERROl;

-V O objetivo deste comando é terminar a execução

Q da tarefa, retornando o controle do processador ao programa

de execução de tarefas.

Se um <identificador de string> estiver especifi^

cado no comando, o conjunto de caracteres associado àquele

<identificador de string> é enviado pela saída serial cor

respondente ao programa monitor.

z 5.4.1.11 - Cesando HALT

<comando HALT>::-HALT; |

HALT <identif icador de s-«ring>;

Exemplos: HALT;

HALT ERROl;

O objetivo deste comando é suspender a execução

da tarefa até que uma interrupção habilitada ocorra.

Se um <identificador de string> estiver especi

ficado no comando, o conjunto de caracteres correspondente

àquele <identificador de string>, definido na sua declara

ção, é enviado para a saída serial correspondente ao progra

ma monitor.

Page 289: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.264

z zZ z-Zé

ZiZZ

'Z

..V

ZZé

"O

Este comando tem por finalidade fazer com que um conjunto de comandos seja considerado como um comando, ten do o mesmo sentido do comando BEGIN das maiorias das lingua gens estruturadas.

5.4.2 - Coaandos de u n h a s de sincronisisio

5.4.2.1 - CO'Siando SET

4 <comando SET>::=SET <identificador de linha de

saida>;

<identificador de linha de saída>::=OUT(<espec.de saída>)

Z <espec. de saída>::-O|1|2|3|4!5|6|7

Exemplos: SET OUT(O); SET 0UT(7);

O objetivo deste comando é colocar um valor cor respondente ao nível lógico 1 (VERDADEIRO) na linha de saí

-::zO , 5.4.1.12 - Cesando BEGIEI

\ <comando BEGIN>::=BEGIN <conjunto de comandos> 1-Q END;

Exemplos: BEGIN '-'• A: =1500*1 + 45; Z-ZJ B:-600/3*LIST;

ZZ IF 'A>B' THEN B:=0; END;

Page 290: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.265.

Z^

-O

-

"Z

"Z

"ZZ

Z"Zi*

"•ZZ

5.4.2.2 - CGsando KESET zD

zZ

<comando RESET>::=RESET <identificador de linha

""^ de saída>;

ZZZ

Exemplos: RESET 0UT(3);

RESET 0UT(5) ;

Este comando tem a finalidade oposta à do comando

anterior, qual seja, a de colocar o nível lógico O (FALSO)

na linha de saída especificada pelo comando.

j 5.4.2.3 - Cceaindo O Í F U T

- -<comando 1NPUT>::-INPUT <variável aritmética>;

Exemplos: INPUT Bl;

INPUT Q;

INPUT VET(3);

O objetivo deste comando é ler o valor de todas

as entradas associadas às linhas de sincronismo colocando o

valor em uma variável aritmética.

Z--:y4 As entradas são colocadas em um byte com o seguln

-ZZZ te formato:

MSB LSB

IN(7) IN(6) IN(5) IN(4) IN(3) IN(2) IN(l) IN(0)

'' da especificada pelo < identificador de linha de saída>, dei^

ZZ xando inalteradas as outras linhas.

:5) . ^

Page 291: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.266.

Se uma variável que ocupe dois bytes for especi_

ficada neste comando, o valor das entradas serão colocadas

no byte rnenos significativo com O colocado no byte mais sig

niflcativo.

5.4.2.4 - CoEiando 0«TPOT

<comando OUTPUT>::=OUTPUT <variável aritmêtica>;

Exemplos: OUTPUTBITE;

OUTPUT DADOA; •

O objetivo deste comando é colocar um byte especif

ficado pelo parâmetro <variável aritmética> em todas as li_

nhas de saída de sincronismo do robô.

A configuração das linhas de saída, assumida por

este comando é a seguinte:

MSB LSB

0UT(7) 0UT(6) 0UT(5) 0UT(4) 0UT(3) 0UT(2) OUT(l) Ol]ff(0)

Se uma variável aritmética que ocupe dois bytes

for colocada como parâmetro deste comando, somente o byte

menos significativo será utilizado para programar as linhas

de saída de sincronismo.

5.4.3 - Coisanidos de atribuição

5.4.3.1 - Cosando de atribuição aritmética

<atribuição aritmética>::=<variável,aritmética>:=

<expressão aritmética>;

Page 292: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.267.

<expressão aritmética> : : =<terino> |

••• <operador unárioxtermo> |

, <expressão aritmética> <op£

rador de soma><termo>

_ <termo>::=<fator>I

<termo><operador de muitiplicação>

<fator>

<fator>::=<constante sem sinal>|

<varlável arltmética>|

(<expressão aritmética>)

Zi

'Z

<variável aritmétlca>::=<ident. de byte>|

<ident. de word>|

<ldent. de array byt.e>

(<expressão aritrratica > ) |

<ident. de array word>

(<expressão aritmética > )

<operador unário>::= -

<operador de soma>::=+|-

<operador de multiplicação>::=*| /

Exemplos: ARITl:=A+(D*E)/25;

AIT2:=BITE;

DADO:=-55;

EXEMP:=(AIT2*LIST(5));

O objetivo deste comando é colocar o valor resu_l

tante do cálculo da <expressão aritmética> na variável

aritmética definida por <variável aritmética>.

3

Page 293: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.268.

<expressão booleana>::=<termo booleano>¡

NOT <termo booleano |

<expressão booleanaxopera

dor ouxtermo booleano>

*

<operador o u > : : = 0 R | X 0 R

-.-4

"ZZi

.V

- ..--4

^

<termo booleano> : : =:<fator booleano> |

<termo booleanoxoperador e>

<fator booleano>

<operador e>::=AND¡=

Z <fator booleano>::=<variável booleana>|TRUE|

FALSE I

<identificador de linha de en

trada>|

(<expressão booleana>)|

Se o número de posições ocupadas pela variável

-Z aritmética for diferente do número de posições ocupadas

IQ pelo resultado da expressão aritmética o resultado da ex

;Q pressão é convertido para o tipo de variável a ser atribuí^

da, isto é, se o tipo da variável for WORD, e o resultado

_ for BYTE, monta-se uma palavra tipo WORD com o byte mais

_ significativo igual a zero e o menos significativo igual

ao valor da expressão. Se o tipo da variável for BYTE e o

••' resultado for do tipo V/ORD, armazena-se na variável apenas

o byte menos significativo do resultado da expressão.

_ 5.4.3.2- CoEaamdo de aitribuição booleana Zé

^ <atribuição booleana>::=<variável booleana>:=

<expressão booleana>;

Page 294: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.269.

'<expressão aritmética> <opera

dor de relaçãoxexpressão arit

mética>'

<variável booleana>::=<identificador booleano|

<ident.de array booleano

(<expressão aritmética>)

z^ <identificador de linha de entrada>::=IN (<espec.

de entrada>)

<espec. de entrada>::=0|1|213[4|5|617

zzZ <operador de relação: :=> | < | = | >= | <= |

o

z:Zé

Exemplos: B00L:=IN(4) AND FLAG XOR TRUE;

FLAG:='ARITl+56<=64';

BOOL:=NOT FLAG AND TRUE;

Este comando tem por finalidade atribuir o resul^

tado de uma <expressão booleana> à uma variável booleana da

da por <variável booleana>.

.•'.'"--•^ 5.4.4 - Cosaanidos de I B O V I weinitação do robô

Z" •••^

• ZZZ—_ 4

5.4.4,1 - CoEssndo MO¥E

<comando MOVE>::=<parte do comando move>;|

<parte do comando move> > <veloci

^ z. Z d a d o ;

<parte do comando move>::=MOVE <identificador de

ponto>1

zzz^

ZZZJ

Page 295: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.270.

^ MOVE * <identificador de

ZZ p o n t o I

•^j , MOVE STRAIGHT <identifica

-- dor de ponto> TO <ident2^

ficador de ponto>|

MOVE STRAIGHT * <identifi

cador de ponto> TO <identic

ficador de ponto> |

•V MOVE <identificador de

' Z • array word>|

MOVE * <identificador de

array word>|

MOVE <identificador de jun

^ ção> : =<expressão aritmét_i

ca>

Z^ <identif icador de junção ::-JUN(<espec . de junção )

^ <espec.de junção::=1|2|3I4|5|6

^ Exemplos: MOVE PI; (1)

^ . MOVE STRAIGHT PI TO P2; . . Gi2)

"Z MOVE JUN(2):=200+BYTl; (3)

MOVE * VET >80; (4)

MOVE ORIG >90; (5)

O objetivo deste comando é deslocar o robô para

um determinado ponto do espaço ou para uma seqüência calou

'* lada de pontos do espaço como será visto a seguir.

Se no comando MOVE definirmos o parâmetro opcÍ£

^ nal <velocidade>, a velocidade do movimento será a definida

por este parâmetro; caso contrário será utilizada a veloci_

dade definida pelo último comando SPEED de compilação e ca

^ so nenhum tenha sido executado, uma velocidade de 20 será

Page 296: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.271.

considerada. O parâmetro <velocic3ade> corresponde à percen

^ tagem da velocidade máxima com que será feito o movimento.

2^ o comando MOVE pode ser de dois tipos: um comando

— que faz com que o robô se desloque para um determinado pon

^ to, independentemente do ponto onde ele estiver; e um coman

^ do que faz com que o robô se desloque de um ponto a outro

ponto segundo uma determinada linha reta (MOVE STRAIGHT).

Z Para os comandos do primeiro tipo, podemos esp£

2, cificar o ponto para onde o robô irá se deslocar de três ma

— neiras diferentes. Na primeira maneira o ponto é especifica

do por um <identificador de ponto que deve ter sido decla

rado em uma declaração POINT anterior e cujas coordenadas

devem estar definidas no arquivo associado à declaração

^ (exemplos 1 e 5 ) .

2, Na segunda maneira, o ponto é definido pelos valo

— res dos elementos de um vetor do tipo WORD de seis elemen

tos, sendo estes valores considerados as coordenadas de mo

^ tor para aquele ponto, sendo, para o exemplo 2, considerado

VET(O) a coordenada do motor A e VET(5) a coordenada do mo

'•-- tor F.

.

Na terceira maneira, apenas um dos motores do ro

— bô é comandado para se deslocar para a coordenada de motor

^ dada pelo resultado da <expressão arltmética>, motor este

especificado pelo elementos JUN(<expec. de j u n ç ã o ) , como

mostrado no exemplo 3.

'Z Para o outro tipo de comando MOVE, o robô se de£

2J locará de um ponto, especificado pelo primeiro <identifica

dor de ponto> , para o ponto especificado pelo segundo

_ <identificador de ponto> segundo uma linha reta. Os pontos

intermediários são calculados pelo algoritmo de interpola

Page 297: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.272.

ção linear no espaço, sendo o número de pontos interpolados

entre os dois extremos igual ao.valor especificado pelo ú_l

timo comando- de compilação INTERPOLATE. Caso nenhum coman

do INTERPOLATE tenha sido entrado, o valor considerado se_

rá 1, ou seja, o compilador calculará apenas o ponto médio

entre os dois pontos especificados neste comando.

0 algoritmo de interpolação linear utilizado pelo

compilador para calcular os pontos a serem seguidos pelo

robô pode ser visto a seguir:

- Algoritmo de interpolação linear:

1 - Calculam-se as coordenadas cartesianas XI, Yl

Zl, X2, Y2, Z2 dos dois pontos especificados

no comando MOVE.

2 - Calcula-se DX=(X2-X1)/INT, DY=(Y2-Y1)/INT,

DZ-(Z2-Z1)/INT onde INT é número de "pontos de

finido pelo comando INTERPOLATE mais 1.

3 - Calcula-se a coordenada de junção parajt o pri^

meiro ponto correspondente a XI, Yl e Zl. V£

rifica se este ponto é atingível e se for g£

ra-se uma instrução de mover para aquele pon

to.

4 - Para 1=1 até INT faça:X=X1+I*DX.

Y=Y1+I*DY.

Z=Z1+I*DZ.

Transforme o ponto X, Y,

Z para coordenadas de

junção.

Verifique se é atingí_

vel.

Page 298: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

'.ZJ

-ZZ.Zj

Z'Z'.'Z

:Zi

Zj

Zj

ZZ

.273,

5.4.4.2 - CoEãiamdo HOME

<comando HOME>::=HOME;

Exemplo: HOME;

Este comando tem por objetivo executar uma calj^

bração do robô. Ao terminar a execução deste comando, o ro

bô estará posicionado no seu ponto de origem.

••4

Se for, gera-se instru

ção para mover para o

ponto.

5 - Fim.

Desta forma, para o comando MOVE STRAIGHT, pontos

a serem interpolados são calculados com o algoritmo de in

terpolaçao linear mostrado acima.

A orientação da mão-ferramenta do robô é conside_

rada como a orientação definida pelo primeiro ponto do m£

vimento interpolado.

O parâmetro * em qualquer um destes comandos MOVE

significa que se deseja considerar no m.ovimento o valor es

pecificado na coordenada do ponto para o estado da mão - fer

ramenta do robô. Normalmente este parâmetro é utilizado quai

do o robô estiver equipado com uma mão-ferramenta do tipo

garra servo controlada. Se o * não for colocado, o movimen

t O ' s e r á considerado apenas para os motores de posicionamen

t o do robô. *

Page 299: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 274. :ZZJ

5.4.4.3 - CoHiSndo FOtLOW

Z ^ '"• <comando FOLLOW >::=<espec. do follow >;| <espec.do follow> > <velocida de>;

< e E p e c . d o f o l l o w > : : - F O L L O W < i d e n t i f i c a d o r de ca m i n h o > I

•"--V FOLLOW < i d e n t i f i c a d o r d e c a

Zj m i n h o > BACK | FOLLOV/ * < i d e n t i f i c a d o r de ca

m i n h o > |

FOLLOW * < i d e n t i f i c a d o r de ca m i n h o >

BACK -y "Z

<identif icador de caminho >::= <identif icador de linha>|

<identificador de circulo>| <identificador de trajeto ria>

I Exemplos: FOLLOW * LINEl FOLLOW CIRCLES; FOLLOW * TRAJB FOLLOW CAMINH BACK >40;

0 objetivo deste comando é fazer com que o robô siga uma determinada figura geométrica.

Esta figura é definida pelo parâmetro <identifica dor de caminho >, podendo ser uma linha, um círculo ou uma trajetória.

A velocidade que o robô seguirá o caminho é deter

Page 300: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:zZZ .275.

• V

minada pelo parâmetro < velocidade > do comando ou pelo últi^

mo comando SPEED compilado.

,ZZ^

z^

Se o caminho for uma linha, será feita uma inter

polação linear entre os dois pontos extremos da linha. Se

for um círculo será feita uma interpolação circular e se

for uma trajetória, os movimentos serão interpolados em coor

denadas de junção entre os vários pontos da trajetória.

A orientação da mão-ferramenta será, para os dois

primeiros casos, a orientação especificada pelo primeiro

ponto do caminho. Para a trajetória, a orientação será a

de cada ponto componente da trajetória.

A interpolação circular executada para seguir um

determinado círculo é a seguinte: (sendo possíveis apenas

círculos no plano paralelo ao plano XY)

1 - Calcula as coordenadas X, Y e Z para os três

pontos que definem o círculo.

2 - Verifica se a coordenada Z é a mesma para t£

dos os pontos (círculos em planos paralelos

ao plano XY). Se não for, imprime erro e abor

ta a inteipolação.

3 - Determina as coordenadas do centro do

lo, Xc, Yc, Z e o raio r.

circu

...J 4 - Faz a translação dos pontos que definem o

círculo de forma a especificarem um círculo

com centro no eixo z.

5 - Calcula o ângulo Ai e Af referentes ao ponto

inicial do círculo e ac final, e a direção de

Page 301: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-V

.276.

5.4.4.4 - CcMamdo AFPROACH

<comando APPROACH>::=<parte do approach>;|

<parte do approach> > <vel£

cidade>;

deslocamento de Ai para Af dada pelo ângulo

do ponto intermediário Am.

6 - Calcula ANG=(Af-Ai)/(INT+1) onde INT é o núme

ro de pontos a serem interpolados.

7 - Para I-O até INT+1 faça:X=Xc+Rcos(Ai+I*ANG).

Y=Yc+Rsen(Ai+I*ANG).

Calcula as coordena

das de junção para o

ponto X, Y, Z.

Verifica se o ponto é

atingível. Se for g£

ra instrução para m£

ver para o ponto.

8 - Fim.

Se no comando FOLLOW for especificado o parâmetro

* as coordenadas especificadas para a mão-ferramenta do ro

bô,serão levadas em consideração para o movimento, tendo es

te parâmietro o mesmo sentido que ele tem no comanda MOVE.

:0

"J Se o parâmetro BACK for utilizado em um comando

'2 FOLLOW, isto fará com que o movimento do robô seja feito do

— último para o primeiro ponto de caminho especificado ou cal^

culado para o comando.

Page 302: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:z .211.

<parte do approach>::-APPROACH <identificador de

'^Z ponto: <distância> ,

-" <direção> |

•^ APPROACH <identificador de

ponto>=<identificador de •-y

ponto : <distância> , <dir£

ç ã o

<direção>::-DX|DY|DZ|-DX|-DY|-DZ

<distância>::=<número real>

Exemplos: APPROACH P1:30.5,DZ >70; ( 1 )

APPROACH P0NT0=P1:50.0,-DY; . (2)

Este comando tem por finalidade fazer com que o

-Zi robô se aproximie do ponto especificado por < identif icador de

•'ZZ ponto da distância especificada por <distância> segundo a

orientação referente aos eixos coordenados dada por <dir£

ção>.

"Z A velocidade pode ser definida no próprio^comando

Z ou caso não o seja, será utilizada a velocidade especificada

pelo último comando SPEED compilado.

Se como no exemplo (2) for associado um nome ao

ponto referente à aproximação, aquele nome será considerado

como um ponto definido e poderá ser utilizado em comandos

subseqüentes a este comando.

5.4.4.5 - Co-saamido DEPART

<comando DEPART>::-<parte do depart>;|

<parte do depart> > <velocida

de>;

Page 303: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.278.

•V

Q

zO

<direção>

Exemplos: DEPART PI:50.0,-DX;

DEPART STRAIGHT P45:45.6,DZ> 56;

•'-Z Este comando tem por função fazer com que o robô

z:Z se afaste de um ponto definido por <identificador de ponto>

j da distância definida por <distância> segundo a orientação

definida por <direção>, referente a um dos eixos do sistema

_ de coordenadas. •J

A velocidade de afastamento pode ser definida no

•V próprio comando ou pelo último comando SPEED compilado.

Este miovimento pode ser feito interpolado em coor

denadas de junção de um ponto para outro ou pode ser feito

segundo uma interpolação linear no sistema de coordenadas

cartesiano, quando o parâmetro STRAIGHT deve ser íespecifi_

cado. Quando a interpolação for linear, o algoritmo de in

Q terpolaçao linear visto no comando MOVE será também utiliza

Zj do neste comando.

5.4.4.6 - Conaanidlo CLDSE

<comando CLOSE> : : =CLOSE <abertura da mão> ; |

Zt GLOSE <abertura da m,ão> , <identi^

•^j ficador booleano>;

Exemplos: CLOSE 5.0;

CLOSE 10.O,PEGOU;

<parte do depart>::-DEPART <identificador de pon

to> : < distância> ,<direção>|

^ . DEPART STRAIGHT <identifica

dor de ponto>:<distância>,

Page 304: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

••V

-•V

•J

.279.

^ Este comando serve para controlar a abertura de

uma mão-ferramenta servo-controlada associada ao robô.

Ao terminar a execução deste comando, a garra do

robô terá fechado até ficar com a abertura especificada em

<abertura da mão>. Se uma variável booleana especifiçada por

<identificador booleano for entrada no comando, se o sist£

ma de controle da garra conseguir fechar até a abertura

V especificada, é colocado o valor VERDADEIRO na variável

Z booleana. Se não conseguir fechar, quando o objeto pegado

for maior do que <abertura da mão>, coloca-se o valor FAL

SO.

Este tipo de comando permiite ao robô pegar um

objeto sem saber a priori qual a sua medida, desde que ele

seja rígido e tenha um tamanho menor do que a máxima abertu

ra da garra.

5.4,4.7 - CoaaiTiíJo OPEíâ

< comando OPEN> : : =OPEN < abertura da mão>;|£)PEN;

Exemplos: OPEN 50.4;

OPEN 25.0;

OPEN;

Este comando OPEN tem por finalidade definir uma

abertura a ser colocada na garra servo-controlada do robô.

Se a abertura da garra não for especificada no comando, a

garra será aberta ao seu máximo através da deteção de chave

limite associada a garra, sendo então um processo de calí

bração da garra.

Page 305: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 2 3 0 .

5.4.4.8 - Cc-si&rido SPSE3

•<comando SPEED>::=SPEED <porcentagem da velocida

de iTiáx :'jija> ;

Exemplos: SPEED 10;

SPEED 90:

Este comando tem por função definir uma velocida

de de "default" para comandos de movimentação do robô que

se seguirem e não estiverem explicitadas no próprio comando

as velocidades de movimentação.

Se nenhum comando SPEED for especificado, este va

lor de "default" será considera.do pelo compilador como 20.

O valor entrado no comando de velocidade corres_

ponde à percentagem da velocidade máxima de operação do ro

bü.

5.4.4.9 - Ccraíidoi lErTEMPOUiTit •*

<comando INTERPOLATE>::-INTERPOLATE <número depon

tos> ;

<número de pontos>::= { inteiro positivo }

Exemplos: INTERPÓLATE 100;

INTERPOLATE 1000;

Este comando tem por objetivo definir o número de

pontos interpolados a ser calculado pelo compilador para

seguir um caminho que necessite de interpolação como mostra

do nos comandos MOVE STRAIGHT, FOLLOV/ e DEPART.

Page 306: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 281 .

Caso este comando não tenha sido especificado, o

compilador assume um valor igual a 1 para este parâmetro.

5.4.5 - C c v"Eant íOi3 de entrada e salda

5.4.5.1 - CoiEi£iniCio D I S P L A Y

<comanQo DISPLAY>::-DISPLAY <lista de elementos>;

<lista de elementcs> : : =<elernento> ! <elemento > ,< 1 is

ta de elementos>

<elemento>::=<variável>I / |'<string>'

Exemplos: DISPLAY /, Al, LISTA( 5 ) > BITE , /;

DISPLAY 'FIM DO PROGRAMA',/;

O objetivo deste comando é enviar psra a porta

serial de saída associada ao monitor do controlador do robô

os valores ern hexadecimal das variáveis especificadas no co

mando e do conjunto dos caracteres especificados em "strings"

definidos no próprio comando.

Para cada / especificada como parâmetro do coman

do, corresporiderá um retorno do carro e alimentação de li_

nha.

5.4.5.2 - Cciîarîdo EEAD

<comando READ>::=READ <lista de identific£dores>

Exemplos : REA.D Al , LI STA ( 4 ) , DADO ;

Page 307: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.282.

Este comando tem por finalidade entrar com os va

lores de variáveis em tempo de execução da tarefa.

Os dados são recebidos como valores hexadecimais

vindos em código ASCII pela linha serial de entrada do con

trolador do robó, associada ao monitor.

5.4.5.3 - ComBuão PKOST

<comando PRINT>::PRINT <íista de elementos>;

Exemplos: PRINT Al,/,LISTA(7),BITE ;

PRINT /,'ESPERANDO LINHA DE SINCRONIS

MO ' ;

Este comando tem a mesmia finalidade do comando

DISPLAY só que os dados são enviados para a impressora do

nível 1 e não para o terminal de vídeo.

5.4.6 - Ccaandos de visão

"Z

5.4.6.1 - Coaanido FIMO

<comando FIND>::=FIND <identificador de figura>,

<vetor de posição,<variável boo

leana>

<identificador de flgura>: :=<identificador>

<vetor de posição>::=<identificador de array WORD

de 6 elementos>

Page 308: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Zr^ .283.

A comunicação entre os dois programas é feita uti

lizando-se a porta serial de saída e a porta serial de en

trada associada ao monitor do controlador do robó.

O programa de processamento devolve em < variável

booleana> VERDADEIRO, se a figura foi localizada, e FALSO

caso contrário.

Se a figura foi localizada, em <vetor> estarão colo

cadas as coordenadas de motor do ponto referente ao centro

de gravidade da figura.

5.4.6.2 - CoEniamido LEAMÍ

*

<comando LEARN>::-LEARN <identificador de

figura>;

Exemplo: LEARN MINHFIG;

Este comando, associado ao programa processador

de imagens no nível 1 de controle, tem. por finalidade colo

car no arquivo associado ao <identificador de figura>, os

parâmetros necessários para que o sistema de visão possa re

conhecer a figura posteriormente.

. .,^,^^^^^^zz—"f-^

' ^ - ^ ^ ' ^^'1.^=^:^; „ _ j

^ Exemplos: FIND MINHFIG, VETOR,OK; -V

•V Este comando tem por finalidade localizar uma de

Z terminada figura declarada anteriormente, através de um pro

grama de processamento de imagens ativo no nível 1, de con

trole do laboratório.

Page 309: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.:3

.284.

5.4.6.3 - CoEiaïKâo RECOGMIZE

<Comando RECOGNIZE>::-RECOGNIZE <identificador de

figura>,<variável boolea

na> ;

Exemplo: RECOGNIZE MINHFIG,FLAG ;

^ Este comando tem a mesma função do comando FIND

"Z só que o sistema de visão não retorna o vetor de posição do

.V centro de gravidade da figura. Ele só retorna uma valor VER

DADEIRO ou FALSO em <variável booleana> dependendo se ele

reconheceu ou não a figura especificada por <identificador

de figura>.

5.4.6.4 - Ccmando lííSPECT

<comando INSPECT> : : =INSPECT <identif icador de fi.

gura>, <vetor de atributos>;

<vetor de atributos>::=<identificador de array

WORD de 6 elementos>

Exemplo: INSPECT MINHFIG,VETATR;

Este comando deve ser dado depois de um comando

RECOGNIZE que retorne VERDADEIRO para a figura especifica

da.

Em <vetor de atributos> o sistema de visão retor

nará os atributos área da figura, centro de gravidade, núme

ro de furos, perímetro e maior dimensão da figura, nos ele

mentos respectivos de O a 5 de <vetor de atributos>.

Page 310: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:3 73

,--3

ri

.285.

Maiores informações sobre estes comandos de vi

são podem ser encontradas em [52],

5.4.7 - Co-^anão de c o n t r o l e de i n t e r r u p ç ã o

"^"l^ 5.4.7.1 - Coüüando EI •

<comando EI> : :-EI; |EI <número da interrupção;

<número da interrupção::-O|1|2!3|4|5.

Exemplos: EI;

EI 3;

Este comando tem por objetivo habilitar uma deter

minada linha de interrupção do processador de controle do

robô, definida por <número de interrupção ou todas elas,

caso nenhuma seja explicitamente definida.

5.4.7.2 - CoEnsndo Dl

<comando DI>::=DI;|DI <número da interrupção;

Exemplos: Dl,

Dl O;

O objetivo deste comando é inibir uma determinada

linha de interrupção do processador definida por < número

da interrupção> ou todas elas caso nenhuma tenha sido expli^

citamente referenciada.

No começo da execução da tarefa, todas as inter

Page 311: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.286.

O programa foi criado no arquivo PROGOK.LIP com

a utilização de um dos editores de texto do sistema de con

trole do nível 1.

Colocando-se o disco com o arquivo fonte na unida

de B do sistema e o disco com o compilador LIPRI na unidade

A, entramos com o seguinte comando para compilar o programa:

LIPRI B:PROGOK

As mensagens enviadas para o term.inal de vídeo do

sistema durante a compilação estão mostradas na figura

5.4 a seguir.

Quando a raiz do compilador é carregada (LIPRI.

COM), a mensagem

LIPRI:Linguagem de Programação de Robôs Industriais. VERSl.l

é enviada e as iniciações do compilador são executadas.

Quando elas terminarem e o "overlay" de análise

sintática estiver na memória, a mensagem

rupções estão automaticamente inibidas, e sempre que' uma

"""" delas ocorrer e o controle passar para o seu procedimento

^3 de interrupção correspondente, ela ficará automaticamente

inibida até a execução de uma instrução EI com o seu número

de interrupção ou som.ente EI.

:zO

zzo 5 . 5 - U T I U L Z M S M O COIÍPILAD-OK L I P E I

zzO _

Neste item apresentaremos a compilação completa

de um programa com o compilador LIPRI.

Page 312: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 2 8 7 .

Análise Sintática

:0

linhas do fonte = 4Í Total de código = 8Í2 Total de dados ~ 5ó Numero de erros ~ O LIPRI Ví.isCompi 1acao terminada

4

Fig. 5.4 - Seção com o compilador LIPRI.

Uma vez terminada a análise sintática e a geração

da forma intermediária do programa, o "overlay" de geração

de código é carregado e a mensagem

Início de geração de código

é enviada.

Para cada linha do arquivo objeto em formato hexa

decimal criada é enviado um caracter 4^.

-•-w* " é enviada e a cada 10 linhas do programa fonte analisadas

S'0 um caracter + é mandado para o terminal.

-3

zO

ZO

LIPRI BíPROGOK i-Q LIPRIsLinguagcm de Programação de Robos Industriais. VERS i.í

Analise sintática ++++ Inicio da geração de código tH? tí n IHHÍ t4 n M n ÍH* ÍS n n iUHHt-}t }4 M n Ü n U H « «ÍHHHHHÍ«tí» n ÍHHÍ ?í ^ n u « Fim da geração de código

Page 313: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.288.

Quando termina a compilação o total de linhas do

programa fonte, o código gerado e a memoria de dados ocupa

''-• ^ da são listados, como visto na figura 5.4.

No arquivo B:PROGOK.PRN teremos, após o final da

compilação, o arquivo de listagem gerado pelo compilador

^ LIPRI, arquivo este mostrado na figura 5.5 a seguir.

Na primeira coluna do arquivo de listagem é mos

trado o número da linha e na segunda o nivel de BEGIN e END

;C de cada comando.

, Se existisse algum erro de sintaxe, ele seria

^ apontado na linha correspondente e uma mensagem do erro pro

vável seria colocada no arquivo de listagem. No final do

arquivo é apresentado o total de. erros de sintaxe cometidos

pelo usuário. As miensagens de erre e a compilação de alguns

:Z programas errados podem ser vistos no Apêndice II deste ca

pitulo.

^ ' O arquivo objeto criado pelo compilador LIPRI em

formato hexadecimal pode ser visto na figura 5.6 a'seguir

l 5.6 - COMPARAÇKO COM OUTRAS LlflGÍÍAGEfüS PARA PROGRAI'ÎAÇSO BE

- ROBOS IffíBÜSTRIAJES

Esta comparação da linguagem LIPRI com outras lin

guagens para programação de robôs industriais será feita

de uma maneira tabular, onde colocaremos as características

V da linguagem LIPRI nas tabelas comparativas das outras lin

Z guagens disponíveis principalmente em universidades e insti

- tutos de pesquisas nos EUA, apresentadas em [24].

Page 314: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.289,

TYPE B.-PROGOK.PRN

to

^ V

i 2 3 4 5 6 7 8 9

Í 0 tí Í 2 13 Í 4 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 41

O

Programa Exemplo

BEGIN % % % ARRAY "víEKS) UORDj; % LABEL REPETEj % BOOLEAN FLA6,NPEG0LJy Z F I L E F l ' B i P O N T E S . A P R ' -% POINT P Í , P 2 , P 3 IN F i ; LINE L í IN F íy TRAJECT T R A B ( 5 ) IN F l -"Á % Fim das Declarações.

DISPLAY 'TESTANTO H O V E ' , / / ; SPEED 9 6 ; INTERPOLATE 20; MOVE P í > 9 0 ; REPETE:

APPROACH PONT==Pl : íOO.O, -DZ; MOVE STRAIGHT PONT TO P í >2D0; «OVE P I ; DISPLAY /,'entre com flag'; READ FLAG; ^

IF FLAG THEN GO TO REPETE; HOVE PONT; INTERPOLATE 50 ; SPEED 2 0 0 ; HOVE STRAIGHT PONT TO P2 >200; FOLLOW a TRAB >80; FOLLOW TRAB BACK >iOO; HOME; DISPLAY 'FIM DO T E S T E ' , / -y. % Fim do programa % END.

0 NUMERO DE ERROS= 0

Fig. 5.5 - Arquivo de listagem gerado pelo comply

lador LIPRI.

Page 315: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.290,

Zj

- w

TYPE B:PROGOI<.HEX

Í07B0E00544553544 i4E544FP04D4F564524Ó56EA7 Í07BÍE0G74726520Ó36F6D20¿6¿-(:;6ÍÓ72446494DF3 OA702EC)0204 44F2Ü544 553544 524DÍ í O 8 O 0 0 O O 4 F Í: O O O ü D B O O O B O (D O í í 0 O 0 H 0 0 0 8 0 O 0 O O O A í i O 8 010 ü O D 3 030 3 O 3 [) 3 C) 3 O 3 0 3 ü 3 U 3 O 3 ü 3 0 3 O 3 O 3 0330 í O 8 O 2 O CJ () O; O 3 O 3 O 3 ü 3 0 3 O 3 D 3 i 9 2 C íí O í i. D E 7 B í 7 í 7 A C i0803000-';F5AOÜDES2237FOOaOOÜ800080üaeOOí94 Í0804GÜ04F^000DEB2747D588Í0ÜG0Ü0800080Ü1D6 Í08050Ü04FC800DE82747D588ÍOGB000800ÜBOOÍ5E iD80600a5CDE828A7D4A8i5CDE82A07D3D8i5CDEBÍ Í080700Ü82B57D2F8Í5CDE82GB7D208Í5CDE82E05B .UJ80800G7DÍ .1.8Í5CDE82F67D028Í5CDE82ÜB7EF3F7 Í0809Ü008Ü5GDE82207EE3805CDE82357ED4805C84 Í080A00ÜDE824A7EC3805CDE825E7EB3805CDEB2DE Í08ÜD000737EA28Ü5GDE82877E9Í805CDE829B7E06 Í080C00080305CDE82AF7E6E805CDE82C37E5D8ÜFF Í080D0005CDE82D67E4B805CDE02EA7E38805CDEAF .1.0B0E00Q82FD7E268Ü5CDE82Í07FÍ3805CDEB22330 Í080F00Ü7F00804F6000DE82237F00800080008Ü50 Í081000000800Í Í 7 i í iC7B Í30C70 ÍB Í2B1ÜG7B1947 1081Í00040804FÓ000DE82747D5SBÍ. 008000800006 10812000000í4FCaOODEB2747D5BBíOÜBü0080Ü08D 1081300080015GC882847D60815CB282947D678ÍAD 10814000 5 C 9 C 8 2 A 4 7 D 6D815C8 ó 8 2 B 3 7 D7 3 815C 6F 5 3 108Í500082G27D788Í5G5982D17D7C815C4282DFE4 108160O 0 7 D 8 0 (3 í 5 C 2 B B 2 E E 7 D 83815G í 4 B 2 F C 7 D 8628 10817000815CFD8Í097E888Í5CEÓ8ÍÍ67E89815C57 10 8 í 8 O 0 O G F' 812 47 E 8 A 815 G P, 7 813 0 7 E 8 A 8 í 5 C A O 8 x 2 8 108190003D7E8ASÍ5C8881497E8981507081557EC3 108 i A00087B15059816 í 7Ee5815C418 3.6C7E833 í AO 1081B0005C29S1777E7F815C118Í827E7B815CF985 108iC000Bü8C7E778i5CEí80977E728i5CC980A122 1081D0007E6C815CB180AA7E668Í5C9980B37E5F93 10 8 i E O O0815081B O B C 7 E588 í 5 C 6 9 & D C 5 7 E; 5 O 815 C; E 9 Í081F0005Í80CD7E48815G3980D57E3F8Í5C228Ü74 1082000ÜDD7E368Í5C0A80E47E2C8Í5GF27FEB7E31 1082100021815C[)A7FF27Elá815CC27FF87E0B8íól Í08220Ü05CAA7FFE7EFF805C937F037FF2805C7B95 10823a007F087FE5805G647F0D7FDB805C4G7Fl178 108240007FGA805C357F157FBC8Ü5CÍE7FÍ97FAD47 Í0825000805G077FÍC7F9E805CF07EÍE7F8E805C32 Í0826000D97E207F7E805CC27E227F6D805GAC7E6A 10827000247F5C805C957E247F4B805C7F7E257FA5 ÍÜ82800039805C697E257F26805C537E247FÍ38045 108290005C3D7E237F00804F50003D7E458Ü008006 Í082AOOOOG8000800080004F50003D7E4580D080AF 1082B0003681CA7E0080004F50003D7E45800080AO Í082C000777FOD7D0080004F50003D7E45807D7E94 1082D000777FOD7DÜ080004F5000DF7C45807D7EE4 1082E000777F0D7D0080D04F64Ü0DF7C45807D7EC0 1082F000777FOD7D0080014F64003D7E45807D7E4F Í083000D777F0D7D0080ÜÍ4F640Ü3D7E45800080B9 10831000777F0D7D0080014Fá40a3D7E458000a0A9 Í08320Ü03681CA7EÜ08Ü0Í4F64003D7E4580Ü08Ü1A 0D8330000Ü80008000800118112B7B1700Ü9 OOOOOÜOíFF

Fig. 5 .6 - Arquivo objeto criado pelo compilador.

Page 316: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z3

'-3

-3

--y

•V

-y

' .J

.291 ,

As tabelas foram confeccionadas para as seguintes

-íp linguagens de programação de robôs industriais:

- AL

Q Esta linguagem foi desenvolvida no Laboratorio

de Inteligencia Artificial de Stanford, sendo

baseada no PASCAL concorrente. Ela é compilada

em um PDP-10 e o código resultante é carregado

em um PDP-11, com unidade de ponto flutuante e

128K bytes de memória onde é executado.

- AML [54 ]

É a linguagem desenvolvida pela IBM para progra

mação de robôs. Um interpretador implementa a

— linguagem básica e define suas operações primi^

_ tivas, sendo necessário um minicomputador IBM

Série/l com um. m.ínim.o de 192K bytes de m.em.ória.

- HELP

E a linguagem oferecida pela "General Electric

-*' Company" para o seu sistema de robôs , 'cartesia

~4 nos. Ela é implementada como um interpretador

baseado em PASCAL e é executada em um LSI-11/2

com um microcomputador para o controle de cada

junção do robó.

- JARS

Linguagem desenvolvida pelo grupo de robótica

e teleoperação da NASA, sendo a própria lingua

gem PASCAL com comandos de movimentação de ro

V bôs embutidos. Para executar os programas é ne

^ cessário um computador PDPll/34 tendo unidade

de ponto flutuante e deixando para o usuário

apenas 28K bytes de memória disponível.

Page 317: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.292'.

•:.Z

zZ

- MCL

Esta linguagem foi desenvolvida baseada na lin

guagem APT para programação de máquinas de con

trole numérico, sendo utilizada pelo robô T-3

da Cincinnati Milacron. A versão mais sofistica

-V da para controle de uma célula de manufatura uti_

Q liza um computador IBM 3 7 0 com 1 Mega byte de

memória, sendo que uma versão mais simples pode

ser executada em um PDPll, com 128K de memória.

- RAIL [21]

É a linguagem desenvolvida pela Automatix, para

utilização com sistema de visão, solda à arco

e montagem mecânica, sendo executada por um mj^

Z crocomputador Motorola 68000.

- RPL

•ré

Z Desenvolvida pelo "SRI International" em

Stanford ela é baseada em LISP com sintaxe de

\_ _ •- FORTRAN e necessita de um compilador cruzado

que executa em um PDP-IO gerando código para um

PDP-11 ou LSI-11 sendo os esforços atuais empr£

é gados para controlar um robô PUMA 550 com um

Z sistema de visão VS-100.

- VAL [ 60] [61 ]

'2 . É unia linguagem para programação de robôs desen

volvida pela Unimation para a sua família de

^ robôs PUMA. Ela é baseada em construções da lin

^ guagem BASIC, sendo interpretada por um compu

* tador DEC LSI-ll/03 e mais recentemente em

^ LSI-11/23, tendo um microprocessador 6503 dedi^

Z cado ao controle de cada junção do robô.

Page 318: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.293;

:3

- LIPRI

A linguagem apresentada neste capítulo e basea

da em construções semelhantes à da linguagem PAS

CAI tendo comandos específicos para movimenta

ção do robo, sendo compilada em qualquer siste_

ma operacional compatível com CP/M 80 Versão

2.2, gerando um código (Apêndice l) facilmente

. •. . implementável em qualquer microcomputador de

controle de robôs, sendo o corrente implementa

do em um microcomputador baseado no 8085 dedica

do ao controle de robô. A sua implementação foi

feita em PASCAL padrão.

A seguir passaremos a apresentar os dados de com

paração de uma maneira tabular onde estará colocada a lin

guagem LIPRI junto com as outras apresentadas em [24 ] .

Modalidade da linguagem:

'3

'Z

"3

texto:

menu:

AL PM. HELP JARS MCL RAIL RPL VAL LIPRI

X X X X X

X

X X ^ X X

Tipo de linguagem:

ZJ Subrotinas:

Extensão:

Linguagem nova:

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

X X

X X X X X

Page 319: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

ZZrZ)

z:3)

<,;-z3

.294,

-o -o

Tipos de dados geométricos:

Sistema de coord.:

Ângulos de june:

Vetores:

Transformações:

Rotações:

Caminhos:

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

X

X

X X

X

X

X

X

X

X

X

X

X

X

X

X X

X X

X X

X

Número de braços controlados:

AL AIViL HELP JARS MCL RAIL RPL VAL LIPRI

Um braço: X X X X X X

Múltiplos braços: X X X

Estruturas de controle:

AL Ar/L HELP JARS MCL RAIL RPL VAL LIPÍ

Comandos rotulados: X X X X X X X

IF-THEN: X X X X X X X * X X

IF-THEN-ELSE: X X X X X X X X

WHILE-DO: X X X X X X X X

DO-UNTIL: X X X X X

CASE: X X X X

FOR: X X X X X X

BEGIN-END: X X X X

COBEGIN-COEND: X X X

PROCEDURE: X X X X X X X X X

X X

Page 320: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Q

.295,

Tipos de movimentos:

Interpelação

coord.junção:

Linha reta

entre pontos:

Funções

splines:

Círculos geométrj^

C O S implícitos:

Trajetórias geom£

tricas implíc.:

Calculo em temipo

real de traj.:

Linhas de sincronismo:

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

X X X X X X X X

X ..X X X X X

X X X X X

X

X

X

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

Entradas binárias: 0 64 * 0 242 6 32 32 *

Saídas binárias: 0 64 * 2 242 10 32 32 *

Entradas analógicas: 64 0 * 0 242 0 32 0 0

Saídas analógicas: 4 0 0 0 242 0 64 0 0

* significa configurável para o sistema.

Interfaces para sensores:

Visão:

Força:

Sensores de proxi

midade:

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

X X X X X X X

X X

X

X

X

1

X X X

1: Para pegar objetos com a garra.

X X

Page 321: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.296

Programas suporte:

Editor de texto:

Sistema de arquivos:

Editor em execução:

Interpretador:

Compilador:

Simulador:

MACRO:

Comandos Include:

Arquivos de comandos:

Estatíticas de

erros:

Funções de auxílio:

AL AML HELP JARS MCL RAIL RPL VAL LIPPJ

X

X

X

X

X

X X

X

X

X

X

X X

X

X X

X

X

X

X

X

X

X

X

X

X

X

X

X X

X X

X X

X

X

X

X

X

Características de testes:

Passo a passo:

Pontos de parada:

Trace:

Listagem:

AL AML HELP JARS MCL RAIL RPL VAL LIPRI

X X X X X

X X

X

X

X

X

X

X

X X

X X í

X

X

X

X

Desta forma, podemos ver que a linguagem LIPRI

desenvolvida possui os principais atributos de uma lingua

gem para programação de robôs industriais. Alguns exemplos

de programação de tarefas para o robô do laboratório com a

linguagem LIPRI podem ser vistos no Apêndice III.

Page 322: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.297.

5.7 - COíiCLÜSÍÍO

.Este capítulo foi dedicado à apresentação da lin

guagem LIPRI (Linguagem para Programação de Robôs Indu£

triáis) desenvolvida no laboratório LÍDER para utilização

com o robô construído.

Inicialmente apresentamos a configuração do siste

ma para a execução da linguagem, os principais arquivos do

compilador e os arquivos de entrada necessários para compi^

lar e executar um programa, suas finalidades e a maneira de

criá-los.

A seguir, apresentamos a sintaxe dos programas

escritos em LIPRI, detalhando todas as suas declarações e

comandos, apresentando exemplos de cada um deles.

Uma seção com o compilador LIPRI utilizado para

compilar um programa exemiplo foi apresentado.

Finalizando o capítulo, fizemos uma comparação

com outras linguagens para programação de robôs * indus

triáis, utilizando as tabelas apresentadas em[24 ] e incluín

do nelas as características da linguagem desenvolvida.

Como conclusão básica desta comparação, podemos

dizer que a linguagem LIPRI, possui os principais atributos

de uma linguagem de programação de robôs, tendo ainda a van

tagem de necessitar de uma pequena e pouca custosa infra-

estrutura para a compilação e execução de seus programas.

Sob o ponto de vista da portabilidade da lingua

gem para outros sistemas de desenvolvimento e outros robôs,

devemos ressaltar que pelo fato da linguagem ser executada

sob o sistema operacional compatível com o CP/M, sistema

Page 323: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

'«sé

•-y

•eé

«y

.298.

este largamente difundido em varias máquinas, e pela sua

implementação em linguagem PASCAL padrão, a sua portabili

dade é bastante razoável, e por termos colocado a dependen

cia de atributos da arquitetura mecânica em um módulo sepa

rado e estanque da linguagem e mais, sendo o código gerado

por ela composto de instruções facilmente implementadas por

qualquer controlador dedicado a um robô, podemos dizer que

é grande a sua portabilidade.

Page 324: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-3

COmClLOSOES Fiimis

3

"Quem perdeu o trem da história por querer saiu do juízo sem saber

— foi mais um covarde a se esconder 3 diante de um novo mundo".

y (Beto Guedes e Ronaldo Bastos) 3 • ' - • - . "Z

•ZZ>

—^

•:z3

——., , — w

ZJ-3

Page 325: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.300.

A despeito de todas as profundas modificações nas

estruturas sociais, necessárias para a mudança da socieda

de atual para uma sociedade onde o trabalho robotizado fos

se utilizado em larga escala, soluções terão que ser encon

tradas de forma a que esta transformação seja a mais suave

e amena para todos, patrões e empregados, principalmente pa

ra aqueles que tiverem seu trabalho substituído, porque os

robôs industriais vieram para ficar.

Para países em um estágio de desenvolvimento in

ferior, existe ainda um problema adicional nesta mudança:

o de desenvolver esta tecnologia de forma a não se tornarem

ainda mais dependentes dos países desenvolvidos.

Tecnologia, independentemente da área, não se

transfere nem se compra, se desenvolve; e o principal fator

de desenvolvimento de qualquer tecnologia é a formação de

recursos humanos.

Este trabalho, dedicado à concepção e imijblementa

ção de um laboratório para o desenvolvimento e ensino de

técnicas voltadas para robôs industriais, produziu vários

resultados. Como contribuições podemos apresentar o projeto

e construção de um robô industrial do tipo braço articulado

com cinco graus de liberdade, acionado por motores de pas

so com realimentaçao de posição e equipado com uma garra

mecânica servo-controlada, uma estrutura de controle hierár

quica e distribuída para a execução das diversas funções

apresentadas no decorrer do trabalho, programas suportes pa

ra programação do robô por aprendizado, execução de tare

fas, transformações de coordenadas e uma linguagem de alto

nível para programação de tarefas de robôs industriais.

Page 326: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.301.

Podemos citar também, a título de contribuição, a

interligação destes vários sistemas em um sistema único e

de fácil operação que é o próprio laboratório LÍDER - Labo

ratório Integrado para Desenvolvimento e Ensino da Robót^^

ca, objetivo principal deste trabalho.

Como dificuldade principal da sua execução pode

mos considerar a sua característica multidisciplinar exigin

''' do a solução de problemas de origem mecânica associados ao

•cy acionamento e aos sensores do robô, problemas relacionados

Z ao desenvolvimento e implementação'de circuitos elétricos/

- eletrônicos de controle, programação de rotinas de controle

_ em tempo real com a utilização intensiva de interrupções e

de desenvolvimento e implementação de linguagens de alto

nível em microcomputadores que exigem a divisão de progra

mas e o gerenciamento de "overlays", sendo que podemos con

siderar a maioria destes problemas solucionados de uma for

ma eficiente e econômica, como apresentado no decorrer de

todos os capítulos anteriores.

0)\ No primeiro capítulo nos dedicamos a apresentar

o estado da arte dos robôs industriais e a proposta para

o desenvolvimento do laboratório LÍDER.

No segundo capítulo, apresentamos a arquitetura me

canica do robô desenvolvido, seus acionadores, seu sistema

de realimentaçao, suas características principais e a gar

ra mecânica desenvolvida para o robô.

y A escolha de motores de passo para o acionamento

^ do-robô, por um lado facilitou o seu controle devido à sim

plicidade de se controlar corretamente a sua posição e velo

cidade, ainda mais utilizando o sistema de realimentaçao

proposto, mas por outro lado, por ser este motor um inj£

tor natural de vibrações mecânicas, dificultou enormemente

Page 327: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

o

. V

.302.

a geração de trajetórias suaves. Em miáquinas-ferramentas uti

lizando motores de passo, este problema de vibrações inje

tadas pelos motores é resolvido não permitindo o seu acio

namento em freqüências coincidentes com as freqüências de

ressonância da estrutura da máquina. Em. robôs industriais

isto não pode ser feito porque, devido à necessidade de

ter-se movimentos interpolados, as freqüências para os moto

res são calculadas por algoritmos, sendo dependentes do ães

locamente de cada motor, ou seja, esta freqüência não é

controlável o que inevitavelmente leva a coincidências com

freqüências de ressonância da estrutura do robô, principal^

mente para baixas velocidades.

Robôs acionados por motores de corrente contínua

apresentam um movimento mais suave, mas não possuem as van­

tagens da utilização dos motores de passo apresentadas no

item 3.3.2.

Quanto ao sistema de realimentaçao proposto, con

cluímos que ele representa uma grande melhoria para o corre

to.funcionamento do robô. Inicialmente, o controle do robô

foi feito em malha aberta. A dinâmica do manipulador articu

lado, onde tonques para as várias articulações são difíceis

de serem determinados pois dependem do acionamento de ou

tras articulações, ocasiona tonques no eixo dos motores su

periores ao máximo torque permitido de forma a que erros

por perda de pulsos ocorrem, comprometendo a repetibilidade

do robô. Para solucionar este problema, duas soluções eram

possíveis. A prim,eira sendo o superdimensionamento de todos

os motores, o que acarretava motores maiores, mais pesados

e mais caros além das necessidades adicionais para o seu

acionamento e a segunda sendo a colocação de um sistema de

realimentaçao de posição para corrigir eventuais perdas de

pulsos. Optamos pela segunda solução e a sua implementação,

conforme descrita, melhorou consideravelmenete a repetibi

Page 328: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.303.

lidade do robô.

CO:::;33;:o R.;\C:G::/L Líi EivERGlA W U C L E A R / S P I C) C M

Concluímos então que um robô do tipo braço articu

lado acionado por motores de passo deve ter necessariamente

um sistema de realimentaçao de posição.

Problemas de folgas e não rigidez mecânica da es

trutura também comprometem a repetibilidade do robô. Para a

implementação realizada, algumas soluções foram realizadas

para minimizar estes problemas, tais como trabalhar com a

coroa deslocada em relação ao sem-fim e colocar espaçadores

para aumentar a rigidez da caixa do braço. Achamos que ou

tras soluções dariam melhores resultados tais como a util_i

zação de coroas bipartidas e a confecção do braço com mat£

riais de alta rigidez e pequeno peso tal como o composite.

Estas soluções não foram implementadas devido ao

alto custo envolvido o que certamente encareceria bastante

o desenvolvimento do laboratório, mas se fosse o caso de

uma confecção em escala industrial do robô, sugeriríamos

que elas fossem utilizadas.

No capítulo III apresentamos a arquitetura do sis

tema de controle do laboratório, arquitetura esta baseada

em um sistema de controle hierárquico distribuído com três

níveis.

Esta arquitetura foi escolhida em detrimento de

uma arquitetura centralizada com um, único processador, prin

cipalmente pela simplificação de sua implementação devido

ao particionamento da tarefa em pequenas sub-tarefas que

permitem a sua implementação em processadores menores e tam

bém,por acharmos ser este tipo de arquitetura natural para

o gerenciamento das fábricas automatizadas do futuro, onde

existirão vários processadores dedicados a tarefas específi

Page 329: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.304.

cas (controle de robôs, máquinas de controle numérico, sen

sores etc.) coordenados por processadores de níveis mais

altos.

A implementação do controlador do robô com um

microcomiputador de 8 bits só foi possível devido à utiliza

ção desta estrutura de controle e de circuitos LSI para im

plementação de funções dedicadas como mostrado no decorrer

deste capítulo.

No quarto capítulo apresentamos os programas su

portes para o laboratório, tanto para o nível O, dedicado

ao controle do robô, como para o nível 1, dedicado à infra-

estrutura de programação do laboratório.

Os programas de calibração, aprendizado e execu

ção de tarefas apresentados, fornecem uma estrutura eficien

te e fácil de se utilizar para a programação de tarefas com

plexas para o robô, sem requererem uma grande experiência em

programação do operador, sendo voltados principalmente para

t pessoas não especializadas.

i

o programa editor de figuras utilizadas pela lin

guagem de alto nível foi uma maneira eficiente e fácil que

encontramos para a utilização desta linguagem emi toda sua

extensão, dispensando a preocupação de quantificarmos o uni^

verso do robô, quantificação esta de bastante dificuldade.

A concepção e implementação de um conjunto de in£

truções baseadas em memória implementadas pelo controlador

do robô (Apêndice I), além de permitir a utilização de toda

a capacidade do laboratório através do programa de aprendi

zado, tornou bastante portátil a linguagem de alto nível d£

senvolvida, para outros robôs. Para tanto, basta que o con

trolador implemente este conjunto de instruções para po

Page 330: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.305.

der-se utilizar a linguagem de alto nível para aquele robô.

As i^otlnas de transformação de coordenadas, dis

poníveis para qualquer usuário do laboratório, ampliam enor

memente a sua capacidade de processamento pois permitem a

criação de novos programas gerando dados diretamente execu

táveis pelo controlador do robô através da linha de comuni

cações entre os dois níveis ou em arquivos diretamente ace£

sados pela linguagem de alto nível.

Finalmente, no capítulo V, apresentamos a defini

ção da linguagem LIPRI - Linguagem para Programação de Ro

bôs Industriais, implementada no laboratório.

A opção de se im.plementar uma linguagem compila

da, ao invés de uma linguagem interpretada, veio também da

necessidade de termos um processador miais simples e barato

para o controle do robô pois, com um com.pilador, o cálculo

de trajetórias e análise de comandos são feitos "off-llne",

diminuindo sobremianeira a capacidade de processamento ne

cessaria. Por outro lado, comandos que necessitam de um pro

cessamento "on line" de trajetórias são mais difíceis* de

serem implementados com uma linguagem do tipo compilador.

A possibilidade de definição de figuras geométrj^

cas, possíveis de serem editadas direta e automaticamentep£

Io programa editor de figuras junto com o programas de apren

dizado, facilita bastante a programação de tarefas compl£

xas com a linguagem LIPRI, principalmente por ser de gran

de dificuldade quantificar e determinar dimensões no amblen

te de trabalho do robô. Esta facilidade fica evidente nos

exemplos de implementação de tarefas típicas de robôs indus

triáis feitos no laboratório e apresentados no Apêndice III

deste trabalho.

Page 331: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.306.

A comparação com outras linguagens de programação

de robôs apresentada no final do capítulo V mostra que, a

linguagem LTPRI proposta, apresenta a maior parte das facilj^

dades das outras linguagens permitindo ainda, a sua utiliza

ção em microcomputadores e sendo transportável para

outros computadores e robôs como tairibém mostrado naquele ca

pítulo.

Comandos utilizando um sensor de visão foram def¿

nidos sendo que a sua implementação está sendo feita em con

iunto com o trabalho apresentado em [52].

Exemplos de programação de tarefas típicas para

robôs industriais, utilizando os recursos do laboratório

desenvolvido, podem ser vistos no Apêndice III deste traba

lho.

Como trabalhos futuros podemos sugerir:

1 - Simulação gráfica da execução de tarefas pro

gramadas para o robô, através da utilização do

terminal gráfico do nível 2 dé controle pro

posto.

2 - Interligação com sistema CAD/CAM em desenvol^

vimento na EPUSP para posicionamento de peças

em placas de circuito impresso.

3 - Interligação do robô com o torno/frezadora de

controle numérico em desenvolvimento na Uni^

versidade Federal do Espírito Santo, com o

intuito de se implementar uma célula flexível

de fabricação.

4 - Implementação de outros sensores para o robô

...V

Page 332: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

• 5 *

4.

•CS'

.307.

tais como sensores de tato, de voz e proximj_

dade, com a sua integração na linguagem LIPRI.

5 - Colocação de outro robô e implementação de

comandos de sincronismo e coordenação de tare

fas para dois ou mais robôs na linguagem

LIPRI.

Assim, este laboratorio, da forma com que foi con

cebido e implementado, junto com os prograonas e sensores

nele desenvolvidos, servirá de infra-estrutura para o ensa­

ño e a pesquisa de novas tecnologias e técnicas visando o

aprimoramento dos robôs industriais.

Page 333: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

APEíffilCE I - COííJüIffO BE llíSTRÜÇOES EXECII!TA¥EIS

PELO JMl¥EL O BE COIiTKOLE

I:-O -y

•^—-y

Z- J te —

:y y

.•y

•Q

:Q

'-.y

- y

••y

".y

' y

Page 334: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

y

.309.

•••y 7 - Instruções de atribuição.

o*

8 - Instruções de conversão.

9 - Instruções de índices.

10 - Instruções aritméticas.

11 - Instruções de operações booleanas,

A seguir descreveremos cada uma destas instruções

implementadas nestes grupos apresentando o seu código de

operação, seus parâmetros e a sua finalidade.

- Instruções de movimentação do robô.

As instruções neste grupo do conjunto de instru

ções têm por finalidade prover meios de movimentação do ro

bô.

As instruções executáveis pelo computador do ní_

vel O, dedicado ao controle do robô, podem ser divididas

em 11 grupos a saber:

1 - Instruções de movimentação do robô.

2 - Instruções de linhas de sincronismo.

3 - Instruções de entrada e saída.

4 - Instruções de interrupção.

5 - Instruções de controle de processamento.

6 - Instruções de desvios.

Page 335: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.310.

Elas são as seguintes:

1:Instruções MOVP: código: 4FH

Formato:

4F<divfreq><mota><motb><motc><motd><mote><motf><hbmão>

Esta instrução é utilizada para fazer o robô se

movimentar da sua posição atual para a posição especificada

pelas coordenadas de motor <mota> até <motf> com uma fre

qüência máxima de movimentação de motores especificada pelo

parâmetro <divfreq> . Esta é a maior instrução do robô ocu

pando um. total de 16 bytes.

O parâmetro <hbmião> serve para especificar se a

coordenada da mão servo-controlada será ou não utilizada no

movimento. Se este parâmetro for O, o motor da garra é tam

bém acionado e se for diferente de O, o motor da garra não

é acionado no movimento, permianecendo na coordenada ante

rior a esta instrução.

Esta instrução só pode ser gerada pelo comando P

do programa de aprendizado, não podendo ser entrada pelo co

mando I do mesmo programa.

2:Instrução MOVV: código: 56H

Formato:

56<hbmão><endereço do vetorxdivfreq>

Esta instrução tem por objetivo fazer com que o

robô se desloque para uma posição cujas coordenadas de mo

Page 336: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.311.

tor são especificadas pelos valores armazenados nas Pos¿

ções Iniciadas por <endereço do vetor>, sendo a coordenada

do motor A a primeira de a do motor F a última, e o byte m£

nos significativo colocado antes do mais significativo.

O parâmetro <hbmão> especifica se o motor da gar

ra será acionado e a velocidade do movimento é dada pelo pa

râmetro <divfreq>.

3:Instrução MOVJ: código: 57H

Formato:

57<número da junçaoxendereço da coordenadaxdivfreq>

o objetivo desta instrução é fazer com que o miO

tor associado à junção especificada por <nûmero da junção

se desloque para a coordenada indicada por <endereço da C £

ordenada>, sendo o byte menos significativo da coordenada

armazenado neste endereço e o mais significativo no seguln

te. *

A velocidade do m.ovimento é dada pelo parâm,etro

<divfreq>.

4:Instrução MOVC: código: 5CH

Formato:

5C<mota><motb><motc>

Esta instrução só pode ser gerada pela linguagem

de alto nível, quando são especificados miovimentos interpo

Page 337: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

V

.312.

lados em coordenadas cartesianas.

5:Instrução HOME: código: 18H

Formato:

18

Esta instrução de um byte tem por objetivo calj^

brar o robô. Após a sua execução, o robô estará na sua posi

ção de origem, com as coordenadas do ponto de origem.

6:Instrução CLOV: código: 58H

Formato: *

"Z

V 58<motfxendereço booleano>

O objetivo desta instrução é comandar o fechamen

to da garra para a coordenada especificada pelo parâmetro

<motf>. Se o sistema de controle conseguir fechar a garra

até esta coordenada, é colocado um valor verdadeiro na va

riável booleana especificada por <endereço booleano> . Se

o sistema de realimentaçao da garra detetar que a mesma não

consegue mais fechar, a coordenada da garra é atualizada

para o valor real da mesma e coloca-se falso na variável 1 : 3 booleana especificada.

• A velocidade do movimento é especificada pela

última instrução MOVP executada, sendo que apenas os moto

res A, B e C podem se movimentar, ou seja, a orientação

da mão-ferramenta do robô permenece inaltei-ada.

Page 338: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

/sa.

—•es?

5A<raotf>

.313.

7:Instrução CLOS: código: 59H

Esta instrução tem por objetivo abrir a garra até

ç- o valor especificado por <motf>.

9: Instrução OPEN: código: 5BH

^ Formato:

sr

^ o objetivo desta instrução é ocasionar a abertu

^ ra da garra até a sua máxima abertura, detetável pela cha

ve limite associada à garra. Esta instrução é, de fato, uma

instrução de calibração da garra.

Formato:

59<motf>

O objetivo desta instrução é fechar a garra até

o valor de coordenadas do motor F especificado por <motf>.

Nenhum teste é feito, sendo que o sistema de controle acio

na a garra até que o sistema de realimentaçao indique que

a coordenada foi atingida.

8:Instrução OPNV: código: 5AH

Formato:

Page 339: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•cs'

.314.

- Instruções de linhas de sincronismo.

1:Instrução SET: código: OBH

Formato:

OB<número da linha>

A instrução SET tem por objetivo colocar o nível

1 na linha de saída especificada pelo parâmetro < número

da linha>.

2:Instrução RESET: código: OGH

Formato:

OC<número da linha> a

O objetivo desta instrução é colocar o nível ló

gíco O na linha de saída especificada por <número de li

nha>.

3:Instrução TEST: código: 42H

Formato:

42<número da linhaxendereço booleano>

A instrução TEST tem por objetivo verificar

As instruções deste grupo tem por objetivo tratar

das 8 linhas de entrada e 8 linhas de saída utili.zadas pai^a

sincronizar o robô com outros equipamentos.

Page 340: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.315.

. nível lógico da linha de entrada especificada por <número

da linha>. Se este nível for 1 ela coloca o valor verdadei -_

' ro na variável booleana especificada por <endereço boolea

-zZj no>. Caso contrário o valor falso é colocado.

4:Instrução INP: código: ODH

Formato:

OD<endereço do byte>

O objetivo desta instrução é colocar o valor de

todas as linhas de entrada em um byte, com a linha númiero

7 sendo o bit mais significativo, e armazená-lo na posição

especificada por <endereço do byte>.

5:Instrução CUT: código: OEH

Formato:

i

OE<endereço do byte>

Esta instrução coloca o byte armazenado em <ende

reco do byte> nas linhas de saída sendo o bit mais signifi

cativo do byte colocado na linha 7.

- Instruções de entrada e saída.

Estas instruções tem por objetivo colocar o con

teúdo de um endereço especificando uma palavra, um byte

ou uma seqüência de caracteres ou no terminal de vídeo ou

na impressora do laboratório, e também ler o valor de um by

te ou palavra entrados pelo terminal de vídeo.

Page 341: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

/5ü

-Cf

.316.

1: Instrução DISW: código: OFH

Coloca o conteúdo do byte em <endereço do byte>

'•as» no terminal de vídeo.

3:Instrução DIST: código: IIH

4

Formato:

ll<endereço do string>

Coloca a seqüência de caracteres começando no

endereço dado por <endereço do string> até o caracter $ no

terminal de vídeo.

4:Instrução RDW: código: 12H

Formato:

Formato:

OF<endereço da palavra>

Coloca o conteúdo da palavra em <endereço da pa

lavra> no terminal de vídeo.

2:Instrução DISB: código: lOH

Formato:

10<endereço do byte>

Page 342: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

9

-y

.317.

12<endereço da palavra>

5:Instrução RDB: código: 13H

Formato:

13<endereço do byte>

Coloca o byte recebido em hexadecimal do terminal

de vídeo no endereço especificado por <endereço do byte>.

6:Instrução PRIW: código: 14H

Formato:

14<endereço da palavra> *

Tem a mesma função de DISW só que para a impres

sora.

7:Instrução PRIB: código: 15H

Formato:

15<endereço do byte>

Tem a mesma função de DISB só que para a impres

sora.

Tem como função colocar o valor recebido em hexa

decimal do terminal de vídeo na palavra especificada por

<endereço da palavra>.

Page 343: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•*

z-é

•4

.318.

8:Instrução PRST: código: 16H

10:Instrução PRLF: código: 51H

Formato:

51

Envia um retorno do carro e uma alimentação de

linha para a impressora.

- Instruções de interrupção.

As instruções deste grupo tem por finalidade habi^

litar ou inibir interrupções do processador que controla o

robô.

Formato:

16<endereço do string>

Tem a mesma função de DIST só que para a impres

sora.

9;Instrução CRLF: código: 17H

Formato:

17

Envia um retorno do carro e uma alimentação de

linha para o terminal de vídeo.

Page 344: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

1:Instrução EI

Formato:

.319,

código: 05H

- -J 05

Esta instrução tem por objetivo habilitar

as linhas de interrupção do robô.

todas

3y

2:Instrução Dl

Formato:

código: 06H

06

O objetivo desta instrução é inibir todas as

nhas de interrupção do robô.

11

3:Instrução EINT;

Formato:

07<número da linha>

código: 07H It

A instrução EINT faz com que a interrupção asso

ciada ao <número da linha> seja habilitada.

4:Instrução DINT;

Formato:

código: 08H

<:3

08<número da linha>

Page 345: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

j .320.

:ZJ

^ Esta instrução inibe a interrupção associada ao

<número da linha>.

5:Instrução PINT: código: 50H

Formato:

50<número da interrupçaoxendereço da rotina>

-j

'•Zj

-Z

Esta instrução associa a rotina especificada no

endereço <endereço da rotina> à interrupção associada ao pa

râmetro <número de interrupção.

- Instrução de controle de processamento.

1:Instrução PAUS: código: OlH

Formato:

01. 4

O objetivo desta instrução é suspender a execução

de uma determinada tarefa até que a tecla 'C seja enviada

para o controlador do robô através da linha de comunicação

com o nível 1 de controle.

2:Instrução STOP: código: OOH

Formato:

Esta instrução termina a execução de uma determl

00

Page 346: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

73

'--70 I

V

3

3

3

nada tarefa.

3:Instrução HALT: código: 02H

Foi'-mato:

02

O objetivo desta instrução é suspender a execução

-V de uma tarefa só prosseguindo quando ocorrer uma interrup

72 ção habilitada.

4:Instrução RET: código: 04H

Formato:

04

A execução desta instrução faz com que uma deter

minada rotina seja terminada retornando o controlé para o

endereço armazenado na pilha do processador.

5:Instrução CALL: código: 09H

Formato:

09<endereço da rotina>

Esta instrução desvia o controle para a rotina cu

jo início está especificado pelo parâmetro <endereço da ro

tina>.

Page 347: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.322.

6:Instrução WAIT: ' código: OAH

7:Instrução NOP: código: 03H

Formato:

03

-y

Zj

-y

y

• .j

Zj - Instruções de desvio.

Esta instrução não realiza nenhuma operação,

^ y

1:Instrução JUMP: código: 19H

Formato:

19<endereço do programa>

O objetivo desta instrução é desviar incondicional^

mente o controle da tarefa para a instrução colocada em

<endereço do programa>.

Z 2:Instruções de desvios condicionais a um valor:

Formato:

) *

Formato:

OA<número de segundos>

Esta instrução suspende a execução da tarefa pelo

número de segundos especificado em <número de segundos>.

Page 348: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.323.

<código><endereço do programa><endereço da variável>

Estas instruções desviajn o controle da tarefa pa

ra o ponto dado por <endereço do prograjna> dependendo do va

lor da variável especificada em <endereço da variável> .

São os seguintes os mnemónicos, os códigos e a

condição destas instruções:

mnemónico <código > condição de desvio

JZW lAH Se a palavra for igual a zero

JZB IBH Se o byte for igual a zero

JNZW ICH Se a palavra for diferente de zero

JNZB IDH Se o byte for diferente de zero

3:Instruções de desvios condicionais a uma comparação:

Formato :

* <código><end.do programaxend.operl><end.oper2>

O objetivo desta instrução é desviar o controle da

execução da tarefa para a posição especificada em <end. do

programa > se a condição associada ao código ocorrer para

os dois operandos especificados por <end.operl> e <end.

oper2 >.

Os mnemónicos, os códigos e as condições de des

vio para as instruções deste tipo estão mostrados a seguir.

1. P . E. N.

Page 349: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.324.

4 -mnemônico <código> condição de desvio tipo de oper.

JGEW lEH Se operl>=oper2 palavras

JGEB IFH Se operl>=oper2 bytes

JLEW 20H Se operl<=oper2 palavras

JT,KR 21H Se operl<=oper2 bytes

JEQW 22H Se operl=oper2 palavras

JEQB 23H Se operl=oper2 bytes

JGTW 24H Se operl>oper2 palavras

JGTB 25H Se operl>oper2 bytes

JLSW 26H Se operl<oper2 palavras

-

JLSB 27H Se operl<oper2 bytes

V

1:Instrução

Instruções de

ATRV/:

atribuições.

código: 28H

Formato:

28<end.palavra fonte><end.palavra destino> *

O objetivo desta instrução é colocar o conteúdo

da palavra especificada em <end.palavra fonte> na palavra

especificada em <end.palavra destino.

2:Instrução ATRB:

Formato:

código: 29H

29<end.byte fonte xend. byte destino

Transfere o conteúdo do byte especificado em

Page 350: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•V

"Z .32b.

<end.byte fonte> para o byte especificado em <end.byte des

tino>.

3:Instrução ATIW: código: 2Ah

Formato:

2A<valor imediato palavraxend.palavra destino>

Transfere o <valor imediato palavra> para a pala

vra especificada em <end.palavra destino>.

4:Instrução ATIB: código: 2BH

Formato:

2B<valor imediato bytexend.byte destino>

Transfere o <valor imediato byte> para o byte es

pecificado em <end.byte destino>. *

5:Instrução ATXW: código: 2CH

Formato:

2C<end.palavra fonte><end.do endereço da palavra destino>

Transfere o conteúdo da palavra especificada em

<end.palavra fonte> para a palavra cujo endereço é o conteú

do da posição especificada em <end.do endereço da palavra

destino >.

Page 351: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

z3

. ..y

'••y

" y

' -y

• y

' y

.326,

6'.Instrução ATXB: código: 2DH

7:Instrução AXTW: código: 52H

Formato:

52<end.do endereço da palavra fonte><end.palavra destino>

Transfere o conteúdo da palavra cujo endereço é

especificado por < end.do endereço da palavra fonte> para à:

palavra especificada em <end.palavra destino.

8:Instrução AXTB: código: 53H

Formato:

53<end.do endereço do byte fontexend.byte destino>

" Transfere o conteúdo do byte cujo endereço é

"s, especificado por <end.do endereço do byte fonte> para o

byte especificado em <end.byte destino.

Formato:

2D<end.byte fonte><end.do endereço do byte destino>

Transfere o conteúdo do byte especificado em

<end.do byte fonte> para o byte cujo endereço é o conteúdo

da posição especificada em <end.do endereço do byte desti

no> .

Page 352: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

zz:>

"Z

-Z

• y

- 3

"Zé

.327.

Formato:

y

2F<end.da palavraxend . do byte>

Transfere o byte menos significativo da palavra

especificada em <end. da palavra> para o byte especificado

" em <end.do byte>. *

'Z

Zé - Instruções de índices.

Estas instruções são utilizadas para calcular o

endereço de um elemento em um vetor.

1:Instrução INDW: código: 30H

Formato:

30<índice do elementoxend.basexend.do end.do elemento

Esta instrução multiplica por dois o valor de

- Instruções de conversão.

1:Instrução CVBW: código: 2EH

Formato:

2E<end.do bytexend.da palavra>

Transfere o byte especificado em <end.do byte> pa

ra o byte menos significativo da palavra especificada em

<end.da palavra> colocando O no byte mais significativo.

2:Instrução CVWB: código: 2FH

Page 353: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

•y

••"3 :*-3

y

y

.328.

<índice do elemento> soma com o valor de <end.base> e colo

ca o resultado na posição especificada por <end.do end. do

elemento.-

2:Instrução INDB: código: 31H

Formato:

31<índice do elementoxend .basexend. do end. do elemento>

2J Esta instrução soma o valor do <índice do elemen

t o ao valor do <end.base> e coloca o resultado no endereço

especificado por <end.do end. do elemento.

- Instruções aritméticas.

1:Instruções de troca de sinal:

CHSW código: 54H

CHSB código: 55H . 4 -

Formatos:

:""Zé 54<end.da palavraxend.do resultado

—_Q 55<end.do bytexend.do resultado>

Estas instruções trocam o sinal da palavra ou do

^ byte especificado no primeiro parâmetro e colocam o resuj^

^ tado na palavra ou byte especificado no segundo parâmetro.

Z'Z 2:Instruções de um operando:

Formato:

Page 354: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

z ^

z2

--3

.329.

<código><end.operando>

mnemônico < código > função

INCW 3CH incrementa palavra

INCB 3DH .incrementa byte

DCRW 3AH décrémenta palavra

DCRB 3BH décrémenta byte

. . .

'IS. -y

' ^

".y

::ZJ

• 3

3:Instruções de dois operandos:

Formato:

<código><end. operlxend. oper2><end. resul>

Estas instruções executam a operação especificada

no <código> entre os operandos cujos endereços estão esp£

cificados em <end.operl> e <end.oper2> e colocam o resulta

do no endereço especificado em <end.resul>.

Os mnemônicos e <código> junto com as funções pa

ra as Instruções aritméticas deste grupo estão mostradas

abaixo:

— ^

Estas instruções servem para incrementar ou de

crementar uma palavra ou um byte, sendo seus mnemónicos e

<código> mostrados abaixo:

Page 355: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

zm

Z O

z:3

—O

-O

-O

.330.

...

7- -3^

mnemónicos < código > função tipo dos oper.

ADDW 32H operl+oper2 palavras

ADDB 33H operl+oper2 bytes

SUBW 34H operl-oper2 palavras

SUBE 35H operl-oper2 bytes

MUXW 36H operl*oper2 palavras

MUXB 37H operl*oper2 bytes

DIW 38H operl/oper2 palavras

DIVB 39H operl/oper2 bytes

— Instruções de operações booleanas.

1 :Instrução NOT código: 3EH

Formato :

3E<end. operxend. resul>

Esta instrução complementa logicamente o byte

especificado em <end.oper> e coloca o resultado enf <end.re

sul> .

2:Instruções lógicas de dois operanao:

Formato:

<código><end. operlxend. oper2><end. re sul >

Estas instruções executam a operação lógica defi

nida por <código> entre os dois operandos do tipo byte e

colocam o resultado no byte especificado por <end.resul>.

Page 356: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.331

5=3 Estas instruções estão mostrados abaixo

mnemônico < código > função

AND 4 OH operl e oper2

z-'-Z OR 3 EH operl ou oper2

zzz3

XOR 41H operl ou exclusivo

oper2

3:Instruções de comparação aritmética.

Formato:

•V

•o*

•3

— -y

<códigoXend.operl> <end.oper2> <end.resul>

Estas instruções fazem a com.paração especificada

por <código> entre os operandos especificados por <end.

operl> e <end.oper2> e colocam o resultado, verdadeiro ou

falso no byte especificado por <end.resul>.

Os mnemônicos, o <código> e a comparação executa

da pelas instruções deste tipo estão mostradas abaixo.

mnemônico <código> CCTnparação tipo de oper.

EQUW 43H operl=oper2 palavras

EQUB 44H operl=oper2 bytes

DIFW 45H operl<>oper2 palavras

DIFB 46H operl<>oper2 bytes

GEQW 47H operl>=oper2 palavras

GEQB 48H operl>=oper2 bid;es

LEQW 49H operl<=oper2 palavras

LEQB 4AH operl<=oper2 bytes

Page 357: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 332,

(cont.)

mnemônico <código> conparação tipo de oper.

GTRW 4BH operl>oper2 palavras

GTRB 4CH operl>oper2 bytes

LESW 4DH operl<oper2 palavras

LESB 4EH operl<oper2 bytes

Assim, estas são todas as instruções executáveis

pelo computador de controle do robô.

Elas podem ser entradas através do comando I do

programa de aprendizado ou são geradas automaticamente pela

linguagem de alto nivel LIPRI.

Page 358: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-SSM

...y

APEîÎDICE II - KEffíSAGEIíS D E EHHO DA LHíGÜAGEM LIPMI

Page 359: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.334.

Neste apêndice listaremos as mensagens de erro

que o compilador da linguagem LIPRI envia ao detetar erros

de sintaxe .durante a compilação.

Como apresentado no capítulo V, estas mensagens

estão armazenadas no arquivo LIPERROS.TXT. Caso este arqui_

vo não esteja presente no disco de sistema quando o erro

ocorrer, apenas o número do erro é colocado no arquivo .PRN

de listagem.

Apresentaremos o número dos erros e suas mensa

gens correspondentes, sendo que o motivo do erro fica óbvio

através da mensagem.

Ao final do apêndice, mostraremos exemplos de com

pilação de programas com erros de sintaxe para ilustrar co

mo estas mensagens de erro são colocadas no arquivo de li£

tagem.

Além destas mensagens apresentadas, algumas são

colocadas diretamente no terminal de vídeo, normalmente

associadas a erros de acesso ao disco do sistema oii a cálcu

los de transformação de coordenadas que geram pontos não

atingíveis pelo robô.

Mensagens de Erros:

ERRO 1: Caracter invalido

ERRO 2: BEGIN esperado

ERRO 3: ; esperado

ERRO 4: Identificador definido anteriormente

Page 360: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

335.

ERRO 5: Identificador não definido

ERRO 6: Identificador esperado

ERRO 7: Numero inteiro esperado

ERRO 8: ) esperado.

ERRO 9: Tipo de array esperado

ERRO 10: ( esperado

ERRO 11: . esperado

ERRO 12: ' esperada

ERRO 13: > esperado

ERRO 14: < esperado

ERRO 15: PROCEDURE esperado

ERRO 16: TO esperado

ERRO 17: THEN esperado

ERRO 18: := esperado

ERRO 19: TO ou DOWNTO esperado

ERRO 20: DO esperado

ERRO 21: OUT esperado

ERRO 22: , esperado

Page 361: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.336.

ERRO 23: = esperado

ERRO 24: IN, esperado

ERRO 25: Comando invalido

ERRO 26: : esperado

ERRO 27: Estouro na tabela de símbolos

ERRO 28: Variável booleana esperada

ERRO 29: Variável aritmética esperada

ERRO 30: Identificador de arquivo esperado

ERRO 31: Operador de relação esperado

ERRO 32: Variável do FOR invalida

ERRO 32: Label ja definido anteriormente

é

ERRO 33: Numero de interrupção invalido

ERRO 34: Numero de linha de entrada e saida invalido

ERRO 35: Identificador de caminho invalido

ERRO 36: Identificador de ponto invalido

ERRO 37: Identificador de string invalido

ERRO 38: Label definido mas não especificado

ERRO 39: Especificação de direção esperada (DX ou DY ou

DZ)

Page 362: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

y**

.337.

A seguir apresentaremos dois exemplos de progra

•fjj mas compilados com erros de sintaxe. Os programas não tem

f^, nenhum sentido prático a não ser o de servirem de exemplos

de programas errados. Nesta linguagem , o erro sempre ocor

re no símbolo anterior ao símbolo apontado pela rotina

de erro.

' - Exemplos de programas com erros de sintaxe.

9

ERRO 40: Numero de junção invalido

ERRO 41: Ponto não encontrado no arquivo especificado

ERRO 42: Numero de pontos da trajetória diferente do encon

trado no arquivo.

Page 363: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.338.

í 0 BEGIN 2 1 FILE Fí ' B : T E S D F - A P R ' ; 3 í POINT Pí IN Fí; 4 1 LINE LINH I N Fl; 5 i TRAJECT TRAJ,TRAJO) IN.Fl;

^ --—^ > > > > > ERRO >>>>> 10 < esperado

> > > > > ERRO >>>>> 4 Identificador definido arit er i orment 6 1 BYTE Bll; 7 1 DISPLAY / , ' E N T R E COM VALOR D E Bl',/; 8 1 READ Bl;

rt > > > > > ERRO >>>>> 5 Identificador nao definido

9 1 I F 'Bí=0' T H E N BEGIN rt

> > > > > ERRO >>>>> 5 Identificador nao definido rt

> > > > > ERRO >>>>> 29 Variável aritmética esperada ÍO 2 HOME; i% 2 SPEED 80; Í2 2 INTERPOLATE 20; , Í3 2 FOLLOW TRAJ >60; i4 2 FOLLOW LINH >60; Í5 2 MOVE Pl; Í6 2 D E P A R T STRAIGHT PlsíOO,DZ >8Ü; 17 2 FOLLOW TRAJ2 >70;

rt > > > > > ERRO >>>>> 5 Identificador nao definido

> > > > > ERRO >>>>> 36 Identificador de caminho invalido 18 2 END; 19 1 END-19 •

NUMERO D E ERROS= 7

Page 364: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.339.

i 0 BEGIN 2 1 FILE Fl 'B:SOLDA.APR'; 3 í POINT PEGF IN Fl; 4 i TRAJECT TRAJ(3),TRAJ2(3) IN Fl; 5 1 LINE LINII Fí;

> > > > > ERRO >>>>> 24 IN esperado 6 1 BOOLEAN NPEGOU; 7 1 BYTE BIE; 8 1 LABEL VOLTA;

7. 9 í LABEL VOLTA; 7.

iO 1 y. PROGRAMA PRINCIPAL íí 1 % 12 i HOME; 13 í SET Ot.JT(0); Í4 1 VOLTA: 15 1 DISPLAY /,'Tecle "C" para colocar ferramenta 16 í PAUSE; 17 1 SPEED ;

> > > > > ERRO >>>>> 7 Numero inteiro esperado 18 í INTERPOLATE 20; 19 í CLOSE 0.0,NPEGOU; 20 1 IF BíE THEN BEGIN

> > > > > ERRO >>>>> 28 Variável booleana esperada 21 2 DISPLAY /,'Nao aclnou ferramenta' 22 2 OPEN; 23 2 GO TO VOLTA; 24 2 END; 25^ i RAD Bi;

> > > > > ERRO >>>>> 5 Identificador nao definido rt > > > > > ERRO >>>>> 25 Comando invalido

26 í DISPLAY /,'Tecle "C" para soldar',/; 27 1 PAUSE; 28 1 VOLTAS FOLLOW TRAJ;

rt > > > > > ERRO >>>>> 33 Label ja definido anteriormente 29 í RESET 0T(0);

> ) > > > ERRO >>>>> 21 OUT esperado rt

> > > > > ERRO >>>>> 3 ; esperado 30 í FOLLOW LINH >60; 31 i SET OUT(O); 32 i FOLLOW TRAJ2; 33 1 DISPLAY /,'Pausa para soltar ferramenta',/; 34 i PAUSE; 35 i OPEN; 36 i END. 36 0

NUMERO DE ERROS= 8

Page 365: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

APÊlffl)ICE I I I - EXEPÜPLJOS D E PKQ<SHAmÇAO D E T A B E F A S

T Í P I C A S D E K O B Î Ï S I I S D Ü S T E I A I S COM

o LAEORATÖIttO

Page 366: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

ra-'

.-V

.341.

Neste apêndice apresentaremos alguns exemplos de

programação de tarefas típicas de robôs industriais utili^

zando os recursos disponíveis no laboratório LÍDER.

Os exemplos apresentados serão apenas ' simulação

das aplicações verdadeiras, mas simulações que ilustram os

principais problemas encontrados nas situações reais.

Mostraremos como utilizar os recursos do labora

tório em quatro tipos de aplicações industriais a saber:

1 - Estação de solda ponto robotizada.

2 - Robô como equipamento de transferência de pe

ças.

3 - Estação de solda arco robotizada.

4 - Estação robotizada de inspeção de peças com

sistema de visão.

A primeira aplicação será programada uttilizan

do-se apenas os recursos do programa de aprendizado e de

execução de tarefas descritos no capítulo IV e apêndice I

deste trabalho.

Para os outros exemplos utilizaremos a linguagem

de alto nível LIPRI para programar as tarefas do robô.

No último exemplo, utilizaremos um programa para

inspeção de peças com sistema de visão utilizando os recur

SOS descritos em [ 52].

A apresentação de cada um dos exemplos consistirá

em uma pequena descrição da tarefa a ser executada e a ma

Page 367: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.342,

A3.1 - ESTAÇÍÍO DE SOLDA P O M O EOBOTIZADA

O objetivo deste exemplo é simular uma estação

de solda ponto onde o robô posiciona o cabeçote de solda em

cada um dos pontos onde deve ser soldada a chapa e gera os

com.andos e os tempos para a m.áquina de soldar, de forma que

a solda seja feita dentro das especificações da chapa e do

referido equipamento de solda.

Na soldagem por pontos, as peças são solda^das em

um número de pontos localizados na linha de união desejada,

sendo um processo destinado principalmente para a união

de chapas finas.

O ciclo de soldagem por pontos se desenvolve na

seguinte seqüência:

- Ciclo de posicionamento do cabeçote.

- Ciclo de compressão.

- Ciclo de soldagem.

- Ciclo de solidificação.

neira como ela foi programada no laboratório, sendo que

uma fotografia da montagem de cada exemplo e as listagens

dos vários programas encontram-se no final de cada um de

les.

Passaremos a descrever cada uma das quatro aplica

ções, sendo que elas têm apenas a função de ilustrar a uti^

lização dos vários recursos do laboratório, não esgotando

de maneira alguma, todas as aplicações de robôs industriais

que podem ser treinadas e desenvolvidas com estes recursos.

Page 368: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

. 343.

- Ciclo de resfriamento.

A duração típica de todo o processo de soldagem

para cada um dos pontos é de 1 a 2 segundos, sendo que a

qualidade da soldagem depende também da precisão com que os

tempos de cada um destes ciclos é controlado.

No exemplo, simularemos o cabeçote de soldagem

com um estilete tendo na sua extremidade uma lâmpada, sendo

que o ciclo de soldagem é mostrado acendendo-se esta lampa

da.

Cada um dos ciclos, a menos do de posicionamento

do cabeçote, terá no exemplo a duração de 1 segundo, sendo

que serão soldados 12 pontos, 6 em cada lateral de uma es

trutura colocada no ambiente de trabalho do robô.

Após cada soldagem com.pleta da peça, o robô se

calibra e fica esperando (comando PAUSE) um comando de cai

xa de aprendizado (tecla "C") para executar a soldagem de

outra peça.

A figura A3.1 apresenta a fotografia da montagem

realizada para a simulação deste exemplo, sendo que o pro

grama ensinado através do programa de aprendizado de tar£

fas encontra-se a seguir.

Page 369: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.344.

Fig. A3.1 - Robô executando uma solda ponto simu lada.

Page 370: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

- LISTAGEM DO PROGRAMiA DE SOLDA PONTO.

.345,

-L 8000 809B

3

8000 ! MOVP 0080 8000 8000 8000 8000 8000 8000 00 80.10 : GET 00 8012 . PAUS 8013 : HOME 8014. ! JUMP 8025 8017 : RSET 00 8019 : UAIT 0001 80ÍC : SET 00 80ÍE : UAIT 0001 8021 : UAIT 0001 8024 : RET 8025 : MOVP 0060 7C07 8000 8000 8000 8000 8000 00 8035 s MOVP 0060 7 007 8163 8000 8000 8000 8000 00 8045 ! MOVP 0060 7C07 8163 813C 82BD 7D42 8000 00 8055 ! MOVP 0060 7C07 8163 82FA 82BD 7D42 8000 00 8065 : MOVP 0060 7C07 7FC1 82FA 82BD 7D42 8000 00 8075 : CALL 8017 8078 : MOVP 0060 7C07 7FE5 81C3 82BD 7D42 8000 00 8088-: CALL 8017 808B ! MOVP 0060 7C07 7FF4 8078 82BD 7D42 8000 00 809B ! CALL 8017

-L 809E 818F

809E s MOVP 0060 7C07 7FD8 7F6F 82BD 7D42 8000 00 80AE : CALL 8017 80BÍ : MOVP 0060 7C07 7F88 7E0B 82BD 7D42 8000 00 80CÍ ! CALL 8017 * 80C4 : MOVP 0060 7C07 7F0D 7CBC 82BD 7D42 8000 00 80D4 : CALL 8017 80D7 : MOVP 0060 7BB6 7F0D 7CBC 82BD 7D42 8000 00 80E7. : CALL 0017 80EA-: MOVP 0060 7BB6 7F7A 7DE2 82BD 7D42 8000 00 80FA 5 CALL 8017 80FD : MOVP 0060 7BB6 7FD3 7F15 82BD 7D42 8000 00 810D : CALL 8017 8110 : MOVP 0060 7BB6 800B 8074 82BD 7D42 8000 00 8120 : CALL 8017 8123 : MOVP 0060 7BB6 7FEE 8 ICO 82BD 7D42 8000 00 8133 : CALL 8017 8136 5 MOVP 0060 7B9D 7FCD 82E0 82BD 7D42 8000 00 8146 : CALL 8017 8149 : MOVP 0060 7B9D 7Fa2 83A0 82BD 7D42 8000 00 8159 : CALL 8017 815C : MOVP 0060 7B9D 80CC aSAO 82BD 7D42 8000 00 8Í6C : MOVP 0060 7FBA 80CC 83A0 82BD 7D42 8000 00 8Í7C : MOVP 0060 8000 8000 8000 8000 8000 8000 00 818C : JUMP 8000 818F : STOP

C G : . E ^ ^ E R G I A N U C L E A R / S P

C- M

Page 371: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

- O

.346.

A3.2 - H O B O com EQlJIPAMEiFWO BE TRAÜÜSFERÊIÍCIA DE PEÇAS

Neste exemplo apresentaremos a aplicação de robôs

Industriais como equipamento para transferência de peças.

A aplicação consiste em um alimentador de peças

que fornece um sinal para o robô informando quando existe

alguma peça presente. Este alimentador pode fornecer duas

peças de tamanhos diferentes, uma com seção quadrada de

3,3 cm e outra com seção circular de 2,5 cm. de diâmetro.

A tarefa do robô consiste em: ao receber o sinal

de peça presente, pegar a peça com sua garra servo-controla

da, identificar através dos comandos de controle da garra

o tipo de peça pegada e colocar em caixas separadas cada

uma destas peças. Se não existir mais nenhuma peça, o robô

se calibra e fica aguardando a chegada de mais peças.

O programa foi implementado utilizando a linguagem

de alto nivel LIPRI, sendo que os pontos importantes da ta

rel'a foram editados com o programa editor de figuras, geran

do o arquivo TRANSF.APR. i

A fotografia da figura A3.2 apresenta o robô exe

cutando a tarefa e a seguir estão apresentadas as listagens

tanto do arquivo TRANSF.APR como do programa em LIPRI que

executa a referida tarefa. O significado de cada um dos el£

mentos e da ação de cada um dos comandos utilizados encon

tra-se detalhado nos comentários do programa apresentado.

Page 372: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.347,

-3

Fig.A3.2 - Robô transferindo peças de um alimenta dor para caixas.

Page 373: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.348

- LISTAGEM DO ARQUIVO TRANSF.APR:

TYPE TRANSF.APR

POINT ZZ ORIG

JUNC :Z S;8000 S8000 48000 48000 48Ü00 48000

TRAJECT z PEGPECA

05 I— JUNC 1 ---- 47804 58000 48000 48000 48000 48000

%7BC4 18000 48000 4860 E 47930 48000 •Z S7BC4 ?>80D0 483C6 486CE 47930 48000

S7BE2 47E73 4835B 486CE 47930 48000 SÍ7BE2 SÍ7E73 48323 486CE 47930 48000

- TRAJECT —'' TIREPECA 03 JUNC g)7BE2 58097 48323 486CE 47930 475Í4 57BE2 48097 47FFE 486CE 47930 475Í4

-Z) Í>7BE2 48097 47FFE 48684 47449 S75Í4 9-' TRAJECT

PECAí — • 02

JUNC SÍ7BE2 48097 47FFE 48BB4 47449 475 í 4 48266 48097 47FFE 48BB4 47449 475Í4

Z TRAJECT PECA2 — 02 JUNC 47BE2 48097 47FFE 48BB4 47449 47514

- 47DF0 48097 47FFE 48BB4 47449 475Í4 TRAJECT TRAFIM 02 JUNC 47DF0 48097 47FFE 47FA3 48057 47968 48000 48000 48000 48000 48000 48000

Page 374: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.349.

LISTAGEM DO PROGRAMA EM LIPRI PARA TRANSFEREN CIA DE PEÇAS.

Page 375: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.3..-^

'ZZ3 .350.

1 O BEGIN 2 i

Z-'^ 3 í y. Programa para transferencia de pecas

" 3 ... 4 í '•'^ 5 1

Zj 6 í y. Declarações 7 í

, ^ 8 í FILE DADOS'BíTRANSF.APR'; 9 1

10 1 % DADOSí Arquivo com as figuras da tarefa 1 1 1

' ^ 12 1 POINT ORIG IN DADOS; -2 13 1

14 1 % ORIG: Ponto de origem do robo r.O 15 1

16 1 TRAJECT PEGPECA(5),TIREPECA(3), r 17 1 PECAí(2),PECA2(2),TRAFIH<2) I N D A D O S ;

... - 18 1 ' 19 1 % PEGPECAs Posiciona garra no alimentador

... 20 í y. TIREPECAs Tira uma peca do alimentador 21 1 % PECÁIS Trajetória para cubo

rZ 22 1 % PECA22 Trajetória para cilindro 23 1 % T R A F I M : Trajetória final 24 1

^ ^ 25 1 BOOLEAN NPEGOU; - 26 1

., 27 1 % N F E G O U s Variável de teste de pegada 28 1

- 29 1 LABEL VOLTA, TENTADENOVO; _ 30 1 V 3i í % IN(0): Igual a O tem peca

32 ' 1 % Igual a 1 nao tem peca 33 1 ' *

- 2 34 1 35 1 % Comee o dos comandos

. 36 1 _ 37 1 % Mensagem de inicio

38 1 ^ 39 1 DISPLAY /,'PROGRAMA DE TRANSFERENCIA DE PECAS',/;

40 1 41 1 42 1 % Define velocidade de default 43 1 44 1 SPEED 100; 45 1 46 1 VOLTA: 47 í 48 1 y. Cal i bra robo 49 1 50 1 HOME; 51 1 52 1 y. Espera peca no alimentador 53 1 54 1 UAIT NOT INCO); 5 1

Page 376: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Z3

Í3 .351.

•^3 56 í 57 í 58 í 59 í 60 2

-:r.-5 6Í 2 62 2

:::3 63 2 _ 64 2

65 2 66 67

2 2

ZZ 68 2 69 2 70 2 7í 2

zz 72 3 73 3 74 3 75 3 76 3 77 3 78 2 79 3 80 3 8í 3 82 3 83 4 84 4 85 4 86 4 87 ' 4 88 3 89 4 90 4 9í 4

_ 92 4 93 3 94 3 95_ 2 96 2 97 2 98 2 99 2 00 2 Oí 2

-V 02 2 03 2 04 í 05 í 06 í 07 í 08 í 09 í

% Tem peca, vai pegar UHILE NOT IN(0) DO

BEGIN

FOLLOW PEGPECA >80;

'/. Tenta pegar a maior

TENTADENOVO:

GLOSE í9.O,NPEGOU;

IF NOT NPEGOU THEN

BEGIN

% Peca cjuadrada

FOLLOW TIREPECA; FOLLOW PECA2; END ELSE

BEGIN

CLOSE 0.0,NPEGOU;

IF NPEGOU THEN BEGIN % Espera sinal de tem peca OPEN; WAIT NOT IN<0); GO TO TENTADENOVO-END ELSE

BEGIN * v. Peca e cubo FOLLOW TIREPECA; FOLLOW PECAÍ; END;

END;

% Larga peca

OPEN;

% VAI PARA ORIGEM

MOVE ORIG >80;

END; 7. WHILE

7. Nao tem mais pecas

GO TO VOLTA;

END.

Page 377: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.352,

::0 A3.3 - ESTAÇÃO DE SOiLDA A ARCO RGBQTIZADA

A operação de soldagem, de boa qualidade, a arco

elétrico requer um perfeito controle da posição e velocida

de da pistola ao longo da trajetória a ser soldada, exigin

do do soldador uma grande habilidade e perfeito uso de seus

sentidos em ambientes extremamente agressivos (calor, fuma

ça, faiscamento, radiações ultra-violeta) e desconfortáveis

(roupas especiais de couro e máscaras de proteção).

Esta é uma aplicação de robôs industriais que vem

sendo mais rapidamente desenvolvida principalmente pelo des

conforto e dificuldade da operação, que refletem diretamen

te na qualidade da solda por operadores humanos, e também

por não requerer modificações essenciais no equipamento pa

di-'ao de solda a arco. A adaptação se resume numa fixação

adequada da pistola de soldagem no punho o robô e a geração

de alguns sinais de sincronismo entre o equipamento de sol^

da e o controlador do robô.

" r " - J

Neste exemplo, utilizaremos o robô para simular

uma tarefa de solda a arco onde duas bordas de um.a peça d£

vem ser soldadas em uma chapa posicionada no ambiente de

trabalho do robô.

A pistola de soldagem é simulada por um estilete

fixado na- garra do robô, tendo uma lâmpada- na^sua—ex tremi da

de, sendo que o arco é mostrado acendendo-se a lâmpada.

Esta tarefa é programada utilizando-se a lingua

gem de alto nível LIPRI, onde os pontos, linhas e trajeto

rias, componentes do processo, foram editadas no arquivo

SOLDA.APR utilizando-se o editor de figuras apresentados no

capítulo IV.

•<»>

Page 378: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

•;;zZ

.353.

Inicialmente o robô se calibra e fica esperando

a tecla 'C no terminal de vídeo para iniciar a soldagem.

Uma vez comandado, o robô realiza as duas soldas

nas laterais da peça, executando a interpolação linear en

tre os dois pontos de definição de cada lateral, e depois,

leva a pistola para uma posição de limpeza da ponta. Uma

vez executada a lim.peza, ele se calibra de novo e espera um

novo comando para iniciar outra soldagem.

A figura A3.3 apresenta a fotografia do robô ex£

cutando a soldagem de uma das laterais da peça. A listagem

do arquivo de figuras e do programa em LIPRI utilizado en

contram-se a seguir, onde os comentários esclarecem o sig

nificado de cada elemento e comando do programa.

Page 379: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3 .354.

Fig. A3.3 - Robô executando uma solda a arco.

Page 380: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

-"3

- LISTAGEM DO ARQUIVO SOLDA.APR:

.355

TRAJECT POSFER 04 JUNC 9Í7E87 48000 48000 48000 48000 48000 Î7E87 48000 40000 48CÓ2 47FÍ5 48000 SÍ7F5D 47E2D 48039 48C62 47FÍ5 48000 S7F5D 47E2D 4809C 48CÓ2 47FÍ5 48000 LINE BORDí JUNC í)7F5D 47E2D 4809C 48C62 47FÍ5 48000 57F34 47F97 48324 48C62 47FÍ5 48000 TRAJECT P03LIMP 05 JUNC g;7F34 4807C 48324 48C62 47FÍ5 48000 ÍL7F34 4807C 48324 487 3F 479FD 48000 Ï7F34 4807C 48324 484DA 47C5F 48000 47FC8 47FAÍ 484A7 4a4DA 47C5F 48000 9>7FC8 47F46 484A7 484DA 47C5F 48000 TRAJECT P0SB0R3 04 JUNC 48044 48002 484A7 484DA 47C5F 48000 48044 48002 484A7 47EB0 47Ó33 48000 48ÍÍ6 47FÍ4 484A7 47EB0 47633 48000 480DE 47FÍ4 484A7 47EB0 47633 48000 W N E • — - — -

B0RD3 JUNC 480DE 47FÍ4 484A7 47EB0 47633 48000 480A5 47E2F 48202 47EB0 47633 48000 TRAJECT TRAJF 04 JUNC 480A5 48092 48202 47EB0 47633 48000 4B0A5 48092 48202 48377 47AF9 48000 47FCÍ 48092 48202 48377 47AF9 48000 48000 48000 48000 48000 48000 48000

Page 381: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

, .356,

LISTAGEM DO PR0GRAI»1A EM LIPRI PARA A SOLDAGEM A ARCO,

Page 382: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.357.

¿.o z^ í 0 BEGIN

c 3 í % Programa para executar solda a arco

'-'3 5 \ V. Declarações

6 7 FILE DADOS 'BsSOLDA.APR'; 8 ^

9 i % DADOS: Arquivo com os pontos da tarefa "Z ÍO i

ii i TRAJECT POSFER(4),P0SLIHP<5),P0SB0R3(4),TRAJF(4) 12 i IN DADOS-13 1

,—^ í-4 i % POSFER: Posiciona pistola na borda 1 da peca

" Zi 15 1 % P0SB0R3: Posiciona pistola na borda 3 da peca 16 i 7. POSLIMP: Posiciona pistola no lugar de limpez

OÍ 17 i % TRAJES Trajetória de fim de solda 18 i 19 i LINE B0RD1,B0RD3 IN DADOS; 20 1 21 i 7. BORDls Primeira borda a ser soldada 22 i % B0RD3S Segunda borda a ser soldada 23 i 24 1 7. OUT(0>s Igual a 1 pistola desligada 25 i % Igual a 0 pistola ligada 26 1 27 i PROCEDURE SOLDE; 28 i % 29 1 % Liga equipamento de solda

- W 30 1 % 31 i BEGIN , 32 2 RESET OUT(O);

-V 33 2 WAIT 1; * _ 34 2 END;

35 1 36 i PROCEDURE DESLIGSOLD; 37 i 7. 38 1 7. Desliga equipamento de solda 39 í %

"z 40 i BEGIN 41 2 SET OUT<0); - 42 2 WAIT 1; 43 2 END; 44 i 45 i 7. Inicio dos comandos 46 i 47 1 % Desli ga p i stola 48 i 49 1 SET OUT(O); 7. Desliga solda. 50 i 51 i 7. Vai calibrar robo 52 i 53 1 DISPLAY /,'CALIBRANDO ROBO',/; 54 1 HOME; 55 i

Page 383: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

56 57 58' 59 60 6í 62 63 64 65 66 67 68 69 70 7Í 72 73 74 75 76 77 78 79 80 8í 82 83 84 85 86 87 88 89 90 9í 92 93 94 95 96 97 98 99 ÍOO ÍOí Í02 Í03 ÍÜ4 105 Í06 107 108 109 110

.358.

Espera tecla 0 no terminal

DISPLAY /,'TECLE: "C" PARA SOLDAR',/; PAUSE;

y. Ue1oc id ad e e n umer o d e i n t er p o1ac oes

SPEED i00; INTERPOLATE 20;

y. Posiciona pistola na primeira borda

FOLLOW POSFER;

% Liga pistola e espera arco

SOLDE;

% Segue a borda soldando

FOLLOW BORDl >400;

% Desl i ga p i st ola

DESLIGSOLD;

% Posiciona pistola na segunda borda

FOLLOW P08B0R3;

% Ligapistola

SOLDE: *

îegue segunda borda soldando

FOLLOW B0RD3 >400;

y. Desl i ga p i st ol a

DESLIGSOLD;

% Pos iciona pistola no limpador

FOLLOW POSLIHP; WAIT 3;

% Retorna pí\ra origem

FOLLOW TRAJF;

% MensageMi i de fim

DISPLAY /,'FIM DA SOLDA',/; END.

Page 384: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

:0 .359.

A3.4 - ESTAÇJiO ROBOTIZ/ÍDA BE UüSPEÇAO BE PEÇAS COM SISTEMA

BE YISAO

O objetivo deste exemplo é apresentar a utiliza

ção do robô na implementação de um.a estação automática de

inspeção de peças com sistema de visão.

A aplicação consiste em um alimentador de peças,

a serem inspecionadas com respeito ao seu número de furos,

que fornece um sinal para o controlador do robô indicando

quando existe alguma peça. presente.

A tarefa do robô é a seguinte: ao receber o sinal

de peça presente, pegar a peça e colocá-la na posição de

inspeção, em baixo do sensor de visão do laboratório e se

retirar da área de inspeção. Quando isto ocorrer, o contro

lador do robô envia um sinal para o processador de visão e

a inspeção é realizada, recebendo então, do processador, a

informação do número de furos encontrados na peça. Dependen

do desta informação, o robô pega novamiente a peça e a colo

ca em uma caixa de peças sem furos ou em outra caixa de pe

ças com furos. *

O processador de visão é implementado no nível 1

de controle, sendo que a sua descrição encontra-se em [52].

Para esta tarefa, o importante são as suas entradas e saí

das a saber:- - "

- Ao se comandar o início da inspeção, o processa

dor de visão envia o valor, de uma variável

booleana, verdadeiro (diferente de O) para o

controlador do robô, indicando o início da ins

peção;

- Quando o robô tiver colocado uma peça em baixo

Page 385: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.360.

da camera, ele envia para o processador de vi^

são um caracter 'V, indicando o inicio da veri^

• ficação da peça;

- Quando o sistema de visão tiver terminado a

inspeção da peça, ele manda para o controlador

do robô o número de furos encontrados na peça,

e o robô, com esta informação, coloca a peça

na sua caixa correspondente, repetindo então o

ciclo;

- Quando não existirem mais peças no alimentador,

o robô se calibra e fica esperando um com.ando

de reinício da inspeção.

O robô foi program^ado utilizando a linguagem LI_

PRI e os dados de posicionamento foram gerados no arquivo

INSPEC.APR pelo programa editor de figuras.

Este exemplo serve para ilustrar a sincronização

do^robô e do sistema de visão através da linha de comunica

ção serial com o nível 1 de controle. *

A fotografia da figura A3.4 apresenta o robô e a

configuração do laboratório para este sistema de inspeção

de peças, sendo que a linguagem do arquivo INSPEC.APR e do

programa elñ LIPRI utilizados para ^ execliçãõ^da tarefa" ^n

contram-se a seguir.

Os comandos de visão descritos no capítulo V não

foram utilizados por não estarem totalmente implementados

ainda, sendo que o processamento da imagem foi feito por

um programa especialmente desenvolvido para o exemplo.

Page 386: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3

.361,

A

Fig. A3.4 - Estação robotizada de inspeção de pe

ças com sistema de visão.

Page 387: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

- LISTAGEM DO ARQUIVO INSPEC.APR:

.362,

Í800Ü 48000 48000 47E8D

48000 48000 48000 48000 48000 486F2 4790E 48000 48342 486F2 4790E 48000 48342 486F2 479ÜE 48000

48ÍF9 4BÍF9 48ÍF9 47EAA

2 4790E 4752D 47F90 48B95 474ÓB 4752D 47F90 48B9S 474ÓB 4752D 47F90 48B95 4746B 4752D

47F90 48B95 474ÓB 47004 47F90 48B95 474ÓB 47CC4

TRAJECT ALIM 04 JUNC 47BDD 47BDD 47BDD 47BDD TRAJECT COLPEC 04 JUNC 47BDD 47BDD 489C8 489C8 TRAJECT AFASTE 02 JUNC 489C8 47EAA 489C8 4846B TRAJECT LEVANTE 02 JUNC 489C8 47E84 489C8 4BÜ8Í TRAJECT SEMFURO 03 JUNC 489C8 47E6F 47E6F TRAJECT FURADA 03 JUNC 489C8 48273 48273 POINT ORIG JUNC 48000 48000 48000 48000 48000 48000

47F90 48B95 474ÓB 47406 47F90 48B95 4746B 47406

4808Í 4808Í 4808 í

47F90 48B95 4746B 47406 S7F90 48B95 4746B 47406 48Í 48B95 4746B 47406

48081 4808 í 482D8

47F90 48B95 4746B 47406 47F90 48B95 4746B 47406 47F90 48B95 474ÓB 47406

Page 388: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.363.

- LISTAGEM DO PROGRAMA EM LIPRI PARA INSPEÇÃO DE

PEÇAS. *

Page 389: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.364.

í 2 3 4 5 6 7 8 9

ÍO ií Í2 Í3 i4 15 16 17 18 19 20 21 22

26 27 28 29 30 31 32 33 34 35 36 37 38 39

AQ 41 42 43 44 45 46 47 48 49 50 51 52 53 54

O DEGIN 7. 7. P r o g r E u i i í t f>ara i n s i p c c a o der p e c a s 7. com si st. de visão % 7. Inicio das d e c l a r a ç õ e s % %

FIÍ..E DADOS'E): INSPEC.APR' ;

7. DADOSs Arquivo de dados das figuras

POINT ORIG IN DADOS;

7. ORIG: Ponto de origem do robo.

TRAJECT ALIM(4),C0LPEC(4),AFASTE<2),LEVANTE(2), FURADA(3),SEMFUR0<3) IN DADOS;

% % 7. 7. 7, 7.

ALIM: Posiciona garra na peca COLPEC: Coloca peca no sistema de inspeção AFASTE: Robo se retira da area de inspeção LEVANTE s Robo levanta a peca FURADA: Trajetória de pecas com furos SEMFUROsTrajetori a de pecas sem furos

BYTE NUMFUROS;

7. NUMFUROS : Var i avel lida do sistema de visão

BOOLEAN NPEGOU,COMECE;

% %

% 7. %

NPEGOU COMECE

IN(0)

:Variavel do resultado da pegada sVariavel de comando para inicio

s igual a ü tem peca igual a 1 nao tem peca no ali ment ador

LABEL VOLTA; 7. 7. SPEED 100;

HOME;

VOLTAS READ COMECE;

7. Velocidade de default

% Robo se calibra

% Espera comando do sistema de visão

3 3

IF COMECE THEN BEGIN UHILE NOT IN<0) DO

BEGIN

7. Posiciona garra no alimentador

Page 390: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

ÒZ

56 3 57 3 FOLLOW ALIM ; 58 3 59 3 '/. Comanda fechamento da garra 60 3 6Í 3 CLOSE 0.0,NPEGOU; 62 3 WHILE NPEGOU DO 63 3 BEGIN % Nao achou peca 64 4 OPEN; '/. Abre garra 65 4 WAIT NOT IN<0); % espera sinal de 66 4 CLOSE 0-0,NPEGOU; 7. Tenta outra vez

- 67 4 END; 68 3 69 3 7. Coloca peca no sistema de visão 70 3 7í 3 FOLLOW COLPEC ; 72 3 73 3 7. Larga peca 74 3 75 3 OPEN; 76 3 77 3 % Se afasta da area de inspeção 78 3 79 3 FOLLOW AFASTE ;

.A 80 3 — 8í 3 % Comanda inspeção mandando V

82 3 83 3 DISPLAY 'V; 84 3 85 3 % Le numero de furos do sistema de visão 86 3 87 3 READ NUMFUROS; 88 3 89 3 7. Volta para pegar peca 90 3 9í 3 FOLLOW AFASTE BACK ; 92 3 93 3 7. Pega peca 94 3 95 3 CLOSE 0.0,NPEGOU; 96 3 FOLLOW LEVANTE ; 97 3 98 3 /í Segue trajetória dependendo do numero de furos 99 3

100 3 IF 'NUMFUROS=0' THEN 101 3 BEGIN 102 4 FOLLOW SEMFURO ; 103 4 OPEN; 104 4 END ELSE

• ^ 105 3 BEGIN 106 4 FOLLOW FURADA ; 107 4 OPEN; 108 4 END;

( 109 3 % Volta para origem 110 3

D ; V . ; . : : . . . : :;/V::;O;.;,l. zí L N E R G Í A N U C L E A R , S P ^

L P. E . N.

Page 391: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.366

iíí 3 í Í2 3

. . • ^ ÍÍ3 2 % Nao tem mais pecas . . • ^

í. i 4 2 " ÍÍ5 2 HOME; ií6 2 ÍÍ7 2 V. Sinaliza fim para o ií8 2 ií9 2 DISPLAY 'F'; Í20 2 END; Í2Í 1 122 1 % Volta para o inicio 123 1 124 i GO TO VOLTA; 125 1 END. 125 0

MOVE ORIG >64; END;

NUMERO DE ERROS= O

Page 392: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.367.

BIBLIOGRAFIA

[ 1 ] - ALBUS, J.S. - Brains, Behaviors and Robotics - Byte

book, McGraw, N.H., 1981.

[ 2 ] - AMARAL, P.F.S.; CAMPOS, G.L.; PINTO, B.G.M. - "Ro

bôs Industrials" - Tutorial 4, I CONAI, 11-15

Julho, 1983, pp.88-105.

[ 3 ] - AMARAL, P.F.S.; PINTO, B.G.M.; MOSCATO, L.A.; CUG

NASCA, C.E, - "0 Desenvolvimento e a Construção

de um Robô Industrial do Tipo Braço Articulado"

- Anais do I Congresso Nacional de Automação In

dustrial, 11 a 15 Julho, 1983, pp.342-349.

[ 4 ] - ASEA - Industrial Robot System for Inspection ASEA,

- CF 09-6006E, Mar. 1983.

[ 5 ] - ASEA - IRB Adaptative Torch Positioner for Arc

Welding - ASEA CK 09-1207E, April 1983.

[ 6 ] - AYLOR, J.H.; et all - "The Impact of Microtomputers

on Devices to Aid the Handicapped" - Computer,

IEEE, Jan. 1981, pp.35-40.

[ 7 ] - BIRK, J.R.; KELLEY, R.B.; MARTINS, H.A.S. - "An

Orienting Robot for feeding Workpieces Stored in

Bins" - IEEE Transactions on Systems Man and

Cybernetics, Vol. SMC 11, ne2, Feb. 1981, pp.151-

160.

[ 8 ] - BONNER, S.; SHIN, K. - "A Comparative Study of

Robot Languages" - Computer, Dec. 1982, pp.82-96.

Page 393: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.368.

^ [ 9 ] - BRADY, M. et All - Robot Motion: Planning and Con

Z' trol - The MIT Press, 1983.

[lO] - BRONSHTEIN, L.; SEMENDIAEV, K. - Manual de Matemati^

cas para Ingenieros y Estudiantes - MIR, 1973.

Zj

[11] - COIFFET, P. - Robot Technology: Interaction with the

Environment - Prentice Hall Inc., 1981.

[12] - CLOT, J. - Les Capteurs en Robotique - Note LAAS

n5 82065, Juin 1982.

[13] - CUGNASCA, C.E. - Desenvolvimento de um Sistema Inte

rativo para Programação de Robôs Industriais

por Aprendizado de Tarefas - Dissertação de Mes

trado. Preliminar, Escola Politécnica da USP,

1985.

[14] - DIGITAL RESEARCH - CP/M 2.0 Interface Guide Digital

Research, 1979.

[15] - DIGITAL RESEARCH - PASCAL/MT+: User's Guide - Digital

Research, 1981.

[16] - ENGELBERG, J. - Robotics in Practice - AMACOM,

1980.

[17] - FEATHERSTONE, R. - "Position and velocity transfer

mations between robot end-effector coordinates

and joint angles" - The International Journal of

Robotics Research, Vol.2, n^2. The MIT Press,

Summer 1983, pp.35-45.

Page 394: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

"3 .369.

[IQ] ~ FERREIRA, E.P. - Contribuition à L' Indentification

de Paramètres et à la Commande Dynamique Adapta

:3 tive des Robots Manipulateurs - Thèse Docteur-

Ingenieur, Université Paul Sabatier, 1984.

.•- [19] - FERRETI, M. - "Le Dossier de la Robotique Indus

trielle: vers la Generation 3" - Nouvel Autonatis

me, Nov. 1978, pp.315-327.

3 [20] - FLORA, P.C. - Robotics Industry Directory - Robo

Z tics Industry Directory, 1982.

[21] - FRANKLIN, J.W.; VANDERBRUG, G.L. - "Programming

Vision and Robotics Systems with RAIL" - Robot

" VI, Conference Proceedings, 2-4 Mars 1982, pp.

392-406.

C [22] - GAUDIO, I.D.; D'AURIA, A. - "Mechanical Behavior of

2^ Sigma Robot" - Proceedings of the 9th Internatio

nal Symposium on Industrial Robots, March 13-15,

1979, pp.601-619.

é

[23] - GRIES. D. - Compiler Construction for Digital Com

puters - John Willey Inc., 1971.

[24] - GRUVER, W.A.; SOROKA, B.I.; CRAIG, J.J.; TURNER,

T.L. - "Industrial Robot Programming Languages:

A Comparative Evaluation" - IEEE Transaction on

System Man and Cybernetics, Vol. SMC-14, n^4,

July/August 1984, pp.565-570.

[25] - HOGAN, T. - OSBORNE CP/M User's Guide - McGraw-Hill

Inc., 1981.

Page 395: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.370.

[26] - INTEL - MOS 80/85 Family User's Manual - Intel Cor '-^ poration, 1979.

••'3 [27] - INTEL Peripheral Design Handbook - Intel Corpora 2) tion, 1979.

^ [28] - INTEL - Component Data Catalog - Intel Corporation 1981.

3 [29] - INTEL - EEPROM - Application Guide - Intel Corpora Z tion, 1981.

_ [30] - JARVIS, J.F. - "Robotics" - Computer, Oct. 1984, pp. 283-292.

[31] - JOHNSON, R. - "Designing with Optical Shaft Enco O ders" - Robotics Age, Vol.5 n^ 3, May/June 1983, C pp.27-34.

o [32] - KAGER, T.M. - "Robot Implementation and the Domino , Effect" - Robot VI, Conference Proceedings,

^ 2-4 Mar. 1982, pp.184-206. '*

3 [33] - KEMPF, K.G. - "Robot Command Languages and Artlfj^ 3 cial Intelligence" - Robot VI, Conference Pro ^ ceedings, 2-4 Mars 1982, pp.369-391.

_ [34] - KOREN, Y.; ULSOY, A.G. - "Control of DC servo-motor Driven Robots" - Robot IV, Conference Proce£

^ dings, 2-4 Mars 1982, pp.184-206

C [35] - LAURGEAU, C. - "Un defi Industriel: Historie et — Geographie des Robots et de leurs Applications" ^ - Le Nouvel Automatisme, Dec. 1980, pp.37-46.

Page 396: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

Zj

.371,

[36] - LEIFER, L. - "Rehabilitative Robots" - Robotics Age,

Vol.3, n 5 3, May/June 1981, pp.4-15.

[37] - LIEBERMAN, L.I.; WESLEY, M.A. - "AUTOPASS: An

Automatic Programming System for Computer Con

trolled Mechanical Assembly" - IBM J,Research

and Development, Vol.21 n^ 4, July 1977, pp.321-

333.

[38] - MEGAHED, S.M. - Contribuition à la Modélisation

Géométrique et Dynamique des Robots Manipula

teurs à Structure de Chaîne Cinématique Sim.ple

ou Complexe - Thèse Docteur ès Sciences, Univer

site Paul Sabatier, 1984,

[39] - MICROPRO - WORDSTAR, User's Manual - MicroPro Inter

national Corporation, 1982.

[40] - MICROSOFT - Basic Compiler User's Manual - Micro

soft, 1981.

[41] - MOTIWALLA, S. - "Continuous Path Control * with

Stepping Motors" - Robotics Age, Vol.3, r\^A, Ju

ly/August 1981, pp.28-36.

[42] - NAKANO, Y.; FUJIE, M.; H O S A D A , Y . - "HITACHI'S Ro

bot Hand" - Robotics Age, July 1984, pp.18-20.

[43] _ OKADA, T. - "The development of an optical di£

tance sensor for robots" - The International

Journal of Robotics Research, Vol.1, n94. The

MIT Press, Winter 82, pp.3-14.

Page 397: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

.372.

[44] - PARK, W. T. - "Minicomputers Software Organization

for Control of Industrial Robots" - Proceedings

of COMPSAC, Oct. 27-31 1980, pp.164-171.

[45] - PAUL, R.P. - Robot Manipulators: Mathematics, Pro

gramming and Control - The MIT Press, 1981.

[46] - PEREZ-LOZANO, T. - "Robot Programming" - Proce£

dings of The IEEE, Vol.71, ns 7, July 1983, pp.

821-841.

[47] - RAHMAN, M.F. - An Experimental Study of the Perfor

manee of Variable Reluctance Type Stepping Mo

tors - Ph.D. Thesis, The University of Manches

ter Institute of Science and Technology, Oct.

1978.

[48] - ROVETA, A. - "On Specific Problem of Design of

multipurpose mechanical Hands in Industrial

Robots" - Proceedings of the 7th International

Symposium on Industrial Robots, 19-21 Oct. 1977,

pp.337-343. *

[49] - SCOPUS - Microscopus Macro Assembler - Manual do

Usuário - Scopus Tecnologia, p-970.1257.87.A.

[50] - SCOPUS - Manual de Programação FORTRAN -Microscopus

- Scopus Tecnologia, p.970.1257.90.A:

[51] - SHIN, K.G.; MALIN, S. - "A hierarchically Distri_

buted Robot Control System" - Proceedings of

the COMPSAC , Oct.27-31 1980, pp.814-820.

Page 398: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

D

O

"3 .373.

[52] - SOUZA, A.S - Sistema de Visão Robótica baseado em

Microcomputadores - Tese de Doutoramento Preli^

minar. Escola Politécnica da USP, 1985.

O [53] - SUPERIOR ELECTRIC - DC Stepping Motors - Catalog -

^ Superior Eletric, 1979.

^ [54] - TAYLOR, R.H.; GROSSMAN, D.D - "An integrated Robot

System Architecture" - Proceedings of the IEEE,

3 Vol.71,, ne 7, July 1983, pp.842-856.

"Z [55] - TETSUGU, Y. "The Expanding Applications of Precision

Micromotors" - J.E.;, Nov. 1981, pp.45-53.

^ [56] - TEXAS - The TTL Data Book for Design Engineers

^ Texas Instrumnests Inc. 1976.

Z [57] - TEXAS - The Optoelectronics Data Book for Design

Engineers - Texas Instruments Inc., 1978.

[58] - TOGAI, M. - "Japan's next generation of Robots"

Computer, March 1984, pp.19-25.

[59] - TORRES, M.C. - Etude et Realization D'un Capteur

Permettant La Mesure Precise de La Position

D'un Objet Dans L'Espace. Applications, Thèse

Docteur de Spécialité, E.E.A., Université Paul

Sabatier, 1979.

[60] - UNIMATE - Puma Robot: Equipment and Programming

Manual - CONDEC - Unimation Robotics, May 1982.

[61] - UNIMATE - Puma Robot: User's Guide to VAL - CONDEC-

Unimation Robotics, May 1982.

Page 399: PAULO FARIA SANTOS AMARAL - ipen.br · Tese apresentada à Escola ... Aos amigos Antônio Sérgio de Souza, pela ajuda na ... Mecânica do sistema de realimentaçao . 95

3 . 3 7 4 .

•f [ 6 2 ] - WEITZIvlAN, C . - Distributed Micro/Minicomputers Sys ^ tems: Structure Implementation and Applications 3 Prentice Hall, New Jersey, 1980.

[ 6 3 ] - ZAKS, R . - The CP/M Handbook with MP/M - SYBEX Inc., 1980,