6
Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014 Robótica Prof. Luís Paulo Laus, Dr. Eng. 1 Robótica – Integração de Sistemas Robóticos Luís Paulo Laus UTFPR DAMEC email: [email protected] Robótica Prof. Luís Paulo Laus, Dr. Eng. Programação Fato Um robô raramente trabalha sozinho Programação Movimentação Atuação Comunicação (integração dos diversos subsistemas) Integração Comunicação (intertravamento de ações) Robótica Prof. Luís Paulo Laus, Dr. Eng. Programação Programação online Programação offline Ex.: montagem de PCB Partes: Partes: Algoritmos seqüência de movimentos intertravamento de ações Dados posições e orientação Robótica Prof. Luís Paulo Laus, Dr. Eng. Geração de Trajetória Pointtopoint (PTP) movimento gerado no espaço de juntas Via Points variação do PTP com pontos intermediários df d Geometricamente definidas movimento gerado no espaço cartesiano requer um controle mais sofisticado Controle em força, híbrida ou inteligente movimento gerado em tempo real e dependente de sensores normalmente usada de forma híbrida Robótica Prof. Luís Paulo Laus, Dr. Eng. Exemplo do FMS porta Fresadora CNC peça sensor f i Robótica Prof. Luís Paulo Laus, Dr. Eng. morsa mesa Controle Central palete Esteira freio Operações: •Carga •Descarga Robô Marcação das Posições e Orientações CARGA 1 2 3 4 5 posição de descanso posição de aproximação posição de pegar posição posição de aproximação Robótica Prof. Luís Paulo Laus, Dr. Eng. 5 Seqüência: pm, am, ap, 2, 3, fg, 2, 4, 5, fm, ag, 4, 1 ag, de largar posição relativa posição crítica baixa exatidão

Integração_Programação Robôs (Slides)

Embed Size (px)

DESCRIPTION

Slides

Citation preview

Page 1: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 1

Robótica – Integração de Sistemas Robóticos

Luís Paulo Laus

UTFPR  ‐ DAMEC

e‐mail: [email protected]

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Programação

• Fato– Um robô raramente trabalha sozinho

• Programação– Movimentação

– Atuação

– Comunicação (integração dos diversos subsistemas)

• Integração– Comunicação (intertravamento de ações)

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Programação

• Programação online

• Programação offline– Ex.: montagem de PCB

• Partes:Partes:– Algoritmos

• seqüência de movimentos

• intertravamento de ações

– Dados• posições e orientação

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Geração de Trajetória

• Point‐to‐point (PTP)– movimento gerado no espaço de juntas

• Via Points– variação do PTP com pontos intermediários

d f d• Geometricamente definidas– movimento gerado no espaço cartesiano

– requer um controle mais sofisticado

• Controle em força, híbrida ou inteligente– movimento gerado em tempo real e dependente de sensores

– normalmente usada de forma híbrida

Robótica Prof. Luís Paulo Laus, Dr. Eng.

Exemplo do FMS

porta

Fresadora CNC

peça

sensorf i

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

morsa

mesa

Controle Central

palete

Esteira

freio

Operações:•Carga•Descarga

Robô

Marcação das Posições e Orientações ‐CARGA

1

2

34

5

posição de descanso

posição deaproximaçãoposiçãode pegarposição

posição deaproximação

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

5

Seqüência: pm, am, ap, 2, 3, fg, 2, 4, 5, fm, ag, 4, 1ag,

de largar

posição relativaposição críticabaixa exatidão

Page 2: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 2

DESCARGA

1

2

64

5

posição de descanso

posição deaproximaçãoposiçãode largarposição

posição deaproximação

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Seqüência:As posições 3 e 6 são diferentes - folga

pm, ap, 4, ag, 5, fg, am, 4, 2, 6, ag, 2, 1

5de pegar

Integração

• Protocolos de Comunicação

• Arquitetura Cliente/Servidor

– Resolve quatro problemas

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Sincronização (Intertravamento)

Race Conditions(corrida ‐ exclusão mútua)

Deadlock (impasse)

Starvation (bloqueio)

Sincronização

• Quando duas ou mais máquinas trabalham juntas para desempenhar uma tarefa é normal que uma deva esperar que a outra complete uma subtarefa antes de iniciar a sua parte do trabalho.

