Optical Flow + MultiWii

omegapraim

В чем проблема сделать так что бы было под углом?, я уже ранее писал что эта штука выше 3х метров работать всеравно откажется т,к, у линзы фокус фиксированный, для такого сенсора еще и автофокус от фотика нужен.

alexmos

Проблема в том что чем выше высота, тем меньший угол мы можем обеспечить. Угол в 10 градусов ничего не даст.
Линзу можно настроить как угодно, можно и на 3 метра. Для такой матрицы глубина резкости будет от 30см и до бесконечности (вспомните камеры сотовых)

alexmos

В общем, заимплементил и потестил. Arducopter так и не расковырял - очень там все сложно сделано, у меня попроще - не более 100 строк кода в сумме.
Работает вроде нормально - тестил в сумерках уже, но тем не менее на высоте от 20см до 10 м работа алгоритма заметна и позиция держится. Сопротивляется небольшому ветру (большого пока не случилось 😃

Исходники на SVN code.google.com/p/multiwii-alexmos/…/browse/?r=17#…

omegapraim

Эхххх хорошо вам есть место где нет людей и открытая площадка((((

Dimm168pin
alexmos:

В общем, заимплементил и потестил. Arducopter так и не расковырял - очень там все сложно сделано, у меня попроще - не более 100 строк кода в сумме.
Работает вроде нормально - тестил в сумерках уже, но тем не менее на высоте от 20см до 10 м работа алгоритма заметна и позиция держится. Сопротивляется небольшому ветру (большого пока не случилось 😃

Исходники на SVN code.google.com/p/multiwii-alexmos/…/browse/?r=17#…

по мне так для удержания позиции это лучше гпс даже в текущем состоянии) тогда gps разве что как failsafe нужен и на больших высотах
, че-то я уже ломанулся заказывать себе такой сенсор)

cylllka
alexmos:

В общем, заимплементил и потестил.

Вот это я понимаю, можно чайку попить и булку слопать пока он висит. А информация для повторения будет доступна? 😒 код и распиновка

ALEXF

Снимаю шляпу очень интересно ,а на какой меге виий?

mahowik

Алексей, снимаю шляпу! 😃

Когда теория срастается с практикой с первых попыток, особенно в таких вещах, то это уже что то сродни гениальности 😉

з.ы. простите за глупый вопрос… а что датчик отдает? скорость перемещения в относительных точках в единицу времени? т.е. чем больше высота, тем больше размер точки и меньше точность?
и как правильно настроить линзу?

alexmos

Спасибо, не ожидал такой реакции 😃 Мод написан just fo fun, пользы не очень много. Локалные данные о положении точнее GPS, но нужно быть реалистом - работать он будет не везде и очень зависит от освещения и качества поверхности.

Распиновка согласно датащиту (www.avagotech.com/docs/AV02-1045EN) Нужны выходы SCLK, SDIO, NCS - можно вешать на любые ноги и прописать в config.h. На NRESET я кинул на +5в, чтобы не заводить его на ардуину.

Кстати можно взять и готовый модуль store.diydrones.com/ProductDetails.asp?ProductCode… по показателям должен работать лучше и оптика получше стоит… Но под него надо код считывания допилить, т.к. возможно и регистры другие и SPI у него по четырем проводам а не по трем.

Код крутится на стандартной ATMEGA 328P (Crius Hobby MWC).

Для настройки линзы я написал тестовый скетч - он делает дамп сенсора и выводит в программку mousecam (не помню где скачал), которую слегка модифицировал для ADNS-5050. Оба во вложении.

mahowik:

з.ы. простите за глупый вопрос… а что датчик отдает? скорость перемещения в относительных точках в единицу времени? т.е. чем больше высота, тем больше размер точки и меньше точность?
и как правильно настроить линзу?

Датчик отслеживает перемещение картинки по его сенсору и увеличивает счетчик в 8-ми битовом регистре. Реальное перемещение определеяется, зная текущее разрешение (750CPI - отсчетов на дюйм), оптическую силу линзы и расстояние до поверхности. Собственно, вот тут все наглядно: code.google.com/p/arducopter/wiki/AC2_OptFlow.

Как настроить - по картинке с камеры… я выложил выше прогу. Можно попробовать и другие фокусные, чем шире - тем большие детали рельефа будут прниматься в рассчет. Потом в кончиге можно подкрутить, я вынес параметр.

OpticalFlow.zip

Dimm168pin
alexmos:

работать он будет не везде и очень зависит от освещения и качества поверхности.

ну с засветами бороться понятно некак, а вот с недосветом думаю банально взять и сделать как в мышах втолкать туда несколько светодиодов с хорошей фокусировкой в точку, на высоте до пары метров думаю будет достаточно, лазером наверно было бы лучше, но слабее значительно и скорее всего из-за того что там эффект кристализации что-ли ( как мелкие точки при рассеивании) будет думать что стоит на месте , если конечно сенсор способен реагировать на такие детали.
смотрю тут store.diydrones.com/ProductDetails.asp?ProductCode…
А модуль объектива от обычной cctv камеры подойдет? там же сток 3,6 мм , чего вполне достаточно должно быть, но есть и шире, по ссылке вроде как оно и есть

upd ))) прочитал
-Includes an 8mm lens which can be replaced, depending on the use requirements
-Standard M12 x 0.5 lens mount

cylllka
Dimm168pin:

если конечно сенсор способен реагировать на такие детали.

Вот с таким разрешением видит сенсор мышки

SovGVD
cylllka:

Вот с таким разрешением видит сенсор мышки

а как сенсор “видит” траву/асфальта и прочие вещи? просто интересно =) мышей дохлых много (механика полетела, а сенсор то живой), прилепить что ли тоже

