Методика планирования работ по аэрофотосъемке
Добавлено: 23 фев 2010, 21:09
ОБещанное. Методика работы для планирования работ по аэрофотосъемке (АФС).
Все картинки и материалы в архиве ptero-e.rar к посту.
1. Берем любую растровую карту, импортируем ее в GPSMapEdit (очень удобно это делать через OziExplorer) или векторную карту формата img, которая используется в навигаторах Garmin, см. source.jpg в архиве.
2. В программе GPSMapEdit обводим населенные пункты полигоном по контуру или выбираем существующие полигоны населенных пунктов в векторной карте, сохраняем как отдельную карту только с этими объектами, см. objects.jpg или objects.mp. Необходимо также поставить точку старта для решения "задачи коммивояжера" о наиболее коротком пути обхода нескольких объектов.
3. Запускаем программу map2wpt и выбираем необходимые условия съемки 500 масштаба и режимы полета, запускаем программу на выполнение (см. interface500.jpg), получаем для просмотра в GPSMapEdit objects.wpt.mp (см. rezult.jpg). На увеличенном фрагменте rezult500big.jpg видно, как влияет западный ветер со скоростью 7 м/с. Со стороны ветра линии входа на маршрут увеличены, с противоположной укорочены. Длина маршрута (в нижней части интерфейса) почти 102 км.
4. Для примера то же самое сделано для масштаба 1:2000 (interface2000.jpg, rezult2000.jpg). Обратите внимание, насколько уменьшилась длина маршрута, до 46 км с хвостиком.
Также в интерфейсе видны ссылки на каталоги header, extras и footer e2s.fly программы Horizon, использующиеся для формирования итогового полетного файла, готового для загрузки в автопилот Micropilot 2*28mp. Для примера я с помощью симулятора отобразил маршрут полета в программе Horizon (см. Horizon.jpg). Очень легко создать карту для Horizon путем экспорта векторной карты в растровый формат OziExplorer. Из файла *.map можно взять готовые координаты для привязки растрового файла карты в MapSelector в программе Horizon.
В файле fly.jpg выделены строчки, отвечающие за настроенный в VRS файле интегратор. Этот интегратор накапливает расстояние, которое самолет пролетает относительно земли и в соответствии с параметрами продольного перекрытия выдает сигнал в канал рулевой машинки, отвечающей за спуск фотокамеры. Таким образом мы избавляемся от влияния встречного или попутного ветра, который существенно портит режимы съемки, если фотокамерой управлять по времени. Пытались сначала эту штуку сделать в виде tread во fly-файле для Микропилота, но производительности автопилота 2028mp не хватает для работы tread, поэтому путем длительных экспериментов удалось использовать для этого встроенные интеграторы Микропилота.
В логе Микропилота точность определения координат снимка лимитируется частотой записи лога в 0.2 секунды. За это время самолет пролетает около 4-6 м в зависимости от ветра. Плюс еще внутренняя логика работы Микропилота позволяет ему при нехватке вычислительных ресурсов задерживать неважные с его точки зрения процессы. В итоге точность определения координат центра фотографирования оставляет желать лучшего. Выход - ставить на борт нормальный двухканальный приемник. Мы используем Euro-160 компании Topcon. Выводим синхроконтакт для фотовспышки на event-marker приемника. В итоге в постобработке посекундного лога с приемником-базой получаем координаты центров фотографирования с точностью 5 см.
Постараюсь в следующий раз описать итоговые материалы, которые мы сдаем Заказчику. Выложить готовые материалы сейчас не могу, занимают очень много места. Только исходные файлы одного часового полета на масштаб 1:1000 занимают 4.2 гига, это 793 кадра. Итоговая карта получается с величиной пиксела в 7.5 см... Один квадрат 4000х4000 пикселей, т.е. квадраты 300х300 м с привязкой к MapInfo.
Что надо улучшить для производительности:
1. Реальная длина маршрута несколько длиннее расчетной. Надо собрать все логи, провести статистическую обработку и найти поправочный коэффициент на количество поворотов, чтобы расчетная длина маршрута была близка к реальной.
2. На самом деле длина маршрута лишь косвенно помогает найти сколько времени может пролететь самолет. Для этого необходимо провести штурманский расчет и определить время полета в зависимости от скорости и направления ветра. Таким образом можно с достаточно высокой точностью определять предельно возможную длину маршрута и практически исключить ситуацию, когда мы на маршруте видим, что энергии аккумуляторов не хватит и выдаем команду FlyToHome. Это вынуждает повторить полет, отрезая уже выполненную часть маршрута. Да и напрягаешься сильно. Сейчас мы используем аварийный запас по энергии аккумуляторов в 20%. Думаю, что с этим расчетом можно уменьшить эту величину до 10%. Вроде бы незначительное изменение, но при массовых полетах это играет уже большую роль. Хотя на самом деле для нас радикальнее всего повлияло увеличение емкости аккумулятора в 1.6 раза.
Цель: мы хотим добиться того, чтобы комплекс позволял получать результаты в виде ортофотоплана в масштабе 1:2000 со всеми требованиями по точностям и рельефу с максимальной автоматизацией обработки результатов съемки с минимумом наземного обоснования (не более 5 точек на один полет). Для этого не хватает:
1. Абсолютная точность рельефа методом триангуляции по получаемым кадрам не выдерживается. Можно получить только относительную точность. Мы сейчас испытываем лазерный измеритель дальности собственной разработки, который будет одним лучом с частотой 10 Гц измерять расстояние с точностью 0.2 м. Одно из измерений будет одновременно с фотографированием. Так как мы будем знать, до какого пикселя кадра известно расстояние, фактически будет получена сетка рельефа с точностью до каждого кадра. Остальные измерения нужны для исключения ошибок (край крыши, дерево, столб и т.д.). Это позволит решить проблемы с рельефом.
2. Точность обработки. Ну тут непрерывно двигаемся вперед.
Все, больше не могу писать, надо бежать...
Задавайте вопросы, отвечу. Ну и допишу еще позже, что не успел.
Все картинки и материалы в архиве ptero-e.rar к посту.
1. Берем любую растровую карту, импортируем ее в GPSMapEdit (очень удобно это делать через OziExplorer) или векторную карту формата img, которая используется в навигаторах Garmin, см. source.jpg в архиве.
2. В программе GPSMapEdit обводим населенные пункты полигоном по контуру или выбираем существующие полигоны населенных пунктов в векторной карте, сохраняем как отдельную карту только с этими объектами, см. objects.jpg или objects.mp. Необходимо также поставить точку старта для решения "задачи коммивояжера" о наиболее коротком пути обхода нескольких объектов.
3. Запускаем программу map2wpt и выбираем необходимые условия съемки 500 масштаба и режимы полета, запускаем программу на выполнение (см. interface500.jpg), получаем для просмотра в GPSMapEdit objects.wpt.mp (см. rezult.jpg). На увеличенном фрагменте rezult500big.jpg видно, как влияет западный ветер со скоростью 7 м/с. Со стороны ветра линии входа на маршрут увеличены, с противоположной укорочены. Длина маршрута (в нижней части интерфейса) почти 102 км.
4. Для примера то же самое сделано для масштаба 1:2000 (interface2000.jpg, rezult2000.jpg). Обратите внимание, насколько уменьшилась длина маршрута, до 46 км с хвостиком.
Также в интерфейсе видны ссылки на каталоги header, extras и footer e2s.fly программы Horizon, использующиеся для формирования итогового полетного файла, готового для загрузки в автопилот Micropilot 2*28mp. Для примера я с помощью симулятора отобразил маршрут полета в программе Horizon (см. Horizon.jpg). Очень легко создать карту для Horizon путем экспорта векторной карты в растровый формат OziExplorer. Из файла *.map можно взять готовые координаты для привязки растрового файла карты в MapSelector в программе Horizon.
В файле fly.jpg выделены строчки, отвечающие за настроенный в VRS файле интегратор. Этот интегратор накапливает расстояние, которое самолет пролетает относительно земли и в соответствии с параметрами продольного перекрытия выдает сигнал в канал рулевой машинки, отвечающей за спуск фотокамеры. Таким образом мы избавляемся от влияния встречного или попутного ветра, который существенно портит режимы съемки, если фотокамерой управлять по времени. Пытались сначала эту штуку сделать в виде tread во fly-файле для Микропилота, но производительности автопилота 2028mp не хватает для работы tread, поэтому путем длительных экспериментов удалось использовать для этого встроенные интеграторы Микропилота.
В логе Микропилота точность определения координат снимка лимитируется частотой записи лога в 0.2 секунды. За это время самолет пролетает около 4-6 м в зависимости от ветра. Плюс еще внутренняя логика работы Микропилота позволяет ему при нехватке вычислительных ресурсов задерживать неважные с его точки зрения процессы. В итоге точность определения координат центра фотографирования оставляет желать лучшего. Выход - ставить на борт нормальный двухканальный приемник. Мы используем Euro-160 компании Topcon. Выводим синхроконтакт для фотовспышки на event-marker приемника. В итоге в постобработке посекундного лога с приемником-базой получаем координаты центров фотографирования с точностью 5 см.
Постараюсь в следующий раз описать итоговые материалы, которые мы сдаем Заказчику. Выложить готовые материалы сейчас не могу, занимают очень много места. Только исходные файлы одного часового полета на масштаб 1:1000 занимают 4.2 гига, это 793 кадра. Итоговая карта получается с величиной пиксела в 7.5 см... Один квадрат 4000х4000 пикселей, т.е. квадраты 300х300 м с привязкой к MapInfo.
Что надо улучшить для производительности:
1. Реальная длина маршрута несколько длиннее расчетной. Надо собрать все логи, провести статистическую обработку и найти поправочный коэффициент на количество поворотов, чтобы расчетная длина маршрута была близка к реальной.
2. На самом деле длина маршрута лишь косвенно помогает найти сколько времени может пролететь самолет. Для этого необходимо провести штурманский расчет и определить время полета в зависимости от скорости и направления ветра. Таким образом можно с достаточно высокой точностью определять предельно возможную длину маршрута и практически исключить ситуацию, когда мы на маршруте видим, что энергии аккумуляторов не хватит и выдаем команду FlyToHome. Это вынуждает повторить полет, отрезая уже выполненную часть маршрута. Да и напрягаешься сильно. Сейчас мы используем аварийный запас по энергии аккумуляторов в 20%. Думаю, что с этим расчетом можно уменьшить эту величину до 10%. Вроде бы незначительное изменение, но при массовых полетах это играет уже большую роль. Хотя на самом деле для нас радикальнее всего повлияло увеличение емкости аккумулятора в 1.6 раза.
Цель: мы хотим добиться того, чтобы комплекс позволял получать результаты в виде ортофотоплана в масштабе 1:2000 со всеми требованиями по точностям и рельефу с максимальной автоматизацией обработки результатов съемки с минимумом наземного обоснования (не более 5 точек на один полет). Для этого не хватает:
1. Абсолютная точность рельефа методом триангуляции по получаемым кадрам не выдерживается. Можно получить только относительную точность. Мы сейчас испытываем лазерный измеритель дальности собственной разработки, который будет одним лучом с частотой 10 Гц измерять расстояние с точностью 0.2 м. Одно из измерений будет одновременно с фотографированием. Так как мы будем знать, до какого пикселя кадра известно расстояние, фактически будет получена сетка рельефа с точностью до каждого кадра. Остальные измерения нужны для исключения ошибок (край крыши, дерево, столб и т.д.). Это позволит решить проблемы с рельефом.
2. Точность обработки. Ну тут непрерывно двигаемся вперед.
Все, больше не могу писать, надо бежать...
Задавайте вопросы, отвечу. Ну и допишу еще позже, что не успел.