Інженер та ютубер Нікодем Бартнік вирішив повторити шлях Boston Dynamics, але пішов власним шляхом — замість собак чи гуманоїдів він зібрав чотирилапого робота-павука та навчив його рухатися за допомогою штучного інтелекту. Про весь процес він розповів у своєму новому відео.
Boston Dynamics вже встигла зробити майже все: роботів-псів, гуманоїдів, навіть дивну механічну руку на колесах. Тому Бартнік вирішив не повторювати очевидне, а зайняти свою нішу — побудувати чотирилапого SPDR-бота (від англійського «spider» — павук). Мета була простою до сміхотворності: навчити робота просто пройти з однієї точки до іншої.
Щоб пояснити принцип роботи з системою Nvidia Isaac Sim та Isaac Lab, Бартнік навів аналогію з власним псом Шібою. Принцип навчання з підкріпленням однаковий і для тварин, і для роботів:
- Є завдання — для пса принести палицю, для робота виконати рух;
- Є винагорода — для пса смаколик, для робота числове значення в коді;
- Обидва намагаються максимізувати кількість «балів» за результат.
ніж його власну собаку.
Корпус робота Бартнік спроєктував у Fusion 360 навколо одноплатного комп’ютера Nvidia Jetson Nano — причому одразу з прицілом, щоб навіть такий великий чип помістився в конструкцію. У підсумку вийшов павук на чотирьох лапах, кожна з яких має по три сервоприводи. Всі деталі друкувалися на 3D-принтері й проєктувалися за стандартами відкритих робототехнічних платформ, щоб у майбутньому можна було легко чіпляти додаткові модулі.
Просто перенести модель з Fusion у симулятор не вийшло — довелося конвертувати дизайн у формат URDF, поширений у робототехніці. Для Fusion існує безкоштовний плагін на GitHub, який це робить, але модель потрібно максимально спростити:
- Один компонент обов’язково має називатися «base link»;
- Вкладені компоненти заборонені — кожен компонент може містити лише тіла;
- Кількість тіл та з’єднань варто звести до мінімуму;
- Тіла потрібно об’єднувати, щоб обмежити кількість суглобів.
Після імпорту URDF-файлу робот опинився у віртуальному світі — щоправда, спершу він просто впав, бо чесна фізика симулятора одразу враховує гравітацію.
Додавши площину підлоги, автор почав тестувати окремі суглоби через «physics inspector»: можна було вручну рухати кожен зі стиків, налаштовувати жорсткість, демпфування й максимальну силу.
Окрему похвалу отримала бібліотека готових ассетів Isaac Sim — там уже є цілі склади та готові локації для тестування роботів, а ще можна запускати й тренувати політики поведінки навіть для відомих моделей, як, наприклад, Spot від Boston Dynamics. Одну таку політику автор натренував усього за 20 хвилин — і вона спрацювала.
Найвеселіший момент стався, коли система винагород почала давати збій. Робот навчився «обманювати» алгоритм, знайшовши лазівку для максимізації балів — і в результаті перетворився на двоногу істоту, що балансувала за допомогою «голови» та «хвоста», як справжній динозавр.
У симуляції це чудово працювало, хоча на реальному залізі такий трюк був би просто неможливим.
Деталі надрукували на 3D-принтері Bambu Lab A1 з PETG-філаменту. Перед збіркою всі сервоприводи виставили в нульове положення — критично важливий крок, який автор не радить пропускати. Замість запланованого Jetson Nano для прототипу вирішили використати простіший Raspberry Pi Pico разом із платою на 16 каналів для сервоприводів.
Без проблем, звісно, не обійшлося. Спершу здавалося, що моторам не вистачає крутного моменту, хоча розрахунки показували достатній запас потужності (сервоприводи розраховані на 25 кг/см). Виявилося, що справа була в дешевих низькоякісних дротах — через них падала напруга, і сервоприводи просто недоотримували живлення. Заміна на коротші й якісніші кабелі вирішила проблему миттєво.
Найскладнішим етапом стало не сама розробка робота, а перенесення навченої політики поведінки з Isaac Lab у Isaac Sim для перевірки перед завантаженням на реальне залізо. Автор використовував бібліотеку SKRL, для якої на момент зйомок практично не існувало готових прикладів і документації — на відміну від більш поширеної RSL RL.
Бартнік навіть зв’язувався напряму з представниками Nvidia та просив допомоги в Discord-спільноті, але за чотири дні пошуків так і не знайшов готового рішення. У підсумку він обрав інший шлях — використав Isaac Sim як своєрідний «майданчик для експериментів» і написав власний алгоритм ходьби, перевіряючи кожну зміну прямо в симуляції перед тим, як тестувати на реальному роботі.
Збірка пройшла напрочуд гладко, хоча сам робот вийшов чималим і важким. Автор навіть надрукував одну з лапок із власним логотипом, скориставшись можливостями кольорового друку. Експерименти з гумовими «носочками» на лапах для покращення зчеплення, до речі, провалилися — стабільність робота лише погіршилася.
Зрештою Бартнік досяг своєї мети: робот навчився проходити відстань з точки А в точку Б, хай і без надмірної елегантності. Як зазначає сам автор, метод «спочатку симуляція, потім реальність» зекономив йому, ймовірно, не один десяток зламаних сервоприводів.
Файли для 3D-друку та оригінальний дизайн із Fusion 360 автор виклав у вільний доступ для всіх охочих повторити проєкт.
Запис Boston Dynamics відпочиває: розробник зібрав робота-павука та навчив його ходити спершу з'явиться на ProstoMob.