Создайте ведущий сценарий в интерактивном режиме и сгенерируйте синтетические данные о датчике

В этом примере показано, как создать ведущий сценарий и сгенерировать видение и радарные обнаружения датчика из сценария при помощи приложения Driving Scenario Designer. Можно использовать эти синтетические данные, чтобы протестировать контроллеры или алгоритмы cочетания датчиков.

Этот пример показывает целый рабочий процесс для создания сценария и генерации синтетических данных о датчике. В качестве альтернативы можно сгенерировать данные о датчике из предварительно созданных сценариев. См. Предварительно созданные Ведущие Сценарии в Driving Scenario Designer.

Создайте ведущий сценарий

Открыть приложение, в MATLAB® командная строка, введите drivingScenarioDesigner.

Добавьте дорогу

Добавьте кривую дорогу к холсту сценария. На панели инструментов приложения нажмите Add Road. Затем кликните по одному углу холста, расширьте дорогу к противоположному углу и дважды кликните холст, чтобы создать дорогу.

Side-by-side images. In the first image, a dashed line extends from the bottom-right corner of the canvas to the top-left corner. In the second image, the dashed line is replaced by a straight road.

Чтобы сделать дорожную кривую, добавьте road center, вокруг которого можно изогнуть ее. Щелкните правой кнопкой по середине дороги и выберите Add Road Center. Затем перетащите добавленный дорожный центр к одному из пустых углов холста.

Side-by-side road images. In the first image, the middle road center is being dragged down slightly. In the second image, the middle road center is being dragged down even more to form a curved road.

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

Добавьте маршруты

По умолчанию дорога является однополосным и не имеет никаких маркировок маршрута. Чтобы сделать сценарий более реалистичным, преобразуйте дорогу в магистраль 2D маршрута. На левой панели, на вкладке Roads, расширяют раздел Lanes. Установите Number of lanes на [1 1]. Приложение устанавливает параметр Lane Width на 3.6 метры, который является типичной магистральной шириной маршрута.

A curved road with a double-solid line indicating a divided highway.

Белые, серьезные маркировки маршрутов на любом ребре дороги указывают на дорожное плечо. Желтая, двойная серьезная маркировка маршрута в центре указывает, что дорога является двухсторонней дорогой. Смотреть или изменить эти маршруты, из списка Lane Marking, избранного одного из маршрутов и изменять параметры маршрута.

Добавьте барьеры

Чтобы добавить барьеры вдоль ребер кривой дороги, используйте панель инструментов приложения или дорожное контекстное меню. На панели инструментов приложения нажмите Add Actor> Jersey Barrier. Переместите курсор в правый край дороги и нажатия кнопки, чтобы добавить барьер вдоль него. Это также открывает вкладку Barriers на левой панели. Чтобы добавить разрыв 1 м между сегментами барьера изменяют значение свойства Segment Gap (m) во вкладке Barriers к 1.

A curved road with jersey barrier along its right edge

Чтобы добавить барьер поручня для левого края дороги с помощью дорожного контекстного меню, щелкните правой кнопкой мыши на дороге и выберите Add Guardrail> Left edge. Задайте разрыв на 1 м между сегментами барьера для поручня, с помощью свойства Segment Gap (m) во вкладке Barriers.

A curved road with jersey barrier along its right edge and a guardrail along its left edge

Добавьте транспортные средства

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

Добавьте автомобиль, оборудованный датчиком

Чтобы добавить автомобиль, оборудованный датчиком, щелкните правой кнопкой по одному концу дороги и выберите Add Car. Чтобы задать траекторию автомобиля, щелкните правой кнопкой по автомобилю, выберите Add Waypoints и добавьте waypoints вдоль дороги для автомобиля, чтобы пройти. После того, как вы добавите последний waypoint вдоль дороги, нажмите Enter. Автомобиль самовращается в направлении первого waypoint. Для более прекрасной точности по траектории можно настроить waypoints. Можно также щелкнуть правой кнопкой по пути, чтобы добавить новый waypoints.

A blue car with a trajectory that extends to the end of the lane. A triangle on the car points in the direction of the trajectory.

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

Настройте скорость автомобиля. На левой панели, на вкладке Actors, устанавливает Constant Speed на 15 m/s. Для большего количества управления скоростью автомобиля, набор скорость между waypoints в столбце v (m/s) таблицы Waypoints, Speeds, Wait Times, and Yaw.

Добавьте второй автомобиль

Добавьте транспортное средство для датчиков автомобиля, оборудованного датчиком, чтобы обнаружить. На панели инструментов приложения нажмите Add Actor и выберите Car. Добавьте второй автомобиль с waypoints, управляющим в маршруте напротив от автомобиля, оборудованного датчиком и на другом конце дороги. Оставьте скорость и другие настройки автомобиля неизменными.

An orange car added to the opposite lane and opposite end of the road

Добавьте пешехода

Добавьте к сценарию, пешеходный переход дорога. Увеличьте масштаб середины дороги, щелкните правой кнопкой по одной стороне дороги и нажмите Add Pedestrian. Затем чтобы установить путь пешехода, добавьте waypoint с другой стороны дороги.

A pedestrian added to the side of the road

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

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

The "Car (ego vehicle)" option selected from the drop-down list

Например, если автомобили сталкиваются с пешеходом в столбце v (m/s) таблицы Waypoints, Speeds, Wait Times, and Yaw, настройте скорости автомобилей или пешехода. В качестве альтернативы в столбце wait (s) таблицы, устанавливает время ожидания для автомобилей в waypoint, прежде чем пешеход пересечет улицу.

