View
110
Download
2
Category
Preview:
Citation preview
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
Tipos de Sistemas de ControleTipos de Sistemas de Controle
Malha abertaMalha fechada
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.
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.
Transistor
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
Diagrama de blocos (M. Aberta)
CONTROLADOR ATUADOR
Sistema de Malha AbertaGrandeza não Automático
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).
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.
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.
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.
Diagrama de blocos (M. Fechada)
CONTROLADOR ATUADOR
SENSOR
SOMADORENTRADA SAÍDA
REALIMENTAÇÃO
Sistema de Malha FechadaGrandeza Automática
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.
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).
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...
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)
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); } } }
Gráficos (distância x tempo)
D=40
Distância x tempo
D=30
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); } } }
Distância x tempo
D=40
Sistema de ControleSistema de Controle
Robô
Sensor
Perturbação
u(t)e(t)s(t) y(t)
(t)
y´(t)
Motores
ControladoresControladores
• Liga-Desliga (on-off)
• Proporcional (P)
• Proporcional + Integral (PI)
• Proporcional + Derivativo (PD)
• Proporcional + Integral + Derivativo (PID)
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.
Mecanismo (roda)
Motor
Engrenagens
Roda (massa grande)
0
Sensor(encoder)
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); } }
Posição e potência x tempo
0
100
-100
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.
Posição e potência x tempo
Ganho = 10
0
100
-100
Posição e potência x tempo
Ganho = 20
0
100
-100
Posição e potência x tempo
Ganho = 50
0
100
-100
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
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); } }
Posição e potência x tempo
0
100
-100
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.
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.
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.
Posição e potência x tempo
0
100
-100
Hierarquia de controle (robô móvel)SensoresExternos
Planejamentoda Trajetória
Controlador
Motores
Posição
Velocidade
Sensorinterno
Sensorinterno
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.
Controlador dos motores
Motor 2
Motor 1
PID
PIDv1
v2
u1
u2
SP1
SP2
e1
e2
-
-+
+
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
+-
-
-+
+
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
Busca do alvo
e
dydx
Alvo
d
Posição (integração dos enconders)
Angulo e velocidade linear
Sensoresde distância
Motores
Velocidade
Obstáculo
Decisão
Alvo
Velocidade dos motores
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
Tipos de controle
1) Reactive control2) Deliberative control3) Hybrid control4) Behavior based control (sub-
sumption)
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.
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)
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
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
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.
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).
Recommended