Перейти к содержанию

Введение

Разработка и тестирование моделей управления робототехническими платформами в реальных условиях сопряжены с ограничениями по безопасности, стоимости, доступности оборудования и воспроизводимости экспериментов. Использование цифровой среды моделирования позволяет перенести значительную часть отладки и исследования в виртуальный контур, снизить риски и ускорить цикл разработки. Прикладная ценность симуляционной среды, однако, определяется не только наличием визуальной модели, но и возможностью воспроизводимого запуска сценариев, подключения внешних инструментов, организации программных контрактов, накопления экспериментальных данных и подготовки перехода к sim-to-real исследованиям. По этой причине предметом настоящей магистерской работы является не разработка симулятора как такового, а создание расширяемой программной платформы, используемой как инструмент проведения экспериментальных исследований.

Современное состояние области

Современное состояние области, рассмотренное в разделе 1, характеризуется наличием нескольких сложившихся симуляционных стеков, каждый из которых сформировался под собственный класс задач. CARLA [2] и AirSim [3] обеспечивают высокое качество рендера за счёт интеграции с Unreal Engine и ориентированы соответственно на полноразмерный наземный и воздушный транспорт; Gazebo и его преемник Ignition исторически являются эталонным средством для манипуляторов и мобильных роботов в экосистеме ROS; Webots сохраняет позицию образовательного симулятора с кросс-платформенным распространением; стек Isaac Sim и Isaac Lab от NVIDIA развивается в направлении массово-параллельного обучения политик локомоции и манипуляции на GPU. Параллельно широкое распространение получили подходы, в которых симуляционной средой служит игровой движок: расширение Unity ML-Agents [4] и исследовательские проекты вроде Trackmania-RL [5] показывают, что качественный рендер игровых движков и низкие инженерные накладные расходы делают их разумным компромиссом между визуальным качеством и стоимостью разработки расширений.

Сравнительный анализ существующих систем, выполненный в разделе 1.2, обнаруживает закономерность: высокая расширяемость в большинстве случаев достигается ценой либо привязки к экосистеме (Gazebo и ROS), либо отсутствия операторской поверхности (ML-Agents); высокое качество рендера типично достигается ценой тяжёлого стека Unreal или RTX. Промежуточная ниша — кросс-платформенный симулятор с descriptor-based плагинами, разумным рендером и нативной поддержкой обучения, ориентированный на учебные роботы класса Keyestudio KS0223 и сопоставимые по сложности устройства, — оказывается слабо заполненной. Литература по sim-to-real-переносу за последнее десятилетие сформировала набор приёмов, на которые опирается настоящая работа: domain randomization в формулировке Tobin и соавторов [6] и Peng и соавторов [7], visual policy для уклонения [8], behavior cloning Codevilla и соавторов [9], а также pretrained-визуальные представления — R3M [10] и VC-1 [11], — позволяющие сократить выборочную сложность обучения. На уровне сценариев расширяемость в существующих системах реализуется через ScenarioRunner и Scenic [12], в Gazebo — через URDF-плагины, в Unity ML-Agents — через ScriptableObject; единого descriptor-based решения, пригодного для класса учебных роботов и независимого от ROS, в открытых источниках не выявлено.

Актуальность работы

Актуальность работы обусловлена несколькими взаимосвязанными обстоятельствами. Во-первых, рост интереса к обучению с подкреплением и end-to-end-политикам управления для мобильных роботов сопровождается ростом потребности в воспроизводимых средах моделирования: эксперименты, выполненные в произвольной авторской сцене с авторскими договорённостями о наблюдениях и действиях, плохо переносятся между группами и плохо сравниваются между публикациями. Во-вторых, существующие крупные симуляторы оптимизированы под полноразмерный транспорт, манипуляторы или БПЛА и оказываются избыточными для учебных и исследовательских задач, в которых целевая платформа — мобильный робот класса KS0223 на базе Raspberry Pi с дифференциальным приводом, монокулярной камерой и набором простых сенсоров. В-третьих, типовой исследовательский цикл — обучение политики, оценка в симуляторе, перенос на реальный робот, диагностика расхождений и итерационное улучшение — требует не только симуляционной сцены, но и развитой инфраструктуры: единого операторского интерфейса, программного контракта обмена данными между симуляцией и обучающим контуром, средств запуска и регистрации экспериментов, средств сравнения нескольких revisions модели. Наконец, в-четвёртых, сообщество, работающее с роботом KS0223 и сопоставимыми устройствами, не имеет на момент выполнения работы открытой расширяемой платформы, которая бы покрывала перечисленные функции в едином продукте; разработка такой платформы и есть содержание диссертации.