Dimm168pin
cylllka:

Вот с таким разрешением видит сенсор мышки

тогда пофиг) можно городить десяток лэдов с хорошей фокусировкой на пузо для вечерних полетов и все)

alexmos

В мышках подсветка под сильным углом, и там даже на белой бумаге хорошо работает - выделяется тенями струкутра. В нашем случае подсветка поможет не так сильно, теней не будет от нее… И надо учитывать, что сенсор очень слепой: например поверхность освещенную лампой 60Вт с расстояния 1 м он почти не видит. Есть светодиодные прожекторы мощные, вот типа такого надо ставить и фокусировать линзой в то же пятно что видит сенсор (это примерно 5 на 5 см на расстоянии в 1 метр)

С лазером интересная идея, его можно очень точно сфокусировать. Можно ИК поставить из DVD, он очень мощный. Но, блин, опасно будет с таким коптером рядом находиться 😃

SovGVD:

а как сенсор “видит” траву/асфальта и прочие вещи? просто интересно =) мышей дохлых много (механика полетела, а сенсор то живой), прилепить что ли тоже

На траве думаю будет лучше всего - там много неоднородностей разного размера, так что на любой высоте есть на что “посмореть” 😃 Асфальт с большой высоты уже сольется.

SovGVD
alexmos:

Асфальт с большой высоты уже сольется.

смотря какой =)) много где технологические отверстия в виде ям, так что и с высоты будет неоднородно 😉)

cylllka
alexmos:

И надо учитывать, что сенсор очень слепой

Нужно оптику более светлую. Мелкие линзочки очень мало света пропускают.

mahowik
SovGVD:

прилепить что ли тоже

блин… ну прям хоть ты работу кидай… столко всего хочется покрутить попробовать, а времени зеро…

в ADNS-5050 разрешение выше чем в опт. мышах нижней-средней ценовой категории? И сколько там доставка если брать по ссылке из первого поста?

alexmos
mahowik:

в ADNS-5050 разрешение выше чем в опт. мышах нижней-средней ценовой категории? И сколько там доставка если брать по ссылке из первого поста?

Этих сенсоров навыпускали очень много, ключевые параметры - размер матрицы, поддерживаемые скорости и ускорения. Но большинство на 3.3В работают, 5-ти вольтовых я всего несколько нашел. Вероятность что в мыше будет стоять именно такой как надо очень мала - поэтому заказал в инете у компании Элитан. Что то около 500 р за пару штук с доставкой. Есть и за бугром но там доставка безумная.

alexmos

Ну так то по сонару, чтож не держать если погрешность измерений 0.3см 😃 Ставлю сильный PID и висит как на веревочке.

mahowik
alexmos:

Но большинство на 3.3В работают

если разница только в питании, думаю не страшно если 3.3в, его можно взять с ардуины или платы сенсоров, а LLC на шину желателен, но не обязателен как показала практика работы с I2C датчиками…
другое дело что ADNS-5050 “улучшенный” по параметрам, потому желательно именно его по идее:

  • Отслеживание высокоскоростного движения при скорости до 30 дюймов в секунду и ускорении до 8 G
  • Самонастраивающаяся кадровая частота для оптимальной производительности
  • Встроенный генератор - не требуется вход синхронизации
  • Настраиваемое разрешение от 125 до 1375 знаков на дюйм с шагом 125 знаков на дюйм
  • Используются только 4 конденсатора без транзисторов
  • твои первые тест-полеты действительно впечатлили!