Этот пример показывает вам, как выполнить приложение прямого предупреждения столкновения (FCW) с датчиком и данными о видении, воспроизводимыми живой по протоколам TCP/IP и CAN FD. Записанные данные из комплекта датчика, смонтированного на тестовом автомобиле, воспроизводятся живые, как будто они проникали через сетевые интерфейсы автомобиля. Vehicle Network Toolbox™ и Instrument Control Toolbox™ обеспечивают эти интерфейсы. Эта настройка используется, чтобы протестировать систему FCW, разработанную, используя функции от Automated Driving Toolbox™. Для помощи с проектированием и разработкой фактических алгоритмов FCW обратитесь к Прямому Столкновению, Предупреждающему Используя пример Fusion Датчика.
Этот пример использует виртуальные каналы CAN FD от Вектора. Эти каналы виртуального устройства доступны с установкой Векторного Установочного пакета Драйвера под эгидой www.vector.com.
Этот пример имеет два первичных компонента:
Передатчик: Отправляет датчик и данные о видении с помощью CAN FD и TCP/IP. Этот фрагмент представляет демонстрационную среду автомобиля. Это воспроизводит записанные заранее данные, как будто это был живой автомобиль.
Получатель: Собирает все данные и выполняет алгоритм FCW и визуализацию. Этот фрагмент представляет компонент приложения.
Выполнить пример, фрагменты передатчика и получателя, запущенные от отдельных сеансов MATLAB. Это реплицирует источник данных, существующий вне сеанса работы с MATLAB, служащего средством разработки. Кроме того, этот пример позволяет вам запускать приложение FCW в нескольких режимах выполнения (интерпретированный и MEX) с различными показателями производительности.
Приложение передачи выполняется через функцию helperStartTransmitter
. Это запускает отдельный процесс MATLAB, чтобы запуститься за пределами текущего сеанса работы с MATLAB. Передатчик инициализирует себя и начинает отправлять датчик и данные о видении автоматически. Чтобы запустить передатчик, используйте команду system
.
system('matlab -nodesktop -nosplash -r helperStartTransmitter &')
Чтобы открыть получение приложение FCW, выполните функцию helperStartReceiver
. Можно нажать START, чтобы начать прием данных, обработку и визуализацию. Можно исследовать функцию helperStartReceiver
, чтобы видеть, как Vehicle Network Toolbox функции CAN FD, Instrument Control Toolbox функции TCP/IP и возможности Automated Driving Toolbox используется друг совместно с другом.
helperStartReceiver('interpreted')
Когда готовый, остановите приложение передатчика с помощью близкой кнопки окна на ее командном окне. Нажмите STOP на получении приложение FCW, и затем закройте его окно также.
Когда получение, приложение FCW останавливается, график, появляется, детализируя показатели производительности приложения. Это показывает время, проведенное, получая данные, обрабатывая алгоритм FCW и выполняя визуализацию. Сравнительное тестирование полезно, чтобы показать части настройки то повышение производительности потребности. Ясно, что значительный фрагмент времени потрачен, выполнив алгоритм FCW. В следующем разделе исследуйте генерацию кода как стратегию улучшать производительность.
Если более быстрая производительность является требованием в вашем рабочем процессе, можно использовать MATLAB Coder™, чтобы сгенерировать и скомпилировать код MATLAB как код MEX. Чтобы создать этот пример как код MEX, используйте функцию helperGenerateCode
. Сборка скомпилирует приложение FCW в MEX-функцию, непосредственно вызываемую в MATLAB.
helperGenerateCode('mex')
Перезапустите приложение передатчика.
system('matlab -nodesktop -nosplash -r helperStartTransmitter &')
Получение приложение FCW может также быть перезапущено. На этот раз с входным параметром, чтобы использовать скомпилированный код MEX, созданный на предшествующем шаге.
helperStartReceiver('mex')
Когда готовый, остановите и закройте передатчик и получающий приложение FCW. Сравнивая график временной зависимости для выполнения MEX к интерпретированному графику режима, вы видите повышение производительности для алгоритма FCW.
Пример использует одиночный компьютер, чтобы моделировать целую систему с виртуальной возможностью соединения. По сути, его производительность предназначается как приближение. Можно также выполнить этот пример с помощью двух компьютеров (один как передатчик, один как получатель). Это представляло бы больше действительного живого сценария данных. Чтобы достигнуть этого, можно сделать простые модификации к примеру кода.
Изменение коммуникации CAN FD с виртуального на физические устройства требует, чтобы редактирование передачи и кода приема вызвало canChannel
с помощью аппаратного устройства вместо виртуальных каналов. Вы, возможно, также должны изменить вызов configBusSpeed
в зависимости от возможностей оборудования. Эти вызовы найдены в helperStartReceiver
и функциях dataTransmitter
примера.
Изменение коммуникации TCP/IP для нескольких компьютеров требует корректировки адреса TCP/IP передатчика от локального хоста (127.0.0.1) к статическому значению (192.168.1.2 рекомендуемых). Этот адрес установлен сначала на компьютере передачи хоста. После, измените переменную tcpipAddr
в функции helperStartReceiver
, чтобы соответствовать.
После того, как сконфигурированный и соединенный физически, можно запустить приложение передатчика на одном компьютере и приложение FCW на другом.