Дополнение к Litchi
- суббота, 16 ноября 2024 г. в 00:00:06
Почитав эту статью: https://habr.com/ru/articles/684858 (особенно заинтересовали Waypoints) и обзаведясь коптером DJI, пришел к выводу - да, классно, здорово, но не удобно. Если стоит задача облететь и снять видео поля площадью пару десятков гектаров, то ставить ручками точки маршрута не очень удобно. Занимает много времени.
Согласитесь не очень продуктивно?! А хочется просто отрисовать прямоугольник и чтобы в нем сгенерировался маршрут. Пытаясь найти более оптимальную программу наткнулся на программу Dji TERRA. Но она платная, так еще не все коптеры поддерживают эту программу. Только определенные линейки. А на вопрос к поддержке Litchi: "Как можно сделать мою хотелку?!)" На что ответили, что в ближайшие несколько месяцев они планируют внедрить этот функционал. Что-ж, я терпеливый, готов подождать, но не долго. Поскольку ждать и ничего не делать это скучно я решил попробовать сам.
Используя библиотеку folium за основу, языки Python, JS и в помощь HTMl и CSS получилось небольшое дополнение. Функционал таков: я отрисовываю прямоугольник, в нем генерируются Waypoints, все сохраняю в CSV и импортирую в Litchi.
было бы видео, но я не знаю, как сюда видео прикреплять. функционал у приложения простой: я выбираю место на карте, нажимаю на кнопку "Отрисовать прямоугольник" и вот результат. В отрисовованном прямоугольнике появляются сгенерированные точки, с маршрутом по которому будет летать коптер
Теперь к меню:
Здесь все просто. Комментарии ни к чему.
Здесь остановлюсь по подробнее.
Заполняемое окно "Расстояние" - задаю расстояние между точками(линиями)
Заполняемое окно "Высота" - Высота на которой коптер будет лететь.
Пока эти значения применяются ко всему маршруту, т.е. не сможем по середине изменить высоту или расстояние между точками.
Кнопки "Вертикальные" или "Горизонтальные" - выбор каким маршрутом коптер летать будет
Кнопка "Изменить 1 точку" - меняет местоположение 1 точки против часовой стрелки по углам. Т.е. 4 варианта откуда может коптер начать свой облет.
Дальше, если надо редактируем площадь и скачиваем в формате CSV.
И этот CSV спокойно импортируем в Litchi Hub.
Сейчас все настроено так, чтобы на первой точке коптер сначала опускал камеру вертикально вниз и начинал снимать, а на последней прекращал съемку и возвращался домой. и скорость стоит, пока по стандарту - 15м/с. Эти значения можно потом будет поменять и будет потихоньку внедряться по мере свободного времени в данное приложение.
Предстоит обязательно внедрить сюда следующие функции:
Ограничение дальности полета между точками до 1999 метров. Litchi дальше не отправляет коптер по Waypoints.
Сейчас есть загрузка KML. Хочу ограничить облет в рамках границ KML, чтобы коптер лишнее не летал.
Cейчас эта функция реализована в другом коде - при помощи библиотеки Matplotlib.
Конечно, можно еще много функций перенести из Litchi, что я и буду делать, чтоб оставалось только загрузить CSV в Litchi Hub и сохранять у них в облаке. Так же выяснить какую площадь обхватывает камеры определенных коптеров, чтобы можно было делать фотосъемку интервалом - чтобы получить полное изображение поля.
Если есть у кого еще идеи - я прислушаюсь, что можно добавить. И если будет отклик, то могу найти какой-нибудь сервер и выкинуть на пользование в общий доступ.
P.S. Обязательно следите за полетом коптера - все коптеры не хотят облетать препятствие, если используешь Litchi. И если батарейка садится по середине пути, то аппарат не хочет лететь на первую точку, а летит куда-то в стратосферу (у меня рекорд - 500 метров высоты). Поэтому его придется возвращать самостоятельно и начинать по новому с ближайшей точки. Если коптер пролетел без происшествий до последней точки, то он прекращает съемку и возвращается на первую точку.