Дополнительным фактором, определяющим актуальность задачи именно как задачи разработки платформы, а не как отдельного эксперимента по обучению, является устойчивая во времени переиспользуемость инструмента. Отдельный успешный sim-to-real эксперимент имеет ценность как научный результат, но эффект от него ограничен конкретной сценой и конкретной моделью; платформа, на которой такой эксперимент собран и воспроизведён, переживает любую отдельную revision и пригодна для последующих исследований — будь то новая трасса, новый робот или альтернативный алгоритм обучения. Этот тезис согласуется с обзором смежных систем (раздел 1) и определяет жанр работы как магистерскую разработку программной платформы, а не как магистерскую работу по машинному обучению.

Объект и предмет исследования

Объектом исследования является программная платформа симуляции робототехнической платформы Keyestudio KS0223 в среде Unity. Предметом исследования являются архитектурные, программные и методические средства построения расширяемой симуляционной платформы, обеспечивающей проведение экспериментальных исследований в задачах обучения моделей управления и sim-to-real-переноса.

Выбор объекта определяется наличием в распоряжении автора собственного физического стенда KS0223, развёрнутого в домашних условиях, что позволяет замкнуть полный цикл разработки и проверки — от моделирования до реального робота — в рамках одной магистерской работы. Выбор предмета определяется тем, что научно-инженерное содержание работы сосредоточено в архитектуре платформы и её программных контрактах, а конкретные эксперименты по обучению и переносу политики рассматриваются как варианты использования платформы, демонстрирующие её применимость, но не определяющие её ценности.

Цель работы

Целью магистерской работы является разработка расширяемой программной платформы симуляции в Unity, обеспечивающей проведение экспериментальных исследований в задачах обучения, тестирования и sim-to-real-переноса моделей управления робототехнической платформой KS0223.

Сформулированная цель отличается от формулировки, принятой в отчёте о преддипломной практике, переносом акцента с инженерной задачи доведения платформы до пригодного для запуска состояния — на задачу разработки и обоснования архитектурно-программного решения, поддерживающего класс перечисленных выше исследований. В жанре магистерской диссертации этот сдвиг означает, что результатом работы является не только программный продукт, но и обоснование принятых решений относительно границ платформы, плагинной архитектуры, программных контрактов и методики проведения экспериментов.

Задачи работы

Для достижения поставленной цели необходимо решить следующие восемь задач. Каждая из перечисленных задач соответствует одному из основных разделов диссертации и закрывает соответствующий тематический контур.

  1. Проанализировать предметную область, выполнить сравнительный анализ существующих подходов к симуляции робототехнических систем, обучению моделей управления и sim-to-real-переносу, и сформулировать пробел, определяющий нишу разрабатываемой платформы.
  2. Спроектировать архитектуру расширяемой программной платформы, включающую Unity-runtime, операторский контур, программные контракты взаимодействия, командную утилиту и контур обучения, и обосновать принятые архитектурные решения.
  3. Реализовать ключевые компоненты платформы: ядро жизненного цикла симуляции, реестр плагинов, модель робототехнической платформы KS0223, базовые трассы, средства управления и сбора состояния.
  4. Сформулировать программные контракты платформы — Unity HTTP JSON API, операторский HTTP и SignalR-интерфейс, plugin SDK — и зафиксировать их в виде спецификации.
  5. Обеспечить расширяемость платформы посредством descriptor-based-плагинов, поддерживающих подключение пользовательских конфигураций транспортных средств, трасс и сценариев без модификации ядра.
  6. Реализовать программную обвязку обучения на стороне Python: обёртки сред, тренировочный пайплайн на Stable-Baselines3, средства domain randomization, KPI-оценку и экспорт обученной политики в формат ONNX.
  7. Провести экспериментальную проверку sim-to-real-переноса на физическом стенде KS0223, проанализировать характер расхождений между симуляцией и реальностью и зафиксировать инженерные приёмы, направленные на сокращение этого разрыва.
  8. Подготовить инструменты тестирования, непрерывной интеграции и поставки платформы — модульные тесты, многоэтапную сборку backend и Unity-runtime, формат архива плагина, документацию проекта в формате MkDocs, — и продемонстрировать применимость платформы в типовых эксплуатационных сценариях.

