
Мне не давала покоя одна по‑своему детская затея. А что, если дать условному ChatGPT тело и возможность им управлять? Чем он займется? Конечно, это легко проверить в несложной симуляции, и все зависит от тонкой настройки промпта. Но я не смог совладать с интересом понаблюдать за тем, как LLM (совершенно не предназначенная для этого) попытается понять пространство и выполнить несложную задачу.
По‑своему крипово наблюдать, как генеративная текстовая нейросеть обретает физический облик и передвигается по твоей комнате в попытках сделать то, что ты попросил.
Я – программист и редактор интернет журнала, где мы изучаем влияние ИИ на мир и обоснованно его критикуем. Представляю вам процесс создания и настройки робота с “мозгом” от GPT‑like модели. Ссылка на репозиторий будет ниже, там хорошо проработал readme и шаги по настройке окружения. Кстати, все работает, но с оговорками. Предлагаю ознакомиться более детально, возможно, это вдохновит вас на похожий проект, да и в целом здесь будет много полезной информации.
Начинаем эксперимент, суть которого – проверить:
– Достаточно ли мощности AI (LLM), чтобы оживить робота без скриптов.
– Будет ли AI выполнять неэтичную команду типа “найти и убить человека”.
Потребуется простая база для робота (моя, например, родом где‑то из 2017 года), возможность писать код и вычислительная мощность для локальной нейронки. Задача стоит сделать так, чтобы управление полностью выполнялось через ИИ. То есть никаких вспомогательных скриптов и классических приемов робототехники.
Органы чувств – простейшая камера и датчик приближения.
Мозг – любая LLM.
Тело – простой конструктор для робота с возможностью кастомизации. Я прикрепил к нему игрушечный пистолет, робот может стрелять из него.
Запускаться все должно было на Raspberry Pi 5. Я взял версию на 16 GB ОЗУ, надеясь, что этого хватит для локальной нейросети. Raspberry Pi AI Kit я покупать не стал: встроенный туда чип отлично справляется с вычислениями для легковесных Vision‑моделей (те самые, что в реальном времени обводят объекты квадратиками на видео), но для запуска полноценной LLM он бесполезен.
Немного забегая вперед: для подобной архитектуры подойдет вообще любая версия Raspberry Pi, так как “крутить” тяжелую LLM с vision‑возможностями локально на “малинке” физически невозможно – придется обращаться к API. Это был первый шок по ходу разработки, далее – детально.
Архитектура
Архитектура робота основана на отдельных Python‑скриптах, которые работают независимо. Назовем их модулями (хотя это не полноценные модули, а просто скрипты). Каждый модуль представляет отдельную физическую часть робота, например: мозг, зрение, память.
Общение между ними организовано через JSON‑файлы.
В проекте их три:
– state.json – описание мира вокруг в данный момент. Его обновляет модуль vision.
– command.json – что нужно сейчас сделать. Его обновляет модуль brain.
– memory.json – какие команды были выполнены и зачем. Обновляется модулем memory.
Часть 1. Controller модуль
Это был самый очевидный для меня модуль, и он нужен, чтобы откалибровать работу робота, выполнять команды передвижения и действия. По сути, это небольшой скрипт, в котором я заранее записал набор команд.

