Программа для повышения уровня осведомлённости о опасных участках дороги участников дорожного движения

, МОАУ лицей №97, 10 класс

Введение

Как показывает статистика, количество ДТП в России увеличивается с каждым годом.

Одной из самых распространённых причин возникновения ДТП является неосторожность водителя во время движения. Недостаточная бдительность виновника аварии часто обоснованна малым опытом вождения, часто исходящей из неосведомлённости водителей о потенциально или статистически опасных участках дороги.

Цель: Повысить осведомлённость участников дорожного движения об участках дороги, в которых высока вероятность возникновения ДТП.

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

Основные задачи: Для реализации цели были поставлены следующие задачи:

Реализовать основные функции навигации в приложении

Обеспечить актуальность данных о степени опасности различных участков дорог

Синхронизировать получаемую пользователем информацию с его текущим местоположением

Условно разделить получаемые пользователем данные о ДТП на аварии, произошедшие на дорогах и вне их

Обеспечить доступность для пользователя требуемого объёма информации

Обезопасить использование приложения, сведя к нулю количество визуальной информации, получаемой пешеходом или водителем во время использования

Минимизировать использование интернет трафика приложением

НЕ нашли? Не то? Что вы ищете?

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

Актуальность: Проблема неосведомлённости неопытных водителей играет ключевую роль в большой части ДТП.

Статистические данные: С каждым годом количество ДТП на дорогах России увеличивается. Ниже приведена таблица, в которой показаны статистические данные о ДТП в России за последние 4 года.

Год

Общее количество

Разница с предыдущим годом

Погибло

2012

203 597

3729 ▲

27 991

2011

199 868

437 ▲

27 953

2010

199 431

---

26 567

Опрос: Был проведён опрос, по результатам которого были выведены потенциально опасные участки дорог. На данный момент реализованы:

Крутой поворот – поворот более, чем на 100°

«Слепой поворот» – поворот при ограниченном обзоре

Опасно примыкающие дополнительные дороги – расстояние между поворотом на главную работу и перекрёстком меньше 100м.

Реализация

Было разработано приложение для смартфонов, использующих операционную систему«Android». Приложение является навигатором с возможностью определения степени опасности текущего местоположения пользователя. Для этой цели программа использует данные о ДТП в конкретной зоне за последние 30 дней.

Реализация проекта была выполнена на языке программирования «Java» в связи с поддержкой программ на данном языке устройствами с ОС «Android». На данный момент разработана версия приложения для системы версии 2.2 и выше, в дальнейшем возможна адаптация для иных операционных систем.

В процессе создания приложения были использованы дополнительные средства: библиотеки, распространяемые по лицензии GPL (GeneralPublicLicense), google. maps. api, использование которого является бесплатным.

Разработаны две версии программы: для водителей и для пешеходов, их функционал кардинально различается.

Версия для пешеходов включает в себя следующие основные функции:

Навигация

Определение текущего положения пользователя

Подсчёт количества ДТП вблизи текущего местоположения пользователя (в реальном времени)

Определение вероятности возникновения ДТП на данном участке

Осведомление пешехода исходя из предыдущих пунктов

Навигация: Для осуществления основных функций навигатора приложение использует google. maps. api. По умолчанию программа настроена на отображение снимков со спутника поверх карты, но в настройках пользователь может изменить на отображение схематичной карты для экономии расходуемого навигатором трафика при первом включении. При последующем использовании программа не будет требовать постоянного соединения с интернетом, интернет в дальнейшем может использоваться для периодического обновления данных о последних ДТП.

Определение текущего положения пользователя: С помощью GPS, которую поддерживает большая часть смартфонов, приложение определяет текущее местоположение пользователя.

Подсчёт количества ДТП вблизи текущего местоположения пользователя

Исходя из данных, полученных с помощью GPS и об авариях, произошедших за последний месяц, программа вычисляет вероятность возникновения ДТП в данной точке. На рисунке 1 изображён снимок экрана во время работы программы. На нём представлены обозначения точек ДТП, произошедших в течении последних 30 дней.

C:\Users\Adminator\Pictures\Скрины проекта\Карта_1.PNGC:\Users\Adminator\Pictures\Скрины проекта\Карта_2.PNG

Рис. 1 Рис. 2

На рисунке 2 изображено окно с подробной информацией о ДТП. При нажатии на одну из меток на карте отображается окно с подробной информацией о ней. Описание включает в себя информацию о дате и месте происшествия.

Определение вероятности возникновения ДТП на данном участке:

Степень опасности зоны зависит не только от количества ДТП, произошедших вблизи пользователя, но и от статистических данных населённого пункта, в котором находится пользователь.

Осведомление пешехода:

В зависимости от пользовательских настроек программа может подавать вибро, звуковые, либо графические сигналы, оповещающие пользователя о входе в зону, в которой часто происходят ДТП, помимо сигнала, пользователь будет оповещён при помощи уведомления, отображающегося в верхней части экрана, в уведомлении содержатся подробные данные о текущем местоположении: степень опасности, количество ДТП, произошедших вблизи местоположения пользователя за последние 30 дней.

Версия программы для водителей включает в себя следующий функционал:

Условное разделение дорог на зоны

Определение принадлежности точек, обозначающих ДТП зонам

Обработка исключений

Определение текущего местоположения пользователя

Вычисление возможных вариантов дальнейшего движения

Определение потенциально опасных участков дороги, учитывая дальнейшие возможные варианты движения

Определение степени аварийной опасности в каждой найденной зоне

Вывод данных

Условное разделение дорог на зоны

Приложение включает в себя базу данных, задающую расположение дорог в каждом из городов, поддерживаемых программой. База включает себя массив конструкций, состоящих из восьми пар целых чисел и строки, задающей тип конструкции. Пары чисел условно назовёмU1, U2, L1, L2, R1, R2, D1 и D2.C:\Users\User\Pictures\Безымянный.png

Рис. 3

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

Условно разделим типы конструкций на обычные и кольцевые. Обычные (повороты, развилки и перекрёстки) назовём us1, us2 и us3, кольцевые– rtI, где I–количество дорог, участвующих в кольце (от 2 до 4).

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

us1 (Поворот):

Рис. 4

Для того чтобы задать поворот необходимо 6 точек, пары чисел, задающие точки L1 и L2, остаются нулевыми.

На рисунке 4 показано условное изображение поворота. Заданные точки последовательно соединены, линии C1C2 и C2C3 условноделят дорогу на левую и правую полосу. Точка C1 – центр отрезка D1D2, С2 – отрезка U1U2, C3 – R1R2.

Элемент массива областей, соответствующий повороту хранит функции, задающие 7 прямых. Прямые задаются парами точек: D1 и U1; D2 и U2;D1и D2;R1и R2;U1и R1;U2и R2;D2 и U2;Принадлежность точки области определяется принадлежностью точки соответствующему четырёхугольнику, заданному данными линиями.

us2 (Развилка):

С2

 

С1

 

С3

 

D1

 

D2

 

R2

 

R1

 

U1

 

U2

 
C:\Users\User\Pictures\Безымянный3.png

Рис. 5

Для того, чтобы задать развилку достаточно 6 точек. Пары чисел, задающие точки L1 и L2, остаются нулевыми.

Синие и красные линии на рисунке 5 визуальны. Зелёные – дополнительные.

Допустим, прямаяl1 задаётся точками U1 и U2, l2 –точками R1 и R2, l3 – D1 и D2. Точка С1 образуется пересечением перпендикуляра прямой l1 из точкиU2 и перпендикуляра прямой l2 из точки R1. Аналогично задаются точки C2 и С3. На рисунке 5 развилка задаётся фигурой, заданной красными и синими линиями. В массив областей вносятся прямые, ограничивающие 3 четырёхугольника (С2С3D1D2, U1U2C1C2, R1R2C1C3) и треугольник (C1C2C3).

us3 (Перекрёсток):

D1

 

D2

 

L2

 

L1

 

R2

 

R1

 

U2

 

U1

 
C:\Users\User\Pictures\Безымянный.png

Рис. 6

Для задания перекрёстка необходимо 8 точек. На рисунке 6 показано изображение перекрёстка. Красные и синие линии ограничивают зоны, зелёные являются дополнительными.

Ячейка массива зон, соответствующая перекрёстку включает в себя функции, задающие прямые, ограничивающие четырёхугольники (на рисунке отмечены зелёными линиями).

rt2 (Кольцо, включающее в себя 2 дороги)

L2

 

L1

 

R2

 

R1

 

D2

 

D1

 

U2

 

U1

 
C:\Users\User\Pictures\Безымянный1.png

Рис. 7

На рисунке 7 показано изображение кольца, включающего 2 дороги. Кольцо представляет из себя 2 подобных эллипса с общим центром. Синие и красные линии на рисунке 7 визуальны, зелёные – дополнительные. Дорога условно разделена на левую и правую полосу отрезками, выделенными на рисунке синим цветом, красные линии задают дорогу.

