Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

55
www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos

Transcript of Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Page 1: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

www.dca.ufrn.br/~lmarcos/courses/robotica

Introdução ao controle de robôs

Luiz Marcos

Page 2: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Cinemática Cinemática xx Dinâmica Dinâmica

Dinâmica Dinâmica xx Atraso Atraso

Contínuo Contínuo xx Discreto Discreto

Page 3: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Tipos de Sistemas de ControleTipos de Sistemas de Controle

Malha abertaMalha fechada

Page 4: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Malha aberta

A entrada define o comportamento do controlador, cérebro do sistema, e este responde agindo no ambiente, sem verificar depois se o nível da grandeza física corresponde de fato à entrada;

Não há sensor para observar algum eventual desvio, nem realimentação, para corrigi-lo.

Page 5: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Exemplo

Uma fonte de alimentação regulada com transistor é, na realidade, um sistema de controle de malha aberta;

Se a corrente da carga variar, a tensão na saída pode variar até algumas dezenas de mV, devido à variação na tensão Vbe.

Page 6: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Transistor

Page 7: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Diagrama de blocos (Malha Aberta)Diagrama de blocos (Malha Aberta)

A entrada é o nível desejado da grandeza controlada (comando ou programação). O controlador avalia este sinal e envia um sinal (que pode ser elétrico ou mecânico, conforme o sistema) ao atuador, que é o elemento que age no ambiente de modo a alterar a grandeza.

Sistema de Malha Aberta Grandeza não Automático

Page 8: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Diagrama de blocos (M. Aberta)

CONTROLADOR ATUADOR

Sistema de Malha AbertaGrandeza não Automático

Page 9: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Aplicações

Os SC em malha aberta são usados onde a freqüência ou a conseqüência dos desvios não justificam a complexidade e o custo maior dos em malha fechada.

Não são aplicados em robótica (a não ser em casos onde não é necessário checar o erro).

Page 10: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Malha fechada

É verificada a ocorrência de desviosSensor monitora saída, fornecendo

um sinal que retorna à entrada, formando uma malha de realimentação.

A entrada e esta realimentação se juntam num comparador, que combina ambos e fornece um sinal de erro, diferença entre os sinais, que orienta o controlador.

Page 11: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Exemplo simples O operador de um reservatório verifica se

o nível máximo foi atingido através de uma régua de nível, que é o sensor.

Sinal de erro, a diferença entre o nível máximo (saída desejada) e o nível atual (saída real), é analisado para abrir ou fechar o registro.

Operador é ao mesmo tempo o comparador, o controlador e o atuador neste sistema elementar.

Page 12: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Diagrama blocos (Malha Fechada)Diagrama blocos (Malha Fechada)Adicionar sensor ao SC de m.

aberta;Enviar sinal de erro ao bloco

somador que fornece um sinal efetivo ao controlador.

Este sinal é a entrada do controlador, que o avalia e tenta corrigir o desvio captado pelo sensor, através de um novo comando ao atuador.

Page 13: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Diagrama de blocos (M. Fechada)

CONTROLADOR ATUADOR

SENSOR

SOMADORENTRADA SAÍDA

REALIMENTAÇÃO

Sistema de Malha FechadaGrandeza Automática

Page 14: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Aplicações

SC em malha fechada são mais precisos, pois detectam e corrigem os desvios.

A maioria dos sistemas atuais, analógicos ou digitais, é deste tipo.

Sistemas controle para robótica são necessariamente desta categoria.

Page 15: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle

Sistema robótico: mede o seu próprio estado e age (decisões autônomas)

Feedback Control: originou-se na Grécia antiga.

Relógios de água: um grande tanque, um orifício pequeno para medir a vazão, uma válvula para regular a quantidade de água no tanque (mantendo o nível, a pressão é constante).

Page 16: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Redescobrindo os controladores

1600: Controle da temperatura num fogão Variação do volume de mercúrio fecha e

abre a entrada de ar1700: mesmo sistema utilizado para

chocar ovos Final do século 16: mecanismo

melhorado com melhor sensibilidade. Primeiro controlador comercial...

Page 17: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Sistema de ControleSistema de Controle

Robô ou dispositivo

