Você está na página 1de 55

Introdução ao controle de robôs

Luiz Marcos

www.dca.ufrn.br/~lmarcos/courses/robotica
Cinemática x Dinâmica

Dinâmica x Atraso

Contínuo x Discreto
Tipos de Sistemas de Controle
 Malha aberta
 Malha 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)
 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 Aberta


Grandeza 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 desvios
 Sensor 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)
 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)

ENTRADA SAÍDA
SOMADOR CONTROLADOR ATUADOR

SENSOR
REALIMENTAÇÃO

Sistema de Malha Fechada


Grandeza 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 ar
 1700: mesmo sistema utilizado para
chocar ovos
 Final do século 16: mecanismo melhorado
com melhor sensibilidade. Primeiro
controlador comercial...
Sistema de Controle
Sinal de erro
Energia de entrada

Estado desejado Sinal de feedback


Amplificador
Soma
s(t) e(t) E(t) Robô ou y(t)
dispositivo

Sensor
y´(t)
Estado medido ou real
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 Controle

(t)
Perturbação

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


Robô

Sensor
y´(t)
Motores
Controladores

• Liga-Desliga (on-off)
• Proporcional (P)
• Proporcional + Integral (PI)
• Proporcional + Derivativo (PD)
• Proporcional + Integral + Derivativo (PID)
Controle liga-desliga :
Compara sinal de entrada com realimentação
Se 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 custo
Desvantagens: contínua oscilação da saída, histerese,
não garante precisão e pode desgastar controlador e
atuador.
Mecanismo (roda)
0
Roda (massa grande)

Engrenagens
Sensor
(encoder)

Motor
Proporcional
 Ganho é proporcional ao erro medido
 Exemplo: 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

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
100

-100
Posição e potência x tempo
 Ganho = 20
100

-100
Posição e potência x tempo
 Ganho = 50
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

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 lento
 Resposta depende da acumulação do erro na
entrada
 Leva 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

100

-100
Hierarquia de controle (robô móvel)
Sensores
Externos

Planejamento Posição
da Trajetória

Velocidade
Controlador Sensor
interno
Sensor
interno
Motores
Níveis de controle
 3 níveis de controle:
 controlador de velocidade
dos motores;
 controlador de ângulo e
Alvo
velocidade linear do
robô;
 desvio de obstáculos e Obstáculo
busca pelo alvo. Obstáculo
Controlador dos motores

SP1 e1 u1
-
+ PID Motor 1
v1

SP2 e2 u2 v2
+ PID Motor 2
-
Controlador de ângulo e velocidade
linear
SP1
Controlador +
de Velocidade
Linear +
e

- SP2
Controlador +
de
Ângulo

SP1 - e1 u1
+ PID Motor 1
SP e v1 Cinemática do X
+ Controlador Robô
- SP2 u2 v2
e2
+ PID Motor 2
-
Desvio de obstáculos

Obstáculo Obstáculo

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

dx

Alvo
dy

d
e
Sensores
de distância

Posição
(integração dos enconders)
Obstáculo Alvo

Decisão

Velocidade
Angulo e
velocidade linear

Velocidade dos
motores

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 control
 2) Deliberative control
 3) Hybrid control
 4) 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ão
determinadas pelas situações
imediatas do ambiente, detectadas
por
seus 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ásicos
 Comportamentos de mais alto nível são
definidos por vários de mais baixo nível
 Processo 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).

Você também pode gostar