Разработка проведена в рамках программы стратегического академического лидерства «Приоритет 2030». Статья с результатами исследования была представлена на всероссийской студенческой научно-технической конференции «Автоматизированные системы управления и информационные технологии».
Проблема неточности определения местоположения на стороне пользователя проявляется тем, что реальные координаты объекта отличаются от тех, которые отображаются на экране. Из-за этого может возникнуть множество негативных ситуаций. Например, при позиционировании местонахождения автобуса на карте будут отображаться устаревшие сведения, а затем при получении актуальных данных окажется, что он уже проехал необходимую остановку. Чтобы этого избежать, сервисы отображения используют различные методы компенсации задержек, но в их основе лежат лишь прогнозируемые значения, то есть модель может не сработать, если транспорт свернет в сторону или на его пути встанет какая-либо помеха.
«В основе действующих методов отображается только последнее полученное местоположение объекта. Это влечет за собой ситуацию, при которой различие фактических данных и координат на клиенте может быть значительным. Предлагается использовать две последние точки местоположения объекта, что поможет вычислить вектор его направления и, тем самым, еще больше компенсировать задержки», — рассказывает кандидат технических наук, доцент кафедры «Информационные технологии и автоматизированные системы» ПНИПУ Александр Петренко.
Для вычисления координат разработчики запрограммировали алгоритм на псевдоязыке, который включает в себя: текущее и новое местоположение, задержку между ними и другие значения. Модель гораздо точнее определяет правильное нахождение, например автобуса на стороне пользователя при минимальном использовании ресурсов. Также разработчики создали игру, которая помогла оценить эффективность созданного алгоритма.
«Для получения результатов и оценки эффективности внедрения методов сглаживания задержки разработана многопользовательская двухмерная игра с использованием движка Godot. В ней сервер отправляет координаты персонажа двум клиентам с периодичностью три раза в секунду. На первом пользователе применяется разработанный алгоритм, где местоположение персонажа выставляется при каждом обновлении со стороны сервера. На втором, реализована линейная интерполяция и прогнозирование с обычным методом.
Результаты показали, что модель для определения местоположения привела к увеличению средней точности на 36 процентов относительно исходных методов без сглаживания задержек, при минимальном использовании ресурсов на стороне клиента. Также рассмотрен вариант прямолинейного движения игрового персонажа, в роли которого может выступать, например трамвай. В сценарии точность координат на клиенте увеличивается до трех раз», — говорит Матвей Богданов, студент кафедры «Информационные технологии и автоматизированные системы» ПНИПУ.
Алгоритм, созданный разработчиками ПНИПУ, может быть использован в приложениях на стороне клиента, например в GPS-навигаторах, онлайн-картах с отображением автотранспорта, а также многопользовательских онлайн-играх, таких как Dota2 или Counter-Strike.