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

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

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

Этот пример использует виртуальные каналы 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 на другом.