Яка підходяща модель для двоколісних роботів?


30

Яка підходяща модель для двоколісних роботів? Тобто, які рівняння руху описують динаміку двоколісного робота.

Моделі різної вірності вітаються. Сюди входять нелінійні моделі, а також лінійні моделі.


1
Це питання видається дуже широким. Це допоможе, якщо ви пов'язуєте "рівняння руху" до статті у вікіпедії (наприклад), яка описує, що це таке. Також слід конкретизувати робота. Наприклад, чи є пасивні колеса? Які типи двох коліс? пр.
Шахбаз

1
Велосипедний стиль або стиль segway? Ви повинні бути більш конкретними.
Павло

Відповіді:


23

Тут не так багато інформації. Давайте закріпимо колеса як розділені на відстань , і кожне колесо має орієнтацію θ i щодо лінії, що їх приєднує. Тоді припустимо, що кожне колесо може вестись незалежно з кутовою швидкістю v i .bθivi

Якщо колеса приводяться незалежно, але зафіксовані в напрямку, , у вас є щось на кшталт диференціального приводу (протектора танка). Варто зазначити, що, якщо колеса не ковзають перпендикулярно їх орієнтації, ви можете вирішити для руху основи робота в закритому вигляді задані команди швидкості, які фіксуються протягом невеликої тривалості часу (як це зазвичай буває з роботами під програмним забезпеченням контроль). ICreate є такою платформою, як і менші піонери, і Husky від Clearpath. Тоді зміна орієнтації основи, позначена нижче θ , можна знайти в закритому вигляді.θ1=θ2=90θ

...

Звичайна модель для цих речей, де - основна швидкість, а ω b - кутова швидкість основи, є:vbωb

ωb=1

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

Для фіксованого збільшення часу можна знайти зміну орієнтації та пройдене лінійне відстань, використовуючи їх. Зауважте, що робот рухається по колу в цьому часовому вікні. Відстань по колу рівно δ t v b , а радіус кола - R = bδtδtvb . Цього достатньо, щоб підключити до цих рівнянь:кругові сегменти- зокрема рівняння довжини акорда, яке описує відстань, яку робот зміщує від свого початкового місця. Ми знаємо,Rіθ, розв’язуємо дляa.R=b2v1+v2v2v1Rθa

Таким чином, якщо припустити, що робот починається з орієнтації і положення ( 0 , 0 ) і рухається вздовж вікна часу δ t зі швидкістю v 1 (ліве колесо) і v 2 (праве колесо), його орієнтація буде такою: θ 1 = δ t0(0,0)δtv1v2з положенням: px=cos( θ 1

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

Зауважте, що як то межа є p x = δ t v p y = 0v1v2=v

px=δtv
py=0

як і очікувалося.

Оновити, чому ?.

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)

Це висвітлено в усьому Інтернеті, але ви можете почати тут: http://rossum.sourceforge.net/papers/DiffSteer/ або тут: https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/ кінематика-mobot.pdf

Якщо колеса не зафіксовані в напрямку, як у вас можна змінювати швидкість і орієнтацію, це ускладнюється. У цьому сенсі робот може стати по суті голономічним (він може рухатися у довільних напрямках та орієнтаціях на площині). Однак я ставлю ставку на фіксовану орієнтацію, ви закінчуєте ту саму модель.

Існують і інші моделі на два колеса, наприклад, модель велосипеда, яку легко уявити як налаштування швидкостей, і змінювати лише одну орієнтацію.

Це найкраще, що я можу зробити зараз.


1
Можливо, я трохи запізнююся, але не можу зрозуміти, чому Px=dt*vякщо v1 = v2. Ми маємо sin(theta/2)як частину множення, тому коли v1=v2 -> theta = 0, ми отримуємо sin(0/2)=0і як наслідок Px = 0. Що мені не вистачає?
Лонг Сміт

θ0

4

Якщо ви дійсно хочете зануритися в математику, ось ось набірний документ, який об'єднав і класифікував більшість моделей для колесних роботів.


2
Вибачте, відповіді, що містять лише посилання, відмовляють у StackExchange. Ви можете, можливо, згустити вміст цього посилання на кілька абзаців і зберегти його тут (разом із фактичним посиланням, звичайно). Це допомагає запобігти гниттю посилань.
Manishearth

Звичайно, я зроблю це, як тільки у мене буде достатньо часу для цього тижня. Вибачте з цього приводу, я не знав про цю політику і вважав, що посилання буде корисним як є.
georgebrindeiro

Відмінна папір - дякую за посилання! Досить довгі вихідні також :-)
uhoh

0

Відповідь на це проста, але інші відповіді пригнічують динаміку.

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

-1 Це просто перетворення між різними координатами. Він взагалі не моделює динаміку робота, як вимагається в запитанні. " Заплутаність " інших відповідей полягає в тому, що вони враховують, що для управління є два колеса, а не якийсь абстрактний вектор введення. Такий вектор може бути результатом моделі, про яку йдеться у запитанні.
Згинання підрозділу 22

Модель, яку я представив, звертається до підказок, додає до дискусії, і насправді є моделлю динаміки робота нехолономічного диференціального приводу (хоч і не обов'язково двоколісного, що є силою). Хоча вектор швидкості введення (він же твіст) може бути абстракцією, використання введення повороту є стандартним для багатьох двоколісних платформ. Це, однак, підкреслює той факт, що уявлення про державний простір є довільними. Контроль швидкостей колеса - це абстракція від контролю крутних моментів колеса, яка сама по собі є абстракцією від керування струмами двигуна.
JSycamore
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.