Этот пример позволяет вам моделировать совместное воздействие основанного на видении алгоритма восприятия со следующим за маршрутом контроллером.
В этом примере, вас:
Интегрируйте алгоритм управления Simulink®-based, алгоритм восприятия видения MATLAB®-based и фотореалистическую среду на основе Нереального Engine®
Исследуйте эффекты детектора маршрута на следующем за маршрутом управлении
Исследуйте эффект детектора автомобиля при разрядке управления
Алгоритмы управления, используемые в автоматизированных ведущих приложениях, часто разрабатываются и тестируются с моделями Simulink на симуляцию с обратной связью. Симуляция с обратной связью включает динамику аппарата моделирования и вероятностные модели датчика в упрощенной виртуальной среде. Для получения дополнительной информации об этом рабочем процессе смотрите, что Маршрут Следует за Управлением с Fusion Датчика и Обнаружением Маршрута. В том примере контроллер разделен как модель - ссылка, которая поддерживает симуляцию и генерацию кода.
Алгоритмы восприятия в автоматизированных ведущих приложениях часто разрабатываются и тестируются с кодом MATLAB с помощью зарегистрированных данных. Например, основанные на видении алгоритмы восприятия часто разрабатываются и тестируются против записанного видео. Для получения дополнительной информации об этом рабочем процессе смотрите, что Визуальное Восприятие Использует Монокулярную Камеру (Automated Driving Toolbox). В том примере зарегистрированное видео используется, чтобы протестировать алгоритм обработки видения, разделенный как класс MATLAB.
Системные инженеры часто хотят исследовать, как комбинация восприятия и алгоритмов регулятора влияет на производительность системы. Чтобы протестировать интегрирование контроллера с основанным на видении алгоритмом восприятия, интеграция с фотореалистической средой симуляции требуется. В этом примере вы включаете симуляцию уровня системы посредством интеграции с Нереальным Engine. 3-D механизм визуализации требует Windows® 64-битная платформа.
if ~ispc error('Vehicle Dynamics Blockset 3D visualization engine requires a Windows 64-bit platform'); end
Добавьте папку в качестве примера в путь MATLAB®.
addpath(fullfile(matlabroot,'examples','mpc','main'));
Чтобы гарантировать воспроизводимость результатов симуляции, установите случайный seed.
rng(0)
Откройте имитационную модель уровня системы, которая интегрирует алгоритмы управления и восприятия.
open_system('LaneFollowingWithMonoCameraTestBench')
Тестовая модель интегрирует алгоритм управления путем ссылки на модель LFRefMdl
Simulink от Маршрута После Управления с Fusion Датчика и Обнаружения Маршрута. Динамика аппарата также сопоставима с тем примером.
Тестовая модель интегрирует контур маршрута и алгоритм обнаружения автомобиля с помощью блока Vision Perception Algorithm
. Блок Vision Perception Algorithm
основан на docid:driving_examples#mw_b13b3ce9-9de9-4d94-a014-13a01f2ca568 примере. Главной разницей от примера является сложение функции обертки, monoSensorWrapper.m
, который упаковывает выходные данные в шины, требуемые LfRefMdl
.
Тестовая модель интегрирует Нереальный Engine с помощью методов, описанных в Опросе Сцены с Примером готовых узлов Камеры и Трассировки лучей (Vehicle Dynamics Blockset), которые включают управление положения автомобиля, оборудованного датчиком и предназначаются для положения автомобиля. Целевое положение автомобиля следует за предопределенным путем. Идеальная камера от Нереального Engine используется в качестве входа к алгоритму восприятия.
Тестовая модель не включает модель датчика для радарных обнаружений. Поэтому блок Zero Radar Detections выводит шину, сопоставимую с нулевыми радарными обнаружениями.
Чтобы видеть эффекты обнаружения маршрута, независимого от поглощения газов автомобиля, отключите целевой автомобиль, затем запустите симуляцию.
set_param('LaneFollowingWithMonoCameraTestBench/Target Vehicle Pose',... 'EnableTargetVehicle','off') sim('LaneFollowingWithMonoCameraTestBench')
Assuming no disturbance added to measured output channel #3. -->Assuming output disturbance added to measured output channel #2 is integrated white noise. Assuming no disturbance added to measured output channel #1. -->Assuming output disturbance added to measured output channel #4 is integrated white noise. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Постройте боковые результаты производительности контроллера.
plotLFLateralResults(logsout)
Для этой симуляции:
Обнаруженный график смещений ответвления контура маршрута показывает боковые смещения для обнаруженных левых и правых контуров маршрутов. Обнаруженные значения близко к истине маршрута, который 4 метра шириной.
Боковой график отклонения показывает боковое отклонение автомобиля, оборудованного датчиком от средней линии маршрута. Боковое отклонение близко к 0, который подразумевает, что автомобиль, оборудованный датчиком тесно следует за средней линией.
Относительный угол отклонения от курса строит относительный угол отклонения от курса между автомобилем, оборудованным датчиком и средней линией маршрута. Относительный угол отклонения от курса очень близко к 0, который подразумевает, что направляющийся угол автомобиля, оборудованного датчиком совпадает с углом отклонения от курса средней линии тесно.
Регулирование углового графика показывает держащийся угол автомобиля, оборудованного датчиком. Держащийся угол достигает устойчивого состояния в течение 2 секунд, и держащаяся угловая траектория сглаженна.
Алгоритм восприятия обнаруживает контуры правильного маршрута, и автомобиль, оборудованный датчиком тесно следует за центром маршрута.
Интеграция с Нереальным Engine позволяет вам управлять положением целевого автомобиля на дороге. Чтобы видеть эффекты обнаружения маршрута с разрядкой управления, включите целевой автомобиль, запустите системную симуляцию и постройте результаты. Симуляция запускается медленнее, чем реальное время, в основном, из-за обработки изображения алгоритмом восприятия.
set_param('LaneFollowingWithMonoCameraTestBench/Target Vehicle Pose','EnableTargetVehicle','on') sim('LaneFollowingWithMonoCameraTestBench')
Assuming no disturbance added to measured output channel #3. -->Assuming output disturbance added to measured output channel #2 is integrated white noise. Assuming no disturbance added to measured output channel #1. -->Assuming output disturbance added to measured output channel #4 is integrated white noise. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Постройте продольные результаты производительности контроллера.
plotLFLongitudinalResults(logsout,time_gap,default_spacing)
Для этой симуляции:
Обнаруженное относительное расстояние, чтобы предназначаться для графика показывает обнаруженное относительное расстояние между целевым ведущим автомобилем и автомобилем, оборудованным датчиком. Обнаруженные значения расстояния являются шумными.
Скоростной график показывает скорости автомобиля, оборудованного датчиком и цель. Из-за шума в обнаружении относительного расстояния, обнаруженная ведущая скорость автомобиля является также шумной. Среднее значение обнаруженной ведущей скорости автомобиля около истины, которая составляет 10 м/с. Далее, чтобы поддержать безопасное расстояние между ведущим автомобилем и автомобилем, оборудованным датчиком, контроллер для автомобиля, оборудованного датчиком может следовать за скоростью набора или привести скорость автомобиля.
Расстояние между эго и целевым графиком автомобилей показывает расстояние между ведущим автомобилем и автомобилем, оборудованным датчиком. Наиболее часто относительное расстояние больше, чем безопасное расстояние.
Ускоряющий график показывает ускорение автомобиля, оборудованного датчиком. Когда относительное расстояние является меньше, чем безопасное расстояние, контроллер замедляет максимум использования, тормозящий (например, от 4 секунд почти до 8 секунд).
Постройте боковые результаты производительности контроллера.
plotLFLateralResults(logsout)
Подобно случаю, когда целевой автомобиль не включен, автомобиль, оборудованный датчиком имеет удовлетворительную боковую производительность. Сложение целевого автомобиля немного влияет на обнаружение контуров маршрута в некоторых условиях. В Обнаруженном графике смещений ответвления контура маршрута скачки в обнаружениях маршрута происходят из-за увеличенного шума при добавлении целевого автомобиля. Учитывая шумные измерения, боковое отклонение (второй график), и относительный угол отклонения от курса (третий график) менее точно сравнительно. Производительность контроллера (нижний график) является удовлетворительной в этом случае также. В реальных приложениях средство отслеживания часто добавляется к обнаружениям маршрута, чтобы компенсировать шум обнаружения.
Этот пример показывает, как включить симуляцию уровня системы средств управления и основанных на видении алгоритмов восприятия путем интеграции основанного на Simulink алгоритма управления (использующий эталонную модель) с контуром маршрута и алгоритмом обнаружения автомобиля с помощью блока Vision Perception Algorithm
. Пример также исследует эффекты уровня системы объединения этих алгоритмов путем симуляции динамики аппарата и восприятия в фотореалистической среде с помощью Нереального Engine.
Удалите папку в качестве примера из пути MATLAB.
rmpath(fullfile(matlabroot,'examples','mpc','main'));