Я тут сделал дроида из "Звёздных войн" с искусственным интеллектом и нейросетью, с модулем инерциальной навигации.

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2026-03-06 12:00

роботы новости

Благодаря использованию ИИ - ChatGPT - можно просто словами описать, что ты хочешь от дроида - и он сделает это, анализируя изображение с камеры в голове дроида и управляя сервоприводами.

Если дроида толкнуть, он будет пытаться удержаться на ногах, балансируя, чтобы не упасть.

### Из чего он состоит:

* 16 сервоприводов (по 5 на каждую из ног, 4 в позвоночнике, 2 на шевеление ушами) с обратной связью sts3215 (кроме ушей - там стоят mg90s)

* Подшипники от велосипеда

* Все детали дроида распечатал на своём 3d-принтере из обычного petg и гибкого tpu (для подошвы ног) филаментов

* 4 датчика касания в подошве ног - чтобы дроид понимал, когда его нога касается поверхности

* модуль инерциальной навигации bno055 (магнитометр, акселерометр, гироскоп) - подключен по i2c. Позволяет дроиду определять пространственное положение и не падать

* "мозги" дроида - Raspberry Pi

* камера для работы с ИИ - ov5647, подключена к Raspberry через csi.

* поддерживает два режима работы - автономный через ИИ ChatGPT и ручной. Для ручного режима я купил геймпад GameSir T4 Pro (с креплением для смартфона)

* высокотоковые аккумуляторы 18650, заряжаются через usb type-c.

* вывод звука - max98357a, подключён через i2s

### Что умеет:

1) Ходить вперёд-назад

2) Ходить боком влево-вправо

3) Поворачиваться налево-направо

4) Крутить головой во всех плоскостях

5) Шевелить ушами

6) Моргать, включать прожектор

7) Проигрывать заранее загруженные в память звуки а-ля R2D2

8) Управление - ручное по Bluetooth с геймпада либо автономное с ИИ

9) Есть встроенная в голову камера для работы с ИИ

10) Сохранять баланс при применении внешнего воздействия - есть толкнуть дроида, будет стараться сохранять равновесие и оставаться на ногах, не падая

### А теперь немного о том, как это всё устроено и работает.

Как научить дроида ходить и не падать при этом? Для обучения ходьбе физического робота, "в железе", могут уйти годы. Но тут нам на помощь приходит такой метод машинного обучения, как "обучение с подкреплением" (Reinforcement Learning, RL), что позволяет сократить срок обучения с нескольких лет до всего нескольких часов. Мы помещаем модель дроида - "агента" - в виртуальную среду (симуляторы Mujoco Playground (использовалась для этого дроида) либо Isaac Lab), и учим (тут используется RL-алгоритм PPO - Proximal Policy Optimization) его ходить и не падать методом "кнута и пряника" - выдаём агенту награды за точность и баланс, и штрафуем его за резкость и падения. Агент старается тем самым минимизировать неправильные ходы и максимизировать правильные. На выходе получаем обученную нейросеть (файл *.onnx), который загружаем в мозг дроида (Raspberry Pi) - и вуаля, дроид благодаря этой нейросети может ходить и не падать :)

В процессе работы данные с модуля инерциальной навигации, датчиков контакта в подошве ног, положении/скорости суставов (считываются с сервоприводов) и команды с геймпада/ИИ передаются в нейронную сеть. Полученные от неё действия масштабируются, фильтруются, и отправляются на сервоприводы дроида.

### Стадии разработки (упрощённо)

1) Проектируем детали дроида в CAD - например, OnShape, Fusion 360, Компас 3D

2) В слайсере - программе для генерации набора команд для 3d-принтера (g-code) расставляем детали на виртуальном столе 3d-принтера, добавляем поддержки и т.д., получаем файл для печати деталей на 3d-принтере

3) Печатаем детали на 3d-принтере)

4) Для обучения нейросети в симуляторе нам нужен файл с описанием нашего дроида, пригодный для симуляции, urdf/mjcf. Его можно получить используя такие инструменты, как onshape-to-robot, fusion2urdf и т.д. (преобразовать из urdf в mjcf можно в самом Mujoco)

