Направьте заявление предупреждения столкновения с CAN FD и TCP/IP

Этот пример показывает вам, как выполнить приложение прямого предупреждения столкновения (FCW) с датчиком и данными о видении, воспроизводимыми живой по протоколам TCP/IP и CAN FD. Записанные данные из комплекта датчика, смонтированного на тестовом автомобиле, воспроизводятся живые, как будто они проникали через сетевые интерфейсы автомобиля. Vehicle Network Toolbox™ и Instrument Control Toolbox™ обеспечивают эти интерфейсы. Эта настройка используется, чтобы протестировать систему FCW, разработанную, используя функции от Automated Driving Toolbox™. Для помощи с проектированием и разработкой фактических алгоритмов FCW обратитесь к Прямому Столкновению, Предупреждающему Используя пример Fusion Датчика.

Конфигурация системы

Этот пример использует виртуальные каналы CAN FD от Вектора. Эти каналы виртуального устройства доступны с установкой Векторного Установочного пакета Драйвера под эгидой www.vector.com.

Этот пример имеет два первичных компонента:

  1. Передатчик: Отправляет датчик и данные о видении с помощью CAN FD и TCP/IP. Этот фрагмент представляет демонстрационную среду автомобиля. Это воспроизводит записанные заранее данные, как будто это был живой автомобиль.

  2. Получатель: Собирает все данные и выполняет алгоритм 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. В следующем разделе исследуйте генерацию кода как стратегию улучшать производительность.

Выполните прямую систему оповещения столкновения (режим MEX)

Если более быстрая производительность является требованием в вашем рабочем процессе, можно использовать 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 на другом.