Дипломная (вкр): Разработка системы поддержки водителя на основе одноплатного компьютера в связке с мобильным устройством под операционную систему Android

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Платформа Android предлагает поддержку следующих протоколов:

-       HTTP(S) progressive streaming;

-       HTTP(S) live streaming;

-       RTSP (SDP, RTP).

5.2.1 Progressive streaming

Самый простой способ передачи видео с помощью web-сервера, сводится к скачиванию файла по протоколу HTTP/HTTPS протоколу. Как только будет скачано достаточно данных, воспроизведение файла начнется, но при использовании контейнера MP4, файл должен быть сформирован таким образом, чтобы перед видеоданными располагались метаданные о видео потоке.

Воспроизведение видео с помощью технологии progressive streaming нативно поддерживается Android, таким образом можно без проблем воспроизвести видео с использованием стандартного класса MediaPlayer.

5.2.2 Pseudo streaming

Технология pseudo streaming является расширением предыдущей технологии, и главным ее отличием является перемотка видео еще не к скаченному фрагменту. В таком случае на сервере должны быть учтены временные метки, и с помощью GET-запроса, приложение получало нужный фрагмент видео.

5.2.3 Live streaming

Основная суть протокола заключается в том, что получаемый файл разбивается на небольшие части и объединяются специальным файлом playlist формата m3u8. Передача данных осуществляется также по протоколу HTTP/HTTPS.

При использовании этой технологии не возникает проблем со свободным местом и перемоткой видео, а также появляется возможность выбора качества видео.

Однако, для разбиения файла на фрагменты и создание файла playlist потребуются время, место на диске и ресурсы процессора.

Поддержка Live Streaming присутствует в Android на нативном уровне начиная с версии 3.0.

5.2.4 Real Time Streaming Protocol (RTSP)

Протокол прикладного уровня, предназначенный для работы с мультимедийными данными, который предоставляет возможность удаленно управлять потоком данных с сервера, предоставляет выполнять команды таких как запуск (start), приостановку (pause), и остановку (stop), а также появляется возможность доступа по времени к расположенным на сервере файлам.не требует разбиения файлов на части и формирование файла playlist, в отличии от HTTP Live Streaming,. Все необходимые файлы генерируется и отдаются клиенту на лету. Однако протокол RTSP не может определять способ передачи данных, а делегирует эту обязанность другим протоколам, например RTP.

Для передачи файла по протоколу RTP нужно запустить VLC со следующими параметрами:

vlc -vvv /path/to/”имя файла”.mp4

-sout '#rtp{dst=localhost,port=1234,sdp=rtsp://localhost:8080/”имя файла”.sdp}'

Однако, организовывать отдельный процесс для каждого файла не целесообразно, поэтому можно использовать воспроизведение видео по требованию. Для того чтобы использовать VLC в качестве RTSP сервера для воспроизведения Video On Demand необходимо запустить VLC, с указанием атрибутов Telnet интерфейса и RTSP сервера:

vlc -vvv -I telnet --telnet-password 123 --rtsp-host 127.0.0.1 --rtsp-port 5554

После запуска сервера необходимо произвести его настройку. Удобнее всего это делать с помощью telnet’a, так как это помогает настраивать на лету:

new video vod enabledvideo input /path/to/”Имя файла”

Для воспроизведения видео необходимо запросить его по URL rtsp://localhost:5554/”Имя файла”

При использовании RTSP-сервера для того чтобы добавить или удалить файл на сервере, необходимо обновлять его конфигурацию, используя telnet, однако это сложнее, чем загружать и удалять файлы из каталогов web-сервера.

Воспроизведение видео с использованием данной технологии поддерживается Android нативно. Например с помощью стандартного класса MediaPlayer.

5.2.5 Multicast

Multicast - это форма широковещания, при которой адресом назначения видео является группа.

Некоторые устройства Android не поддерживают Multicast. Большинство устройств поддерживают однако чаще всего он поддерживается, но отключен по умолчанию, чтобы не грузить ресурсы девайса лишней работой.

5.3 Выбор протокола

протокол разработан специально для передачи видео и содержит необходимые инструменты для работы с видео, которые используются в данной работе. RTSP нативно поддерживается Android, поэтому именно он будет использоваться для передачи видеопотока с одноплатного компьютера на мобильное приложение.

5.4 Обзор и анализ инструментов разработки


В разработке под Android существует 2 основных IDE:среда Intellij IDEA, разработанная компанией JetBrains, и Eclipse.

5.4.1 Eclipse