Перечисленные задачи образуют логически замкнутый набор: первая задача очерчивает нишу платформы, задачи 2–4 формируют архитектурное и спецификационное ядро, задача 5 закрепляет ключевое требование расширяемости, задачи 6 и 7 представляют контур обучения и его экспериментальное применение, задача 8 переводит платформу в состояние, пригодное для регулярной работы.

Методы и средства решения

Методическую основу работы составляют принципы декомпозиции по ответственности, изоляции продуктового и исследовательского контуров, единственной точки истины для контрактов и descriptor-based расширения. Эти принципы заимствованы из практики разработки расширяемых робототехнических симуляторов и адаптированы к особенностям Unity и кросс-платформенной поставки.

Технологически работа опирается на следующий стек. Симуляционная среда реализована на Unity 6 (LTS) с использованием Universal Render Pipeline; внешний программный интерфейс симулятора построен на встроенном HTTP-сервере и сериализации через Unity JsonUtility. Серверная часть операторского контура реализована на ASP.NET Core (платформа .NET 8) с использованием SignalR для push-телеметрии. Web-интерфейс оператора реализован на TypeScript, React и Vite с библиотекой компонентов MUI. Командная утилита rusim реализована на Python и обеспечивает управление установкой плагинов, запуск runtime, развёртывание сценариев и взаимодействие с реальной платформой. Контур обучения реализован на Python и опирается на Stable-Baselines3 в качестве тренировочной библиотеки, OpenAI Gym как формат описания среды, ONNX и ONNX Runtime для экспорта и инференса политики. Совместимость с экосистемой ROS обеспечивается мостом ROS 2 (Humble) и протоколом rosbridge. Эксплуатационная часть опирается на Docker, Makefile, GitHub Actions и MkDocs Material как средства сборки, непрерывной интеграции и публикации документации. Полный перечень технологий и их роль в платформе приведены в разделах 2 и 8.

Аппаратная часть работы включает физический стенд KS0223 на базе Raspberry Pi 4 с монокулярной камерой, ультразвуковым датчиком HC-SR04, линейными датчиками, серводвигателем и светодиодной индикацией; разработческий узел на базе Apple MacBook Pro M4 Max; вычислительный узел на базе персонального компьютера с GPU NVIDIA, используемого для тренировки политик. Распределение вычислительной нагрузки между перечисленными узлами и согласование их работы — самостоятельный инженерный аспект работы, описанный в разделах 6 и 8.

Научная и техническая новизна

Научно-техническая новизна работы определяется следующими положениями. Во-первых, предложена и реализована descriptor-based плагинная архитектура для класса учебных мобильных роботов, основанная на двухуровневом реестре плагинов и hot-install-цикле через .rusim-plugin.zip архивы; такой подход позволяет подключать новые транспортные средства, трассы и сценарии без модификации ядра и без перекомпиляции Unity-runtime, что отличает платформу от Unity ML-Agents и в значительной мере — от CARLA-плагинов через Scenic. Во-вторых, в платформе унифицирован программный контур работы с симуляцией и реальным роботом: один и тот же операторский интерфейс и один и тот же набор контрактов используются для двух режимов — unity-sim и real-robot, — что снимает дублирование инженерных решений между исследовательской и эксплуатационной частями. В-третьих, в работе предложена методика sim-to-real-проверки в условиях ограниченного оборудования, включающая heavy domain randomization, frame stacking, real-camera post-processing и многосидовые sweeps как меру борьбы с дисперсией результатов обучения; зафиксированный в работе режим heavy-DR-variance представляет самостоятельный наблюдательный результат, ранее не описанный для робота KS0223 и сопоставимых платформ.

