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
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
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.
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
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
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.