🚀 Проблема: 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
Источник: https://habr.com/ru/articles/932254/