Jaki model jest odpowiedni dla robotów dwukołowych?


30

Jaki model jest odpowiedni dla robotów dwukołowych? Oznacza to, jakie równania ruchu opisują dynamikę dwukołowego robota.

Model o różnej wierności jest mile widziany. Dotyczy to zarówno modeli nieliniowych, jak i modeli zlinearyzowanych.


1
To pytanie wydaje się bardzo szerokie. Byłoby pomocne, gdybyś połączył „równania ruchu” z artykułem na Wikipedii (na przykład), który opisuje, co to jest. Powinieneś także sprecyzować robota. Na przykład, czy są koła pasywne? Jakie są dwa typy kół? itp.
Shahbaz,

1
Styl rowerowy czy styl segway? Powinieneś być bardziej szczegółowy.
Paul

Odpowiedzi:


23

Tutaj nie ma dużo informacji. Naprawmy koła oddzielone odległością , a każde koło ma orientację θ i w stosunku do linii łączącej je. Następnie załóżmy, że każde koło może być niezależnie napędzane z prędkością kątową v i .bθivi

Jeśli koła są napędzane niezależnie, ale ustawione w kierunku , masz coś w rodzaju napędu różnicowego (stopnie czołgu). Warto zauważyć, że zakładając, że koła nie ślizgają się prostopadle do ich orientacji, można rozwiązać ruch podstawy robota w formie zamkniętej, podając polecenia prędkości, które są ustalane na krótki czas (jak zwykle w przypadku robotów z oprogramowaniem kontrola). ICreate jest taką platformą, podobnie jak mniejsi pionierzy, oraz Husky firmy Clearpath. Następnie zmianę orientacji podstawy, oznaczonej θ poniżej, można znaleźć w formie zamkniętej.θ1=θ2=90θ

...

Typowym modelem tych rzeczy, gdzie jest prędkością bazową, a ω b jest prędkością kątową podstawy, to:vbωb

ωb=1

vb=12(v1+v2)
ωb=1b(v2v1)

Dla ustalonego przyrostu czasu, , można znaleźć zmianę orientacji i przebytą odległość liniową za ich pomocą. Zauważ, że robot porusza się po okręgu w tym oknie czasowym. Odległość wzdłuż koła wynosi dokładnie δ t v b , a promień koła wynosi R = bδtδtvb . Wystarczy podłączyć do tych równań:segmenty kołowe- szczególnie równanie długości cięciwy, które opisuje odległość, którą robot przemieszcza się z pierwotnej lokalizacji. ZnamyRiθ, rozwiązujemy dlaa.R=b2v1+v2v2v1Rθa

Więc zakładając, że rozpoczyna się robot z orientacją i pozycji ( 0 , 0 ) oraz przechodzi wzdłuż okna czasowego δ t przy prędkości v 1 (lewe koło) i v 2 (prawe koło), to orientacja będą: θ 1 = δ t0(0,0)δtv1v2z pozycją: px=cos( θ 1

θ1=δtb(v2v1)
py=sin(θ1
px=cos(θ12)(2Rsin(θ12))
py=sin(θ12)(2Rsin(θ12))

Zauważ, że jako limit wynosi p x = δ t v p y = 0v1v2=v

px=δtv
py=0

zgodnie z oczekiwaniami.

Zaktualizuj dlaczego ?.

px

px=cos(v2v12b)2(bv1+v22(v2v1))sin(v2v12b)

px=cos(v2v12b)(v2+v1)2sin(v2v12b)v2v12b

v2v1

cos(v2v12b)1

(v2+v1)2v1==v2

sin(v2v12b)v2v12b1 (see sinc function)

Jest to omówione w całym Internecie, ale możesz zacząć tutaj: http://rossum.sourceforge.net/papers/DiffSteer/ lub tutaj: https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/ kinematics-mobot.pdf

Jeśli koła nie są ustawione w kierunku, ponieważ możesz zmieniać prędkość i orientację, staje się to bardziej skomplikowane. W tym sensie robot może stać się zasadniczo holonomiczny (może poruszać się w dowolnych kierunkach i orientacjach na płaszczyźnie). Założę się jednak o ustaloną orientację, aby uzyskać ten sam model.

Istnieją inne modele na dwa koła, takie jak model rowerowy, który łatwo sobie wyobrazić jako ustawienie prędkości i zmienianie tylko jednej orientacji.

To najlepsze, co mogę teraz zrobić.


1
Może jestem trochę późno, ale nie mogę zrozumieć, dlaczego Px=dt*v, jeśli v1 = v2. sin(theta/2)Dlatego mamy do czynienia z pomnażaniem, kiedy v1=v2 -> theta = 0otrzymujemy sin(0/2)=0iw konsekwencji Px = 0. Czego mi brakuje?
Long Smith

θ0

4

Jeśli naprawdę chcesz zagłębić się w matematykę, oto przełomowy artykuł, który ujednolicił i skategoryzował większość modeli robotów kołowych.


2
Przykro mi, odpowiedzi StackExchange są odradzane. Czy możesz skondensować treść tego linku w kilka akapitów i zachować go tutaj (wraz z rzeczywistym linkiem, oczywiście). Pomaga to zapobiec gniciu linków.
Manishearth

Jasne, zrobię to, jak tylko będę miał na to wystarczająco dużo czasu w tym tygodniu. Przepraszam za to, nie wiedziałem o tych zasadach i pomyślałem, że link będzie przydatny w obecnej formie.
georgebrindeiro

Doskonały papier - dzięki za link! Całkiem długi weekend :-)
uhoh

0

Odpowiedź na to pytanie jest prosta, ale inne odpowiedzi zaciemniają dynamikę.

[x˙y˙θ˙]=[cos(θ)0sin(θ)001][vω],
xyθ(π,π]x[v,ω]T

-1 Jest to jedynie transformacja między różnymi współrzędnymi. W ogóle nie modeluje dynamiki robota, zgodnie z żądaniem zawartym w pytaniu. „ Zaciemnianie ” innych odpowiedzi wynika z tego, że uwzględniają one dwa koła do kontrolowania, a nie jakiś abstrakcyjny wektor wejściowy. Taki wektor może być wynikiem modelu wymaganego w pytaniu.
Jednostka gnąca 22

Model, który przedstawiłem, stanowi odpowiedź na pytanie, dodaje do dyskusji i jest w rzeczywistości modelem dynamiki niehonomicznego robota z napędem różnicowym (choć niekoniecznie dwukołowym, co jest jego siłą). Podczas gdy wektor prędkości wejściowej (zwany również skrętem) może być abstrakcją, użycie sygnału skrętu jest standardem w wielu platformach dwukołowych. Podkreśla to jednak fakt, że reprezentacje przestrzeni stanów są dowolne. Kontrolowanie prędkości koła jest abstrakcją wynikającą ze sterowania momentami obrotowymi koła, która sama w sobie jest abstrakcją wynikającą ze sterowania prądami silnika.
JSycamore,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.