Decentralized Aviation Administration on Ethereum network. Финальный тест и отчет.

Это видео демонстрирует работу полностью автоматизированной администрации, обеспечивающей безопасное движение беспилотных летательных аппаратов на контролируемой территории. Это финальный эксперимент перед запуском проекта «drone-employee.com»

Расширение DAO, позволяющее администрировать полеты на заданной территории. Это решение даст возможность выделять запретные зоны для полетов, содержит необходимые инструменты для регистрации полетных коридоров дронами, а также образ «IoT-computer» для интеграции дрона с данным решением.

Для кого данное решение будет полезным:

  1. Владельцев бизнеса, заинтересованных в обеспечении безопасного использования множества летательных аппаратов на определенной территории.
  2. Государственных учреждений, в задачи которых входит обеспечение безопасности запуска дронов на контролируемой территории.
  3. Туристических зон, имеющих сложность в контролировании полета дронов в воздушном пространстве.
  4. Учебных заведений, для обучения студентов созданию парка дронов.
  5. Общественных организаций для самостоятельного обеспечения безопасности запуска полетов.
https://www.faa.gov/uas/b4ufly/ — B4UFLY is an easy-to-use smartphone app that helps unmanned aircraft operators determine whether there are any restrictions or requirements in effect at the location where they want to fly.Key features of the B4UFLY app include:

  • A clear «status» indicator that immediately informs the operator about their current or planned location. For example, it shows flying in the Special Flight Rules Area around Washington, DC is prohibited
  • Information on the parameters that drive the status indicator
  • A «Planner Mode» for future flights in different locations
  • Informative, interactive maps with filtering options
  • Links to other FAA UAS resources and regulatory information

Общая схема работы децентрализованной авиационной администрации.

Объект схемы Краткое описание Подробнее
Топографические данные Топография местности на которой планируется использовать систему. Грубо говоря высотная карта. Набор высокоточных карт имеется на http://opentopography.org. http://opentopo.sdsc.edu/datasets
Сервер карты OctoMap  Библиотека для ROS используется для хранения и построения карты. https://octomap.github.io/
Детектор столкновений FCL Библиотека детектирования столкновений трехмерных объектов в пространстве. Используется на этапе построения пути методом основанным на деревьях. http://gamma.cs.unc.edu/FCL/fcl_docs/webpage/pdfs/fcl_icra2012.pdf
Планирование движения дрона OMPL Открытая библиотека с хорошим набором алгоритмов планирования движения и прекрасной реализацией. http://ompl.kavrakilab.org/

Сценарий для скринкастинга.

Участники эксперимента.

Участник Описание задач ПО, установленное на клиенте Комментарий
User
  1. Нанимает дрона для достижения GPS координат в администрируемом воздушном пространстве.  [Транзакция в сеть Ethereum]
  2. Получает информацию о вылете дрона в место назначения. [Прослушивание Event’a]
  3. Получает информацию о возвращении дрона на базу.   [Прослушивание Event’a]
Клиент сети Ethereum Geth
Drone
  1. Дрон принимает задачи на достижения GPS координат. [Прослушивание Event’a]
  2. Отправляет на базу запрос для расчета коридора полета и согласования с диспетчером. [Транзакция в сеть Ethereum]
  3. Получает разрешение на вылет от диспетчера напрямую.  [Прослушивание Event’a]
Клиент сети Ethereum Geth, ROS
Диспетчер
  1. Обеспечивает безопасность движения БПЛА в заданном полигоне.
  2. Хранит топографические данные местности.
  3. Проверяет возможность выделения коридора по запросу. [Прослушивание Event’a]
  4. Регистрирует коридор за дроном.   [Транзакция в сеть Ethereum]
  5. Снимает коридор полета на основании транзакции от использующего коридор дрона.   [Транзакция в сеть Ethereum]
Клиент сети Ethereum Geth
База дронов
  1. Хранит информацию о дронах, использующих данную базу.
  2. Рассчитывает коридор полета на основе транзакции от дрона с указанием GPS координат точки назначения.  [Вычисления на клиенте]
  3. Отправляет диспетчеру данные коридора полета. [Транзакция в сеть Ethereum]
Клиент сети Ethereum Geth

Smart контракты сети Ethereum.

Название Комментарий
airwayAdmin.sol Новый контракт
dronebase.sol Новый контракт
drone-employee.sol Наш gpsdestination.sol надо переименовать.

Шаги эксперимента.

№ шага Участник Краткое описание Что должны увидеть на UI
Шаг 1 Диспетчер Показываем уже созданную и прогруженную с топографическими данными модель полигона. Модель в окне программы
Шаг 2 User Отправляем транзакцию дрону для отправки его по GPS координатам. Информация о созданной транзакции.Выводим в консоль после того как транзакция замайнилась:«Message from drone employee contract #<адрес контракта в сети>.GPS location received. Waiting for create and approve airway.»
Шаг 3 База дронов Видим event с GPS координатами и начинаем расчет коридора. «Message from drone employee contract #<адрес контракта в сети>.

New request #<ID сметы> for create airway.»
 
Шаг 4 База дронов Данные запрашиваемого коридора отправляются диспетчеру на контракт airwayAdmin.sol Информация о созданной транзакции.«Message from Aviation Administration contract #<адрес контракта в сети>.

New airway for drone employee contract #<адрес контракта в сети> received. Please wait for confirmation.«
Шаг 5 Диспетчер Приходит event, диспетчер просчитывает возможность выделения данного коридора. Записывает себе эти данные и отправляет транзакцию дрону с координатами маршрута коридора. «Message from drone base contract #<адрес контракта в сети>.

Request new airway for drone employee contract #<адрес контракта в сети>.«
 
Шаг 6 Дрон Приходит event, что дрону записан коридор полета и он может вылетать по задаче данного клиента. Дрон взлетает, User видит event, что дрон начал движение. На дроне смотрим записи в массиве карты маршрута, выводим их по строчно в консоль или скриптом сразу все.«Message from Aviation Administration contract #<адрес контракта в сети>.

Airway created, use received checkpoints on your way. Good luck drone employee!«
Шаг 7 Диспетчер Диспетчер накладывает коридор дрона на картинку местности.
Шаг 8 - Шаг 2 — Шаг 7 повторяем для еще двух дронов. Итого должны получиться 3 коридора на карте, у которых нет пересечений в одной плоскости.