Как устроен «мозг» Unitree G1
Программно-аппаратная архитектура гуманоидного робота — от контуров 500 Гц и CycloneDDS до VLA
Человекоподобный робот почти всегда воспринимается как единое существо. Мы видим, как он идёт, удерживает равновесие, реагирует на команды и берёт предметы, и интуитивно приписываем всё это одному «мозгу». В реальности за каждым таким действием стоит цепочка специализированных вычислительных контуров, которые работают с разной частотой, используют разные источники данных и отвечают за разные уровни безопасности.
У Unitree G1 нет одного центрального процессора, который одновременно распознаёт сцену, планирует движение, удерживает баланс и управляет каждым двигателем. Архитектура робота распределена между сенсорами, приводами, встроенными контроллерами, вычислительными компьютерами и пользовательским программным обеспечением. Одни узлы должны реагировать за миллисекунды, другие могут работать с изображением, картой помещения или языковой командой значительно медленнее.
Именно поэтому вопрос «какой компьютер является мозгом G1?» поставлен не совсем корректно. NVIDIA Jetson может запускать нейросети, но не заменяет контроллер суставов. ROS 2 позволяет связать программные модули, но сам по себе не делает робота автономным. VLA-модель может выбрать действие, но не должна напрямую удерживать двухногую машину от падения.
В этой статье разберём всю программно-аппаратную цепочку G1: от энкодеров и низкоуровневых сообщений LowCmd и LowState до PC1, PC2, CycloneDDS, ROS 2, навигации и Vision–Language–Action-моделей. А главное — определим границу между тем, что Unitree уже предоставляет вместе с платформой, и тем, что разработчику придётся создавать самостоятельно.
Главная мысль: возможности G1 определяет не один процессор, а качество всей иерархии — от приводов и обратной связи до AI и прикладной логики.
1. У человекоподобного робота нет одного «мозга»
Когда говорят о «мозге» человекоподобного робота, обычно имеют в виду самый производительный вычислительный модуль — например, NVIDIA Jetson, на котором запускаются компьютерное зрение и нейросетевые модели. Но такой компьютер отвечает только за часть задач. Сам по себе он не управляет каждым двигателем и не удерживает робота в вертикальном положении.
В базовой конфигурации Unitree G1 установлен восьмиядерный процессор, а для версии G1 EDU производитель предлагает дополнительные высокопроизводительные модули, включая NVIDIA Jetson Orin. При этом робот также оснащён камерой глубины, 3D LiDAR, IMU и двойными энкодерами суставов. Все эти компоненты формируют поток данных, который должен обрабатываться разными программными контурами и с разной скоростью. Официальные характеристики Unitree G1
Вычислительная архитектура G1 EDU разделена как минимум на два основных контура. PC1 выполняет штатные сервисы Unitree и отвечает за управление движением робота. Производитель прямо указывает, что этот компьютер занят системными процессами и не предназначен для запуска пользовательских программ. Для разработки предусмотрен отдельный PC2, подключённый к внутренней сети робота. На нём пользователь может запускать собственные алгоритмы, работать с данными сенсоров и обращаться к функциям робота через SDK. Unitree G1 Developer Guide
Ниже этого уровня находится контур управления суставами. Контроллер получает сведения о положении, скорости и состоянии приводов, а затем формирует команды для двигателей. В открытом интерфейсе Unitree SDK2 для этого используются сообщения LowState и LowCmd: первое передаёт низкоуровневое состояние робота, второе — команды управления моторами. В официальном примере управления голеностопным суставом G1 расчётный шаг цикла составляет 0,002 секунды, то есть команда обновляется с частотой до 500 Гц. Пример низкоуровневого управления G1 в Unitree SDK2
Это принципиально другой масштаб времени по сравнению с задачами компьютерного зрения или языковой модели. Распознавание объекта, построение карты помещения или формирование последовательности действий может занимать десятки и сотни миллисекунд. Управление положением суставов и стабилизация тела должны выполняться существенно быстрее и непрерывно. Если высокоуровневый алгоритм задержался с ответом, робот не может на это время перестать контролировать ноги.
Поэтому команда «подойти к столу и взять предмет» внутри робота распадается на несколько уровней. Высокоуровневая система определяет цель. Алгоритмы навигации и планирования рассчитывают траекторию. Контроллер движения преобразует её в требуемое движение корпуса и конечностей. Низкоуровневый контур формирует команды положения, скорости и момента для отдельных суставов, одновременно получая обратную связь от энкодеров и IMU.
Открытый симулятор Unitree отражает такое разделение: он отдельно обрабатывает команды двигателей LowCmd, состояние приводов LowState, данные о положении и скорости робота SportModeState, а также состояние IMU корпуса. Эти же типы сообщений используются при переносе контроллера из MuJoCo на реального робота. Официальный симулятор Unitree MuJoCo
Таким образом, «мозг» G1 — это не один процессор и не одна нейросеть, а иерархия взаимосвязанных систем. Одни компоненты обеспечивают быстрое и устойчивое управление телом, другие обрабатывают окружающую обстановку, третьи отвечают за пользовательские приложения и AI. Чем выше уровень, тем сложнее решаемая задача, но тем меньше он должен вмешиваться в критический контур стабилизации робота.
Именно это разделение позволяет использовать G1 EDU как платформу для экспериментов. Разработчик может менять алгоритмы навигации, распознавания объектов или планирования действий, не переписывая с нуля всю систему управления суставами. При этом граница между открытой и закрытой частью архитектуры остаётся важной: Unitree предоставляет интерфейсы к роботу, но основная реализация штатного контроллера движения остаётся внутри программного стека производителя.
2. Общая архитектура Unitree G1
Удобнее всего рассматривать архитектуру G1 не как список плат и процессоров, а как несколько уровней, вложенных друг в друга. В нижней части находятся физические компоненты: двигатели, редукторы, энкодеры, силовая электроника и механическая конструкция. Над ними работают локальные контуры управления приводами, затем — контроллер движения всего тела, коммуникационный слой и пользовательские приложения.
На уровне отдельного сустава система оперирует положением, скоростью и моментом. Контроллер не просто отправляет двигателю разовую команду, а постоянно сравнивает целевое состояние с фактическим. Поэтому энкодер является частью замкнутого контура: без его данных невозможно понять, выполнил ли сустав заданное движение и насколько сильно он отклонился от цели.
Следующий уровень объединяет суставы в единое тело. Для шагающего робота недостаточно независимо управлять коленом, голеностопом и тазобедренным суставом. Их движение должно быть согласовано с положением центра масс, контактом стоп с поверхностью и показаниями IMU. Эту задачу решает штатный контроллер Unitree, формирующий устойчивую локомоцию.
Пользовательское приложение обычно не обязано рассчитывать команды для всех приводов. Через высокоуровневый интерфейс оно может задать желаемую продольную, поперечную и угловую скорость, а штатный контроллер сам преобразует её в движения ног и корпуса. Это наиболее безопасный и практичный путь для навигации и большинства прикладных сценариев.
Когда разработчику всё же требуется исследовать собственный алгоритм управления, SDK2 открывает низкоуровневые сообщения. Такой режим даёт больше свободы, но переносит на пользователя ответственность за согласование суставов, устойчивость и ограничения механики. Производитель поэтому рекомендует начинать отладку в специальном режиме и с подвешенным роботом. Режим отладки G1
Связь между уровнями построена поверх DDS. Компоненты публикуют состояния и подписываются на интересующие их команды, не обращаясь друг к другу через жёстко заданные вызовы функций. Благодаря этому штатные сервисы на PC1, пользовательские процессы на PC2 и внешний компьютер могут находиться в одной коммуникационной среде.
ROS 2 не является отдельной операционной системой внутри G1. Он использует тот же принцип DDS-коммуникации и позволяет подключать к роботу привычные узлы восприятия, навигации, записи данных и диагностики. В официальном пакете Unitree присутствуют определения сообщений и примеры чтения состояния G1, low-level управления и записи rosbag. Официальный пакет Unitree ROS 2
Выше располагаются алгоритмы восприятия и автономного поведения. Камера и LiDAR поставляют данные, но их ещё нужно превратить в карту, координаты объектов и оценку положения робота. Затем навигационный или манипуляционный планировщик должен сформировать цель, которую можно передать штатным контроллерам G1.
На самом верху может находиться VLA-модель или другой AI-планировщик. Этот слой отвечает за смысл действия: какой предмет выбрать, какую операцию выполнить и когда считать её завершённой. Но он не должен напрямую заменять быстрые контуры управления, поскольку работает на другом временном масштабе и может запускаться даже на отдельном GPU-сервере.
В результате архитектура G1 напоминает пирамиду. Нижние уровни быстрее, ближе к физике и критичнее для безопасности. Верхние — сложнее с точки зрения логики и интеллекта, но зависят от устойчивой работы всего, что находится ниже. Открытые интерфейсы связывают эти уровни, однако не превращают закрытый контроллер движения Unitree в полностью доступный исходный код.
3. Два вычислительных контура: PC1 и PC2
В документации Unitree для G1 EDU явно разделены два встроенных компьютера. PC1 обслуживает штатные системные процессы и сервис управления движением. PC2 предназначен для разработки и запуска пользовательского программного обеспечения. Это разделение защищает критический контур робота от экспериментов, зависаний и непредсказуемой нагрузки пользовательского кода.
PC1 имеет адрес 192.168.123.161 во внутренней сети, а PC2 — 192.168.123.164. Разработчик подключается к PC2 и уже с него обращается к интерфейсам робота. Производитель отдельно предупреждает, что вычислительные ресурсы PC1 заняты системными сервисами и использовать этот компьютер для собственных приложений не следует. Quick Development — Unitree G1
Такое решение похоже на разделение вычислений в промышленной системе. Один контроллер выполняет детерминированную и проверенную функцию, второй отвечает за быстро меняющуюся прикладную логику. Обновление модели компьютерного зрения или падение ROS 2-узла на PC2 не должно лишать PC1 возможности продолжать удерживать робота в устойчивом состоянии.
При этом PC1 и PC2 не изолированы друг от друга физически. Они подключены к общей внутренней сети и обмениваются данными через DDS. Пользовательская программа может получать состояния суставов и сенсоров, вызывать сервисы и отправлять команды, не внедряясь непосредственно в процесс штатного контроллера.
Базовые характеристики G1 включают восьмиядерный процессор. Для версии EDU производитель предлагает дополнительные вычислительные модули NVIDIA Jetson Orin. Конкретная конфигурация зависит от комплектации: дополнительный AI-компьютер нужен не для того, чтобы заменить PC1, а чтобы запускать более тяжёлые модели восприятия, навигации и обучения. Официальные характеристики Unitree G1
Пользовательский стек также необязательно ограничивать встроенным PC2. Если алгоритму требуется мощный GPU, приложение можно распределить между роботом и внешним сервером. На роботе остаются сбор наблюдений, интерфейсы к контроллерам и защитная логика, а вычислительно тяжёлый инференс выполняется на отдельной машине.
У такой архитектуры появляется новое ограничение — задержка связи. Внешний сервер подходит для VLA-экспериментов или обработки данных, но не должен становиться единственной точкой, от которой зависит стабилизация тела. При потере сети PC1 обязан продолжить выполнять безопасное состояние независимо от того, отвечает ли пользовательский компьютер.
Поэтому фраза «в G1 стоит Jetson, значит это и есть его мозг» упрощает систему слишком сильно. Jetson — лишь один из возможных вычислителей верхнего уровня. Контроль тела остаётся распределённым между PC1, локальными контроллерами приводов и сенсорной обратной связью, а PC2 служит точкой входа для собственной разработки.
4. Сенсорная система: от энкодеров до LiDAR
Чтобы управлять гуманоидным роботом, системе недостаточно видеть окружающее пространство. Она должна одновременно знать положение собственного тела, скорость каждого сустава, ориентацию корпуса и состояние приводов. Поэтому сенсорная система G1 разделяется на проприоцептивный контур — восприятие самого робота — и внешнее восприятие сцены.
Основным источником информации о суставах являются энкодеры. В характеристиках G1 указаны двойные энкодеры. Они измеряют фактическое положение оси и позволяют контроллеру сравнивать его с заданным. Из последовательности измерений также определяется скорость движения, а вместе с моделью привода и током двигателя — оценка развиваемого момента. Официальные характеристики Unitree G1
Второй критически важный источник — IMU корпуса. Инерциальный модуль измеряет ускорения и угловые скорости, на основании которых оценивается ориентация робота. При ходьбе эти данные постоянно меняются, поэтому контроллер должен отделить нормальное движение корпуса от начинающегося падения или внешнего толчка.
Энкодеры и IMU работают совместно. Положение суставов позволяет восстановить кинематическую конфигурацию тела, а IMU сообщает, как всё тело ориентировано относительно гравитации. Модель динамики объединяет эти данные и оценивает состояние, которое невозможно надёжно получить от одного сенсора.
В LowState также доступны параметры приводов: положение, скорость, оценочный момент и температура. Температура особенно важна для гуманоидного робота, потому что приводы работают в компактном корпусе и периодически испытывают высокую нагрузку. Контроль состояния позволяет ограничивать режим до того, как перегрев превратится в отказ.
Для восприятия окружающего мира G1 оснащён камерой глубины и 3D LiDAR. Камера даёт изображение и информацию о глубине, удобную для распознавания объектов и оценки положения рабочей зоны. LiDAR формирует облако точек и позволяет строить геометрию помещения независимо от текстуры поверхностей.
Однако ни камера, ни LiDAR сами по себе не сообщают роботу, где он находится. Последовательные измерения необходимо сопоставить между собой, объединить с IMU и одометрией и только после этого оценить движение сенсора и построить карту. Для LiDAR Unitree публикует адаптацию Point-LIO. Unitree Point-LIO для UniLiDAR
Камеры не являются основным сенсором удержания равновесия. Изображение может временно ухудшиться из-за освещения, размытия или перекрытия обзора, а обработка кадра занимает заметное время. Быстрый контур стабилизации должен продолжать работать по IMU, энкодерам и внутренней модели тела.
В старших конфигурациях рук могут использоваться дополнительные сенсоры, включая тактильные. Они нужны уже не для локомоции, а для контроля контакта с предметом: определить, состоялся ли захват, не выскальзывает ли объект и какое усилие прикладывают пальцы.
Пользовательский алгоритм получает не единый «поток восприятия», а набор сообщений с разной частотой, задержкой и системой координат. Чтобы связать облако точек LiDAR с камерой и положением кисти, необходимо откалибровать взаимное расположение сенсоров и поддерживать дерево координат.
Следовательно, сенсорная система не равна автономности. Unitree предоставляет измерительные устройства и доступ к части данных, но разработчик должен построить над ними оценивание состояния, локализацию, распознавание и логику проверки качества данных. Только после этого набор сенсоров начинает формировать цельное представление мира.
5. Низкоуровневое управление движением
Разницу между высокоуровневым и низкоуровневым управлением проще всего увидеть по формату команды. На высоком уровне разработчик говорит роботу «иди вперёд со скоростью 0,3 м/с». На низком уровне необходимо описать состояние каждого управляемого сустава и регулярно обновлять его с частотой контура.
Для G1 низкоуровневые сообщения относятся к семейству типов unitree_hg. Команда LowCmd содержит параметры управления моторами, а LowState возвращает фактическое состояние. Такой интерфейс используется и в официальных примерах SDK2, и в ROS 2-пакете Unitree. Пример low-level управления G1
Для отдельного сустава задаются целевое положение q, целевая скорость dq, подаваемый момент tau, а также коэффициенты пропорциональной и дифференциальной частей регулятора kp и kd. Упрощённо контроллер стремится устранить ошибку положения и скорости, добавляя заданный момент.
Комбинация этих параметров позволяет получить разные режимы. Высокий kp делает сустав жёстче и заставляет его сильнее удерживать заданное положение. kd демпфирует движение и уменьшает колебания. Неверно выбранные коэффициенты способны вызвать резкие рывки, вибрацию и опасную нагрузку на механику.
Обратное сообщение содержит фактические q, dq, оценку момента, температуру и другие диагностические поля. Контроллер использует эту информацию в следующем шаге. Поэтому low-level управление представляет собой замкнутый цикл, а не отправку набора поз один раз.
В официальном примере Unitree период цикла задан как 0,002 секунды. Это соответствует частоте 500 Гц. Значение относится к конкретному открытому примеру и хорошо показывает порядок требований: пользовательский процесс должен формировать команды регулярно и с предсказуемой задержкой.
Если приложение перестало обновлять команды или отправило недопустимое значение, робот не должен бесконечно продолжать последнее движение. Поэтому low-level эксперимент требует watchdog-механизма, ограничений диапазонов, безопасного перехода в damping и физической возможности аварийно остановить систему.
На этом уровне разработчик фактически берёт на себя задачу согласовать десятки приводов. Для статического движения одной ноги это уже требует аккуратной интерполяции. Для устойчивой ходьбы необходимо учитывать контакты, динамику всего тела и ограничения каждого сустава.
Открытый симулятор Unitree MuJoCo использует те же типы LowCmd и LowState, что позволяет сначала проверить контроллер в виртуальной модели. Такой перенос полезен, но не устраняет sim-to-real разницу: трение, люфты, задержки, упругость и реальные ограничения приводов отличаются от модели. Официальный симулятор Unitree MuJoCo
Именно поэтому для прикладной навигации обычно разумнее использовать штатный высокоуровневый контроллер, а low-level интерфейс оставлять для исследований локомоции, whole-body control и специальных экспериментов. Он предоставляет максимальную свободу, но одновременно минимально защищает разработчика от собственной ошибки.
В результате низкоуровневый контур можно представить как непрерывный диалог между математической моделью и физическим телом. Программа задаёт требуемое состояние, привод выполняет движение, сенсоры измеряют результат, а следующая команда корректируется по обратной связи от реального робота.
6. Высокоуровневое управление: готовые движения вместо команд суставам
Для большинства прикладных задач нет необходимости формировать LowCmd для каждого двигателя. Unitree предоставляет высокоуровневый клиент локомоции, который принимает команды движения всего робота и использует штатный контроллер производителя для их выполнения.
Через LocoClient можно задать продольную скорость vx, поперечную vy, угловую скорость omega и длительность команды. Пользовательская программа описывает, как должен двигаться корпус относительно собственной системы координат G1, а контроллер сам рассчитывает походку и согласует работу ног.
Важно, что команда Move не отправляет робота в глобальную точку помещения. Она задаёт скорость относительно текущего положения робота. Если нужно дойти до координаты на карте, отдельный навигационный алгоритм должен построить маршрут, оценивать текущую позу и регулярно обновлять vx, vy и omega.
Помимо движения, в высокоуровневом интерфейсе доступны готовые состояния и действия: баланс, damping, приседание, переходы сидя и стоя, остановка, а также отдельные демонстрационные движения вроде приветствия или рукопожатия. Набор конкретных функций зависит от версии сервисов и прошивки.
За этими командами скрывается конечный автомат состояний. Не каждый переход допустим в любой момент: прежде чем начать движение, робот должен находиться в подходящем режиме, а перед переходом в low-level control необходимо корректно освободить или отключить штатный motion service.
Пользователь видит только публичный интерфейс и состояние, но не внутреннюю реализацию алгоритмов баланса, планирования шага и whole-body control. Поэтому высокоуровневое управление удобно именно как готовая функция: оно позволяет использовать локомоцию Unitree, не воспроизводя её с нуля.
Пока приложение задаёт скорость сравнительно редкими командами, быстрый контур продолжает читать энкодеры и IMU, корректировать позу и компенсировать небольшие отклонения. Это и есть ключевое преимущество иерархии: прикладной код не должен работать с той же частотой, что и суставные регуляторы.
Однако высокоуровневая команда не гарантирует безопасность всего сценария. Контроллер движения не знает, можно ли идти в направлении человека, достаточно ли места для разворота или безопасен ли конкретный участок пола. Проверка окружающей среды остаётся задачей навигации и защитного слоя.
Unitree рекомендует проводить первоначальную отладку в debug mode и с подвешенным роботом. Даже готовая функция способна привести к падению, если приложение отправило неожиданную последовательность команд, выбрало неверное состояние или не учло ограничение пространства. Режим отладки G1
Таким образом, высокоуровневый интерфейс отделяет вопрос «куда и с какой скоростью двигаться» от вопроса «как именно переставить каждую ногу». Первый решает прикладной алгоритм, второй остаётся внутри закрытого контроллера Unitree.
7. Обмен данными: Unitree SDK2, CycloneDDS и ROS 2
Все рассмотренные уровни должны обмениваться командами и состояниями. В G1 эту задачу решает DDS — модель publish/subscribe, в которой процессы публикуют сообщения в именованные темы, а другие процессы подписываются на них. Отправителю не требуется знать, на каком компьютере запущен получатель.
Unitree SDK2 построен поверх CycloneDDS. SDK предоставляет C++- и Python-интерфейсы, определения типов сообщений и готовые клиенты сервисов. Внутри они используют общую DDS-среду робота. Официальный репозиторий Unitree SDK2
Низкоуровневые состояния и команды передаются как отдельные потоки. LowState публикует состояние суставов и IMU, а LowCmd используется для команд приводам. Высокоуровневые функции могут работать по сервисной схеме request–response: клиент публикует запрос в API-тему и получает ответ от штатного сервиса.
Например, обращение к sport- или loco-сервису внутри SDK не означает прямой вызов функции в процессе контроллера. Клиент формирует сериализованное сообщение, отправляет его через DDS, а сервис на другой стороне обрабатывает запрос и публикует результат.
ROS 2 также использует DDS как коммуникационный механизм. Поэтому интеграция Unitree не требует отдельного шлюза, который перепаковывает каждое сообщение. После установки пакетов с типами G1 ROS 2-узел может напрямую подписываться на доступные темы и публиковать совместимые команды. Официальная поддержка Unitree ROS 2
Для соединения необходимо выбрать CycloneDDS как RMW-реализацию и указать правильный сетевой интерфейс. В примере Unitree используются переменные RMW_IMPLEMENTATION=rmw_cyclonedds_cpp и CYCLONEDDS_URI, в которой задаётся Ethernet-интерфейс, подключённый к сети робота. Настройка подключения Unitree ROS 2
После настройки стандартная команда ros2 topic list показывает доступные потоки, а ros2 topic echo позволяет читать состояние. Официальные примеры включают low-level управление G1, чтение состояния семейства unitree_hg, чтение пульта и запись данных в rosbag.
Такая архитектура позволяет распределить систему между PC1, PC2 и внешним вычислителем. На PC2 может работать драйвер и защитная логика, на отдельном GPU — нейросеть, а на рабочей станции — визуализация и запись данных. Для DDS это остаются участники одного домена.
Однако простота подключения означает и риск. Неправильно настроенный процесс в той же сети способен публиковать управляющие сообщения. Поэтому в реальном продукте необходимо контролировать домены, сетевые интерфейсы, права доступа и то, какой компонент имеет право выдавать команды движению.
DDS и ROS 2 решают проблему транспорта данных, но не определяют архитектуру поведения. Они не выбирают планировщик, не строят карту и не проверяют безопасность захвата. Коммуникационный слой только создаёт инфраструктуру, на которой эти компоненты можно связать в единую систему.
8. Как G1 превращается в автономного робота
Наличие камеры, LiDAR и вычислительного модуля ещё не делает G1 автономным. Эти компоненты позволяют роботу получать данные об окружающей среде и запускать алгоритмы их обработки, но производитель не предоставляет универсальную систему, которая из коробки способна понять произвольную задачу, построить маршрут, найти нужный предмет и выполнить с ним требуемое действие.
Например, чтобы G1 самостоятельно подошёл к столу, системе сначала необходимо построить представление окружающего пространства. Данные LiDAR, камеры и IMU объединяются для оценки положения робота и формирования карты. Затем планировщик рассчитывает маршрут, локальный контроллер корректирует его с учётом препятствий, а на выходе формирует команды продольной, поперечной и угловой скорости.
В экосистеме ROS 2 такие задачи обычно решаются набором отдельных компонентов. Навигационный стек Nav2 включает локализацию, построение модели окружения, глобальное и локальное планирование, обнаружение препятствий и управление поведением. Его результатом становится не набор команд для суставов, а требуемая скорость движения робота. Уже эту скорость можно передать штатному контроллеру G1 через LocoClient. Архитектура навигационного стека Nav2
При этом Nav2 не является готовой штатной системой навигации для G1. Это универсальный ROS 2-фреймворк, который необходимо адаптировать к конкретному роботу: настроить систему координат, источники одометрии, модель корпуса, карты стоимости, параметры планировщиков и интерфейс передачи команд. Поддержка шагающих платформ в Nav2 означает архитектурную совместимость, а не наличие готовой конфигурации для конкретной комплектации G1.
Похожим образом работает локализация. LiDAR формирует облако точек, но сам по себе не сообщает роботу его координаты. Алгоритм LiDAR-inertial odometry сопоставляет последовательные измерения, объединяет их с данными IMU и оценивает перемещение сенсора. Unitree публикует адаптацию Point-LIO для собственных LiDAR, способную строить карту на основе облака точек и встроенной IMU. Однако это отдельный программный компонент, который необходимо встроить в общую архитектуру робота. Репозиторий Unitree Point-LIO
Для манипуляции задача становится ещё сложнее. Роботу необходимо определить положение объекта, выбрать точку захвата, рассчитать положение корпуса и рук, построить траекторию суставов, сомкнуть пальцы и проконтролировать результат. Если предмет находится за пределами рабочей зоны рук, к управлению манипуляторами добавляется локомоция — G1 должен подойти к объекту и занять положение, из которого захват физически возможен.
В классической архитектуре каждый этап реализуется отдельным модулем. Компьютерное зрение распознаёт объект, система оценки позы определяет его координаты, планировщик формирует последовательность действий, а контроллеры рук и кистей выполняют движение. DDS и ROS 2 позволяют связать эти компоненты, но не определяют, какие именно алгоритмы должны использоваться внутри каждого из них.
Альтернативный подход предлагают модели Vision–Language–Action. VLA-модель получает визуальные данные, текстовую команду и информацию о состоянии робота, после чего формирует последовательность действий. В упрощённом виде она пытается напрямую связать фразу «возьми полотенце и сложи его» с изображением рабочей зоны и движением манипуляторов.
В январе 2026 года Unitree опубликовала код и веса модели UnifoLM-VLA-0, предназначенной для управления манипуляциями гуманоидных роботов. В открытом наборе данных представлены демонстрации на G1 для складывания полотенца, очистки стола, укладки предметов, работы с инструментами и других операций. Производитель заявляет проверку одной политики на 12 категориях задач. Официальный репозиторий UnifoLM-VLA-0
Однако наличие такой модели не означает, что любой G1 уже умеет выполнять эти действия. VLA должна получить изображения в требуемом формате, пройти обучение или дообучение на подходящих данных, запуститься на достаточно производительном вычислителе и быть связана с интерфейсами конкретных рук и кистей. Результат также зависит от конфигурации камер, типа захвата, расположения рабочего места и качества собранных демонстраций.
Для сбора таких данных Unitree предлагает систему XR-телеуправления. Оператор управляет руками G1 с помощью Apple Vision Pro, PICO или Meta Quest, а система записывает изображения, состояния суставов и выполненные движения. Полученные демонстрации можно преобразовать в набор данных и использовать для обучения политики в LeRobot. Система XR-телеуправления Unitree и интеграция G1 с LeRobot
Таким образом, обучение робота строится вокруг полного цикла: человек демонстрирует действие, система записывает сенсорные данные и движения, модель обучается воспроизводить зависимость между наблюдением и действием, после чего полученная политика запускается на роботе. Сам G1 в этом процессе выступает одновременно источником данных, исполнительной платформой и объектом управления.
Значительная часть такого цикла может сначала выполняться в симуляции. Официальная среда Unitree на базе Isaac Lab содержит модели G1 с разными кистями и сценарии захвата, перекладывания и перемещения объектов. Симулятор использует те же DDS-интерфейсы, что и реальный робот, благодаря чему часть программного контура можно проверить до переноса на физическую систему. Unitree Sim на базе Isaac Lab
При этом модель поведения не должна подменять быстрый контур управления телом. VLA может определять, какой предмет взять и куда должна двигаться рука, но удержание равновесия, контроль суставов и компенсация отклонений продолжают выполняться специализированными контроллерами. Высокоуровневая AI-модель работает с действиями и целями, а не управляет каждым двигателем напрямую с частотой 500 Гц.
Поэтому автономность G1 представляет собой ещё один слой поверх рассмотренной ранее архитектуры. Сенсоры поставляют данные, PC2 или дополнительный вычислительный модуль запускает восприятие и AI, алгоритмы планирования формируют цель движения, SDK и DDS передают команды, а штатный контроллер Unitree преобразует их в согласованную работу тела.
Именно здесь проходит граница между покупкой готового робота и созданием собственного робототехнического продукта. Unitree предоставляет механику, приводы, сенсоры, вычислительную инфраструктуру и базовую локомоцию. Но способность робота самостоятельно решать прикладную задачу — ориентироваться в конкретном помещении, работать с конкретными предметами и реагировать на нештатные ситуации — разработчик должен построить поверх этой платформы.
9. Где в архитектуре G1 находится VLA
После разбора всех уровней архитектуры можно точнее определить место Vision–Language–Action-модели. VLA не заменяет операционную систему робота, штатный контроллер движения, DDS или низкоуровневое управление приводами. Это ещё один программный слой, который располагается поверх них и преобразует наблюдение за окружающей средой и текстовую задачу в последовательность действий.
На вход VLA обычно поступают изображения с одной или нескольких камер, текстовая команда и данные о текущем состоянии робота. Последние могут включать положение суставов, состояние кистей и другие параметры, описывающие фактическую конфигурацию тела. На выходе модель формирует не текстовый ответ, а набор действий, соответствующий конкретной платформе.
Именно выходное пространство отличает VLA от обычной мультимодальной языковой модели. VLM может распознать полотенце и объяснить, как его сложить, но не формирует последовательность управляющих воздействий. VLA обучается сопоставлять визуальную сцену и инструкцию с действиями робота. В RT-2, например, действия были представлены в виде токенов, описывающих перемещение и поворот рабочего органа, состояние захвата и завершение операции. Описание архитектуры RT-2 от Google DeepMind
При этом выражение «VLA напрямую управляет роботом» не следует понимать как непосредственную передачу напряжения на двигатели. Модель предсказывает действия в том представлении, на котором она была обучена. Это могут быть целевые положения суставов, изменение положения кисти в пространстве, состояние захвата или сразу короткая последовательность таких команд. Затем отдельный программный адаптер должен преобразовать результат модели в интерфейсы конкретного робота.
В открытом коде UnifoLM-VLA-0 для G1 предусмотрено несколько вариантов такого выходного пространства. Для одной конфигурации задаются 16-мерные векторы состояния и действия, для других — 23-мерные. Модель при этом предсказывает сразу блок из 25 последовательных действий. Это показывает, что UnifoLM-VLA не выдаёт универсальную команду всему роботу, а работает с заранее определённым набором управляемых параметров, зависящим от конфигурации оборудования и обучающего датасета. Конфигурация пространства состояний и действий UnifoLM-VLA-0
В практическом сценарии команда «сложи полотенце» сначала поступает в VLA вместе с изображениями рабочей зоны и текущим положением рук. Модель формирует следующую последовательность движений. Программный клиент принимает этот результат, преобразует его в команды для манипуляторов и кистей и передаёт их через интерфейсы G1. После выполнения части последовательности система получает новое изображение и обновлённое состояние суставов, а модель рассчитывает следующий блок действий.
Получается замкнутый контур, но работающий на другом временном масштабе, чем управление приводами. VLA должна регулярно получать новое наблюдение и корректировать поведение, если предмет сдвинулся или предыдущее действие было выполнено неточно. Однако ей не требуется самостоятельно обновлять команды всех двигателей с частотой 500 Гц. Между результатом нейросети и приводами остаются интерполяция траектории, управление суставами и обратная связь низкоуровневого контроллера.
Особенно хорошо это разделение видно в опубликованном Unitree процессе запуска UnifoLM-VLA-0 на реальном роботе. В официальной конфигурации вычисление модели выполняется на отдельном сервере. Клиент на стороне робота собирает наблюдения, отправляет их серверу, получает рассчитанные действия и передаёт их исполнительному контуру. Следовательно, даже сама VLA необязательно запускается на встроенном Jetson: в зависимости от размера модели и требований к задержке она может работать на PC2, дополнительном локальном вычислителе или внешнем GPU-сервере. Официальная схема запуска UnifoLM-VLA-0 на реальном роботе
Такая серверная схема подходит для экспериментов и сбора данных, но подчёркивает, почему VLA нельзя использовать как единственный контур стабилизации. Задержка сети, время инференса или временная потеря связи не должны приводить к прекращению контроля положения тела. Пока высокоуровневая модель рассчитывает следующее действие, штатный контроллер G1 должен продолжать удерживать позу, обрабатывать данные IMU и корректировать состояние суставов.
Даже в системах, которые заявляются как модели управления всем телом, сохраняется разделение между генерацией действий и физическим контролем. Например, в рабочем процессе NVIDIA GR00T 1.7 изображения, язык и состояние робота поступают в VLA, которая формирует действия, но для удержания равновесия G1 в демонстрационном сценарии отдельно используется Whole Body Controller. Сам VLA-слой определяет требуемое движение, а WBC согласует его с динамикой тела и ограничениями платформы. Архитектура и процесс развёртывания NVIDIA GR00T 1.7
Необязательно поручать одной модели и выбор задачи, и навигацию, и непосредственное управление руками. В иерархической архитектуре высокоуровневая система может разбить команду на этапы: найти стол, подойти к нему, определить положение полотенца и запустить навык складывания. Навигация при этом будет выполняться обычным планировщиком и штатным контроллером локомоции, а VLA — управлять манипуляцией после того, как робот занял требуемое положение.
Возможен и более интегрированный вариант, при котором одна политика одновременно управляет корпусом, руками и перемещением. Но для этого она должна быть обучена именно на whole-body данных G1, учитывать контакт ног с поверхностью и выдавать команды в формате, совместимом с контроллером всего тела. Наличие модели, обученной на настольных манипуляциях, ещё не означает, что её можно без дополнительной адаптации использовать для ходьбы и манипуляции в движении.
Опубликованные Unitree наборы данных для UnifoLM-VLA-0 в основном относятся к ограниченным манипуляционным задачам: складыванию полотенца, очистке стола, укладке предметов, работе с упаковкой и инструментами. Это важный шаг к обобщённой политике, но не универсальный интеллект, способный выполнить любую сформулированную человеком команду. Кроме того, UnifoLM-VLA-0 является отдельным открытым проектом для обучения и развёртывания моделей, а не подтверждённой штатной функцией каждого продаваемого G1. Репозиторий и наборы данных UnifoLM-VLA-0
Между VLA и физическим роботом также необходим защитный слой. Он должен ограничивать диапазоны движения суставов, скорость и ускорение, проверять доступность целевой позы, обнаруживать столкновения и останавливать выполнение при потере связи или некорректном результате модели. Нейросеть может предсказать действие, которое выглядит логичным с точки зрения обучающих данных, но оказывается недопустимым для текущего положения робота.
Таким образом, VLA находится не «вместо» традиционной робототехнической архитектуры, а над ней. Камеры и состояние суставов формируют наблюдение, VLA преобразует его в последовательность действий, программный адаптер связывает эти действия с SDK и DDS, контроллер движения согласует их с механикой, а низкоуровневый контур обеспечивает выполнение команд приводами.
Если использовать упрощённую аналогию, VLA ближе к коре головного мозга, которая понимает задачу и выбирает действие. Штатный контроллер движения и низкоуровневые контуры выполняют роль систем, отвечающих за координацию и рефлексы. Именно совместная работа этих уровней, а не одна большая нейросеть, превращает G1 из механической платформы в робота, способного выполнять осмысленные действия.
10. Где заканчивается готовый G1 и начинается собственная разработка
После разбора программной архитектуры становится понятнее, что именно получает разработчик вместе с Unitree G1. Это не набор приводов и металлических деталей, который необходимо оживлять с нуля, но и не универсальный автономный робот, готовый после распаковки выполнять произвольные задачи. G1 представляет собой платформу, внутри которой уже реализована значительная часть наиболее сложной базовой робототехники.
Unitree берёт на себя механику, приводы, силовую электронику, аккумулятор, внутреннюю сеть и низкоуровневое управление суставами. В состав робота также входят IMU, энкодеры, камера глубины и 3D LiDAR. Для версии EDU доступны дополнительные вычислительные модули и разные конфигурации рук. Разработчику не требуется самостоятельно подбирать двигатели, проектировать редукторы, создавать платы управления приводами и собирать всё это в устойчивую механическую систему. Официальные характеристики Unitree G1
Второй готовый уровень — штатный контроллер движения. G1 умеет вставать, удерживать равновесие, ходить с заданной скоростью, поворачиваться и выполнять предусмотренные производителем движения. Пользовательская программа может обращаться к этим функциям через высокоуровневые интерфейсы SDK, не рассчитывая траекторию каждого сустава. Именно этот слой превращает G1 из набора аппаратных компонентов в готовую платформу локомоции.
Однако реализация штатного контроллера остаётся закрытой. Разработчик видит доступные команды, состояния и параметры, но не получает исходный код алгоритмов, отвечающих за баланс, постановку стопы и распределение моментов между суставами. Это важное архитектурное ограничение: G1 позволяет использовать готовую локомоцию, но не даёт полностью изменить её внутреннюю логику.
Следующий уровень Unitree предоставляет уже не как готовую функцию, а как набор интерфейсов. SDK2, DDS-сообщения и определения типов для ROS 2 позволяют получать состояние робота, читать данные сенсоров, отправлять команды и обращаться к штатным сервисам. В официальных примерах есть чтение состояния G1, низкоуровневое управление суставами, работа с пультом и запись данных в rosbag. Но эти примеры демонстрируют отдельные операции, а не образуют законченную систему автономного поведения. Официальная поддержка Unitree ROS 2
Например, LiDAR может публиковать облако точек, но наличие этих данных ещё не означает, что робот умеет ориентироваться в помещении. Разработчику необходимо добавить алгоритм одометрии или SLAM, настроить систему координат, сформировать карту и связать результат со стеком навигации. Затем потребуется преобразовать рассчитанную скорость движения в команды штатному контроллеру G1.
Аналогично камера предоставляет изображение, но сама по себе не распознаёт нужный объект и не определяет, как его взять. Необходимо выбрать или обучить модель компьютерного зрения, оценить положение предмета относительно робота, передать координаты планировщику манипуляций и сформировать команды для рук и кистей. Каждый из этих компонентов должен работать в общей системе координат и учитывать задержки, погрешности сенсоров и физические ограничения робота.
Поэтому основная разработка прикладного продукта начинается над уровнем базовой локомоции. Для сценария «принести предмет со стола» потребуется как минимум система восприятия, локализация, навигация, распознавание предмета, планирование захвата, управление руками и логика выполнения задания. Отдельный компонент должен отслеживать последовательность этапов и определять, что делать, если предмет не найден, путь оказался заблокирован или захват завершился неудачно.
Эту логику можно реализовать классическим способом — в виде конечного автомата, дерева поведения или набора связанных ROS 2-узлов. Высокоуровневый планировщик разбивает задачу на отдельные действия, проверяет результат каждого этапа и при необходимости выбирает альтернативный сценарий. VLA-модель может заменить часть такого контура, но не устраняет необходимость связывать восприятие, действия и физические интерфейсы G1.
Unitree предоставляет инструменты, которые помогают построить этот слой. Через XR-телеуправление можно управлять руками робота и записывать демонстрации, а затем использовать собранные данные для обучения политики. Официальная система поддерживает работу с Apple Vision Pro, Meta Quest и PICO, записывая изображения и состояния суставов во время выполнения операции. Но подобрать сценарии, организовать сбор данных, проверить их качество, обучить модель и добиться устойчивой работы на новых объектах должен уже разработчик. Система XR-телеуправления Unitree
То же относится к симуляции. Unitree предоставляет модели G1 для MuJoCo и Isaac Lab, совместимые с интерфейсами реального робота. Это позволяет начать разработку контроллера, проверить диапазоны движений и обучить некоторые политики без постоянного риска повредить физическую платформу. Однако симулятор не создаёт готовое поведение автоматически: необходимо сформировать среду, модель задачи, функцию вознаграждения, сценарии обучения и процедуру переноса на реального робота. Официальный симулятор Unitree MuJoCo и Unitree Sim на базе Isaac Lab
Отдельной задачей остаётся безопасность прикладного сценария. Штатный контроллер может ограничивать движение суставов и поддерживать равновесие, но он не знает, безопасно ли роботу поднимать конкретный предмет, проходить рядом с человеком или продолжать действие после потери изображения с камеры. Эти решения должны приниматься на уровне создаваемой системы.
Поэтому поверх основных алгоритмов необходим защитный контур. Он должен проверять допустимость команд, контролировать скорость движения, обнаруживать препятствия и столкновения, отслеживать связь между вычислительными модулями и переводить робота в безопасное состояние при отказе. Для лабораторного эксперимента часть этих функций может выполнять оператор с пультом аварийной остановки. Для реального применения они должны стать частью архитектуры продукта.
Ещё один незаметный, но значительный слой — инфраструктура эксплуатации. Если G1 используется не в демонстрации, а в реальном процессе, необходимо регистрировать телеметрию, сохранять ошибки, обновлять программное обеспечение, управлять конфигурациями и отслеживать состояние аккумуляторов и приводов. Для парка роботов к этому добавляются диспетчеризация заданий, управление версиями моделей, удалённая диагностика и контроль доступности каждой машины.
В результате программную архитектуру G1 можно условно разделить на три зоны. Первая — готовая аппаратная платформа и низкоуровневое управление, которые предоставляет Unitree. Вторая — открытые интерфейсы SDK, DDS и ROS 2, через которые разработчик получает доступ к состоянию и функциям робота. Третья — прикладная автономность: восприятие, навигация, манипуляции, VLA, логика выполнения задач, безопасность и эксплуатационная инфраструктура.
Главная ценность G1 заключается в том, что разработчик начинает не с проектирования человекоподобного робота, а с уже работающего тела. Можно сосредоточиться на том, какое полезное действие должна выполнять система и какие алгоритмы для этого необходимы. Но сам факт покупки готовой платформы не сокращает разработку до установки одной нейросети.
Unitree предоставляет тело, базовую координацию и интерфейсы к ним. Всё, что превращает это тело в специализированного складского, производственного, сервисного или исследовательского робота, создаётся уже поверх платформы. Именно поэтому два внешне одинаковых G1 могут радикально отличаться по возможностям: различие будет находиться не в механике, а в программном стеке, данных и качестве интеграции всех его уровней.
Заключение. «Мозг» G1 — это не Jetson
Главный вывод из разбора архитектуры Unitree G1 заключается в том, что искать внутри человекоподобного робота один главный компьютер бессмысленно. Jetson может запускать компьютерное зрение, навигацию и нейросетевые модели, но он не удерживает робота в равновесии и не управляет каждым приводом напрямую. За движение G1 отвечает распределённая система из вычислителей, контроллеров, сенсоров, сетевых интерфейсов и программных контуров, работающих с разной частотой.
В самом низу этой архитектуры находятся приводы, энкодеры и контроллеры суставов. Они должны непрерывно поддерживать заданное положение, скорость и момент. Выше располагается штатный контроллер Unitree, который объединяет отдельные суставы в согласованное движение всего тела: удерживает равновесие, управляет походкой и компенсирует внешние возмущения.
Следующий уровень образуют SDK2, DDS и ROS 2. Они не управляют роботом сами по себе, а связывают его подсистемы. Через них пользовательская программа получает состояния суставов и сенсоров, отправляет команды и обращается к готовым функциям штатного контроллера. Такая архитектура позволяет распределять программные компоненты между PC2, дополнительным Jetson и внешними вычислителями, не превращая весь стек в одно монолитное приложение.
Ещё выше находятся восприятие, локализация, навигация и планирование манипуляций. Именно здесь данные камеры, LiDAR и IMU превращаются в представление окружающего пространства, а поставленная задача — в последовательность движений. Unitree предоставляет сенсоры и доступ к их данным, но не готовую автономность для конкретного производственного или сервисного сценария.
На вершине этой системы может находиться VLA-модель. Она способна связать изображение, текстовую команду и состояние робота с требуемым действием, но не отменяет остальные уровни архитектуры. Между результатом нейросети и физическими приводами всё равно остаются планирование траектории, контроль допустимости команд, управление суставами и стабилизация тела.
Это хорошо показывает реальную границу возможностей современных человекоподобных роботов. Основная сложность уже не обязательно заключается в создании самого тела. G1 можно купить вместе с приводами, сенсорами, вычислителями и работающей локомоцией. Но превратить эту платформу в робота, устойчиво выполняющего полезную операцию в реальной среде, по-прежнему сложно.
Для этого необходимо собрать данные, разработать или обучить алгоритмы восприятия, связать их с навигацией и манипуляциями, предусмотреть обработку нештатных ситуаций и создать защитный контур. Затем всё это нужно протестировать не в одной подготовленной демонстрации, а на разных объектах, при изменяющемся освещении, помехах, ошибках распознавания и физических отклонениях реального робота.
Поэтому сравнивать человекоподобных роботов только по производительности встроенного компьютера или размеру AI-модели не совсем корректно. Возможности системы определяются всей архитектурой: качеством приводов, частотой и устойчивостью контуров управления, доступностью интерфейсов, задержками коммуникации, составом сенсоров, обучающими данными и тем, насколько хорошо все эти уровни интегрированы между собой.
В этом и заключается главная ценность G1 как инженерной платформы. Он позволяет начинать разработку не с двигателя, редуктора и алгоритма удержания равновесия, а с прикладной задачи. При этом он достаточно открыт, чтобы подключать собственные сенсоры, вычислители и модели, но достаточно закрыт, чтобы разработчику не приходилось заново решать всю механику локомоции.
В итоге «мозг» современного человекоподобного робота — это не одна большая нейросеть и не самый мощный процессор внутри корпуса. Это иерархия систем, каждая из которых решает задачу на своём уровне и в своём временном масштабе. И качество робота определяется не только тем, насколько умным является верхний AI-слой, но и тем, насколько надёжно он связан со всем, что находится ниже.
Все схемы в документе — авторские и подготовлены специально для статьи.