Научный журнал
Современные наукоемкие технологии
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА IOS ПРИЛОЖЕНИЯ ДЛЯ ОТСЛЕЖИВАНИЯ ДОРОЖНЫХ ВЫБОИН

Васильев М.Д. 1 Охлопкова С.А. 1
1 ФГАОУ ВО «Северо-Восточный федеральный университет имени М.К. Аммосова»
В течение последних лет развитие и совершенствование автомобильных дорог является одним из приоритетных направлений развития Российской Федерации. В рамках национального проекта «Безопасные качественные дороги» увеличились объемы ремонта дорог, строительства новых трасс и участков дорог федерального значения. Согласно опросу ВЦИОМ в декабре 2022 г., более половины респондентов, 54 %, отметили улучшения дорог внутри населенных пунктов, по региональным дорогам этот показатель составил 62 %. Среди лидеров по удовлетворенности качеством и доступностью дорог не оказалось ни одного региона России, находящегося в условиях криолитозоны. В условиях вечной мерзлоты деформация дорожного полотна происходит намного быстрее, и это связано не только с физическими процессами мерзлых грунтов, но и с соблюдением технологий строительства. Особенно актуален вопрос качества дорог внутри населенных пунктов, где больше техногенных воздействий на дорожную инфраструктуру. Данная проблема также обусловлена отсутствием возможности возведения высоких насыпей для строительства дорог внутри городов. Возникает необходимость введения постоянного мониторинга состояния дорожного покрытия. Одним из решений данного вопроса является разработка приложения, способного автоматически выявлять неровности асфальтового покрытия с помощью встроенных датчиков смартфонов. Разработка такого широкодоступного решения позволит экономически эффективно составить актуальную карту состояния автомобильных дорог внутри населенных пунктов.
дорожное покрытие
мониторинг дорог
акселерометр
обнаружение неровностей
динамическая карта
проектирование приложения
мобильное приложение
1. Алтынцев М.А. Исследование результатов обработки полученных различными моделями наземных лазерных сканеров данных для контроля качества ремонта автомобильных дорог // Вестник СГУГиТ (Сибирского государственного университета геосистем и технологий). 2022. № 2. С. 5–17.
2. Васильев М.Д., Дегтярев А.В., Чекуров А.Ю. Применение встроенных датчиков смартфонов для обнаружения и анализа нарушений ровности автомобильных дорог // Современные наукоемкие технологии. 2022. № 12–1. С. 20–25.
3. Забержинский Б.Э., Золин А.Г., Беда Д.А. Разработка алгоритма визуализации и определения характеристик дорожных аномалий для автономных транспортных средств // Современные наукоемкие технологии. 2022. № 4. С. 40–45.
4. Al-Shargabi B., Hassan M., Al-Rousan T. A novel approach for the detection of road speed bumps using accelerometer sensor // TEM Journal. 2020. Т. 9, № 2. С. 469–476.
5. Ванерке А.В., Васильев С.А. Анализ эффективности применения георадаров при обследовании дорожных конструкций // Cовершенствование методологии и организации научных исследований в целях развития общества: сборник статей Международной научно-практической конференции (Новосибирск, 17 июня 2021 г.). Уфа: ОМЕГА, 2021. С. 36–42.
6. Листратенко Я.С., Смяцкий Д.А., Зайцев А.Ю., Курбатов К.А. Использование метода фотограмметрической обработки изображений для определения дефектов поверхности // Высокие технологии и инновации в науке: сборник избранных статей Международной научной конференции (Санкт-Петербург, 28 января 2020 г.). СПб.: ГНИИ «Нацразвитие», 2020. С. 171–174.
7. Охлопкова С.А., Васильев М.Д. Разработка IOS приложения для обнаружения неровностей дорожного покрытия // Современные информационные технологии, инновации и молодежь – «СИТИМ-2023»: материалы Всероссийской студенческой научно-практической конференции с международным участием (Якутск, 27–29 марта 2023 г.). Ульяновск: Зебра, 2023. С. 70–73

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

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

Другим методом для обнаружения неровностей дорожного покрытия является использование различных аппаратных средств. В исследовании [1] заключается, что технология лазерного сканирования поверхности обладает высокой точностью, что делает ее хорошо подходящей для оценки ровности дороги, помогая определить участки, требующие обслуживания.

Использование акселерометров и их наличие в мобильных устройствах делает такой способ для обнаружения неровностей дорожного покрытия наиболее доступным. Исследования [2–4] показали перспективные результаты относительно способности смартфона точно распознавать неровности дорожного покрытия с помощью данных акселерометра. Однако факторы, такие как размещение и ориентация мобильного устройства, могут влиять на точность измерений акселерометра.

