Was ist ein geeignetes Modell für Zweiradroboter?


30

Was ist ein geeignetes Modell für Zweiradroboter? Das heißt, welche Bewegungsgleichungen beschreiben die Dynamik eines zweirädrigen Roboters.

Modelle mit unterschiedlicher Wiedergabetreue sind willkommen. Dies umfasst nichtlineare Modelle sowie linearisierte Modelle.


1
Diese Frage scheint sehr weit zu gehen. Es wäre hilfreich, wenn Sie "Bewegungsgleichungen" mit einem Wikipedia-Artikel verknüpfen, der beschreibt, was er ist. Außerdem sollten Sie den Roboter genauer spezifizieren. Gibt es zum Beispiel passive Räder? Was sind die Typen der beiden Räder? etc.
Shahbaz

1
Fahrradstil oder Segway-Stil? Sie sollten genauer sein.
Paul

Antworten:


23

Hier gibt es nicht viele Informationen. Lassen Sie uns die Räder durch den Abstand getrennt fixieren , und jedes Rad hat die Ausrichtung θ ibθi with respect to the line joining them. Then assume each wheel can be independently driven with an angular velocity vi.

Wenn die Räder unabhängig voneinander angetrieben werden, aber eine feste Richtung haben ( , haben Sie so etwas wie einen Differentialantrieb (Tanklaufflächen). Es ist erwähnenswert, dass Sie, vorausgesetzt, die Räder rutschen nicht quer zu ihrer Ausrichtung, die Bewegung der Roboterbasis in geschlossener Form mit Geschwindigkeitsbefehlen auflösen können, die über eine kurze Zeitdauer festgelegt sind (wie dies normalerweise bei Robotern unter Software der Fall ist) Steuerung). Der iCreate ist eine solche Plattform, genau wie die kleineren Pioniere und der Husky von Clearpath. Dann kann die Orientierungsänderung der Basis, die unten mit θ bezeichnet ist, in geschlossener Form gefunden werden.θ1=θ2=90θ

...

Das übliche Modell für diese Dinge, wobei die Grundgeschwindigkeit und ω b istvbωb die Winkelgeschwindigkeit der Basis ist, ist:

ωb=

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

For a fixed time increment, δt, you can find the change in orientation, and linear distance traveled using these. Note that the robot travels along a circle in this time window. The distance along the circle is exactly δtvb, and the radius of the circle is R=b2v1+v2v2v1Rθa

0(0,0)δtv1v2 (right wheel), it's orientation will be:

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

Note that as v1v2=v the limit is

px=δtv
py=0

as expected.

Update why?.

Rearrange px so that:

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

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

Now note that we have three limits as v2v1.

cos(v2v12b)1

(v2+v1)2v1==v2

sin(v2v12b)v2v12b1 (see sinc function)

This is covered all over the internet, but you might start here: http://rossum.sourceforge.net/papers/DiffSteer/ or here: https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/kinematics-mobot.pdf

If the wheels are not fixed in direction, as in you can vary the speed and orientation, it gets more complicated. In that sense, a robot can become essentially holonomic (it can move in arbitrary directions and orientations on the plane). However, I bet for fixed orientation, you end up with the same model.

There are other models for two wheels, such as a bicycle model, which is easy to imagine as setting the velocities, and only varying one orientation.

That's the best I can do for now.


1
Maybe I am a bit late but can not see why Px=dt*v if v1 = v2. We have sin(theta/2) as a part of multiplication therefore, when v1=v2 -> theta = 0, we get sin(0/2)=0 and as a consequence Px = 0. What I am missing?
Long Smith

In practice, just use the equations if θ0. To answer your question, I've updated the answer.
Josh Vander Hook

4

If you really want to dive into the mathematics of it, here's the seminal paper that unified and categorized most models for wheeled robots.


2
I'm sorry, link-only answers are discouraged on StackExchange. Could you perhaps condense the content of that link into a few paragraphs and keep it here (along with the actual link, of course). This helps prevent link rot.
Manishearth

Sure thing, I'll do that as soon as I have enough time for it this week. Sorry about that, I wasn't aware about this policy and thought the link would be useful as is.
georgebrindeiro

Excellent paper - thanks for the link! Quite a long weekend as well :-)
uhoh

0

The answer to this is simple, but the other answers obfuscate the dynamics.

Differential drive robots can be modeled with unicycle dynamics of the form:

[x˙y˙θ˙]=[cos(θ)0sin(θ)001][vω],
where x and y are Cartesian coordinates of the robot, and θ(π,π] is the angle between the heading and the x-axis. The input vector [v,ω]T consists of linear and angular velocity inputs.

-1 This is merely a transformation between different coordinates. It doesn't model the dynamics of the robot at all as requested in the question. The "obfuscation" of the other answers is because they take into account that there are two wheels to control and not some abstract input vector. Such a vector could be the result of a model as requested in the question.
Bending Unit 22

The model that I have presented addresses the prompt, adds to the discussion, and is, in fact, a model of the dynamics of a non-holonomic differential drive robot (though not necessarily two-wheeled, which is a strength). While the input velocity vector (aka twist) may be an abstraction, using the twist input is standard for many two-wheeled platforms. This does, however, highlight the fact that state space representations are arbitrary. Controlling wheel velocities is an abstraction from controlling wheel torques, which is itself an abstraction from controlling motor currents.
JSycamore
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.