Jak obliczyć lub zaktualizować pozycję robota z napędem różnicowym za pomocą czujników inkrementalnych?
Do każdego z dwóch kół różnicowych dołączony jest jeden czujnik przyrostowy. Oba czujniki określają odległość lub. ich koło potoczyło się w znanym czasie .Δ R i g h t Δ t
Najpierw załóżmy, że środek między dwoma kołami oznacza pozycję robota. W takim przypadku można obliczyć pozycję jako:
„Wyprowadzając” te równania przy założeniu, że oba koła toczyły się w linii prostej (co powinno być w przybliżeniu prawidłowe dla małych odległości), otrzymuję:
Gdzie jest kątem orientacji robota. Dla zmiany tego kąta znalazłem równanie
Gdzie to odległość między oboma kołami.
Ponieważ i zależą od , zastanawiam się, czy powinienem najpierw obliczyć nowy , dodając czy raczej powinienem użyć „starej” ? Czy jest jakiś powód, aby używać jednego nad drugim?Δ y θ θ Δ θ θ
Załóżmy teraz, że środek między oboma kołami nie oznacza położenia robota. Zamiast tego chcę użyć punktu, który oznacza geometryczny środek obwiedni robota. Następnie i zmiany:
„Wyprowadzanie” pierwszego daje:
Teraz istnieje zależność od . Czy to jest powód, aby używać „nowego” ?
Czy jest jakaś lepsza metoda na jednoczesną aktualizację pozycji i orientacji? Może używać liczb zespolonych (takie samo podejście jak w przypadku czwartorzędów w 3D?) Lub współrzędnych jednorodnych?
źródło
źródło