É possível mover e estabilizar um robô de duas rodas sem giroscópios?

15

Com um robô de duas rodas como este , eu consegui estabilizá-lo enquanto o mantinha parado. Isso foi feito usando um sistema de controle de feedback digital, lendo a posição das rodas para determinar a posição, e a força eletromotriz natural dos motores das rodas foi usada no loop de feedback para determinar a velocidade. Ele foi mantido estável com um controlador PID, que foi projetado usando um algoritmo de locus raiz para mantê-lo estável e modular os parâmetros de desempenho (como porcentagem de superação, tempo de acomodação, etc.). Eu queria tentar mantê-lo estável e, ao mesmo tempo, impulsioná-lo para a frente, mas não consegui descobrir como desenvolver um controlador linear que pudesse fazer isso. É possível impulsionar o robô para a frente e mantenha-o estável usando um controlador de feedback nas rodas ou é necessário um giroscópio?

Zetta Suro
fonte
11
Existe alguma razão específica para você não poder usar um giroscópio? Apenas por interesse.
berry120
Trata-se de uma tarefa que fiz no meu último mandato. Fomos designados ao robô e só pudemos usar o que nos foi dado. A tarefa era apenas para mantê-la estacionária, mas fiquei curioso para saber se (e se sim, como) poderia avançar ou permanecer estável.
Zetta Suro

Respostas:

4

Você pode usar outras maneiras de medir a orientação, como um acelerômetro, rastreamento óptico de marcadores ou um sensor de profundidade apontado para o chão.

AlcubierreDrive
fonte
Um sensor óptico de distância apontando para o chão é uma boa maneira de medir a inclinação do robô. Basta lembrar que ele irá medir a inclinação real, enquanto um giroscópio mede a taxa de mudança de inclinação
Rocketmagnet
2

Se você conseguiu estabilizá-lo em uma configuração estacionária, realmente não vejo como seria muito mais difícil mantê-lo estável a uma velocidade constante. Do ponto de vista do modelo de sistema, seria efetivamente a mesma coisa, exceto por algumas compensações de velocidade. Se as transições entre velocidades não forem muito grandes, ela deve estar dentro do intervalo das perturbações do sistema natural.

Jakob
fonte
2

Você precisa de alguns sensores para detectar o estado do sistema.

Primeiro linearize o sistema em uma forma de espaço de estado e depois considere quais sensores você possui. Depois verifique se é observável. Se for observável, você poderá alimentar os estados estimados no seu controlador.

Atualmente, parece que você está usando a posição da roda e o EMF traseiro (para velocidade) como medidas diretas. Sem verificar a matriz de observabilidade, não tenho certeza se o sistema é observável.

ronalchn
fonte
2

Matematicamente, o fato de você agora ter rotação (principalmente) elimina esse parâmetro como um possível parâmetro de controle. Basicamente, você teria que reprojetar seu algoritmo para aceitar um componente de velocidade angular grande e variável enquanto ainda usa velocidade angular em seus comentários. Quanto menos barulhento, melhor o resultado provável, simplesmente porque você provavelmente aplicará um diferencial de posição para derivar outro parâmetro de controle. Ou melhor, esse é um caminho. Portanto, parece que você precisa de outra entrada de controle, mas não precisa ser um acelerômetro. Você pode fazer um horizonte, localização fixa de marcadores ou até sensores de inclinação.

espaço reservado
fonte