Como você calcula ou atualiza a posição de um robô de acionamento diferencial com sensores incrementais?
Há um sensor incremental conectado a cada uma das duas rodas diferenciais. Ambos os sensores determinam a distância resp. sua roda rolou durante um tempo conhecido .Δ r i g h t Δ t
Primeiro, vamos assumir que o centro entre as duas rodas marca a posição do robô. Nesse caso, pode-se calcular a posição como:
"Derivando" essas equações sob o pressuposto de que ambas as rodas rolaram em uma linha reta (que deve ser aproximadamente correta para pequenas distâncias), recebo:
Onde é o ângulo de orientação do robô. Para a mudança desse ângulo, encontrei a equação
Onde é a distância entre as duas rodas.
Porque e dependem , eu me pergunto se eu deveria primeiro calcular o novo adicionando ou se eu deveria preferir usar o "velho" ? Existe algum motivo para usar um sobre o outro?
Então, vamos agora assumir que o centro entre as duas rodas não marca a posição do robô. Em vez disso, quero usar um ponto que marque o centro geométrico da caixa delimitadora do robô. Então e mudam para:
"Derivando" o primeiro fornece:
Agora há uma dependência em . Esse é um motivo para usar o "novo" ?
Existe algum método melhor para fazer uma atualização simultânea de posição e orientação? Pode estar usando números complexos (a mesma abordagem dos quaternions em 3D?) Ou coordenadas homogêneas?