Интерес к технологии дронов продолжает расти, а вместе с ним расширяется и свободный проект Dronecode, имеющий статус Collaborative Project организации Linux Foundation. Dronecode стартовал в октябре 2014 г. и с тех пор значительно разросся — число его участников к настоящему времени выросло до 51.
На сегодняшний день Dronecode вышел за рамки начального создания кода с непонятными последующими перспективами и уже служит базой для многих доступных на коммерческой основе технологий для создания дронов, включая недавно представленный продукт Qualcomm Snapdragon Flight. По словам Криса Андерсона, исполнительного директора компании 3DR и председателя совета директоров Dronecode, первый год существования этого проекта отмечен значительным ростом и развитием.
«Число наших членов примерно утроилось, а свободную платформу Dronecode теперь используют для своих продуктов компании уровня Qualcomm, — сообщил Андерсон. — Нас очень ободряет рост числа участников проекта и образование технических рабочих групп для дальнейшего развития успеха нашей миссии и ускоренного внедрения технологий Open Source для беспилотных летательных аппаратов (UAV)».
Dronecode состоит из многих компонентов, включая код UAV-платформы APM (ArduPilotMega), который внесла в проект 3DR, и, как пояснил Андерсон, реализуется в рамках целого ряда проектов, ориентированных на разные уровни технологического стека — от ОС реального времени (RTOS) и драйверов на нижнем уровне до мобильных и облачных приложений на верхнем уровне. «Но на уровне кода управления полетом Dronecode пока предполагает выбор из двух вариантов этого кода, APM и PX4, — добавил он. — Первый лицензируется по схеме GPL, а второй по схеме BSD (Berkeley Software Distribution)».
GPL (GNU Public License) относится к типу взаимных лицензий, требуя, чтобы разработчики, модифицировавшие код, передавали свои изменения обратно в проект. BSD является более либеральной лицензией Open Source, и требование взаимности в ней отсутствует.
«Цель проекта Dronecode состоит в том, чтобы создать общую платформу, использующую наилучшие практики и технологии Open Source для ускорения внедрения более качественного, недорогого и более надежного свободного ПО для UAV, — рассказал Андерсон. — Единственной унифицированной вещью в проектах Dronecode является совместное использование коммуникационного протокола MAVLink, но на каждом уровне часто присутствует выбор между кодовыми базами вместо единого монолитного стека».
Dronecode Project абстрагирует каждый уровень стека, что обеспечивает повышенную степень модульности и дает возможность по мере необходимости комбинировать проекты верхних и нижних уровней, поскольку они взаимодействуют друг с другом через API-интерфейсы, пояснил Андерсон. Примером того, как все это может работать, является набор средств разработки Dronekit SDK, который скоро станет составной частью Dronecode.
«В конечном итоге мы намерены создать единый инсталляционный файл, который сможет генерировать стек Dronecode путем простого выбора нужных компонентов, отмечаемых флажками», — сказал Андерсон.
Стек Dronecode является комплексным в том смысле, что включает разнообразные технологии от контроля камеры до управления облаком. Поэтому, отмечает Андерсон, работать с Dronecode всегда будет несколько сложнее, чем с какой-либо отдельной программой. Скорее, это похоже на нынешнюю платформу Dronekit — один компонент устанавливается на летательном аппарате, другой на мобильном телефоне, а API-интерфейсы реализуются в облаке.
В рамках проекта Dronecode сейчас начинают свою работу три технических рабочих группы, задачей которых является дальнейшее совершенствование технологии.
По словам Андерсона, «эти технические рабочие группы сформированы с фокусом на разработки в трех конкретных зонах роста для UAV — средства управления камерами и карданными передачами, управление движением в воздухе и аппаратно-программные интерфейсы — с обеспечением стандартизации и интероперабельности технологий. Рабочие группы в проектах Open Source обычно формируются для усиления внимания к критически важным участкам разработок для совершенствования технологии».
Еще одна рабочая группа Dronecode сориентирована на учет правил Федерального управления гражданской авиации США (FAA), которое стремится запретить использование дронов в значительной части воздушного пространства страны. По словам Андерсона, Dronecode Airspace Working Group не ограничивается территорией США и работает над безопасной интеграцией беспилотных аппаратов в глобальное воздушное пространство.
«Нормы FAA относительно регистрации и полетов дронов в первую очередь касаются производителей и операторов, а не разработчиков свободного кода, — пояснил он. — Но поскольку многие корпоративные члены Dronecode являются и производителями, и операторами, они заинтересованы в том, чтобы в программную платформу были интегрированы стандарты безопасности воздушного пространства, что и является миссией Airspace Working Group».