Практическая значимость

Практическая значимость результатов работы определяется тем, что разработанная платформа представляет собой завершённый и воспроизводимый инженерный продукт, пригодный к использованию в учебном и исследовательском процессе. Платформа покрывает полный цикл — от моделирования сцены до эксплуатации обученной политики на реальном роботе — и содержит средства, позволяющие повторить результаты автора и провести собственные эксперименты на сопоставимом классе задач: операторский веб-интерфейс, командную утилиту, типовые сценарии запуска, образцы плагинов транспортного средства и трассы, образец тренировочного скрипта и набор обученных политик. Документация проекта оформлена в виде сайта на MkDocs Material и опубликована в открытом виде; репозиторий проекта поддерживается на GitHub. Платформа применима как основа для последующих магистерских и курсовых работ, связанных с расширением плагинного каталога, исследованием альтернативных тренировочных стратегий, подключением альтернативных моделей роботов или альтернативных сцен.

Структура диссертации

Диссертация состоит из настоящего Введения, восьми разделов основного содержания, Заключения, Списка использованных источников, Списка сокращений и Приложений. Содержание разделов согласовано с задачами работы.

Раздел 1 «Современное состояние области» содержит обзор существующих симуляционных платформ — CARLA, Gazebo, AirSim, Webots, Isaac Sim, Unity ML-Agents — и литературу по sim-to-real-переносу и плагинным архитектурам; формулирует пробел, определяющий нишу разрабатываемой платформы.

Раздел 2 «Архитектура платформы» описывает высокоуровневую декомпозицию системы на четыре функциональных контура — Unity-runtime, операторский стек, командную утилиту и контур обучения; разделяет продуктовую и исследовательскую части, фиксирует поток данных и управления, определяет границы между подсистемами.

Раздел 3 «Реализация ключевых компонентов» детализирует реализацию ядра жизненного цикла симуляции, реестра плагинов, модели транспортного средства и трасс; описывает применённые подходы к декомпозиции по ответственности и lifecycle-управлению.

Раздел 4 «Спецификация API» фиксирует три уровня программного интерфейса платформы — Unity HTTP JSON API, операторский HTTP и SignalR-интерфейс, plugin SDK — и описывает форматы транспортных DTO, политику версионирования и сериализационные особенности.

Раздел 5 «Разработка плагинов» содержит описание plugin SDK, его базовых классов и descriptor-сущностей, два worked-примера — плагина транспортного средства и плагина трассы — и описывает формат архива плагина и команды CLI для установки, валидации и распространения.

Раздел 6 «Программная обвязка обучения» описывает Python-контур платформы: HTTP-клиент к симулятору, обёртки сред (одиночные, multi-agent, Genesis), тренировочный пайплайн на Stable-Baselines3, гиперпараметры, средства domain randomization, KPI-оценку и экспорт ONNX-артефакта.

Раздел 7 «Sim-to-real эксперименты на KS0223» описывает поставленную задачу переноса, базовую модель и её эволюцию по revisions, применение heavy-DR и real-camera post-processing, реальные эксперименты на физическом коридоре и анализ расхождений между симуляцией и реальностью.

Раздел 8 «Тестирование, сборка и поставка» описывает тестовое покрытие проекта, непрерывную интеграцию через GitHub Actions, многоэтапную сборку backend и Unity-runtime, поставку плагинов и автоматический деплой документации.

Заключение подводит итоги по результатам работы, оценивает полноту решения восьми поставленных задач, фиксирует преимущества принятых решений, рекомендации по их использованию и направления дальнейшего развития платформы.

Список использованных источников содержит библиографические описания всех привлечённых в тексте материалов и оформлен в соответствии с ГОСТ Р 7.0.100-2018. Список сокращений приводит расшифровку используемых в тексте аббревиатур в алфавитном порядке.