3.3 Projeto do controlador
3.3.8 Compensac~ao do atraso
Para compensar o atraso ou tempo morto, o uso de preditores pode ser empregado [Harris and Billings, 1995]. Tradicionalmente, uma das tecnicas mais utilizadas e o Preditor de Smith [McMillan, 1994] que cancela o tempo morto da func~ao de transfer^encia para mudancas de refer^encias atraves da adic~ao do sinal de controle ltrado e atrasado a variavel medida. Apesar de apresentar bons resultados em comparac~ao com os controladores conven- cionais, o principal problema desta congurac~ao e que o tempo morto em relac~ao aos disturbios de carga n~ao e cancelado. Outro problema e que o Preditor de Smith pode alterar o comportamento dos controladores dicul- tando o seu projeto alem de ser restrito a uma gama limitada de processos. Em oposic~ao, pode-se utilizar preditores que atuem no caminho de realimen- tac~ao dos controladores. Tenta-se ent~ao, a partir dos valores atuais, fornecer valores futuros para sadas do sistema. Assim, o erro na entrada dos con- troladores e calculado entre as refer^encias e as sadas dos preditores, e n~ao mais entre essas e as sadas do sistema. Esta congurac~ao e mostrada na Figura 3.13 para o controle de ^angulo. O maior problema, e que obviamente, aos preditores est~ao associados erros de predic~ao que podem causar respostas insatisfatorias. Entretanto, se os preditores forem conaveis e precisos, eles podem melhorar signicativamente a resposta do sistema. A maior vanta- gem desta congurac~ao e que o controlador pode ser projetado simplesmente
desconsiderando-se9 o atraso puro de tempo. Alem disso, como o preditor
esta ligado diretamente as sadas, o atraso e compensado tanto para as re- fer^encias quanto para as perturbac~oes.
Para antecipar o comportamento do processo, o uso de modelos din^amicos
9Algumas vezes o atraso n~ao pode ser totalmente compensado e e apenas diminudo.
- + + + D(z) G1(z) G2(z) E(z) S(z) R(z) Y(z) b1/b2 U1(z) U2(z) Preditor znY(z)
Figura 3.13: Uso de um preditor para compensac~ao do atraso.
como os mostrados na Sec~ao 3.2 podem apresentar bons resultados. Para tan- to, pode-se utilizar ainda, modelos com atualizac~ao parametrica em tempo real aumentando a sua exatid~ao. Se nesta atualizac~ao forem utilizados os metodos de mnimos quadrados recursivos, como foi proposto na Sec~ao 3.3.4, e garantido que a predic~ao de um passo a frente e a melhor possvel para um determinado nvel de rudo [Ljung, 1987]. O problema surge ent~ao, quando o atraso e maior que um intervalo de amostragem e o modelo deve ser rea- limentado com suas proprias predic~oes. Neste caso, o preditor somente tera bom desempenho se o modelo realmente representar o processo. Em sistemas com integrac~ao, como e o caso do rob^o, este problema se torna ainda mais acentuado, pois ha uma acumulac~ao dos erros de cada passo de predic~ao,
gerando um deslocamento (oset) nas sadas preditas. Como e difcil cor-
rigir este problema, pode-se fazer um teste anterior para vericar se o erro e signicativo ou pode ser desprezado. Como ja foi mencionado, no caso
de estimac~ao de par^ametros em tempo real (on-line), deve-se ainda, tomar
o cuidado de vericar se a mesma esta sendo feita corretamente, evitando assim o comprometimento do modelo e consequentemente da predic~ao.
Nos dois proximos captulos, as metodologias propostas aqui ser~ao testa- das na pratica para controlar micro-rob^os comandados por um computador externo e observados por um sistema de vis~ao computacional.
Captulo 4
Resultados Experimentais:
Modelagem
N~aobastaconquistarasabedoria,eprecisousa-la.
Marcus TulliusCcero(106{43 a.C.)
N
ESTE captulo e no proximo ser~ao implementadas em simulac~ao e na pratica as metodologias propostas no captulo anterior. Para tanto, ser~ao utilizados os rob^os do time MIneiROSOT [Campos et al., 1998] cons- trudo por alunos de graduac~ao da UFMG para disputar os campeonatos mundiais de futebol de rob^os de 1998 e 1999, na categoria MIROSOT.
Este captulo esta dividido da seguinte forma: a Sec~ao 4.1 faz uma des- cric~ao das caractersticas construtivas do sistema e a Sec~ao 4.2 determina um modelo din^amico para o sistema atraves da estimac~ao dos par^ametros da estrutura determinada no captulo anterior. O Captulo 5 mostra, ent~ao, o projeto do controlador e os resultados encontrados a partir deste modelo.
4.1 Descric~ao do sistema
Existem varias abordagens na construc~ao de sistemas para futebol de micro-rob^os, [Sargent et al., 1997, Achim et al., 1996]. Em relac~ao ao lu- gar em que a \intelig^encia" esta concentrada este desenvolvimento tem sido
divido em tr^es categorias principais: modelos centralizados, distribudos e hbridos.
No modelo distribudo, cada agente tem um processador que controla suas proprias ac~oes, baseado nas informac~oes do seu proprio conjunto de sensores. Cada rob^o comunica com o outro atraves de uma rede sem o. Este modelo e o mais geral e permite varias oportunidades de desenvolvimento.
O modelo hbrido assume a exist^encia de um processador central para al- gum controle e estrategia, mas algumas destas func~oes podem ser realizadas localmente por cada rob^o. E assumido tambem, a exist^encia de um sistema dedicado mais poderoso, que cara encarregado de processar os sensores lo- cais e a comunicac~ao com cada rob^o. O processador central pode ter acesso a um ou mais sensores globais, como vis~ao.
O modelo de intelig^encia centralizada, assume a exist^encia de um proces- sador responsavel por tudo relacionado com a estrategia e controle em diver- sos nveis. Os agentes (rob^os) restringem seu conhecimento a seus proprios dados como posic~ao e velocidade. Na maioria dos casos onde a intelig^encia centralizada e utilizada, os rob^os tendem a ser muito simples e em geral eles possuem poucos ou nenhum sensor local. Por isso, no modelo centralizado, o processador deve ter toda a informac~ao de todos os agentes e as decis~oes s~ao tomadas baseadas em sensores globais, como vis~ao. Em alguns casos, os agentes podem ser equipados com outras modalidades de sensores, mas na maioria das vezes, eles enviam a informac~ao para o computador central para serem processadas.
O sistema do MIneiROSOT segue a tend^encia da maioria dos times que disputam o MIROSOT e usa o modelo de intelig^encia centralizada. Desta forma os rob^os s~ao controlados por um conjunto de algoritmos que rodam em um unico computador. Um outro computador e usado para processar
Figura 4.1: O time MIneiROSOT.
a informac~ao de vis~ao, como sera discutido a seguir. O sistema completo e ent~ao constitudo de tr^es micro-rob^os, mostrados na Figura 4.1, dois com- putadores e uma c^amera de vdeo. A seguir ser~ao detalhadas cada uma das partes constituintes do sistema.
4.1.1 Rob^o
O hardware do sistema envolve basicamente as areas de eletr^onica e
mec^anica. Nesta sec~ao sera feita uma descric~ao da parte eletr^onica de con- trole e comunicac~ao bem como da estrutura mec^anica do rob^o. A principal linha do projeto era obter rob^os de baixo custo e faceis de se construir. Co- mo sera descrito a seguir, uma das principais diculdades e a restric~ao de dimens~oes imposta pelas regras da FIRA [FIRA, 1999], onde cada rob^o n~ao
pode ocupar um volume maior que um cubo de 7;5cm de lado.
Eletr^onica
O rob^o foi construdo baseado em componentes de aeromodelos remota- mente controlados (R/C). Estes incluem microservos, receptores e transmis- sores. O sistema e muito similar aquele descrito em [Hong et al., 1997].
Esta abordagem possui algumas vantagens:
Utiliza componentes R/C padr~oes, facilmente encontrados comercial-
mente;
Os servos s~ao facilmente modicaveis, como sera mostrado a seguir,
para funcionar como servos de velocidade;
O sistema de radio e muito conavel e robusto e existem varias frequ^encias
disponveis.
O sistema de transmiss~ao funciona da seguinte forma: a informac~ao de velocidade (posic~ao no sistema R/C original) e codicada como um pulso
que pode variar de 1ms a 2ms. O zero esta em 1;5ms. A 1ms o servo
esta na velocidade maxima em uma direc~ao, e a 2ms, na velocidade maxima na direc~ao oposta. Para controlar diversos servos e formada uma sequ^encia
de pulsos separados por um pulso de sincronismo de 0;3ms. A sequ^encia e
repetida em intervalos de 20ms. Este trem de pulsos e ent~ao modulado por um transmissor na frequ^encia portadora.
Nos sistema R/C tpicos, a largura de cada pulso e ajustada com a aju-
da de um joystick. Entretanto, para proporcionar o controle dos servos via
computador, e necessario a construc~ao de uma interface que deve receber como entrada um vetor com as velocidades desejadas para cada servo e converter este vetor em pulsos com a largura correta a ser enviada para o transmissor R/C. Esta interface entre o computador e o transmissor foi implementada com um PIC16F84 [Microchip, 1996] e outros poucos com- ponentes [Tavares Filho, 1997a]. A maioria destes transmissores e equipada com uma entrada que e chamada \entrada de instrutor". Esta entrada per- mite a conex~ao de um cabo do controle do instrutor ao controle do aluno, permitindo que esse tome o controle do aeromodelo em algumas situac~oes.
0 50 100 150 200 500 1000 1500 2000 2500 entrada saída ( µ s)
Figura 4.2: Relac~ao entre a variavel enviada pelo computador e a largura do pulso no receptor.
As informac~oes de velocidade s~ao ent~ao enviadas ao rob^o por esta entrada que deve ser sempre mantida no modo instrutor.
O transmissor R/C e capaz de prover sequ^encias de pulsos continuas. Entretanto, devido a restric~oes de tempo de microcontrolador utilizado, o
computador quantiza as larguras de pulso em apenas 256 valores1. No recep-
tor, um circuito extrai os pulsos da portadora e os disponibiliza para cada servo. A relac~ao existente entre o sinal mandando pelo computador e o valor do pulso medido no receptor e mostrado na Figura 4.2. O conjunto recep- tor/servos e alimentado por dois conjuntos de duas baterias nquel-cadmio
(NiCd) ligados em serie, totalizando uma tens~ao de 4;8 volts.
Mec^anica
Como ja foi mencionado, a parte mec^anica do rob^o se baseia em micro- servos, modicados para prover altas velocidades com o maior conjugado
1Apesar desta quantizac~ao, a Figura 4.2 mostra que, efetivamente, apenas 128 valores
Rolamentos Roda Servo Baterias de NiCd Receptor Placas de Aluminio
Figura 4.3: Estrutura mec^anica do rob^o.
possvel [Tavares Filho, 1997b]. O modelo de servo utilizado foi o FP-S3101 fabricado pela Futaba [Futaba, 1999]. Estes foram escolhidos principalmente pelo seu tamanho reduzido. Originalmente os servos t^em um conjugado de
sada de 2;5kgf cm e velocidade de 64;8rpm. Como esta velocidade e
muito baixa para o futebol de rob^os foi necessaria a remoc~ao de uma das engrenagens da caixa de reduc~ao original de cada servo. O novo conjugado foi
ent~ao de 0;186kgfcm e a velocidade passou para 892rpm. Outra modicac~ao
do servo, foi a substituic~ao de um potenci^ometro de realimentac~ao de posic~ao por resistores xos o que possibilitou que o sinal do receptor representasse velocidade.
Depois os servos foram acomodados em uma estrutura juntamente com a bateria e o receptor como e mostrado na Figura 4.3. Esta estrutura e forma-
da por duas placas de alumnio quadradas com 7;5cm de lado, conectadas e
espacadas por dois parafusos longos. As rodas foram construdas de plastico coladas a um anel de alumnio coberto por borracha. O raio nal foi de
1;85cm, o que permite uma velocidade maxima de 172;8cm/s. Na parte in-
ferior do rob^o existem dois pequenos rolamentos para favorecer o equilbrio do rob^o. O rob^o e protegido por uma cobertura de acrlico facilmente removvel.
Cor neutra (cinza ou preto) Cor do robô Cor do time (azul ou amarelo) Centro do robô Fr e n te Lado direito 7,5 cm 2,0 c m
Figura 4.4: Sistema de identicac~ao dos rob^os.
4.1.2 Vis~ao
O sistema de vis~ao e constitudo de uma c^amera NTSC convencional e um computador equipado com um placa de aquisic~ao de imagens com a ca- pacidade de adquirir 60quadros/s. O computador utilizado e um Pentium II, 330MHz rodando Windows98. Um programa foi desenvolvido em linguagem de baixo nvel para processar as imagens em tempo real e permitir o rastrea- mento da trajetoria de diversos objetos baseado nas suas cores. Assim, cada rob^o tem uma cor propria e mais uma cor, comum ao time, que permite a sua identicac~ao. A Figura 4.4 mostra o sistema de identicac~ao dos rob^os, onde, a partir do centro de cada cor e possvel determinar a posic~ao e orientac~ao dos agentes.
A sada do sistema de vis~ao e um vetor de caracteres, que e transmitido via cabo de rede ao computador responsavel pelo controle, contendo a posic~ao e orientac~ao de cada rob^o, dos adversarios e da bola. Este sistema e bastante estavel e muito robusto a variac~oes de iluminac~ao o que n~ao e muito comum a sistemas do mesmo tipo. O processamento das imagens e feito a 40quadros/s
a uma resoluc~ao de 352240 pixels. A Figura 4.5 mostra a caracterstica
0 0.5 1 1.5 2 2.5 3 173 173.1 173.2 173.3 173.4 173.5 173.6 173.7 173.8 173.9 174 (a) t (s) x (pixels) 0 0.5 1 1.5 2 2.5 3 120 120.1 120.2 120.3 120.4 120.5 120.6 120.7 120.8 120.9 121 (b) t (s) y (pixels) 0 0.5 1 1.5 2 2.5 3 4.76 4.78 4.8 4.82 4.84 4.86 4.88 4.9 4.92 4.94 (c) θ (rads) t (s)
Figura 4.5: Sada do sistema de vis~ao: (a) { coordenada x; (b) { coordenada
y; (c) { orientac~ao.
coordenadas de posic~ao s~ao numeros inteiros (pixels) e por isso se rob^o esta
entre dois inteiros existe a presenca de um rudo. Por esse motivo, em geral
a coordenada y e mais ruidosa devido a menor resoluc~ao. A orientac~ao,
apesar de ser mostrada em radianos, e tambem quantizada. Para diminuir
o overhead de transmiss~ao esta variavel e transmitida pela rede em graus
inteiros e depois convertida para radianos. Os desvios padr~oes das variaveis
x, y e s~ao respectivamente 0;26 e 0;50 pixels e 0;05 radianos.
4.1.3 Controle
O sistema de controle e desenvolvido em um micro computador dedica- do que usa o sistema operacional LINUX. Este computador, um Pentium
Robô S1 S2 Rx Controle Visão TCP/IP Tx Câmera
Figura 4.6: Arquitetura do sistema.
de 133MHz, comunica com o sistema de vis~ao atraves de um protocolo assncrono de comutac~ao de pacotes do tipo datagrama [Stallings, 1996]. Os dados de velocidade dos rob^os s~ao enviados para a interface com o trans- missor pela porta serial (RS232) tambem de forma assncrona a uma taxa de 4800bps. O sistema foi desenvolvido de forma que o unico codigo de programa a ser modicado esta neste computador sendo que o restante do sistema e considerado xo. Assim, a unica forma de interac~ao com o usuario e feito por esta maquina atraves de programas que podem ser desenvolvidos em linguagens de alto nvel como C e C++ [Kerningan and Ritchie, 1978, Stroustrup, 1986]. E nesta maquina e que, por exemplo, s~ao feitas as aqui- sic~oes de dados do sistema.
A arquitetura completa do time MIneiROSOT e mostrada atraves de um diagrama de blocos na Figura 4.6. Este sistema e montado conforme e mos-
trado na Figura 1.1, onde o campo de jogo possui dimens~oes de 150130cm
e a altura da c^amera e escolhida de forma que todo campo seja visvel2.
4.2 Modelagem
Nesta sec~ao ser~ao aplicados os algoritmos de estimac~ao de par^ametros mostrados no Ap^endice B as estruturas propostas na Sec~ao 3.2.1 para de- terminac~ao de um modelo din^amico para os rob^os do time MIneiROSOT. Para a utilizac~ao dos algoritmos, optou-se por obter inicialmente um conjun- to de dados capaz de representar bem o rob^o em uma regi~ao de trabalho cuja media e a situac~ao parado. Para tanto, foram adquiridos alguns conjuntos de dados independentes, dentre os quais alguns se constituam por respostas a degraus e os demais por entradas binarias aleatorias com caractersticas muito similares as PRBS, todos executados em malha aberta.
A Figura 4.7 mostra a resposta do sistema a degraus nas entradas de controle. Para a obtenc~ao destes dados o rob^o foi inicializado com uma orientac~ao de aproximadamente 135 graus (diagonal do campo) e foram apli- cados sinais de controle iguais a ambos os motores. Nesta gura, pode ser observado que o sistema possui uma ac~ao integral, como era previsto pelo modelo (3.5). Por esta gura, e possvel ainda fazer uma estimac~ao do tempo morto do sistema que e de aproximadamente 215ms.
A primeira analise mostrou que o sistema de medic~ao (vis~ao) fornece
medidas de orientac~ao na faixa de 0 a 2 radianos e por isso e necessario
um pre-processamento para garantir consist^encia para esta variavel durante
a estimac~ao. Em relac~ao as variaveis x e y, optou-se por trabalhar dire-
tamente com a informac~ao em pixels, ja que uma transformac~ao para uni-
dades metricas seria altamente dependente da altura e posicionamento da c^amera e tambem de suas proprias caractersticas construtivas. O intervalo de amostragem do processo e limitado pelas caractersticas dos sistemas de vis~ao, comunicac~ao e controle e seu valor mnimo e de 27ms. Pode-se notar, que deste tempo, 25ms (40quadros/s) s~ao gastos com a vis~ao e os outros
0 0.5 1 1.5 2 2.5 2.2 2.4 2.6 2.8 3 θ (rad) t (s) 0 0.5 1 1.5 2 2.5 0 5 10 15 input u1 u 2 0 0.5 1 1.5 2 2.5 0 100 200 300 400 position (pixels) x y
Figura 4.7: Reposta ao degrau do sistema.
2ms com o restante do processo. Um procedimento simples de analise, su- gerido em [Aguirre, 1995] e baseado na analise da auto-correlac~ao entre as sadas, conrma que este valor e suciente e adequado para a estimac~ao de par^ametros do modelo din^amico do rob^o. Na realidade, pela Figura 4.8, que
mostra a func~ao de auto-correlac~ao (FAC) para a derivada da sadaxa partir
de entradas PRBS, v^e-se que o perodo de amostragem poderia sofrer peque- nas variac~oes em torno do valor atual sem provocar prejuzo a estimac~ao dos par^ametros, ja que o procedimento de vericac~ao sugere que existam entre 5 e 25 pontos antes do primeiro mnimo da FAC. A analise foi feita sobre a de- rivada das sadas, para tentar eliminar a ac~ao integral do sistema e analisar, realmente, a din^amica mais rapida do processo.
Na Figura 4.9 e mostrada a resposta do sistema a entradas binarias aleatorias. O perodo dos sinais de entrada bem como sua amplitude e media foram escolhidos de forma a favorecer o processo de aquisic~ao e ao
0 5 10 15 20 25 30 35 40 45 50 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 lags
Figura 4.8: Func~ao de auto-correlac~ao da derivada da x.
mesmo tempo permitir a estimac~ao de par^ametros como foi comentado na
Sec~ao 3.2.2. Desta forma, o perodo3 dos sinais de entrada variou entre 10
e 15 intervalos de amostragem e a amplitude do sinal entre 8 e 15 nveis ou
bits (o sinal e quantizado). A media escolhida para o sinal, subtrada an-
tes da estimac~ao, fazia com que o rob^o casse parado. Apesar de tomados todos os cuidados, durante os experimentos um pequeno numero de breves impactos com as paredes do campo foi observado. Como o numero de pontos no conjunto de dados para trajetorias normais do rob^o e muito maior que aqueles onde houve colis~ao, considerou-se que o efeito destes impactos pode ser desconsiderado durante a estimac~ao.
0 5 10 15 20 25 30 −60 −40 −20 0 20 θ (rad) t (s) 0 5 10 15 20 25 30 −10 −5 0 5 10 input u1 u 2 0 5 10 15 20 25 30 0 100 200 300 position (pixels) x y
Figura 4.9: Parte dos dados usados na estimac~ao de par^ametros