? Проблема: GPS нет, дрейф есть
Представьте: квадрокоптер летает в ангаре, на складе или в квартире. GPS не ловит, а барометр и гироскоп дают дрейф в позиции. Что остаётся?
Оптический поток — камера, направленная вниз, отслеживает движение по текстуре пола. Это работает, но:
При интегрировании скорости накапливается ошибка.
Даже при возврате в начальную точку система продолжает показывать смещение.
Нет механизма сброса дрейфа.
Решения вроде PX4 используют EKF2, но они сложны и требуют точной калибровки. Я захотел что-то проще и понятнее.
? Идея: «верёвочная лестница»
Плюс верёвочной лестницы — ты всегда понимаешь, на какой ступеньке находишься.
Применил это к визуальной навигации:
Стартовая точка — первая ступень.
При удалении — добавляю новые ступеньки (контрольные кадры).
При возврате — если текущий кадр совпадает с какой-то ступенькой — обрезаю всю историю после неё.
Если вернулся к первой ступеньке — система знает: я дома.
? Как это работает
1. Старт
Камера захватывает первый кадр. Извлекаются ключевые точки (через cv2.goodFeaturesToTrack
). Это — нулевая ступень.
2. Движение вперёд
При каждом кадре:
Отслеживаю точки через
cv2.calcOpticalFlowPyrLK
.Сравниваю текущее положение с стартовой точкой.
Если удаляюсь от старта — добавляю новую ступень.
3. Возврат
Если текущий кадр совпадает с промежуточной ступенью — удаляю всё, что после.
? Выход в offsets.json
Система пишет файл, который читает контроллер.
✅ Плюсы:
Простота: только OpenCV и Python.
Нет накопления ошибки при возврате.
Работает без GPS, IMU, LiDAR.
Легко интегрируется.
❌ Минусы:
Требует текстурированной поверхности.
Пока нет поддержки поворота.
Ограничен радиусом видимости точек.
? Код: просто и понятно
Полный код — в репозитории:
? github.com/VohminV/rope-ladder-tracker
Основная логика — в функции rope_ladder_waypoint_management.
? Заключение
rope-ladder-tracker — это новый взгляд на визуальную навигацию: не как на непрерывное интегрирование, а как на структурированное движение по карте.
#беспилотники #opencv #python #компьютерноезрение #квадрокоптер #роутинг #роутингбезgps #rope-ladder-tracker
Комментарии (13)
Plesser
30.07.2025 05:06а что за дрон что ты на нем питон запустил?
ps
кстати dji mini и выше умеют по optic flow прекрасно возвращаться? демонстрировали видео где дрон вылетел из подземного гаража полетал и потом прекрасно вернулся к точке старта.
feat_branch
30.07.2025 05:06Как минимум mini 1 и 2 в такое не умеют, про более новые - не в курсе, их уже не было во владении
pavelsha
30.07.2025 05:06что за дрон что ты на нем питон запустил?
Есть подозрение, что это был виртуальный "Грок-едишн ОпенАИ ЧатГПТ квадрокоптер". И описанное происходило в альфа-версии метавселенной от Meta, которая идёт на смену Horizon Worlds.
З. Ы. По статье видно, что ИскИна в ней было больше, чем человека... Но если я ошибаюсь, то автор придет в комментариях и пояснит
blind_oracle
30.07.2025 05:06Любой колхоз с Raspberry Pi или Nvidia Jetson.
Plesser
30.07.2025 05:06ну вот да, это что то такое должно быть. но я такие решения видел только на том что летает за ленточкой....
тут я семерку то сейчас боюсь поднимать... а тут явно что то сильно больше десятки будет
vvbob
30.07.2025 05:06Думаю что эта тема будет активно развиваться, война как обычно, является сильным катализатором такого рода изысканий.
Grogcm20
30.07.2025 05:06Эту бы функцию да в Герань.
vvbob
30.07.2025 05:06Думаю что там давно что-то подобное есть.
Вообще было-бы интересно узнать подробности как она устроена, особенно в плане управления и прочих автоматических систем, но не думаю что в ближайшие годы мы это узнаем, пока что по понятным причинам это все секретят.
yuriy_milodov
Классная идея. Просто, понятно, работает без GPS. Для indoors — топ, жду поддержку поворотов и улучшений. Спасибо за код!