Optical Flow + MultiWii
Пока погода нелетная, решил побаловаться с датчиком Optical Flow. Запаял на куске макетки вот такой чип: ADNS-5050 (www.avagotech.com/pages/en/…/adns-5050/). В общем-то можно было взять любой из оптической мышки, но все что я разобрал, были 3-х вольтовые (надо LLC паять и стабилизатор, а с этим у меня сложности). У этого же 5В питание и 5В логика, и из обвязки нужно только пара конденсаторов. Линзу вытащил из китайской лазерной указки. Если поставить глазок от видеокамеры (5-8мм) будет по идее лучше.
Завел в multiwii, самое интересное что показания идут и довольно точно отслеживает перемещение.
Осталось написать пару формул конвертации с учетом высоты и PID-регулятор 😃
Вопрос: как работать с SPI на ардуине? Я сделал софтовый, там по идее всего два байта на запись и два на чтение на каждый цикл. Есть ли смысл тут что то оптимизировать?
А какое максимальное расстояние на котором работает оптический датчик ?
Понятия не имею… Пока до тестов дело не дошло. Все зависит от контраста и размера деталей рисунка поверхности, на снегу думаю вообще не будет работать, а на разноцветной плитке хоть с 20 метров.
alexmos, В ArduCopter’e смотрели код OptFlow?
Да, глянул пока только считывание с датчика. В остальном что делать понятно, но буду смотреть и там если какие то траблы возникнут.
Так и не понял как там SPI реализован, вроде встроенная библиотека?
Так и не понял как там SPI реализован, вроде встроенная библиотека?
Да, Arduino’вская либа SPI.
Алексей, еще бы предусмотреть вариант выдачи некорректных данных стоило.
А то начнет на неконтрастной поверхности выдавать белиберду - и все, туши свет 😦
Как минимум надо ввести понятие “максимальной скорости”, наверное
Алексей, еще бы предусмотреть вариант выдачи некорректных данных стоило.
А то начнет на неконтрастной поверхности выдавать белиберду - и все, туши свет 😦
Как минимум надо ввести понятие “максимальной скорости”, наверное
А какая польза от этого оптического датчика, на флайменторе например, ну будет он висеть у вас в 3х метрах над землей. 20 метров вряд ли, нужна хорошая разрешающая спасобность датчика и хорошая оптика.
Алексей, еще бы предусмотреть вариант выдачи некорректных данных стоило.
А то начнет на неконтрастной поверхности выдавать белиберду - и все, туши свет
Как минимум надо ввести понятие “максимальной скорости”, наверное
Да, данные могут идти самые разные. Например собственную тень “увидит”, или при вращении он непонятно что выдаст. Я планирую исполовать его только в очень мягком режиме для стабилизации скорости в 0, когда все стики в центре. Т.е. летишь, зарулился - бросил стики, и он постепенно остановился и завис, назависимо от ветра и скорости. Другие применения пока не придумал.
А какая польза от этого оптического датчика, на флайменторе например, ну будет он висеть у вас в 3х метрах над землей. 20 метров вряд ли, нужна хорошая разрешающая спасобность датчика и хорошая оптика.
Согласен польза не ахти какая. Мне просто интересно с ним повозиться. И для новичков (типа меня) думаю полезно будет.
Подскажите применения, может от этого и буду плясать. И неясно пока как он будет работать в реалных условиях.
И неясно пока как он будет работать в реалных условиях.
ардукоптер с ним на асфальте неплохо висел около 30см над землей, в массы врядли пойдет, но just4fun я бы налепил тоже
code.google.com/p/arducopter/wiki/AC2_OptFlow
хм… как то видео совсем не впечатлило. Я весь ролик ждал когда включат стабилизацию. Я левой ногой на КУКе лучше рулю 😃
хм… как то видео совсем не впечатлило. Я весь ролик ждал когда включат стабилизацию. Я левой ногой на КУКе лучше рулю 😃
Честно сказать флайментор в точке 450 рулит лучше)))) в общем вещь чисто побаловаться не больше лучше уж сделать чтобы он от стенак отталкивался с помощью сонара, а тупо стоять и смотреть как квадрик сам 8 минут висит и водить вокруг него хороводы, это даже не весело. Свое мнение я вам говорю как владелец флайментора, как говорится штука классная но летать не учит совсем.
Кстати чтобы эта штука работала лучше поверхность под квадриком лучше подсвечивать красным спектром или мощным ИК диодом. ТОгда она будет рельеф хотя бы видеть.
хм… как то видео совсем не впечатлило. Я весь ролик ждал когда включат стабилизацию. Я левой ногой на КУКе лучше рулю
НУ да, на видео непонятно что там вообще удерживать. Где порывы ветра, где остановка на большой скорости. Если просто покружить на месте то нафиг не нужно.
Кстати чтобы эта штука работала лучше поверхность под квадриком лучше подсвечивать красным спектром или мощным ИК диодом. ТОгда она будет рельеф хотя бы видеть.
Не поможет, если углы прожектора и линзы совпадают, не будет выделяться рельеф. В мышке подсветка под сильным углом и это помогает на однотонной поверхности
В чем проблема сделать так что бы было под углом?, я уже ранее писал что эта штука выше 3х метров работать всеравно откажется т,к, у линзы фокус фиксированный, для такого сенсора еще и автофокус от фотика нужен.
Проблема в том что чем выше высота, тем меньший угол мы можем обеспечить. Угол в 10 градусов ничего не даст.
Линзу можно настроить как угодно, можно и на 3 метра. Для такой матрицы глубина резкости будет от 30см и до бесконечности (вспомните камеры сотовых)
В общем, заимплементил и потестил. Arducopter так и не расковырял - очень там все сложно сделано, у меня попроще - не более 100 строк кода в сумме.
Работает вроде нормально - тестил в сумерках уже, но тем не менее на высоте от 20см до 10 м работа алгоритма заметна и позиция держится. Сопротивляется небольшому ветру (большого пока не случилось 😃
Исходники на SVN code.google.com/p/multiwii-alexmos/…/browse/?r=17#…
Эхххх хорошо вам есть место где нет людей и открытая площадка((((