Приложение Driving Scenario Designer позволяет вам создать ведущие сценарии в интерактивном режиме и сгенерировать синтетические данные о датчике для тестирования ваших автоматизированных ведущих алгоритмов. В ведущих сценариях, которые представляют географические точки, можно добавить датчик, который плавит измерения от инерционной системы навигации (INS) и глобальной навигационной спутниковой системы (GNSS), такие как GPS, и сгенерируйте сплавленные измерения. Можно затем экспортировать эти синтетические инерционные данные о датчике в MATLAB® для последующего анализа.
Чтобы сгенерировать реалистический INS и данные о датчике GNSS из приложения, необходимо использовать дорожную сеть, которая основана на реальном географическом положении. Этот пример использует дорожную сеть, которая импортируется из OpenStreetMap®. Это - та же дорожная сеть, используемая в Импорте Данные OpenStreetMap в Управление примером Сценария.
Откройте приложение Driving Scenario Designer.
drivingScenarioDesigner
На панели инструментов приложения выберите Import и затем OpenStreetMap.
В диалоговом окне OpenStreetMap Import просмотрите этот файл, где
корень вашей папки MATLAB:matlabroot
matlabroot/examples/driving/data/applehill.osm
Файл был загружен с https://www.openstreetmap.org
, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (ODbL), https://opendatacommons.org/licenses/odbl/
.
После того, как вы загрузите файл, раздел Select Roads диалогового окна отображает дорожную сеть для кампуса MathWorks® Apple Hill.
Чтобы сохранить ведущий сценарий простым для этого примера, щелкните, чтобы выбрать только нижний левый дорожный сегмент для импорта.
Нажмите Import. Приложение импортирует дорогу и генерирует дорожную сеть.
Чтобы создать траекторию, которая совместима с INS и показаниями датчика GNSS, траектория должна явиться гладкой с минимальным толчком и никакими разрывами на ускорении. Создайте агента и задайте траекторию, которая идет по дороге.
На панели инструментов приложения выберите Add Actor и затем Car.
На Scenario Canvas щелкните, чтобы добавить автомобиль в правильный конец дороги.
Щелкните правой кнопкой по автомобилю и выберите Add Forward Waypoints. Затем щелкните, чтобы добавить waypoints вдоль дороги. Когда вы добавите последний waypoint, нажмите Enter, чтобы передать траекторию дороге.
При помощи значений траектории по умолчанию автомобиль перемещается на постоянной скорости 30 м/с (приблизительно 67 миль в час) через каждый waypoint. Эта скорость подходит для магистрального сценария, но не для географического положения, используемого в этом примере. Уменьшите скорость автомобиля к 5 м/с (приблизительно 11 миль в час) и задайте более медленные скорости вокруг поворота.
На вкладке Actors слева, в разделе Trajectory, устанавливает Constant Speed (m/s) на 5
. В таблице Waypoints, Speeds, Wait Times, and Yaw приложение уменьшает значения v (m/s) от 30
к 5
.
Для waypoints вокруг поворота уменьшайте значения v (m/s) до 4
. В этой демонстрационной траектории автомобиль замедляется к 4 м/с, когда это достигает waypoint 5, обеспечивает эту скорость через waypoints 6 и 7 и скорости назад до 5 м/с к тому времени, когда это достигает waypoint 8.
Выберите Use smooth, jerk-limited trajectory, который является обязательным параметром для работы с симуляцией датчика INS.
Если вы получаете ошибку, что приложение не может создать сглаженную траекторию, попытаться внести следующие изменения:
Увеличьте расстояние между waypoints, где автомобиль уменьшает скорость (между waypoints 4 и 5 в предыдущем изображении). Расширенное расстояние дает автомобилю больше времени, чтобы замедлиться. Точно так же можно также расширить расстояние между waypoints, где автомобиль увеличивает скорость (между waypoints 7 и 8 в предыдущем изображении).
Уменьшайте значения скорости и проверяйте, что различие в скорости между waypoints не является слишком большим. Используя предыдущее изображение, когда пример, если бы вы задали скорость 10 м/с для последнего waypoint, автомобиль, не имел бы достаточного количества пробела, чтобы ускориться к той скорости от 4 м/с.
Увеличьте значение параметров Jerk (m/s3). Увеличение этого повышения стоимости количество возможных траекторий, которые приложение может вычислить за счет уменьшаемого комфорта для пассажиров - людей.
Смонтируйте датчик INS к автомобилю.
На панели инструментов приложения нажмите Add INS.
На Sensor Canvas щелкните, чтобы добавить датчик INS в предопределенное местоположение Rear Window. Размещение датчика в этом местоположении монтирует датчик в начале координат автомобиля, оборудованного датчиком.
(Необязательно) На вкладке Sensors слева, измените параметры измерения датчика. Например, можно изменить точность рыскания, тангажа, и прокрутить показания или точность положения, скорости и ускоряющего измерения.
Сгенерируйте данные о INS из сценария путем симуляции сценария. На панели инструментов приложения нажмите Run. Bird's-Eye Plot не показывает данных о датчике, потому что приложение не поддерживает визуализацию датчика INS.
Если симуляция запускается слишком медленно, учитывая низкие скорости, используемые в траектории, увеличьте шаг расчета сценария. На панели инструментов приложения нажмите Settings и настройте параметр Sample Time (ms).
Приложение Driving Scenario Designer позволяет вам экспортировать данные из новой запущенной симуляции. Экспортируйте данные о датчике сценария в рабочее пространство MATLAB и просмотрите сгенерированные измерения INS.
На панели инструментов приложения выберите Export и затем Export Sensor Data.
Назовите переменную данных датчика, чтобы быть экспортируемым sensorData
и нажмите OK.
Исследуйте экспортированные данные о датчике. Экспортированные данные являются массивом структур, содержащим положения агента и данные о датчике на каждом шаге времени симуляции. Поскольку сценарий не содержит датчиков, которые производят обнаружения объектов, обнаружения маршрута или облака точек, соответствующие поля структуры являются пустыми массивами. Количество структур, показанных здесь, отличается от номера в вашей экспортируемой переменной.
sensorData
sensorData = 1×89 struct array with fields: Time ActorPoses ObjectDetections LaneDetections PointClouds INSMeasurements
Просмотрите данные для первого измерения INS. Измерения INS хранятся в массиве ячеек структур. Поскольку сценарий содержит только один датчик INS, массив ячеек имеет только одну структуру. Поля структуры измерения INS совпадают с полями, произведенными, когда вы генерируете измерения от insSensor
Система object™. Измерение INS, показанное здесь, будет отличаться от измерения в вашей экспортируемой переменной.
sensorData(1).INSMeasurements{:}
ans = struct with fields: Orientation: [0.5389 0.4500 160.6807] Position: [-48.1293 -72.3647 0.9084] Velocity: [-4.7473 1.6082 -0.0525] Acceleration: [7.0945e-11 2.0255e-10 0] AngularVelocity: [3.0819e-15 -1.5500e-15 -2.4593e-09]
В качестве альтернативы путем выбора Export и затем MATLAB Function из приложения, можно экспортировать функцию MATLAB для репродуцирования сценария и датчика INS в командной строке MATLAB. Датчиком INS, возвращенным этой функцией, является insSensor
Системный объект.