О клиенте
Royal Obidos Spa & Golf Resort, расположенный на побережье Португалии, включает в себя 5-звездочный отель, который обслуживается спа-салоном и конференц-залами, с которыми связан набор апартаментов и 18-луночное поле для гольфа. Шесть лунок поля выходят на лагуну Обидуш, а остальные 12 лунок выходят на Атлантический океан. Компания основана в 2011 и уже более десяти лет предоставляет сервис высочайшего класса для клиентов в одной из самых великолепных локаций Европы.
О проекте
Проект Moses представляет из себя сложный аппаратно-программный комплекс, автоматизирующий работу газонокосилок на гольф-поле. С его помощью, газонокосилки превращаются в автономные беспилотные устройства, выполняющие задачи в автоматическом режиме. Оператор, используя WEB-интерфейс, может в режиме реального времени отслеживать местоположение устройств и создавать так называемые “миссии” – задания на покос травы в определенное время в определенной зоне.
Ключевая идея проекта – предоставить возможность автоматизации обычных, управляемых человеком газонокосилок, без необходимости покупать очень дорогие роботизированные аналоги. На стандартную косилку необходимо установить недорогой комплект оборудования и она превращается в беспилотный аппарат.
Цели проекта
-
Полностью избавиться от человеческого труда для поддержания газона в необходимом состоянии.
-
Повысить лояльность клиентов. Предоставить клиентам сервисное и барное обслуживание прямо во время игры, в любом месте на поле.
-
Снизить стоимость обслуживания газонов.
-
Вывести на рынок новое оборудование, способное усовершенствовать любую газонокосилку до автопилотируемой
Решение
-
Ровер. Это управляемая газонокосилка, у которой есть лезвия, различные датчики и которая может управляться как водителем, так и бортовым компьютером. Наша цель – заставить ровер автоматически выполнять наши команды, отправленные из личного кабинета.
-
Личный кабинет, Frontend. Мы разработали интерактивный веб интерфейс для дистанционного управления газонокосилками (роверами). Сам интерфейс представляет собой высоко детализированную карту, в двух видах: рельеф и фотоплан. Приложение позволяет видеть расположение всех роверов на карте в режиме реального времени, статус их работы, уровень топлива и другую полезную информацию.
Была реализована система уведомлений, которая в реальном времени сообщает оператору о важных событиях, произошедших на поле.
В приложении реализовано расписание миссий (задач на покос травы в определенной области). Оператору достаточно раз в неделю составить расписание для газонокосилок на несколько дней вперед и они автоматически поедут косить траву по сгенерированному маршруту в заданное время, после чего автоматически вернутся в гараж. Для планирования одной миссии оператору достаточно буквально пары минут, так как большинство действий происходит автоматически, в том числе генерация оптимального маршрута внутри выделенной зоны покоса травы.
-
Сеть роутеров. Роверов много, поэтому необходимо уметь дирижировать командами между машинами и серверами. Для этих целей была развернута сеть роутеров, использующих протокол MAVLink для общения с роверами. Они принимают в себя команды с сервера, отправляют их либо на один необходимый ровер, либо на все сразу, используя широковещательные сообщения.
-
Сервер гео-позиционирования. Чтобы обеспечить необходимую точность позиционирования, мы используем специальные наземные станции, значительно повышающие скорость и точность получения координат.
-
Облачный сервер, Backend. C одной стороны этот узел принимает информацию от роверов через технические узлы системы, с другой стороны передает данные клиентским приложениям. С десятков устройств на него поступают сотни пакетов информации каждую секунду. Все они в реальном времени агрегируются, индексируются и размещаются в высокопроизводительной базе данных и предоставляются клиенту уже через несколько миллисекунд. Таким образом, оператор может отслеживать движения роверов на поле практически без задержки.
Проблемы и вызовы
Аппаратные ограничения газонокосилок
Учитывая необходимость работы с обычными газонокосилками, мы не используем комплекс камер, лидары и другое дорогостоящее оборудование. Это позволяет сохранить стоимость комплекта на доступном уровне, но в то же время накладывает некоторые ограничения в работе. К примеру, наши газонокосилки не умеют строить виртуальную карту местности. Это означает, что нам необходимо компенсировать ее отсутствие программными средствами – точным геопозиционированием и точным маршрутом следования, сгенерированным заранее.
Точность GEO-позиционирования до двух сантиметров
Стандартные средства GPS не могут обеспечить точность с погрешностью менее двух метров. Для наших задач погрешность даже в десять сантиметров является недопустимой, так как может привести к авариям и другим нежелательным ситуациям. Нам потребовалось изучить и внедрить технологию RTK (Real Time Kinematic), которая использует помимо спутников наземные базовые станции и обеспечивает сантиметровую точность. Подробный обзор реализации мы сделали в отдельной статье.
Сложные алгоритмы построения маршрута
Оператору достаточно лишь указать зону, которую косилка должна обработать. Оптимальный маршрут движения аппарата строится автоматически и он должен покрыть собой полностью всю зону. Учитывая совершенно непредсказуемые формы зон и наличие любого количества препятствий и запретных участков, задача оказалась технически очень сложной. Алгоритм, который мы реализовали, учитывает все конструктивные особенности газонокосилки и местности и позволяет не пропустить ни одного сантиметра поверхности.
Сложная инфраструктура.
Для обеспечения стабильной работы всего комплекса функционирует как минимум шесть узлов, каждый из которых является физическим устройством или сервером. Узлы используют совершенно разные программные средства, операционные системы и реализованы на разных языках программирования.
Обмен данными в реальном времени.
Оператор должен видеть точное местоположение газонокосилки в каждый момент времени и иметь возможность вмешаться за доли секунды, если это необходимо. Для обеспечения этого нам потребовалось наладить обмен данными между всеми узлами системы с задержкой, не превышающей 10 миллисекунд.
Высочайшая стабильность сигнала.
Газонокосилкам необходимо стабильное подключение к серверам для синхронизации своих действий, предоставления актуальной информации оператору и получения от него команд. Учитывая физическое перемещение устройств по большой площади, один беспроводной канал связи не способен обеспечить 100% доступность. Поэтому мы внедрили сразу три. Устройство одновременно поддерживает открытыми каналы связи по 4G, Wi-Fi и радиоканалу. При выходе из строя одного из них, система за считанные миллисекунды переключается на менее быстрый, но более стабильный канал. И даже когда он выйдет из строя – есть гарантированно работающий радиоканал. За последние несколько месяцев доступность устройств, по нашим данным, составляет ровно 100%.
Примеры экранов приложения.
Технологии
- Go
- C++
- PHP 8
- React.js
- Symfony 6
- REST API
- PostgreSQL
- RabbitMQ
- Docker
- Raspberry Pi
- MAVLink, MAVSDK
- RTK
- Traefik
Сотрудничество
2022 – ∞