5) Для обучения с подкреплением нам нужно смоделировать эталонное движение робота - для этого используется Placo (cм. ссылки ниже), получаем на выходе pkl-файл.

6) Существует проблема, известная как "sim-to-real gap" - когда в симуляции у нас всё идеально, а "в железе" в дело вмешивается физика и всё портит, дроид падает. Чтобы её решить, нужно учитывать физику нашего дроида - учитывать веса, инерцию, моменты. Для решения этой проблемы, в частности, нужно моделировать поведение сервоприводов - тут используется BAM (Better Actuator Models, см. ссылки ниже), получаем на выходе файл json.

7) Для симуляции и обучения с подкреплением можно использовать Mujoco Playground либо Isaac Lab. В данном случае используется Mujoco.

8) Перед сборкой дроида выставляем все сервоприводы программно в нулевое положение, назначаем каждому сервоприводу уникальный идентификатор (т.к. все sts3215 сидят на одной шине с ID=1), после сборки дроида руками каждую деталь, управляемую сервоприводом, выставляем в исходное положение, программно считываем с соответствующего сервопривода получившиеся смещение и записываем в конфигурационный файл, калибруем модуль инерциальной навигации (магнитометр, акселерометр, гироскоп) и записываем калибровки в pkl-файл, прописываем прокси и api-ключ для использования ИИ. :)

### Как реализована интеграция с ИИ ChatGPT

Реализована в виде скрипта на языке Python. Для работы с ChatGpt - а именно, с моделью gpt-4o-mini (т.к. у последних моделей дорогие токены), сейчас использую сервис openrouter.ai - он предоставляет единый API для более чем 300 моделей ИИ. Поскольку российские IP блокируются при работе с данной моделью, то использую прокси. В скрипте описана карта функций вида "иди вперед", "назад", "повернись", "проиграй звук", "сделай картинку" и т.д., и в промпте для ИИ в server role подробно описано, как управлять дроидом через эти функции. В user role задан пользовательский промпт - что требуется от дроида. Картинка с камеры дроида обрабатывается при помощи OpenCV, далее кодируется в base64 и отправляется в ИИ (правда, частота невысокая - 1 fps), он её анализирует и выдаёт в ответ команды вида "вперед", "повернись", "назад" и т.д., которые через обученную и загруженную в память дроида нейросеть передаётся на сервоприводы дроида.

### Монетизация

Сейчас на рынке ничего подобного нет, даже китайцы для массового рынка подобные штуки не производят. Из роботов с ИИ можно купить либо маленькие и бесполезные типа XGO Rider, Emo в районе 50к, либо громоздкие и дорогие гуманоиды типа Unitree G1 / H2 за несколько миллионов рублей (есть ещё робособаки Unitree Go2). А вот ниша между этими двумя решениями - маленьких и бесполезных и дорогих и громоздких - не занята)

### Что можно улучшить

1) Замена сервоприводов на BLDC-моторы - например, DM8006 / DM6006 - но себестоимость изготовления дроида резко улетает за 200к рублей, плюс растёт трудоёмкость его изготовления.

2) Планирую добавить микрофон и реализовать распознавание речи (XiaoZhi AI), чтобы каждый раз не прописывать руками промпт для ИИ в скрипт на Питоне

3) Можно научить дроида ходить по снегу/песку/гравию и другим неровным поверхностям, используя недавно разработанный движок симуляции NVIDIA Newton (см. ссылки ниже)

4) Оригинальный дроид от Disney использует многослойный подход - в ожидании команд первый слой воспроизводит анимацию - двигает антеннами, крутит головой, моргает, поддерживает 4 настроения - застенчивый, счастливый, злой, грустный. И этот слой смешивается с управляющими командами от джойстика/ИИ. Движок отслеживает, в какой фазе находится текущая анимация, и смешивает движения только при совпадении фаз. В данном же дроиде это не реализовано, он тупо статично ждёт команд.