По умолчанию симуляция заканчивается, когда первый агент завершает свою траекторию. Чтобы закончить симуляцию только после, все агенты завершают свои траектории, на панели инструментов приложения, сначала нажимают Settings. Затем установите Stop Condition на Last actor stops.

Добавьте датчики

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

Добавьте камеру

На панели инструментов приложения нажмите Add Camera. Холст датчика показывает стандартные местоположения, в которых можно поместить датчики. Щелкните frontmost предопределил местоположение датчика, чтобы добавить датчик камеры в передний бампер автомобиля, оборудованного датчиком.

The sensor canvas with a camera attached to the front bumper of the ego vehicle.

Чтобы поместить датчики более точно, можно отключить привязывающиеся опции. В нижнем левом углу холста датчика нажмите кнопку Configure the Sensor Canvas.

По умолчанию камера обнаруживает только агентов и не маршруты. Чтобы включить обнаружения маршрута, на вкладке Sensors на левой панели, расширяют раздел Detection Parameters и устанавливают Detection Type на Objects & Lanes. Затем расширьте раздел Lane Settings и обновите настройки по мере необходимости.

Добавьте радары

Привяжите радарный датчик к оставленному передней стороне колесу. Щелкните правой кнопкой по предопределенному местоположению датчика для колеса и выберите Add Radar. По умолчанию датчики, добавленные к колесам, являются ближними датчиками.

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

An animation of the radar sensor being rotated

Добавьте идентичный радарный датчик в переднее правильное колесо. Щелкните правой кнопкой по датчику по оставленному передней стороне колесу и нажмите Copy. Затем щелкните правой кнопкой по предопределенному местоположению датчика для переднего правильного колеса и нажмите Paste. Ориентация скопированного датчика зеркально отражает ориентацию датчика на противоположном колесе.

The sensor canvas with both radar sensors tilted toward the front

Добавьте лидар

Привяжите датчик лидара к центру крыши транспортного средства. Щелкните правой кнопкой по предопределенному местоположению датчика для крыши, сосредотачивают и выбирают Add Lidar.

The sensor canvas with the lidar sensor added to the roof center

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

An zoomed-out view of the sensors. The lidar coverage area encircles the vehicle and the radar and camera coverage areas.

Сгенерируйте синтетические данные о датчике

Чтобы сгенерировать данные из датчиков, нажмите Run. Когда сценарий запускается, Bird’s-Eye Plot отображает данные об облаке точек и обнаружения.

A bird's-eye plot of the scenario

Ego-Centric View отображает сценарий с точки зрения автомобиля, оборудованного датчиком.

An ego-centric view of the scenario

Поскольку вы указали, что датчик лидара, и Ego-Centric View и Bird's-Eye Plot отображает представления mesh агентов вместо представлений кубоида. Датчики лидара используют эти более подробные представления агентов, чтобы сгенерировать данные об облаке точек. Scenario Canvas все еще отображает только представления кубоида. Радар и датчики видения основывают их обнаружения на представлениях кубоида.

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

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

Затем экспортируйте обнаружение датчика:

  • Чтобы экспортировать данные о датчике в рабочее пространство MATLAB, на панели инструментов приложения, выбирают Export> Export Sensor Data. Назовите переменную рабочей области и нажмите OK. Приложение сохраняет данные о датчике, когда структура, содержащая данные о датчике, такие как агент, позирует, обнаружения объектов и обнаружения маршрута на каждом временном шаге.

  • Чтобы экспортировать функцию MATLAB, которая генерирует сценарий и его данные о датчике, выберите Export> Export MATLAB Function. Эта функция возвращает данные о датчике как структуру, сценарий как drivingScenario объект и модели датчика как Системные объекты. Путем изменения этой функции можно создать изменения исходного сценария. Для примера этого процесса смотрите, Создают Ведущие Изменения Сценария Программно.

Сохраните сценарий

После того, как вы сгенерируете обнаружения, нажмите Save, чтобы сохранить файл сценария. Можно также сохранить модели датчика как отдельные файлы и сохранить дорогу и модели агента вместе как отдельный файл сценария.

Можно вновь открыть этот файл сценария из приложения. В качестве альтернативы в командной строке MATLAB, можно использовать этот синтаксис.

drivingScenarioDesigner(scenarioFileName)
Можно также вновь открыть сценарий при помощи экспортируемого drivingScenario объект. В командной строке MATLAB используйте этот синтаксис, где scenario имя экспортируемого объекта.
drivingScenarioDesigner(scenario)
Чтобы вновь открыть датчики, используйте этот синтаксис, где sensors объект датчика или массив ячеек таких объектов.
drivingScenarioDesigner(scenario,sensors)
Если вы разрабатываете ведущий алгоритм в Simulink®, можно использовать блок Scenario Reader, чтобы считать дороги и агентов из файла сценария или drivingScenario возразите в свою модель. Этот блок непосредственно не считывает данные о датчике. Чтобы добавить датчики, которые вы создали в приложении к модели Simulink, сгенерируйте модель, содержащую ваш сценарий и датчики путем выбора Export> Export Simulink Model. В модели сгенерированный блок Scenario Reader читает сценарий, и сгенерированные блоки датчика задают датчики.

Смотрите также

Приложения

Блоки

Объекты

Похожие темы