Виртуальная симуляция в проекте беспилотного автомобиля StarLine

При создании умного беспилотного автомобиля StarLine важным этапом является не только разработка основного программного обеспечения (ПО), работающего на нем, но и создание инфраструктурных элементов, призванных упростить тестирование разработанной системы. Одним из ключевых элементов является виртуальный симулятор.
Всякий раз, когда разрабатывается новый алгоритм или модернизируется уже существующий, возникает необходимость его всестороннего тестирования перед использованием на автомобиле в реальных дорожных условиях. Если заранее определено требуемое поведение ПО, то для предварительных испытаний могут быть использованы специальные программные тесты. Однако у них есть несколько существенных недостатков: во-первых, их создание для каждого алгоритма требует существенных временных затрат; во-вторых, они не могут использоваться, если поведение системы строго не регламентировано.

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

Помимо этого, использование симулятора дает целый ряд преимуществ:

  • сокращается время тестирования разработанного ПО — намного проще запустить симулятор, чем воссоздавать интересующий сценарий в реальном мире;
  • появляется возможность проводить испытания в самых маловероятных и трудных дорожных ситуациях без риска для людей или инфраструктуры;
  • появляется возможность многократно воспроизводить одну и ту же дорожную ситуацию в одинаковых условиях.


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

За последние несколько лет появилось множество открытых симуляторов, разработанных для тестирования ПО беспилотных автомобилей: Gazebo, V-Rep, Webots, LGSVL Simulator, MicrosoftAirSim, CARLASimulator, Deepdrive и многие другие.

Так почему же при таком разнообразии существующих симуляторов мы выбрали именно Gazebo? Все объясняется довольно просто: нам был нужен в кратчайшие сроки простой симулятор, который имеет хорошую интеграцию с ROS и весь необходимый инструментарий для создания виртуальной копии нашего автомобиля. Для решения нашей задачи было необходимо имитировать работу различных датчиков (лидары, камеры, инерциальная навигационная система и т.д.), управление и динамику автомобиля, светофоры и пешеходов. Все это присутствовало в Gazebo в виде плагинов.

image

Для создания виртуального дублера беспилотного автомобиля мы взяли его 3D-модель и задали для нее основные кинематические и динамические параметры — массу автомобиля, сцепление колес, минимальный радиус поворота и т.д. Затем мы оснастили ее виртуальными копиями всех используемых нами датчиков и задали им параметры, идентичные характеристикам их реальных прототипов.

Для создания виртуальных полигонов в Gazebo мы используем карты местности, построенные в реальном мире — все объекты расставляются на тех же позициях, что и в реальности. При этом мы переносим в симуляцию: дорожную сеть, знаки дорожного движения, ж/д переезды, светофоры и основных участников дорожного движения — пешеходов и автомобили.

Например, так выглядит модель автополигона, используемая нами для подготовки к квалификации технологического конкурса «Зимний город»:


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

image

Если посмотреть на созданный полигон, могут возникнуть несколько вопросов: почему такая низкая реалистичность? Где дома, падающий снег, деревья и т. д.? В данном случае подобные детали являются избыточными и отсутствуют, потому что симулятор должен отражать только те аспекты реального мира, которые наиболее важны для текущей системы ПО. Добавление избыточных аспектов потребовало бы времени существенно большего, чем сэкономленное от использования симулятора. При этом важно помнить, что финальная настройка и испытания проводятся на реальном автомобиле.

image

Использование симулятора Gazebo дало нам ряд преимуществ в процессе разработки. Тем не менее мы выделили ряд недостатков, которые становятся все более существенными в процессе развития беспилотного автомобиля StarLine. К существенным недостаткам Gazebo можно отнести:

  • ошибки в работе вертикальных лучей 3D-лидаров при их расчете на видеокарте;
  • отсутствие инструментария для автоматической генерации городской инфраструктуры и дорожных сценариев;
  • низкая реалистичность имитации динамики автомобиля;
  • низкая фотореалистичность;
  • отсутствие имитации погодных условий.


В связи с этим мы планируем сменить используемый симулятор, если к концу года Gazebo останется на прежнем программном уровне.

image

Также в будущем мы планируем создать полностью автоматическое и непрерывное тестирование всего программного обеспечения умного автомобиля StarLine в симуляции, развернутой на удаленном сервере. Это позволит нарабатывать виртуальные километры для каждой версии ПО и быть уверенным, что каждый разработанный алгоритм был всесторонне протестирован перед внедрением в настоящий беспилотный автомобиль.

GitLab проекта
Instagram

© Habrahabr.ru