Eclipse - интегрированная среда разработки кроссплатформенных модульных приложений. Поддерживается и развивается Eclipse Foundation. Инструментом сборки проекта является Ant. Eclipse легко настраивается и интегрируется с необходимыми для разработки компонентами, такими как NDK, SDK Android и Java машиной.

5.4.2 Intellij

Более серьезным инструментом разработки является Intellij. Первая версия появилась в 2001 году и сразу обрела популярность, так как это была первая среда для Java с большим набором интегрированных инструментов для рефакторинга, позволяющими программистам быстро реорганизовывать исходные тексты программ. Дизайн среды предоставляет возможность для продуктивной работы программистов, позволяя сконцентрироваться на разработке функциональности, в то время как IDEA берет на себя выполнение рутинных операций.

.4.3 Android Studio

Также существует среда разработки Android Studio (рисунок 25), которая была создана на основе Intellij IDEA в результате сотрудничества компаний JetBrains и Google. Android Studio ориентирована на разработку приложений под Android.

Рис. 25. Среда разработки Android Studio

С каждой новой версией Android Studio добавляются новые функции. На текущий момент доступны следующие функции:

-       Расширенный редактор макетов: способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана, WYSIWYG,;

-       Сборка приложений осуществляется с помощью Gradle;

-       Генерация нескольких .apk файлов и различные виды сборок;

-       Рефакторинг кода;

-       Статический анализатор кода (Lint), который позволяет находить проблемы несовместимости версий, производительности и другое;

-       Встроенный ProGuard и утилита для подписывания приложений;

-       Шаблоны основных компонентов и макетов Android;

-       Встроенная поддержка GCP (Google Cloud Platform), включающая в себя интеграцию с сервисами App Engine и Google Cloud Messaging.Studio 2.1 поддерживает Android N Preview SDK, а это значит, что есть возможность начать работу по написанию приложения для новой программной платформы.рекомендует именно Android Studio, поэтому данная среда будет использоваться для разработки приложения.

6. Разработка мобильного приложения


Требования к приложению:

-       вывод информации с бортового компьютера

-       вывод распознанных знаков

-       вывод видео с одной выбранной камеры

Интерфейс приложения (Рисунок 26).

Рис.26. Интерфейс приложения

В первом поле выводится информация с бортового компьютера. Во втором поле выводятся распознанные знаки. В третьем поле выводятся видео с четырех камер, расположенных по периметру автомобиля.

При нажатии на изображение с камеры открывается увеличенное видео (Рисунок 27).

Рис.27. Вывод увеличенного видео одной камеры

Для воспроизведения видео используется стандартный инструмент трансляции видео VideoView. С помощью класса MediaController принимается url ссылка на видеопоток, транслируемый одноплатным компьютером по протоколу RTSP.

Заключение


В ходе выполнения работы проведены исследования особенностей поведения водителя за рулём. Проведён анализ и обзор систем помощи водителю, присутствующих на рынке. При создании прототипа устройства была установлена операционная система на одноплатный компьютер, выполнена ее настройка для корректного функционирования подключаемых элементов, разработано серверное приложение на базе библиотеки С++ OpenCV и разработано мобильное приложение для отображения результатов работы системы на экране мобильного устройства.

Работа, выполненная Зерновым С. А.:

-       Проведено исследование протоколов передачи потокового видео;

-       Настроено подключение видеоустройств к системе;

-       Решена проблема интеграции между серверной и пользовательской частью системы;

-       Проведен обзор инструментов для разработки мобильного приложения;

-       Исследованы методы работы библиотеки OpenCV для распознавания знаков;

-       Разработано мобильного приложение для отображения видеопотоков с одноплатного компьютера.

Работа, выполненная Митраховичем А. С.:

-       Исследованы возможные последствия усталости водителя;

-       Рассмотрены известные системы помощи водителю;

-       Выбрана аппаратная основа для реализации системы помощи водителю;

-       Выбрана операционная система для разрабатываемой системы;

-       Реализована установка системы на одноплатный компьютер и настроены системные драйвера и службы;

-       Настроено подключение видеоустройств к системе;

-       Разработано серверное приложение для обработки видеопотоков;

-       Решена проблема интеграции между серверной и пользовательской частью системы.

Список литературы


1.       Документация одноплатного компьютера Cubieboard 3. URL: #"897239.files/image032.jpg">

Код обращения к видеоустройству

Приложение 2

Конфигурация файла /etc/network/interfaces

Приложение 3

Конфигурация файла /etc/hostapd/hostapd.conf

Приложение 4

Ссылка на репозиторий с кодом системы://github.com/schomin/EE4388-LDWS

Источник: https://www.bibliofond.ru/detail.aspx?id=897239