Еще одним эффективным методом обнаружения неровностей дорожного покрытия является использование георадара. Георадар работает путем излучения электромагнитных импульсов в землю и измерения отраженных сигналов, которые отталкиваются от подповерхностных слоев. Анализируя эти отражения, можно определить наличие трещин, пустот и других неровностей [5].

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

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

Можно выделить следующие характеристики для сравнения существующих методов обнаружения неровностей дорожного покрытия: Используемая технология/методика; Необходимость в дополнительном оборудовании; Стоимость; Точность результатов; Потенциал масштабируемости.

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

Целью данной работы является разработка клиентской части iOS-приложения, использующего акселерометр и GPS мобильных устройств, для обнаружения неровностей дорожного покрытия.

Для достижения цели поставлены две основные задачи: 1) обоснование выбора инструментов разработки; 2) проектирование и тестирование приложения по обнаружению неровностей дорожного покрытия на заранее выбранных участках.

Инструменты разработки

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

Для нативной разработки программ на платформе iOS основными языками программирования являются Objective-C и Swift. Выбор Swift обусловлен его повышенной производительностью и безопасностью. Использование опционалов и вывод типов позволяет отлавливать ошибки во время компиляции. Также Swift остается актуальным и соответствует последним возможностям операционной системы iOS.

Двумя популярными вариантами интегрированных сред разработки для создания iOS-приложений, поддерживающих язык программирования Swift, являются Xcode и AppCode. Однако с выходом новой версии AppCode 2022.3 компания разработчик JetBrains сообщила в конце 2022 г. о прекращении выпуска продукта и технической поддержки до 31 декабря 2023 г. Официальная IDE Xcode предлагает необходимую функциональность и полный набор инструментов для разработки приложений на iOS.

Для построения пользовательского интерфейса существуют два фреймворка SwiftUI и UIKit. SwiftUI – относительно новый инструмент, выпущенный в 2019 г., из-за чего поддерживается начиная с iOS 13 и выше. В отличие от UIKit, который следует императивному подходу, SwiftUI предоставляет декларативный синтаксис для написания кода. При использовании UIKit есть возможность создавать интерфейсы с помощью конструктора интерфейса Storyboard или программно, без использования Storyboard. Было принято решение использовать UIKit с помощью программного подхода, так как вся логика, связанная с интерфейсом, записывается непосредственно в коде, что облегчает ее понимание, модификацию и контроль.

Тремя основными фреймворками для мобильного приложения на iOS, использующего данные акселерометра и GPS, являются Core Location, Core Motion и Combine. Core Location позволяет получать необходимые данные GPS для отслеживания местоположения и перемещения пользователя. Core Motion предназначен для сбора и обработки данных о движении, полученных с помощью акселерометра устройства. Combine обеспечивает обработку асинхронных событий. В данном случае Combine будет использован для работы с потоками данных, получаемых от Core Location и Core Motion.

При выборе подходящего картографического сервиса для приложения были рассмотрены различные варианты, включая MapKit, Google Maps SDK, Yandex MapKit и 2GIS Mobile SDK. Выбор Google Maps SDK обусловлен широким распространением среди пользователей и разработчиков.

Для установки внешних зависимостей, таких как Google Maps SDK, необходимо выбрать подходящий менеджер пакетов. При разработке iOS-приложений существует несколько популярных менеджеров пакетов, такие как Swift Package Manager (SPM), Carthage и CocoaPods. Официальная документация для Google Maps SDK рекомендует использовать CocoaPods в качестве менеджера пакетов. Соответственно, учитывая, что Google Maps SDK не поддерживает SPM и что Carthage сложен в настройке, выбор был сделан в пользу CocoaPods.

Проектирование приложения

По результатам анализа возможностей встроенных датчиков смартфонов [2] определен набор следующих функциональных требований к мобильному приложению:

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

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

3. Приложение должно работать в фоновом режиме.

4. Приложение должно предоставлять пользователю возможность просматривать карту с неровностями в режиме реального времени во время совершения поездки.

Проект в целом построен по архитектуре «клиент-сервер», где клиентской частью является разрабатываемое iOS-приложение (рис. 1). Клиентская часть приложения использует архитектурный паттерн MVC (Model-View-Controller). Данный паттерн позволяет разделить логику приложения на три ключевых компонента: Модели, Представления и Контроллеры.

Серверный компонент решает такие задачи, как обработка неровностей и их классификация в зависимости от значений и хранение информации в базе данных. Клиентская часть приложения взаимодействует с сервером, используя стандартные методы HTTP, такие как GET и POST запросы.