В массив зон включаются функции, задающие окружности и функция прямой, делящей окружности пополам.

Так же программа хранит в себе матрицу смежностей конструкций. Она хранит в себе номера смежных конструкций. Если представить карту дорог в виде графа, то конструкции будут являться вершинами, а дороги – рёбрами.

Исходя из этой матрицы, программа чертит на карте дороги, задавая их двумя линиями, которые включаются в массив зон. Так же в массив зон включаются линии, ограничивающие дорогу в начале и в конце. Помимо 2-х линий, на карте обозначается так же линия, условно разделяющая дорогу на левую и правую полосу.

Определение принадлежности точек, обозначающих ДТП зонам

Исходя из данных, хранящихся в массиве зон, программа определяет принадлежность точек ДТП зонам. Значение переменной веса зоны соответствует количеству ДТП, произошедших в этой зоне. Подводится статистика весов.

Исходя из полученных данных, программа вычисляет степень опасности каждой зоны и на карте выделяет её определённым цветом. Если в данной зоне за последние 30 дней не происходило ДТП, она будет выделена зелёным цветом, иначе – соответствующим цветом в спектре между жёлтым и красным (чем больше ДТП, тем ближе к красному).

Обработка исключений

Если точка ДТП не принадлежит ни одной заданной зоне, она обводится окружностью радиусом 5м. Окружность так же визуально отображается на карте. Если такая окружность пересекается с другой похожей зоной, они объединяются в одну зону, и т. д. Вес этой зоны равен количеству точек ДТП, входящих в неё.

Определение текущего местоположения пользователя

С помощью GPSпрограмма определяет текущее местоположение пользователя, а так же направление движения (исходя из изменения местоположения пользователя)

Вычисление возможных вариантов дальнейшего движения

Исходя из направления движения и текущего местоположения пользователя, программа, исходя из матрицы смежностей конструкций, определяет конструкцию, к которой в данный момент направляется водитель. Исходя из матрицы смежностей, приложение определяет возможные дальнейшие варианты движения пользователя.

Определение потенциально опасных участков дороги, учитывая дальнейшие возможные варианты движения

Исходя из данных о возможных дальнейших вариантах движения, программа вычисляет потенциально опасные участки, к которым может направляться водитель.

Рис. 8

На рисунке 8 изображён пример потенциально опасного поворота, синей точкой обозначено текущее местоположение пользователя. Если дороги пересекаются под углом менее 75°, их пересечение обозначается программой как «крутой поворот».

Определение степени аварийной опасности в каждой найденной зоне

Используя данные статистики конкретного населённого пункта и веса зон, в которые может попасть в ближайшее время пользователь, программа вычисляет степень аварийной опасности в найденных в предыдущем пункте зонах.

Вывод данных

Для удобства использования, программа включает в себя «водительский режим». Этот режим предусматривает появление на экране смартфона виджета, определяющего степень опасности в следующей зоне, обозначающей элемент массива конструкций.

Рис. 9 Рис. 10

На рисунке 8 изображена программа в водительском режиме, виджет можно условно разделить на 5 частей, отвечающих определённые секторы конструкции. На рисунке 9 показано соответствие секторов – дорогам.

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

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

Так же пользователь может включить осведомление голосом. Голос будет осведомлять о близких статистически или потенциально опасных зонах. Например, если пользователь в положении, которое показано на рисунке 8, он будет оповещён фразой «Внимание, крутой поворот направо» при приближении к потенциально опасной зоне.

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

Заключение

Было реализовано приложение для операционных систем «Android» версии 2.2 и выше. Основной целью программы является повышение осведомлённости участников дорожного движения о зонах повышенной аварийности.

В программе реализованы основные функции навигации с помощью google. maps. api.

При каждом подключении к интернету приложение обновляет данные о ДТП.

Пользователь получает лишь необходимый минимум информации.

Реализованы типы оповещений, не отвлекающие водителя от дороги.

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

Перспективы

Программа будет адаптирована для операционных систем, отличных от Android.

База данных будет вынесена из приложения на сервер

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

Habrahabr [Электронный ресурс]: Статья «Пишем своё первое приложение на Android» http://habrahabr. ru/post/109944/ Google. Developers [Электронный ресурс]: Статья «google. maps. api/Buildmapsformobileapps» https://developers. /maps/mobile-apps Статистика ДТП в России за 2012 год, ДТП 2011, 2010, сводки ДТП [Электронный ресурс] http://www. vashamashina. ru/statistics_traffic_accident. html