Sensor

E(t)e(t)s(t) y(t)

Estado desejado

Soma

Sinal de feedback

Sinal de erroEnergia de entrada

Amplificador

Estado medido ou realy´(t)

Page 18: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Exemplo: seguidor de paredes

Material: um robo móvel equipado com sensor infra-vermelho

Void calibrate(int goal); /*Calibra o sensor definindo uma distância da parede*/

void main() { calibrate(goal); left(100); right(100); while (1) { int wall = analog(LEFT_WALL); if(wall<goal) {left(100); right(0);} else {right(100); left(0); } } }

Page 19: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Gráficos (distância x tempo)

D=40

Page 20: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Distância x tempo

D=30

Page 21: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Virando mais suave

void main() { calibrate(goal); left(100); right(100); while (1) { int wall = analog(LEFT_WALL); if(wall<goal) {left(100); right(50);} else {right(100); left(50); } } }

Page 22: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Distância x tempo

D=40

Page 23: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Sistema de ControleSistema de Controle

Robô

Sensor

Perturbação

u(t)e(t)s(t) y(t)

(t)

y´(t)

Page 24: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Motores

Page 25: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

ControladoresControladores

• Liga-Desliga (on-off)

• Proporcional (P)

• Proporcional + Integral (PI)

• Proporcional + Derivativo (PD)

• Proporcional + Integral + Derivativo (PID)

Page 26: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle liga-desliga : Controle liga-desliga : Compara sinal de entrada com realimentaçãoSe saída supera entrada, desliga o atuador;se a realimentação for menor, liga o atuador.

Ex.: fornos elétricos e geladeiras:Calefator ou compressor controlado por um termostato

(é um controlador liga-desliga).Vantagens: simples, baixo custoDesvantagens: contínua oscilação da saída, histerese,

não garante precisão e pode desgastar controlador eatuador.

Page 27: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Mecanismo (roda)

Motor

Engrenagens

Roda (massa grande)

0

Sensor(encoder)

Page 28: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Proporcional

Ganho é proporcional ao erro medidoExemplo: controlar a posição de um

motor void main() { int posit_goal=0; encoder_posit=100; /*Var. compartilhada*/ while (1) { power = posit_goal - encoder_posit; motor(power); } }

Page 29: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

0

100

-100

Page 30: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Melhorando o Proporcional Introdução de um fator multiplicativo faz ir

mais rápido ao ponto desejado void main() { int posit_goal=100; encoder_posit=0; while (1) { power=p_gain*(posit_goal- encoder_posit); motor(power); } } Problema com ganhos altos: over-shoot,

oscilações. Potência total é desejada se longe do objetivo. Ganho alto pode causar potência alta mesmo estando próximo.

Page 31: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

Ganho = 10

0

100

-100

Page 32: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

Ganho = 20

0

100

-100

Page 33: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

Ganho = 50

0

100

-100

Page 34: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Proporcional derivativo

Problema: momento faz ir além do ponto, mesmo desligando o motor

Momento = massa x velocidade (diretamente proporcional a velocidade)

Dobra velocidade => dobra momento). Termo derivativo resolve overshooting e

oscilações

Page 35: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Proporcional derivativo

Introdução do term d_gain (velocidade) void main() { int posit_goal=0; encoder_posit=100; while (1) { power=p_gain*(posit_goal- encoder_posit) + d_gain*encoder_velocity; motor(power); } }

Page 36: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

0

100

-100

Page 37: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Integral

Usa um integrador como controlador (um circuito que executa a operação matemática da integração).

Soma produtos dos valores instantâneos de entrada por intervalos de tempo t.

Desde o instante inicial até o final (período de integração).

Isto corresponde à área entre a curva da grandeza e o eixo do tempo, num gráfico.

Page 38: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Integral (cont.)

Ex.: Se grandeza = G (const), integral entre t1 = 0 e t2=j será igual a G t2 (ou Gj) = área, no gráfico da grandeza, de um retângulo naquele intervalo de tempo.

Um gráfico da integral de t1 a t2 é uma reta desde 0 até Gj, pois a área (ou o somatório) aumenta à medida que o tempo passa.

