Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
При создании умного беспилотного автомобиля StarLine важным этапом является не только разработка основного программного обеспечения (ПО), работающего на нем, но и создание инфраструктурных элементов, призванных упростить тестирование разработанной системы. Одним из ключевых элементов является виртуальный симулятор.
Всякий раз, когда разрабатывается новый алгоритм или модернизируется уже существующий, возникает необходимость его всестороннего тестирования перед использованием на автомобиле в реальных дорожных условиях. Если заранее определено требуемое поведение ПО, то для предварительных испытаний могут быть использованы специальные программные тесты. Однако у них есть несколько существенных недостатков: во-первых, их создание для каждого алгоритма требует существенных временных затрат; во-вторых, они не могут использоваться, если поведение системы строго не регламентировано.
Поэтому для первоначальной проверки исследования и тестирования алгоритмов общепринято использовать симулятор, в котором создается виртуальный двойник беспилотного автомобиля и имитируется его поведение в различных дорожных сценариях.
Помимо этого, использование симулятора дает целый ряд преимуществ:
При этом надо понимать, что ключевым недостатком симулятора является невозможность создания полностью реалистичных виртуальных миров. Как следствие, использование симулятора не позволяет полностью заменить испытания на реальном автомобиле, а лишь позволяет сократить их количество.
За последние несколько лет появилось множество открытых симуляторов, разработанных для тестирования ПО беспилотных автомобилей: Gazebo, V-Rep, Webots, LGSVL Simulator, MicrosoftAirSim, CARLASimulator, Deepdrive и многие другие.
Так почему же при таком разнообразии существующих симуляторов мы выбрали именно Gazebo? Все объясняется довольно просто: нам был нужен в кратчайшие сроки простой симулятор, который имеет хорошую интеграцию с ROS и весь необходимый инструментарий для создания виртуальной копии нашего автомобиля. Для решения нашей задачи было необходимо имитировать работу различных датчиков (лидары, камеры, инерциальная навигационная система и т.д.), управление и динамику автомобиля, светофоры и пешеходов. Все это присутствовало в Gazebo в виде плагинов.
Для создания виртуального дублера беспилотного автомобиля мы взяли его 3D-модель и задали для нее основные кинематические и динамические параметры – массу автомобиля, сцепление колес, минимальный радиус поворота и т.д. Затем мы оснастили ее виртуальными копиями всех используемых нами датчиков и задали им параметры, идентичные характеристикам их реальных прототипов.
Для создания виртуальных полигонов в Gazebo мы используем карты местности, построенные в реальном мире – все объекты расставляются на тех же позициях, что и в реальности. При этом мы переносим в симуляцию: дорожную сеть, знаки дорожного движения, ж/д переезды, светофоры и основных участников дорожного движения – пешеходов и автомобили.
Например, так выглядит модель автополигона, используемая нами для подготовки к квалификации технологического конкурса «Зимний город»:
За время подготовки, виртуальный двойник беспилотного автомобиля многократно преодолевал различные маршруты на виртуальном полигоне.
Если посмотреть на созданный полигон, могут возникнуть несколько вопросов: почему такая низкая реалистичность? Где дома, падающий снег, деревья и т. д.? В данном случае подобные детали являются избыточными и отсутствуют, потому что симулятор должен отражать только те аспекты реального мира, которые наиболее важны для текущей системы ПО. Добавление избыточных аспектов потребовало бы времени существенно большего, чем сэкономленное от использования симулятора. При этом важно помнить, что финальная настройка и испытания проводятся на реальном автомобиле.
Использование симулятора Gazebo дало нам ряд преимуществ в процессе разработки. Тем не менее мы выделили ряд недостатков, которые становятся все более существенными в процессе развития беспилотного автомобиля StarLine. К существенным недостаткам Gazebo можно отнести:
В связи с этим мы планируем сменить используемый симулятор, если к концу года Gazebo останется на прежнем программном уровне.
Также в будущем мы планируем создать полностью автоматическое и непрерывное тестирование всего программного обеспечения умного автомобиля StarLine в симуляции, развернутой на удаленном сервере. Это позволит нарабатывать виртуальные километры для каждой версии ПО и быть уверенным, что каждый разработанный алгоритм был всесторонне протестирован перед внедрением в настоящий беспилотный автомобиль.
GitLab проекта
Instagram
Всякий раз, когда разрабатывается новый алгоритм или модернизируется уже существующий, возникает необходимость его всестороннего тестирования перед использованием на автомобиле в реальных дорожных условиях. Если заранее определено требуемое поведение ПО, то для предварительных испытаний могут быть использованы специальные программные тесты. Однако у них есть несколько существенных недостатков: во-первых, их создание для каждого алгоритма требует существенных временных затрат; во-вторых, они не могут использоваться, если поведение системы строго не регламентировано.
Поэтому для первоначальной проверки исследования и тестирования алгоритмов общепринято использовать симулятор, в котором создается виртуальный двойник беспилотного автомобиля и имитируется его поведение в различных дорожных сценариях.
Помимо этого, использование симулятора дает целый ряд преимуществ:
- сокращается время тестирования разработанного ПО — намного проще запустить симулятор, чем воссоздавать интересующий сценарий в реальном мире;
- появляется возможность проводить испытания в самых маловероятных и трудных дорожных ситуациях без риска для людей или инфраструктуры;
- появляется возможность многократно воспроизводить одну и ту же дорожную ситуацию в одинаковых условиях.
При этом надо понимать, что ключевым недостатком симулятора является невозможность создания полностью реалистичных виртуальных миров. Как следствие, использование симулятора не позволяет полностью заменить испытания на реальном автомобиле, а лишь позволяет сократить их количество.
За последние несколько лет появилось множество открытых симуляторов, разработанных для тестирования ПО беспилотных автомобилей: Gazebo, V-Rep, Webots, LGSVL Simulator, MicrosoftAirSim, CARLASimulator, Deepdrive и многие другие.
Так почему же при таком разнообразии существующих симуляторов мы выбрали именно Gazebo? Все объясняется довольно просто: нам был нужен в кратчайшие сроки простой симулятор, который имеет хорошую интеграцию с ROS и весь необходимый инструментарий для создания виртуальной копии нашего автомобиля. Для решения нашей задачи было необходимо имитировать работу различных датчиков (лидары, камеры, инерциальная навигационная система и т.д.), управление и динамику автомобиля, светофоры и пешеходов. Все это присутствовало в Gazebo в виде плагинов.
Для создания виртуального дублера беспилотного автомобиля мы взяли его 3D-модель и задали для нее основные кинематические и динамические параметры – массу автомобиля, сцепление колес, минимальный радиус поворота и т.д. Затем мы оснастили ее виртуальными копиями всех используемых нами датчиков и задали им параметры, идентичные характеристикам их реальных прототипов.
Для создания виртуальных полигонов в Gazebo мы используем карты местности, построенные в реальном мире – все объекты расставляются на тех же позициях, что и в реальности. При этом мы переносим в симуляцию: дорожную сеть, знаки дорожного движения, ж/д переезды, светофоры и основных участников дорожного движения – пешеходов и автомобили.
Например, так выглядит модель автополигона, используемая нами для подготовки к квалификации технологического конкурса «Зимний город»:
За время подготовки, виртуальный двойник беспилотного автомобиля многократно преодолевал различные маршруты на виртуальном полигоне.
Если посмотреть на созданный полигон, могут возникнуть несколько вопросов: почему такая низкая реалистичность? Где дома, падающий снег, деревья и т. д.? В данном случае подобные детали являются избыточными и отсутствуют, потому что симулятор должен отражать только те аспекты реального мира, которые наиболее важны для текущей системы ПО. Добавление избыточных аспектов потребовало бы времени существенно большего, чем сэкономленное от использования симулятора. При этом важно помнить, что финальная настройка и испытания проводятся на реальном автомобиле.
Использование симулятора Gazebo дало нам ряд преимуществ в процессе разработки. Тем не менее мы выделили ряд недостатков, которые становятся все более существенными в процессе развития беспилотного автомобиля StarLine. К существенным недостаткам Gazebo можно отнести:
- ошибки в работе вертикальных лучей 3D-лидаров при их расчете на видеокарте;
- отсутствие инструментария для автоматической генерации городской инфраструктуры и дорожных сценариев;
- низкая реалистичность имитации динамики автомобиля;
- низкая фотореалистичность;
- отсутствие имитации погодных условий.
В связи с этим мы планируем сменить используемый симулятор, если к концу года Gazebo останется на прежнем программном уровне.
Также в будущем мы планируем создать полностью автоматическое и непрерывное тестирование всего программного обеспечения умного автомобиля StarLine в симуляции, развернутой на удаленном сервере. Это позволит нарабатывать виртуальные километры для каждой версии ПО и быть уверенным, что каждый разработанный алгоритм был всесторонне протестирован перед внедрением в настоящий беспилотный автомобиль.
GitLab проекта