missing image file

Рис. 1. Шаблон архитектуры приложения

Описание общего алгоритма работы мобильного приложения представлено в работе [7]. Акселерометр измеряет ускорение мобильного устройства в трех проекциях. Когда движущийся автомобиль наезжает на неровность, то происходит сравнение текущего и предыдущего значения акселерометра с привязкой геопозиции. Неровность обнаруживается, если полученное значение больше установленного. Затем данные неровностей отправляются на сервер. В приложении составляется актуальная карта состояния автомобильных дорог. При разработке приложения было использовано 18 различных классов.

Прецедент использования (Use case) должен включать такие действия, как просмотр карты неровностей, предоставление обратной связи и изменение настроек.

Разработка приложения по обнаружению неровностей дорожного покрытия

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

Для работы с данными акселерометра мобильного устройства был создан сервис AccelerometerService, использующий фреймворки CoreMotion и Combine. После проверки доступности датчика и единственности экземпляра сервиса данные акселерометра начинают публиковаться. Интервал обновления для получения данных составляет 0,5 с.

Сервис LocationService предназначен для предоставления доступа к данным геолокации, работы с местоположением и скоростью устройства. При этом используется фреймворк CoreLocation. У сервиса есть 3 объекта-издателя: coordinatesPublisher для публикации координат геолокации, deniedLocationAccessPublisher для отправки статуса разрешения на доступ к геопозиции и speedPublisher для издания значения скорости. Скорость измеряется в метрах в секунду, для удобства следует перевести скорость в километры в час.

За обнаружения неровностей дорожного покрытия и отправки их данных на сервер отвечают два класса BumpManager и BumpWorker соответственно. Здесь реализован алгоритм распознавания выбоин на дорогах. Обработка потока данных позволяет фиксировать неровности (вычисленное значение коэффициента более 1,9) синхронизируя данные по локации и скорости (более 30 км/ч). Если неровность получена, она добавляется в массив и выводится сообщение, указывающее на обнаружение неровности. Когда количество фиксированных неровностей в одном и том же месте достигает определенного количества создается объект класса Bumps.

Для установки необходимых зависимостей проекта с Google Maps использовался менеджер пакетов CocoaPods. Использование фреймворка Google Maps требует генерации API-ключа. За отображение карты и загрузки обнаруженных неровностей из сервера отвечает класс-контроллер MapVC, импортирующий фреймворк GoogleMaps. Загрузка точек на карту и отображение их маркерами различных цветов в зависимости от типа достигается использованием нескольких функций (loadPoints, updateMarkers).

В проекте используется БД Mongo DB. Были созданы два основных вида сущности: Bumps и Points. Первые представляют собой первоначальные данные (грязные), которые после обработки преобразуются в чистые данные – Points. Для обеспечения работы приложения с сервером используются следующие URL:

1. /api/Point/GetPoints. Параметры: latitude, longitude, maxDistance, minDistance. Результат: массив JSON-объектов (список неровностей).

2. /api/Bump/InsertBumps. Параметры: массив JSON-объектов (список неровностей).

3. /api/Review/InsertReview. Параметры: email, phone, name, text.

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

missing image file

Рис. 2. Экраны при первом запуске

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

На главном экране приложения есть две панели вкладок: карта и настройки. На вкладке «Карта» приложения представлена карта, на которой отображены точки неровностей с цветовой градацией. Когда пользователь наезжает на неровность во время движения, на экране появляется toast-сообщение с текстом «Найдена неровность».

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

Для оценки работоспособности и последующей наладки приложения был проведен комплекс тестов с использованием различных моделей iPhone на разных версиях iOS. Приложение было установлено на тестовые устройства через кабельное подключение c запущенной программой Xcode, при котором требовалось разрешение на доверие разработчику. Тестирование проводилось по заранее определенному маршруту в г. Якутске. Результаты показали довольно высокий уровень обнаружения (93 %) и отметки неровностей вдоль дорог, которые были задействованы на маршруте. Точки на карте с цветовой градацией отмечались на местах, принятых предварительно за явные дефекты. Разница в точности определения геолокации неровности в зависимости от модели устройства (iPhone 8 и iPhone 13 Pro) была минимальной.

Заключение

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


Библиографическая ссылка

Васильев М.Д., Охлопкова С.А. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА IOS ПРИЛОЖЕНИЯ ДЛЯ ОТСЛЕЖИВАНИЯ ДОРОЖНЫХ ВЫБОИН // Современные наукоемкие технологии. – 2023. – № 12-1. – С. 16-20;
URL: https://top-technologies.ru/ru/article/view?id=39854 (дата обращения: 08.12.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674