Page 39: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Integral (cont) Integrador torna o sistema lentoResposta depende da acumulação do

erro na entradaLeva a um erro de regime nulo (não é

necessário um sinal de entrada para haver saída do controlador)

Acionamento do atuador após o período transitório.

Assim o controle é muito preciso, embora mais lento.

Page 40: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição e potência x tempo

0

100

-100

Page 41: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Hierarquia de controle (robô móvel)SensoresExternos

Planejamentoda Trajetória

Controlador

Motores

Posição

Velocidade

Sensorinterno

Sensorinterno

Page 42: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Níveis de controle

Obs

tácu

lo

Alvo

Obstáculo

3 níveis de controle: controlador de

velocidade dos motores;

controlador de ângulo e velocidade linear do robô;

desvio de obstáculos e busca pelo alvo.

Page 43: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controlador dos motores

Motor 2

Motor 1

PID

PIDv1

v2

u1

u2

SP1

SP2

e1

e2

-

-+

+

Page 44: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controlador de ângulo e velocidade linear

Controladorde Velocidade

Linear

-

+

+

+

Controladorde

Ângulo

e

SP1

SP2

Cinemática do Robô

Motor 2

Motor 1

PID

PID

ControladorSP Xe v1

v2

u1

u2

SP1

SP2

e1

e2

+-

-

-+

+

Page 45: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Desvio de obstáculos

teta=180/pi*atan((S1*sin(pi/4)-S3*sin(pi/4))/(S2+S1*cos(pi/4)+S3*cos(pi/4)));

Obs

tácu

loObstáculo

Page 46: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Busca do alvo

e

dydx

Alvo

d

Page 47: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Posição (integração dos enconders)

Angulo e velocidade linear

Sensoresde distância

Motores

Velocidade

Obstáculo

Decisão

Alvo

Velocidade dos motores

Page 48: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle de alto nível (Comportamento)

O relacionamento funcional dos estímulos sensoriais com as ações efetuadas sobre os atuadores do robô

Ações devem ser executadas a partir de um plano de ação e de um modelo interno do ambiente

Page 49: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Tipos de controle

1) Reactive control2) Deliberative control3) Hybrid control4) Behavior based control (sub-

sumption)

Page 50: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle reativo

Não pense, reaja! Ambiente imprevisível cheio de obstáculos estáticos e dinâmicos

Restrição de tempo de execução da tarefa

Desenvolvimento de sistemas onde as ações dos robôs móveis sãodeterminadas pelas situações imediatas do ambiente, detectadas porseus sensores.

Page 51: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle reativo (cont.)

Facilmente implementável Não requer intermédio do cérebro Apenas um mapeamento de sensores a ações: Construir um conjunto de regras Exige pouco processamento on-line Alta velocidade Similar a reflexos em seres humanos Muito usado em seres inferiores (siris)

Page 52: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Exemplo visto

Robô com emissores/sensores IR na frente e duas rodas laterais: Nenhum sensor satura: em frente Satura direito: vire à esquerda Satura esquerdo: vire à direita Satura os dois: vire aleatoriamente para um dos lados

Page 53: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle deliberativo

Planeje e pense bastante, então execute ação!

Certas tarefas permitem uma melhor análise do ambiente e planejamento baseado em informações adquiridas via sensores e dados conhecidos

Pode levar o robô a encontrar uma boa solução para sua tarefa, mesmo perdendo tempo de processamento para tomar a decisão

Page 54: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Controle híbrido

Seja eficiente! Pense se der tempo!Comportamento deliberativo pode comprometer o tempo de resposta de um robô

Idéia: unir os comportamentos Caso seja necessário (e dê tempo para) pensar, faça, caso contrário, execute uma ação de forma reativa.

Page 55: Www.dca.ufrn.br/~lmarcos/courses/robotica Introdução ao controle de robôs Luiz Marcos.

Arquitetura subsumption (MIT)

Baseado em comportamentos básicosComportamentos de mais alto nível são

definidos por vários de mais baixo nívelProcesso markoviano (definir ação de

alto nível em função do estado perceptual atual de um robô).

Uso de aprendizado ou de heurísticas para definir políticas (Q-Learning, NN).