5) Дроиду определённо не хватает плавности в ходьбе) Решить проблему можно, например, используя алгоритм LCP - Lipschitz-Constrained Policies

6) Не мешало бы добавить поддержку ROS2

7) Сейчас используется внешний ИИ, на западных серверах (подключение через openrouter.ai). Для полной автономности, неплохо бы перейти на локальный ИИ - например, связку Gemma 3 + Moondream 2 через Ollama. Но Raspberry Pi в моем дроиде такое не потянет, думаю, надо что-то вроде Jetson Nano использовать. Или использовать связку RPi5+модуль Pi AI Hat+ 2 (40 TOPS).

8) Также существует проблема, известная как "задержка логического вывода", когда у нас получаются рваные движения из-за того, что после выполнения очередной команды от ИИ мы тратим время и ждём, пока сделаем очередной снимок с камеры, отправим его в ИИ и дождёмся от него новой команды.

Для решения такой проблемы начали появляться VLA-модели с асинхронным выполнением, когда модель ИИ генерирует новую команду ещё до выполнения текущей, за счёт чего получаем ровное и плавное движение без рывков. Пример такой модели - появившаяся в этом месяце VLA-модель Xiaomi-Robotics-0 (см. ссылку ниже)

### Вместо послесловия

Physical AI - физический ИИ, при котором роботы перестают быть запрограммированы на строго определённые действия и становятся более автономными и адаптивными - считается доминирующим трендом 2026 года в робототехнике. Применяя Physical AI и используя VLA-модели (Vision-Language-Action), мы отдаём команды роботам на естественном языке "пойди туда-то и сделай то-то" и позволяем им самим решать, как эффективнее и оптимальнее решить поставленную перед ними задачу. Не программируя их заранее на строго определённые действия. Применяя обучение с подкреплением / имитационное обучение (Reinforcement Learning / Imitation Learning), роботы теперь обучаются в виртуальных средах, получая в качестве результата обученную нейросеть и перенося полученные навыки из виртуальной среды в реальный мир. Как следствие - снижается стоимость разработки и сильно ускоряется время.

Вообще, на эту тему можно написать немало научных статей, и данный дроид - хорошая платформа для этого. :)

У подобных дроидов - не только развлекательное либо образовательное применение, не только промышленное (работа в местах, где пребывание человека затруднительно либо опасно), но ещё и военное - двуногие и четырёхногие робототизированные решения с ИИ уже сейчас начинают активно внедряться в армии западных стран, за этим - будущее.

Данного дроида можно увидеть в Диснейленде в Калифорнии - в тематической зоне Star Wars: Galaxy's Edge. Также, он будет в фильме "Мандалорец и Грогу", который выйдет на экраны 22 мая этого года. А ещё можно увидеть его у меня дома ?

### Ссылки по теме

Статья с описанием от Disney Research: https://la.disneyresearch.com/wp-content/uploads/BD_X_paper.pdf

Физика ходьбы дроида (теория и код): https://youtu.be/RXGrTD71FMc

Placo: https://github.com/Rhoban/placo

BAM: https://github.com/Rhoban/bam/

PPO: https://habr.com/ru/companies/otus/articles/888122/

LPC: https://lipschitz-constrained-policy.github.io/

ROS2: https://ros.org

VLA: https://habr.com/ru/companies/yandex/articles/926330/

VLA-модель Xiaomi-Robotics-0: https://xiaomi-robotics-0.github.io/

OpenRouter: https://openrouter.ai/

OpenCV: https://opencv.org/

XiaoZhi AI: https://github.com/78/xiaozhi-esp32

onshape-to-robot: https://github.com/Rhoban/onshape-to-robot

Mujoco Playground: https://github.com/google-deepmind/mujoco_playground

Isaac Lab: https://github.com/isaac-sim/IsaacLab

NVIDIA Newton:

- описание: https://developer.nvidia.com/blog/announcing-newton-an-open-source-physics-engine-for-robotics-simulation/

- гитхаб: https://github.com/newton-physics/newton

Подробную статью уже готовлю для публикации на Хабре, опубликую позже.


Источник: github.com

Комментарии: