Avaliação de abordagens ao controlo de motores DC em robots de propulsão diferencial 2WD.
Todas as abordagens estudadas tem como objetivo o controlo coordenado e sincronizado dos motores de propulsão de forma a executar com precisão movimentos simples e fundamentais a locomoção do robot.
Movimentos em robots
Tomando em consideração a cinemática aplicada a robots 2WD de propulsão diferencial podemos definir o seguinte:
- O robot encontra-se em movimento se a sua posição ou orientação for diferente em diferentes instantes. Se a posição e a orientação permanecer constante, o robot está parado;
- No robot existem dois tipos de movimentos básicos aos quais se podem reduzir todos os tipos mais complexos;
Categorias de movimentos basicos
As categorias de movimentos básicos ou puros estão relacionados com as alterações de posição e de orientação, de forma exclusiva e são os seguintes:
- Translação, que ocorre quando o robot muda de posição (coordenadas x e y);
- Rotação, que ocorre quando o robot muda de orientação (cordenada alpha);
Com esta grelha de com duas categorias de movimentos básicos pode-se analisar todos os tipos de movimentos. Sejam eles simples, como o rectilineo ou compostos, como o rectilinio ou o circular.
Tipos de movimentos
Consoante o padrão da deslocação no plano, podem definir-se vários tipos de movimentos.
- Movimento rectilineo, corresponde apenas à translação
- Movimento de rotação, corresponde apenas à rotação
- Movimento curvilineo
- Movimento circular, corresponde à translação e rotação simultanêas
- Movimento eliptico, corresponde à translação e rotação simultanêas
- Movimento parabólico, corresponde à translação e rotação simultanêas
- Movimento aleatório (descontrolado), corresponde à translação e rotação simultanêas
De todos eles, o único que não queremos implementar num robot é o movimento aleatório, exactamente porque queremos controlo sobre o movimento.
A unidade do movimento
A unidade de avaliação do movimento é a continuidade da relação entre as velocidades dos dois motores (não são as interrupções dos movimentos).
Os movimentos podem não ser interrompidos por uma paragem, e serem constituidos por dois tipos de movimentos diferentes. Esta situação acontece por exemplo quando o robot está a andar a direito e começa a efectuar uma curva.
Os movimentos também podem ser claramente interrompidos, como no caso em que um robot pára, roda para a esquerda e recomeça a andar a direito.
Estas considerações sobre a unidade dos movimentos referem-se à avaliação dos graus de liberdade que um robot de duas rodas pode ter.
Graus de liberdade do movimento
Os graus de liberdade do movimento é a quantificação do numero de movimentos disponiveis nas diversas situações que tem as seguintes dependências:
- do numero de movimentos imediatamente disponiveis para executar a qualquer momento sem implicar uma paragem;
- o numero de movimentos disponvieis depende do movimento que está a ser executado no momento
Não confundir com graus de liberdade na posição e orientação.
Deste modo no mesmo robot, podem existir vários graus de liberdade consoante o movimento que o robot executa.
O numero de movimentos disponiveis para executar quando parado é o máximo grau de liberdade do robot;
O problema da paragem é que devido à inércia do robot ela não é imediata. Uma imobilização controlada do robot tem de ser prevista com antecedencia de modo imobilizar sem derrapamento e no destino.
Para além de ser usada na definição dos graus de liberdade, parar é um grau de liberdade.
Os graus de liberdade de movimentos em robots podem ser por exemplo os seguintes:
- Um robot que só anda para a frente:
- Tem dois graus de liberdade minima
- Ou continua a andar ou pára;
- Tem dois graus de liberdade máxima
- Ou anda para a frente ou continua parado;
- Tem dois graus de liberdade minima
- Um robot anda só para a frente e só roda para a esquerda:
- Tem dois graus de liberdade minima
- Ou continua a andar (ou a rodar), ou pára;
- Tem três graus de liberdade máxima
- Ou anda para a frente, ou roda para a esquerda, ou continua parado;
- Tem dois graus de liberdade minima
- Um robot anda para a frente e para trás e roda para a esquerda e para a direita
- Tem dois graus de liberdade minima
- Ou continua a andar (ou a rodar), ou pára;
- Tem cinco graus de liberdade máxima
- Ou anda para a frente, ou para tráz, ou roda para a esquerda ou para a direita, ou continua parado;
- Tem dois graus de liberdade minima
- Um robot anda para a frente e para trás, roda para a esquerda e para a direita e curva para a esquerda e para a direita
- Tem dois graus de liberdade minima
- Ou continua a rodar ou pára;
- Tem três graus de liberdade intermédia
- Ou continua a andar em frente, ou curva para a esquerda, ou para direita ou para.
- Tem nove graus de liberdade máxima
- Ou anda para a frente, ou para trás, ou roda para a esquerda ou para a direita, ou continua parado;
- Tem dois graus de liberdade minima
Num certo sentido, os graus de liberdade são uma parte importante da avaliação da agilidade do robot.
Movimentos em robots 2WD de propulsão diferencial
Na minha análise dos movimentos dos robots resolvi definir as seguintes duas classes de tipos de movimentos;
- Os movimentos simples, o movimento retilineo e a rotação;
- Os movimentos avançados, os movimentos curvilineos
Esta classificação decorre :
- Das categorias inicialmente definidas, que correspondem aos movimentos puros, a translação sem mudança de orientação e a rotação sem mudança de posição;
- Dos movimentos simples serem o conjunto minimo necessário para o robot se deslocar para todas as posições e orientações num plano;
- Das diferentes abordagens para a sua implementação prática e a respectiva dificuldade.
Movimentos simples em robots 2WD de propulsão diferencial
Um robot 2WD que implemente os dois movimentos simples tem 5 graus de total.
Nos robots de duas rodas os movimentos simples são os seguintes:
- Movimento de translação retilinio
(andar a direito)Neste movimento: ambas as rodas devem rodar na mesma direcção a mesma distância, sempre sincronizadas à mesma velocidade, incluindo o arranque e a paragem.O objectivo é que o centro do eixo das rodas esteja sempre na mesma coordenada x, e apenas varie a coordenada y proporcionalmente à velocidade, mantendo a orientação alpha.Qualquer diferença de velocidade implica uma mudança de orientação, e uma translação lateral no centro do eixo das rodas (alteração de posição), expressa na variação da coordenada x, que mantem mesmo com a posterior correção da orientação.Considerado em ambos os sentidos: andar para a frente e andar para trás; permite dois graus de liberdade. - Movimento de rotação
(rotação em torno do eixo das rodas)Neste movimento: as rodas devem rodar na direcção inversa a mesma distância, sempre sincronizadas à mesma velocidade, incluindo o arranque e a paragem.O objectivo é que apenas a orientação alpha varie e as coordenadas x e y não variem.Qualquer diferença de velocidade implica uma translação lateral no centro do eixo das rodas (alteração de posição), expressa na variação da coordenada x.
Considerado em ambos os sentidos: rotação à esquerda e à direita permite dois graus de liberdade.
Movimentos avançados em robots 2WD de propulsão diferencial
Os movimentos avançados nos robots são os movimentos curvilineos.
Um robot 2WD que além de implementar os dois movimentos simples, implemente também um movimento curvilineo então tem 9 graus de liberdade total.
Num robot 2WD podem ser implementados os seguintes movimentos avançados:
- Movimento circular
Rotação em torno de um ponto generico;
Neste movimento: as rodas devem rodar na mesma direcção mas distâncias diferentes, com as velocidades diferentes dos dois motores mantendo a mesma relação pré estabelecida.O objectivo é mudar, quer a orientação alpha, quer as coordenadas x e y.Qualquer diferença na relação entre as velocidades dos dois motores, face à relação pré estabelecida, implica um desvio na posição e orientação (trasladação e rotação) face ao desejado.
Considerado em ambos os sentidos: andar para a frente e andar para trás; permite dois graus de liberdade. - Movimento parabólico
(a definir) - Movimento eliptico
(a definir)
Abordagem prática aos movimentos em robots 2WD
A implementação e a avaliação de um modelo de exploração de um robot 2WD que só tenha movimentos simples é facil quando comparada com necessária no caso de um robot com movimentos avançados.
Essa facilidade é possivel porque o controlo necessário para executar o movimento rectilíneo é em tudo semelhante ao do movimento de rotação excepto a direcção em que as rodas devem rodar.
Portanto a primeira serie de desenvolvimento de programas e experiencias é orientada para a implementação de robots com os dois movimentos simples e cinco graus de liberdade.
Nesta serie o movimento de translação retilínio é usado como teste para apurar o desempenho em termos de grau de controlo e precisão conseguidas pelas diversas abordagens estudadas.
A segunda serie de desenvolvimento de programas e experiencias é orientada para a implementação de robots com os dois movimentos simples e um movimento avançado (o movimento circular). Ou seja, um robot com nove graus de liberdade.
Controlo dos motores nos robots
O controlo dos motores é efectuado com recurso a uma ponte-H. Que é usada para controlo da direcção da rotação, e manipulação do sinal PWM que é traduzido numa voltagem média injectada nos motores.
Todas as abordagem estudadas procuram o controlo adequado e preciso do sinal PWM enviado para os motores.
As informações necessárias á devida manipulação do sinal PWM são obtidas por encoders, que permitem saber a velocidade de rotação dos motores.
Abordagens estudadas
As abordagens avaliadas neste estudo estão divididas nos seguintes grupos:
- Sem qualquer tipo de controlo de ajuste
- Com ajustes por controlo proporcional simples
- Com ajustes por controlo PID partilhado pelos dois motores
- Com ajustes por controlo PID independente por cada motor
- Com ajustes por controlo PID misto (independente e partilhado)
Os três primeiros grupos formam uma sequência de controlo crescente sobre a estabilidade da orientação e velocidade.
Como a primeira abordagem com controlo PID partilhado pelos dois motores obteve bons resultados, foi objecto de maior atenção, o que deu origem ao desenvolvimento de variantes mais evoluídas.
Os dois últimos grupos são abordagens que foram testadas, mas que os resultados obtidos não foram satisfatórios.
Testes de controlo sobre os motores
- Sem qualquer tipo de controlo de ajuste
- Apenas com controlo da direção de rotação
- Controlo de direcção e velocidade de rotação fixa (PWM fixo)
Movimento simples de robot 2WD com PWM fixo - Com encoders no eixo dos motors e sem ajuste (apenas demo)
Encoders no movimento simples de robot 2WD com PWM fixo
- Com ajustes por controlo proporcional simples
- PWM fixo com correção de erro entre rodas proporcional
Encoders no movimento simples de robot 2WD com PWM ajustado
- PWM fixo com correção de erro entre rodas proporcional
- Com ajustes por controlo PID partilhado pelos dois motores
- PWM fixo com correção de erro entre rodas por PID
Movimento retilineo de robot 2WD com PWM ajustado por PID - PWM variavel por PID e com correção de erro entre rodas por PID
Movimento retilineo de robot 2WD com direção e velocidade ajustada por PID
- PWM fixo com correção de erro entre rodas por PID
- Com ajustes por controlo PID independente por cada motor
dois PIDs independentes (um por motor) com o mesmo setPoint de pulsos por periodo (sincronizados por velocidade igual). - Com ajustes por controlo PID misto (independente e partilhado)
três PIDs, um por cada motor, e um terceiro que a determina o setPoint para cada motor de modo a corrigir o erro entre rodas