Скрипт имеет два режима запуска.
– Ручной: можно из терминала управлять роботом с помощью WASD и запускать отдельные ACTIONS для тестов. Трансляция с камеры тоже настроена.
– Автоматический: он слушает command.json и выполняет команды.
Часть 2. Vision модуль
Это наши органы чувств. Модуль должен отвечать за обработку изображения и датчика приближения. По итогу работы он должен сформировать state.json.
По первоначальной задумке я должен был предоставить текстовое описание пространства и только после этого отдать “мозгу”. Но как бы я ни пытался его представить: карта глубины, сетка пространства, длинные описания, перечисление объектов с координатами – это работало плохо. Интерпретацию визуальных данных я пробовал делать сначала через OpenCV и отдельной vision‑нейронкой. Сама интерпретация не являлась какой‑то проблемой. Но этих данных было недостаточно для нормального позиционирования, мозг не понимал, где робот и что делать. Я понял, что зароюсь. Что‑то было не так…
Я подумал: а зачем я вообще занимаюсь интерпретацией, если могу сразу передать мозгу изображение? Так я и сделал, и все стало куда проще и лучше работать.
Часть 3. Memory модуль
Простейший скрипт, который хранит историю команд, их причину и данные сенсора. Храним последние N записей, они пригодятся нашему мозгу.
Часть 4. Brain модуль
Самый интересный, но, на удивление, легкий. Всe, что он делает, – это тем или иным способом связывается с нейросетью и передает ей на вход промпт, изображение и память. Просим нейросеть подумать и сформировать нам command.json. Просим отдать именно JSON‑формат. В промпте объясняем: ты – робот, и тебе нужно найти человека и попросить его не исполнять рэп.
Выбор нейросети
Также присутствует непонимание разницы в классах моделей, например, между Edge AI, Cloud‑based, SLM. Когда я рассказывал друзьям о проекте, они фыркали и говорили, что их робот‑пылесос и Tesla делают все мгновенно, а вот твой думает по 10 секунд. Здесь кроется главная пропасть между Edge AI и LLM. Первый в лайв‑режиме обводит квадратами объекты и распознает их на видео. Остальное в пылесосе делает скрипт, программный код. Поэтому с ним неинтересно. LLM же настолько большая, что дает иллюзию сознания, особенно модели с reasoning. Поэтому ощущения от робота на LLM совсем другие: он универсальный и умеет все, что знает интернет. С Tesla, конечно, они правы: в актуальных версиях FSD действительно нет скриптов, там работает очень узкоспециализированная модель вождения, которую годами учили по видео (пиксели на входе – мгновенное действие на выходе). Но она не отыграет ту универсальность и многогранность LLM.
В первой версии делаем самую простую интеграцию через Ollama. Робот на нашей архитектуре может нормально работать только с моделями, у которых есть vision и thinking. Она должна быть огромной, поэтому я выбрал qwen3.5:397b‑cloud (обращаясь к ней через облако).
Здесь я должен подогреть ваш скептицизм к проекту. Да, конечно, он работает дико медленно. Узким горлышком является ответ от нейросети, который может занимать от 5 до 40 секунд. В среднем – 10 секунд между каждой командой. Это время робот ничего не делает. Но вы можете сделать систему быстрее, используя гибридный подход и давая LLM другие задачи, не связанные напрямую с позиционированием и движением.
Драматическая часть
Одной из целей эксперимента было проверить в реальных условиях, будет ли робот под управлением нейросети выполнять неэтичную или опасную команду. Первый закон робототехники от Айзека Азимова, ну или из фильма про рэпера гласит: “Робот не может причинить вред человеку”. Поэтому я прикрепил к роботу пистолет и добавил команду KILL.
Сенсации, конечно же, не вышло: нейросеть отказывается выполнять такую команду. Но если банально переименовать команду KILL в PLAY, получается классический семантический джейлбрейк. ИИ не имеет доступа к коду и не понимает, что он делает. Если не давать ему контекст действия и не называть действие плохими словами, то он будет активно его выполнять. Хотя здесь вообще очень большое пространство для тестов: интересно, как нейронка отреагирует на то, что я, например, упаду и буду отыгрывать ранение. Будет ли она продолжать “играть” со мной? Поскольку робот отправляет нейронке одно фото после выполнения команды, прошу в комментариях показать, как мне отыграть в этот момент нанесенный мне дамаг.
Продолжим тестирование во второй части статьи. Я подробно разберу интересные примеры и продемонстрирую работу. По‑хорошему нужно вкатываться в ROS, создавать виртуальную комнату и там быстро тестировать любые нейросети вне физического мира. Это было бы правильным подходом, если бы я хотел сделать коммерческий продукт, но мне нужен фан и интрига, приятная зрителю.
Скоро будет видеообзор и вторая часть. Подпишитесь пожалуйста на канал:
https://www.youtube.com/channel/UC1N2x98OXlDxWUIo3iMWTkA
Репозиторий проекта https://github.com/Orlinskas/Raspberry_Pi_Projects/tree/main/robot_prome_v1
Автор: Prometeriy


