Встроенные системы управления Лекция 2 ВИДЕО В СИСТЕМЕ УПРАВЛЕНИЯ МАРСОХОДОМ SPIRIT-OPPORTUNITY А. Астапкович Государственный университет аэрокосмического приборостроения, СПб, 2012 КОНЦЕПЦИЯ СИСТЕМЫ УПРАВЛЕНИЯ: ЛУЧШЕ ОДИН РАЗ УВИДЕТЬ, ЧЕМ СТО РАЗ УСЛЫШАТЬ ПОДСИСТЕМА НАВИГАЦИИ Состав атмосферы Марса не позволяет построить системы измерения расстояний до препятствий с использованием ультразвука, обеспечивающих необходимую точность При разработке концепции было принято решение строить систему автономного перемещения на основе стерео видеоизображений При этом возникло ограничение на максимально возможную скорость перемещения марсохода, связанное с производительностью бортового компьютера Задача измерения текущего положения робота критически важна для функционирования системы управления в целом СТРУКТУРА ВИДЕОСИСТЕМЫ Оценка ситуации по пути следования использовалась с помощью стереоизображений получаемых с помощью выбранной пары камер. Марсоход имел для этого три типа камер: - две пары камер для отслеживания препятствий (HazCams) - пара поворотных камер для оценки ситуации на маршруте - пара поворотных камер панорамного обзора (PanCam). Видеосистема включала в себя камеру высокого разрешения на манипуляторе робота, которая использовалась для получения детальных снимков геологических структур. Кроме того, на посадочной ступени имелась еще одна камера, которая использовалась при съезде марсохода на поверхность Марса. ПОДСИСТЕМА НАВИГАЦИИ Подсистема навигации по изображениям окружающей местности проводит анализ пути следования на предмет наличия препятствий и определения их параметров. Видеоданные использовались для построения карта возможных путей следования к заданной точке. По этой карте подсистема навигации выбирала оптимальный путь следования, обеспечивающий объезд препятствий. Движение по выбранному маршруту обеспечивалось системой управления движения с анализом текущего состояния марсохода на предмет соответствия критериям безопасности Видеосистема марсохода Параметры камер марсохода Параметр Количество камер Высота Расстояние между камерами Угол зрения Максимальный размер изображения Бит на пиксел Дистанция стереоизображения Управление поворот-наклон Значение NavCam 1 PanCam 1 52 10 152 20 152 28 пара камер cм cм 125 1024*1024 45 1024*1024 18 1024*1024 градус пиксел 12 12 12 0.5-5 2-20 4-70 Нет Есть Есть HazCAm 2 Ед. м Управление камерами система координат камеры система координат робота Система управления перемещениями марсохода и его манипультора строится на использовании видеоизображений. Перемещение по пересеченной местности сильно отличается от идеализированных моделей перемещения по идеально ровной поверхности из-за наличия склонов, неровностей и препятствий. Для решения задач навигации требуется обеспечить возможность управления камерами и решить ряд задач обработки изображений с учетом взаимного положения камер и марсохода. ЗАДАЧА УПРАВЛЕНИЯ ДВИЖЕНИЕМ ЗАДАЧА УПРАВЛЕНИЯ ДВИЖЕНИЕМ Требуется доставить научное оборудование марсохода в точку, представляющую интерес, т.е. переместится из текущей точки А в заданную операторами наземного пульта управления точку В. Выбираемый маршрут следования должен быть безопасным. При этом следует минимизировать требуемые ресурсы, т.е. перемещение должно быть осуществлено за минимально возможное время. ВЫСОКОУРОВНЕВОЕ УПРАВЛЕНИЕ Программа действий на текущие сутки формировалась как последовательность высокоуровневых команд , например : ПРОЕХАТЬ ВПЕРЕД НА 2.3 МЕТРА ПОВЕРНУТЬСЯ НА МЕСТЕ ВПРАВО НА 0.367 рад. ПЕРЕМЕСТИТСЯ В ТОЧКУ (X,Y) СНЯТЬ ЦВЕТНУЮ ФОТО МЕСТНОСТИ В ТОЧКЕ X,Y,Z ВЫБОР МАРШРУТА СЛЕДОВАНИЯ На практике выбор оптимального маршрута требовал учета квази оптимального решения, обеспечивающего наличия марсохода в конечной точке маршрута. Требовалось обеспечить условия для применения научной аппаратуры к выбранному объекту исследований. Требовалось обеспечить: минимально необходимый уровень освещенности панелей солнечных батарей. возможность комфортного использования манипулятора . ИЗМЕРЕНИЕ РАССТОЯНИЙ S1 S2 D f b X1 X2 При движении робота следует учитывать движение камеры относительно объекта наблюдения и влияние перемещения робота на навигационные камеры КАРТА МЕСТНОСТИ ДЛЯ ВЫБОРА МАРШРУТА СЛЕДОВАНИЯ ТРЕБУЕТСЯ ПОСТРОЕНИЕ ТРЕХМЕРНОЙ КАРТЫ УПРАВЛЕНИЕ ДВИЖЕНИЕМ Система управления трехуровневой схеме : движением реализована по уровень низкоуровневых команд; уровень движения по дуге с заданными параметрами; уровень автономного движения в заданную точку. Низкоуровневые команды обеспечивают возможность оператору задать точно на сколько следует повернуть каждое колесо и угол поворота егооси. Уровень низкоуровневых команд обеспечивает возможность реализации операций тестирования и нестандартных операций. РЕАЛИЗАЦИЯ ПЕРЕМЕЩЕНИЙ Движение по дуге является базовым примитивом, из которого формируются все возможные типы перемещений. Движение по прямой или поворот на месте являются частным случаем движения по дуге. Маршрут движения к заданной точке конструировался из дуг, обходящих препятствия. Текущее положение робота оценивалось с помощью инерционной системы навигации Litton LN-200, включавшей в себя 3-D асселерометры и датчики угловых скоростей, а также датчики оборотов колес. На основании этой информации и реализуемой траектории движения вырабатывались команды управления моторами. Эта же информация использовалась в подсистеме обеспечения безопасности движения. Практическая реализация РЕЖИМЫ УПРАВЛЕНИЯ ПЕРЕМЕЩЕНИЯМИ РЕЖИМЫ УПРАВЛЕНИЯ ПЕРЕМЕЩЕНИЯМИ Режим программного управления перемещениями Directed Driving. Режим автономного навигации -Autonomous Navigation AutoNav. При реализации того или иного варианта режима автономной навигации использовался менеджер ограничения активности – Activity Constraint Manager . Базовая функция этого компонента сохранение функциональности марсохода , т.е. проверка противопоказаний к выполнению планируемых операций. НАБОР КОМАНД перемещение без использования автономного анализа на наличие препятствий. перемещения с построением карты проходимости маршрута , но без использования подсистемы объезда препятствий. автономное перемещение с анализом наличия препятствий и использованием подсистемы объезда. автономное перемещение с использованием подсистемы визуальной одометрии. МЕНЕДЖЕР ОГРАНИЧЕНИЯ АКТИВНОСТИ Подсистема проверяет отсутствие противопоказаний к выполнению планируемых операций. К ограничениям этого класса относились: походное положение манипулятора, отсутствие принятых команд, отсутствие ошибок при выполнении предыдущих операций и т.д. Следует подчеркнуть, что при отработке алгоритмов управления движением на Земле не могли быть смоделированы в полном объеме марсианские условия. Соответственно, отработка техники управления велась на протяжении всей миссии. Directed Driving Перемещение по заданной траектории без использования своих возможностей анализа видеоизображения окружающей местности или адаптации способа перемещения к ее особенностям. В этом режиме обеспечивалась максимальная скорость перемещения – до 124 м/час. Этот режим использовали на относительно плоских и чистых участках, полагаясь на подсистему обеспечения безопасности перемещения. Критерием возможности использования этого режима на пути следования являлось отсутствие на траектории движения препятствий с высотой больше чем 20 см Анализ ситуации проводился на Земле, куда передавались изображения с каждой из пар камер. Как правило, для анализа ситуации требовалось от 8 до 12 стереоизображений в направлении движения марсохода. Autonomous Navigation Для более сложных участков, например при перемещении по склонам кратеров или холмов с уклонами 15-30 градусов, по команде оператора осуществлялся переход в режим автономного навигации В этом режиме марсоход мог самостоятельно выбирать путь следования к указанной точке. В результате анализа генерировалась программа действий в виде конкретного набора примитивов, обеспечивающих объезд препятствий. Максимальная скорость перемещения в этом режиме составляла 36 м/час. Реализация сгенерированной программы движения могла выполняться с использованием разных подсистем обеспечения автономного движения. При движении по неровным и песчаным участкам подсистема счисления пути на основе показаний датчиков числа оборотов не обеспечивала объективной информации. Концепция Visual Odometry Знание пройденного пути L от точки А до точки В и углов ά1 и ά2 позволяет оценить минимальное расстояние до препятствия P с помощью даже одной камеры Необходимо учитывать влияние сложного рельефа местности на точность оценки P Dmin D2 D1 ά2 B ά1 L A Можно также оценивать пройденный путь L используя результаты измерений D1 и D2 ; Visual Odometry В этих случаях эта подсистема счисления пути начинала использовать видеоинформацию. Идея алгоритма заключалась в выделении в поле зрения марсохода базового объекта и вычислении смещения относительно его. Так как обработка снимков осуществляется бортовым компьютером с очень скромными по сегодняшним меркам параметрами, то скорость перемещения, по сути дела, ограничивалась этой подсистемой и составляла 10 м/час. По опыту эксплуатации этот подход к построению подсистемы великолепно себя зарекомендовал. Ограничения на скорость перемещения являются недостатками аппаратной реализации этой подсистемы. Структура и принципы построения ПО Структура ПО строились на основе аналогичного и проверенного на практике программного обеспечения для марсохода Mars Pathfinder. Была использована коммерческая операционная система VxWorks компании Wind River. Это система с вытесняющей многозадачностью (preemptive multitasking), которая широко используется в авиакосмической отрасли. Программное обеспечение системы управления марсохода требует 9 Мбайт памяти, из которых 1.4 Мбайта занимает модуль управления перемещениями. Структура и принципы построения ПО Программное обеспечение делится на высокоуровневые объекты. Все электронные устройства марсохода представляютсяь в виде таких объектов. Кроме этого имеются чисто программные объекты для предоставления сервисов. Например, записи телеметрических измерений или сохранения текущего состояния объекта. Каждому программному объекту соответствует нить или задача. Каждый объект имеет собственный массив переменных описания состояния и собственную память, которая принадлежит только ему. Объекты обмениваются информацию посредством сообщений. При этом вся информация содержится в сообщении, т.е. не используются указатели на память задачи. Объекты включают в себя описание в виде машины состояний. Сообщения, получаемые из других задач, могут приводить к изменению состояния объекта. ПРАКТИЧЕСКИЙ ОПЫТ Экспериментальные данные Использование того или иного режима определялись конкретными условиями на маршруте следования Экспериментальные данные ВИДЕО В КАНАЛЕ MAРC-ЗЕМЛЯ ХАРАКТЕРИСТИКИ ПОТОКА Видеоинформация существенным образом использовалась в наземном пункте управления как при планировании исследований ( выбор перспективных для исследования объекта), так и в качестве фактического материала результатов проводимых исследований Видеосистема включала в себя камеру высокого разрешения на манипуляторе робота, которая использовалась для получения детальных снимков геологических структур Видеоинформация существенно больше по объему по сравнению с командной и телеметрической информацией, но она обладает избыточность, что позволяет использовать ее сжатия с целью обеспечения разумного времен на ее передачу в наземный центр управления. Оценка информационных потоков Стандарт CCIR 601 (NTSC , несжатые видеоданные) Разрешение Представление данных Представление пикселя Количество кадров в секунду 720*486*29.97 FPS (кадров в секунду) 8 бит на элемент представляемых данных 4:2:2 (на каждые два горизонтально расположенных пикселя 2 Y : 1 Cr : 1 Cb) 29.97 Оценка информационных потоков Яркость (Y) 720*486*29.97 FPS = 10 486 102.4 байт в секунду Цветность R (Cr) 360*486*29.97 FPS = 5 243 551.2 байт в секунду * 8 бит на байт = 41 948 409. 6 бит в секунду Цветность B (Cb) 360*486*29.97 FPS = 5 243 551.2 байт в секунду * 8 бит на байт = 41 948 409. 6 бит в секунду Сумма 20 974 204.8 байт в секунду = 167 793 638.4 бит в секунду Трафик CCIR601 (NTSC) : около 20 Мбайт/сек или 160.02 Мбит/сек. Представление PAL Способ представления видеоданных PAL, также входит в стандарт CCIR 601; Использует передачу 25 кадров в секунду с 576 горизонтальными линиями; Каждая горизонтальная линия представляется 720 пикселями (Y), плюс 360 пикселов( R-Y), плюс 360 пикселов (B-Y) , что дает 1440 байт на линию; Для представления одного «экрана» ( frame) требуется 1.186 Мбайт; 25 кадров в секунду требует обеспечивать информационный поток 29.663 Мбайта/сек; Алгоритм ICER Применение теории крупномасштабного анализа на практике обеспечивало возможность проведения анализ сцен до получения всего изображения и использовать изображения нужного качества в зависимости от решаемой задачи. Фактически использовалась комбинированная схема с управляемой степенью сжатия. Для реализации сжатия был использован оригинальный алгоритм c пространным названием ICER Progressive Wavelet Image Compression, разработанный сотрудниками JPL. Считается, что это первый случай использования вейвлет преобразований в космической технике. Использованный алгоритм имел много общего использовался метод битовых плоскостей. JPEG2000, в частности, Детали алгоритма ICER A. Kiely, A. Ansar, A. Castano, M. Klimesh, J. Maki A Lossy Image Compression and Stereo Ranging Quality from Mars Rovers IPN Progress Report 42-168 February 15, 2007 Kiely A., Klimesh M. The ICER Progressive Wavelet Image Compressor IPN Progress Report 42(155), November 15, 2003 A. Kiely, M. Klimesh, H. Xie, N. Aranki ICER-3D: A Progressive Wavelet-Based Compressor for Hyperspectral Images IPN Progress Report 42-164 February 15, 2006 ПРИНЦИПЫ СЖАТИЯ ВИДЕОИНФОРМАЦИИ ИЗБЫТОЧНОСТЬ ПРЕДСТАВЛЕНИЯ a) ИСХОДНАЯ КАРТИНКА б) СЖАТИЕ 6: 1 в) СЖАТИЕ 42: 1 г) СЖАТИЕ 222: 1 ПРИНЦИПЫ СЖАТИЯ Сжатие без потерь подразумевает фильтрацию избыточной информации Сжатие с потерями подразумевает отбрасывание малосущественной информации Идея сжатия информации выражается формулой f(x) = Σ Сi ϕi (x) i = 0..N Реализация включает в три этапа: Разложение f(x) по системе заданных базисных функций ϕi (x) Обработка и передача коэффициентов Сi ВОССТАНОВЛЕНИЕ функции f(x) по полученным (считанным) значениям Сi и базисных функций ϕi (x) Требования к базисным функциям Разложение и восстановление требует определенных вычислительных затрат, которые сильно зависят от свойств выбранных базисных функций Требования, предъявляемые к системе базисных функций ϕi достаточно противоречивы Для приложений реального времени (живое видео) существенным является возможность нахождения коэффициентов Сi в темпе поступления исходной информации с учетом реальных ограничений по скорости используемых в системе вычислителей С вычислительной точки ортогональном базисе зрения предпочтительнее разложение в БАЗИС ХААРА Вейвлет-преобразование Хаара Рассмотрим одномерное изображение из 4 пикселов Средние [8 6] [7] Попарное усреднение даст Еще раз усредним Вейвлет-преобразование Хаара W0 V1 V2 F(N) = [ 9 7 3 9] Разности [1 -3] [1] [7 1 1 -3] массива F(N) Вейвлет ХААРА 1 0 ≤ x≤ ½ Ψ(x) = -1 ½ ≤ x ≤ 1 0 Базис ХААРА Ψ j i(x) = Ψ (2j x - i) i= 0..2 j -1 Мeтод блока фильтров - I Тестовое 16 пиксельное БЛОК ФИЛЬТРОВ изображение описывается матрицей F16 1 4 9 10 9 8 7 7 TEST16 7 6 6 6 5 5 5 5 L16 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 k 0 L16 1 k 0 L16 1 ВЕЙВЛЕТ ПРЕОБРАЗОВАНИЕ СOEF = F16* TEST16 10 10 8 6 COEFk 0 4 0 TEST16k 10 2 0 0 5 10 k 15 20 0 5 10 k 15 Функции одномерного базиса ХААРА •Пусть одномерное изображение с числом пикселей 2J есть вектор в VJ; k 0 L16 1 1 • Вектора из VJ описываются в VJ+1, т.е. пространства VJ являются вложенными; F161 k 0.5 0 0 0.5 1 0 5 10 15 •Это свойство ключевой элемент теории крупномасштабного анализа; k 1 1 F162 k 0.50.5 F162 k 0 0 0 0 0.5 0.5 1 01 F163 k 0.5 0 0 0.5 F163 k 0.5 0 0 0.5 0 5 5 k 10 k 10 15 15 1 1 F164 k F164 k 0.5 0 0 0 0.5 F165 k 0.5 0 0 0.5 0 5 k 10 k 0 1 0 10 5 15 5 15 1 10 F165 k F166 k 0 0 0 5 15 k k 1 1 1 1 10 15 k • Следует отмасштабировать 15 к 1 ! k 1 1 0.5 0.5 F167 k 0 0 0.5 1 0 5 10 k 15 0 0.5 1 0 5 10 k 15 Метод блока фильтров -II ВOCCТАНОВЛЕНИЕ : RES = F16 -1 СOEF 10 TEST16i 8 RES0i RES1i RES2i 6 4 RES3i 2 0 0 5 10 i i 0 L16 1 F16 1 i 0 COEF0 1 RES1 RES0 F16 i 1 COEF1 i i RES0 i RES2 RES1 F16 1 i 2 COEF2 F16 1 i 3 COEF3 RES3 RES2 F16 1 i 4 COEF4 F16 1 i 5 COEF5 i i i i 15 Двумерный Базис Хаара LL,HL,LH,HH Haar компоненты a b c d (a+b+c+d)/4 (a-b+c-d)/4 (a+b-c-d)/4 (a-b-c+d)/4 LL LH HL HH MASTER_PIC MH1 Пример сжатия изображения a) ИСХОДНАЯ КАРТИНКА б) СЖАТИЕ 6: 1 в) СЖАТИЕ 42: 1 г) СЖАТИЕ 222: 1