A l ã d i i ã i li i ã• A solução da sincronização implica em comunicação e potencialmente cria dois problemas:– Deadlock (impasse)

– Starvation (bloqueio)

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Race Conditions

• Race Conditions ou corridas ocorrem quando duas máquinas tentam acessar a mesma região (chamada de região crítica) ao mesmo tempo.

P t i l t li õ• Potencialmente geram colisões

• Solução:

– Exclusão Mútua

– A má implementação da exclusão mútua potencialmente causa dois problemas

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Deadlock

• Deadlock ou impasse ocorre quando duas máquinas que trabalham conjuntamente travam porque uma está esperando que a outra termine uma tarefa e a outra está esperando que a primeira termine uma tarefa.

• Exemplo: cruzamento sem semáforo e sem placa de preferencial (e com motoristas que não sabem as leis de trânsito).

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Exemplo

Preferência

Robótica Prof. Luís Paulo Laus, Dr. Eng.

CBT, Art. 29, III, c - preferência de quem vier pela direita do condutor

Preferência

Page 3: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 3

Starvation

• Starvation ou bloqueio ocorre quando um processo necessita que um recurso tomado por outro processo que nunca libera o recurso

• É relativamente raro

• É considerado um erro primário e, por isso, geralmente só é cometido por programadores inexperientes

• Uma das soluções é empregar um timer(temporizador) e alarmar

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Implementação da Exclusão Mútua

• Garante que duas máquinas não irão acessar a região crítica

• Soluções clássicas (usadas em TI):– Semáforo– Semáforo

– Monitores

– Árbitros• Passagem de mensagens

• Semáforos distribuídos

• Implica em comunicação

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Semáforo

• É uma variável s (geralmente binária) com duas operações atômicas:– Down: espere até que s = 1, faça s = 0– Up: faça s = 1

• Cada recurso (região crítica) possui um semáforo diferente e únicoúnico

• Todo processo deve executar uma operação down antes de acessar a região crítica

• Todo o processo deve executar uma operação up após acessar a região crítica

• Se a região crítica está ocupada (s = 0) e um processo tentar entrar ele é bloqueado

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Monitor

• É um processo que contém uma variável s (geralmente binária) com duas operações:– Lock: espere até que s = 1, faça s = 0– Unlock: faça s = 1

• Parece um semáforo mas a variável é acessada por um púnico processo

• Árbitro: equipamento (hardware) que implementa a função de monitor

• Necessita de comunicação interprocessos para solicitar a região crítica

• Cuidado com “aninhamento” de monitores e semáforos

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Erro de aninhamento ‐ deadlock

Robô 1 Robô 2

Regiãocrítica A

Regiãocrítica B

• Robô 1 entrou na região A, está esperando para entrar na B

• Robô 2 entrou na região B, está esperando para entrar na A• Conclusão: deadlock

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

crítica A crítica B

Meta do robô 2 Meta do robô 1

Arquitetura Cliente/Servidor

• Um modelo de software em que dois módulos de softwaretrabalham juntos para realizar uma tarefa: existe um servidor, que fornece uma função ou serviço específico, tal como o armazenamento e recuperação de informação, e um cliente, que solicita serviços do servidor. Apareceu nos anos 90 ‐internet

• Cliente: quem solicita o serviço• Servidor: quem presta o serviço• Ferramenta:

– Diagrama Espaço Tempo– Chamada de Procedimento Remoto (não é usada em robótica)

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Page 4: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 4

Diagrama Espaço Tempo

• Linhas de tempo que representam a evolução do estado de cada processo (máquina) e onde se representam a comunicação entre os processos

• Geralmente deve‐se fazer vários digramas:– Cada uma das operações quando existem várias

– Erro, desistência, parada programada, etc.

• No DET quem inicia uma comunicação (envia a primeira mensagem) é o cliente

• Toda mensagem recebe uma resposta e quem envia respostas é o servidor

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Exemplo do FMS

M i Máquina

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Magazine de Entrada

Máquina Automática

Controle

Magazine de Saída

Diagrama Espaço Tempo

Robô Controle

espera

(Servidor) (Cliente)

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

espera

continua processando

loop

carga pedido

resposta

Persistência de Mensagens

• Redes estruturadas: as mensagens são atômicas e discretas no tempo (só existem em um instante)

• Redes diretas (digitais): as mensagens são enviadas por ativação e desativação de “portas” e existem 

t d i d ti d t d ãsempre, no tempo, depois de ativadas – tem duração definida e controlada pelo programador– Ex.: entrada e saída de CLP

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Exemplo do FMS(com persistência  erro)

Robô Controle

espera

(Servidor) (Cliente)continua executando

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

espera

continua processando

loop

carga

Exemplo do FMS(com persistência ‐ solução)

Robô Controle

espera

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

espera

envia

loop

carga pedidoresposta

espera

esperaenvia

continua...

retira o pedido

retira a resposta

Page 5: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 5

Arquitetura Cliente/Servidor

• Vantagens– é simples e fácil de usar ‐ premissa de desenvolvimento

– é um método formal – segurançag ç

• Desvantagens– tem que ser adaptada

• persistência de mensagens

• sensores passivos

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Exemplo da Renaut

Região crítica

M iMá i

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Magazine Máquina 2

Máquina 1

Corrida colisão

Solução: exclusão mútua; um robô só entra na região crítica se o outro não estiver dentro dela

Robô 1 Robô 2

Soluções

• Sensores (barreira ótica)– Caro– Passível de falhar ‐ sincronização– Complicado

• Semáforo distribuído– Comunicação – passagem de mensagem– No geral é muito barato– Solução em software– Conhecimento de sistemas concorrentes

• Implementação:– Um robô avisa o outro que vai entrar na região crítica

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Passagem de Mensagens

Robô 1 Robô 2

consultasemáforo

• Solução em software e simétrica

• Um cliente e “um” servidor em cada robô

• Um semáforo em cada robô

• Sistema com multiprocessos ou multitarefa

• Geralmente inviável (linguagem pobre dos robôs) e frequentes erros de implementação

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Solução com persistência de mensagens

Robô 1 Robô 2

verifica entrada

espera (tempo)

ifi t d

• Não usa arquitetura cliente servidor• Mais simples: depende de hardware• Quase simétrica: tempos diferentes

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

verifica entrada

trabalha (r.c.)

Solução com árbitro

down no semáforoespera

trabalha na r c

down no semáforo

Robô 1 Robô 2Árbitro

• Usa um servidor de semáforo: árbitro ou monitor

• Simples e robusto

• Requer robôs “educados”: pedem para entrar e avisam que saíram

• Fácil implementação: com ou sem persistência de mensagens

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

na r.c.

esperaespera

up no semáforo

Page 6: Integração_Programação Robôs (Slides)

Universidade Tecnológica Federal do Paraná - DAMEC 04/10/2014

Robótica Prof. Luís Paulo Laus, Dr. Eng. 6

Árbitro em Linguagem Ladder

Posso? R1 Sim! R2 Sim! R1

Posso? R2 Sim! R1 Sim! R2

Robótica Prof. Luís Paulo Laus, Dr. Eng.

down no semáforoespera

trabalha na r.c.

espera

down no semáforo

esperaup no semáforo

Robô 1 Robô 2Árbitro

Repetibilidade limitada – folga

• Pode‐se pegar em uma posição de largar, mas

• Não se pode largar em uma posição de pegar

– Usar um calço para gravar a posição de largar ‐f lfolga

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

queda

Dicas

• Quando houver risco de colisão garanta o estado da garra (e outros dispositivos)

• Lembre‐se de que a repetibilidade de todo robô é limitada

• Ajuste a velocidade conforme a ocasião– Baixa velocidade próximo à obstáculos

– Alta velocidade no espaço livre

• Só use movimentos em linha reta quando for necessário

• Use PTP quando não houver necessidade de linha reta

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.

Comentário Final

• Usem as ferramentas estudadas mesmo que o problema pareça simples.– Croqui:

• Documentação do programa

• Gravação dos pontos e definição de sua importância relativaGravação dos pontos e definição de sua importância relativa

• Elaboração do programa (seqüência)

– Diagrama Espaço Tempo• Documentação do programa

• Elaboração do programa garantindo correção

• Uso correto dos temporizadores (se houverem)

Robótica                                                                   Prof. Luís Paulo Laus, Dr. Eng.