стрибучий робот

Сергій Лончаков швидко розібрався в наявному коді і написав масу алгоритмів для стабілізації, які були поки безглузді. Також він знайшов недоліки розводки, що призводять до втрати зв'язку з датчиками при інтенсивному обертанні моторів через електромагнітних наведень. Стало зрозуміло як модифікувати плату. До кінця травня Сергій зумів запустити алгоритм распригіванія, який можна було реалізувати якщо знизити гравітацію і зробити штучну стабілізацію становища Z-Hopper за допомогою противаги. І робот распригался.

Восени Сергій Лончаков продовжив роботу над роботом, але з низьким темпом і було мало що зроблено. Стало зрозуміло, що нам потрібна інша пружинна нога, а для стабілізації потрібні диски на осі моторів. Прийшов час освоїти виготовлення деталей.

стрибучий робот
стрибучий робот
стрибучий робот

стрибучий робот
стрибучий робот
стрибучий робот

стрибучий робот

В результаті вийшов ось такий робот:

В якості першого алгоритму для стабілізації робота у віртуальному світі був обраний PID-регулятор. Зміна необхідного нахилу здійснювалося через джойстик. Через недостатньо потужних моторів роботу потрібно було кілька секунд, щоб повернути і зайняти зазначене положення. Так як в кінці весни був захист курсової, подальші роботи по стабілізації робота вирішили перенести на осінь.

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

Приблизно в середині осені ми змінили кількість двигунів. Тепер моторів 3 штуки і вони утворюють базис:

стрибучий робот

У загальних словах як працює алгоритм: в його основі знаходяться кватерніони. Саме за допомогою кватерніонів я отримую вектор нев'язки, який розкладаю на осі моторів, використовуючи матриці повороту. Далі в справу вступають ПІД регулятори. Нічого складного)))

Для визначення орієнтації в просторі також використовуються кватерніони.

Для симуляції я створив 3d модель робота в SolidWorks. Для системи управління нахилом я взяв BLDC мотори EC 45 flat 70W від Maxon Motor. У них в каталозі був великий вибір, тому підібрати що-небудь більш-менш підходяще не склало труднощів:

стрибучий робот

Виготовлення всіх деталей можна було замовити на будь-якому заводі, де роблять лазерну різку і гнуття. Також Solidworks дав мені масу, тензор інерції і інші необхідні дані для проведення правильної симуляції. Фото збірки з SolidWorks:

стрибучий робот
стрибучий робот

стрибучий робот

У симуляції цей алгоритм працював непогано, але треба розуміти, що в реальному світі дані з будь-яких датчиків, в тому числі з датчиків кутових швидкостей, будуть містити шум. А це з часом призведе до накопичення помилки і, як наслідок, неправильного визначення орієнтації в просторі.

Як видно з симуляції, навіть без шумів робот падає через деякий час. Це пов'язано з тим, що немає обліку вектора швидкості. Наприклад, якщо робот буде ідеально направляти свою опору вниз, то через наявність горизонтальної швидкості під час кожного відскоку робот буде нахилятися за рахунок моменту імпульсу. При цьому сам відскік відбувається вже не вертикально вгору, а трохи вбік. Тим самим додатково збільшується горизонтальна швидкість, а висота стрибка зменшується. Якщо під час падіння в ручну трохи нахилити робота в протилежну сторону, то можна позбутися від такого ефекту. Це підтверджує що необхідна ще одна система - система корекції бажаної орієнтації за вектором швидкості. На цьому закінчився черговий семестр, і я захистив курсову роботу за 5 курс.

Спочатку метою даного проекту була розробка віртуальної моделі робота, а створення повноцінного прототипу. Причому прототипу, який би володів високою маневреністю і швидкістю пересування. Тому коли стало ясно, що система управління нахилом працює як треба, постало питання про підбір нормальних моторів.

Переглянувши велику кількість доступних моторів, було вирішено замовити для тестування GM7008H:

стрибучий робот

Після отримання мотора, я виміряв його крутний момент і інші не менш важливі параметри.

Даний мотор був обраний не випадково. До нього можна кріпити маховик одразу гвинтами, без якихось перехідників вісь - маховик, як це було в минулому збірці робота. Менше вузлів, вище надійність. Даний мотор не має вбудованих датчиків холу або енкодера, тому були обрані додатково оптичні енкодери AEDR-8300K від Avago (двоканальні).

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

стрибучий робот

стрибучий робот

Паралельно, я прочитав кілька робіт на схожі теми з розробки стрибаючих роботів з однією опорою, де знайшов опис способу корекції бажаної орієнтації за вектором швидкості:

стрибучий робот

Пристрій і система управління нашого робота не мала практично нічого спільного з тим, що було описано в тій роботі, тому взяти все готове не вийшло. Але по картинці можна легко зробити систему корекції під нашого робота:

стрибучий робот

Восени були замовлені деталі на заводі.

Для роботи прототипу крім металевих частин потрібна ще плата управління і контролери для моторів. Контролери були взяті ті, які розробляються в лабораторії вже кілька років:

стрибучий робот

Ці контролери в основному служать для керування кроковими двигунами, але вміють крутити dc мотори і потенційно можуть обертати bldc. За кілька вечорів я дописав прошивку для управління bldc моторами по енкодер.

Плата управління роботом була зроблена мною в Altium Designer і замовлена:

стрибучий робот

Для управління роботом використовується мікроконтролер stm32f415GT6. Для визначення орієнтації в просторі - дві mpu6050 (можна як встановлювати на плату, так і виводити в будь-який зручний місце за допомогою проводів).

Після отримання плати управління був зібраний робот:

стрибучий робот

стрибучий робот

Після складання робота виникла проблема - оптичні енкодери не хочуть працювати зі штрихами, надрукованими на папері лазерним принтером. Дану проблему спробували вирішити за рахунок виготовлення «плати» з доріжками, покритими іммерсійним золотом, але фірма виробник підвела. Вони не витримали необхідну товщину доріжок 0,17 мм, а зробили в 1.4 рази товще, хоча обіцяли зробити аж до 0,15 мм. Через це енкодери не працюють як треба. Зліва вгорі як повинно бути, справа як вийшло:

стрибучий робот

Не думаю, що ми встигнемо перезаказать диски для енкодерів, тому що до захисту диплома практично не залишилося часу.

Опис проекту

Ми реалізуємо принципово новий механізм переміщення роботів за рахунок постійних стрибків з накопиченням кінетичної енергії при падінні в пружному тілі (пружині). Замість опори на кілька коліс або ніг використовується одна точка дотику землі. Тому для стійкості досить орієнтувати точку дотику платформи вниз, а для руху відхилятися на контрольований кут. Крім простоти підходу до руху з'являється можливість долати перешкоди типу стін просто перестрибуючи їх. Таким чином, стрибкових переміщення наближається за можливостями подолання препятсвій, маневреності та швидкості переміщення до вертолітного літальним апаратам, зберігаючи низьку споживану потужність і низький рівень шуму, властивий наземним роботам.

Схожі статті