Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: оптический детектор перемещения
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
indela
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать и как боротьться с погрешностями интегрирования? Есть ли OEM? Можно ли оптикой увеличить расстояние до опорной поверхности (если использовать датчик из мыши)?
sK0T
Цитата(indela @ Jun 20 2005, 14:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать и как боротьться с погрешностями интегрирования? Есть ли OEM? Можно ли оптикой увеличить расстояние до опорной поверхности (если использовать датчик из мыши)?
*


Почитайте эту статью: http://ww1.microchip.com/downloads/en/AppNotes/00569.pdf.
indela
Цитата(sK0T @ Jun 20 2005, 15:14)
Почитайте эту статью: http://ww1.microchip.com/downloads/en/AppNotes/00569.pdf.
*

спасибо конечно но это ведь обычная мышь с колесиком, а как насчет оптической (без шарика которая)? mellow.gif
indela
неужели никто не пробовал? Нужно както измерять перемещения над стальным листом до пяти метров по двум координатам.
andrey_s
Цитата(indela @ Jun 21 2005, 14:54)
неужели никто не пробовал? Нужно както измерять перемещения над стальным листом до пяти метров по двум координатам.

Если пять метров, то ИМХО, задача выливается в несколько нетривиальную, поскольку требуемое фокусное расстояние увеличивается примерно на три порядка.
Вам бы, наверное, лучше к хорошим оптикам blush.gif
indela
Цитата(andrey_s @ Jun 21 2005, 16:22)
Если пять метров, то ИМХО, задача выливается в несколько нетривиальную, поскольку требуемое фокусное расстояние увеличивается примерно на три порядка.
Вам бы, наверное, лучше к хорошим оптикам blush.gif
*

Да над листом - сантиметр а лист длинной пять метров
Eugeno
Цитата(indela @ Jun 20 2005, 13:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать ...
*
А в оптической мыши стоит миникамера? Тогда посредством корреляции и аппроксимации можно добится достаточно хороших результатов, намного выше разрешающей способности камеры. Работал с алгоритмом стабилизации фона в видеоизображении - при плавном повороте камеры на 180 градусов и обратно очень точно восстанавливалась первоначальная "нулевая" точка, легко обнаруживались смещения раз в десять меньше разрешающей способности камеры (при хорошем контрасте наблюдаемой сцены).
indela
Цитата(Eugeno @ Jun 22 2005, 15:07)
Цитата(indela @ Jun 20 2005, 13:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать ...
*
А в оптической мыши стоит миникамера? Тогда посредством корреляции и аппроксимации можно добится достаточно хороших результатов, намного выше разрешающей способности камеры. Работал с алгоритмом стабилизации фона в видеоизображении - при плавном повороте камеры на 180 градусов и обратно очень точно восстанавливалась первоначальная "нулевая" точка, легко обнаруживались смещения раз в десять меньше разрешающей способности камеры (при хорошем контрасте наблюдаемой сцены).
*


а где почитать про такие алгоритмы? Какое разрешение у вашей камеры было? на коком процессоре это все работало и с каой частотой обработки кадров?
rubin
Цитата(indela @ Jun 20 2005, 13:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать и как боротьться с погрешностями интегрирования? Есть ли OEM? Можно ли оптикой увеличить расстояние до опорной поверхности (если использовать датчик из мыши)?
*


Насколько я помню, у Agilent были OEM-датчики специально для оптических мышек ->
http://www.google.com/search?q=Agilent+opt...=utf-8&oe=utf-8

http://www.home.agilent.com/cgi-bin/pub/ag...COUNTRY_CODE=US
rubin
Цитата(indela @ Jun 22 2005, 15:11)
Цитата(Eugeno @ Jun 22 2005, 15:07)
Цитата(indela @ Jun 20 2005, 13:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать ...
*
А в оптической мыши стоит миникамера? Тогда посредством корреляции и аппроксимации можно добится достаточно хороших результатов, намного выше разрешающей способности камеры. Работал с алгоритмом стабилизации фона в видеоизображении - при плавном повороте камеры на 180 градусов и обратно очень точно восстанавливалась первоначальная "нулевая" точка, легко обнаруживались смещения раз в десять меньше разрешающей способности камеры (при хорошем контрасте наблюдаемой сцены).
*


а где почитать про такие алгоритмы? Какое разрешение у вашей камеры было? на коком процессоре это все работало и с каой частотой обработки кадров?
*



И мне интересно было бы узнать, что из себя представляет "алгоритм стабилизации фона в видеоизображении"?
В оптической мышке обычно стоит миникамера и вроде бы смещение определяют именно корреляционными методами.
indela
Цитата(rubin @ Jun 23 2005, 11:57)
Насколько я помню, у Agilent были OEM-датчики специально для оптических мышек ->
http://www.google.com/search?q=Agilent+opt...=utf-8&oe=utf-8

http://www.home.agilent.com/cgi-bin/pub/ag...COUNTRY_CODE=US
*


а лазерные датчики в мыши не ставят? для прототипа проще купить мыш, там говорят такие же датчики стоят. И еще вопрос может кто знает - если два сантиметра над поверхностью, что лучше светодиод или лазер?
bav
Цитата(indela @ Jun 23 2005, 18:12)
Цитата(rubin @ Jun 23 2005, 11:57)

Насколько я помню, у Agilent были OEM-датчики специально для оптических мышек ->
http://www.google.com/search?q=Agilent+opt...=utf-8&oe=utf-8

http://www.home.agilent.com/cgi-bin/pub/ag...COUNTRY_CODE=US
*


а лазерные датчики в мыши не ставят? для прототипа проще купить мыш, там говорят такие же датчики стоят. И еще вопрос может кто знает - если два сантиметра над поверхностью, что лучше светодиод или лазер?
*



из соображения экономичности и надежности, лучше светодиод, из соображения простоты, может быть лазер
tvv
Цитата(indela @ Jun 20 2005, 13:51)
кто-нибудь когда-нибудь использовал принцип определения смещения как в оптической мыши? насолько точно можно это делать и как боротьться с погрешностями интегрирования? Есть ли OEM? Можно ли оптикой увеличить расстояние до опорной поверхности (если использовать датчик из мыши)?
*


А какая точность нужна? На 5 метрах это вопрос не праздный! Если датчик интегрально копит ошибку, да на такой базе... Боюсь просто потеряете время и силы провозившись с мышкой. Из решения можно предложить http://www.skbis.ru/linear.php?id=4 Это, конечно, очень не дешево, но точно работает. А подойдет-ли конструктив Вам виднее.
indela
Цитата(tvv @ Jun 28 2005, 19:16)
А какая точность нужна? На 5 метрах это вопрос не праздный! Если датчик интегрально копит ошибку, да на такой базе... Боюсь просто потеряете время и силы провозившись с мышкой. Из решения можно предложить http://www.skbis.ru/linear.php?id=4 Это, конечно, очень не дешево, но точно работает. А подойдет-ли конструктив Вам виднее.
*

да это конечно круто, но дорого. не нужна такая точность мкм. сейчас там стоит колесико от обычной мыши с оптопарой и его точности хватает. разрешение хотят 1мм, а на пяти метрах ошибка интегрирования - не больше чем сейчас (на обычном колесике от мыши). Главный вопрос - у оптической мыши интегральная ошибка будет больше или меньше (чем мех.), и какими сполсобами можно ее уменьшить? может ктонибудь пробовал такие эксперименты с мышью?

спасибо за ссылку!
andrey_s
Цитата(indela @ Jun 28 2005, 20:29)
да это конечно круто, но дорого. не нужна такая точность мкм. сейчас там стоит колесико от обычной мыши с оптопарой и его точности хватает. разрешение хотят 1мм, а на пяти метрах ошибка интегрирования - не больше чем сейчас (на обычном колесике от мыши). Главный вопрос - у оптической мыши интегральная ошибка будет больше или меньше (чем мех.), и какими сполсобами можно ее уменьшить? может ктонибудь пробовал такие эксперименты с мышью?

У оптической мыши точность будет выше примерно на порядок, ИМХО, даже если сейчас Вы за чистотой колесика придирчиво следите и оно почти не проскальзывает. Линки на датчики Agilent Вам приводили. Эти же датчики, ИМХО, используются в серии мышей Logitech MX - проследите за ее эволюцией. Для хороших ("геймерских") моделей мышей тестами подтверждается разрешение около 800-1200 DPI, что составляет примерно 25.4/800 = 0.031мм...
Другими словами, берете MX700 или MX1000, если хочется непременно с лазером (там же описан принцип, почему лазер лучше обычной подсветки) и вперед!

Удачи!
Димыч
вот еще ссылка (сенсоры на разные вкусы)
http://www.atl21c.com/a/01.htm
tvv
Цитата(andrey_s @ Jun 29 2005, 10:55)
Цитата(indela @ Jun 28 2005, 20:29)
да это конечно круто, но дорого. не нужна такая точность мкм. сейчас там стоит колесико от обычной мыши с оптопарой и его точности хватает. разрешение хотят 1мм, а на пяти метрах ошибка интегрирования - не больше чем сейчас (на обычном колесике от мыши). Главный вопрос - у оптической мыши интегральная ошибка будет больше или меньше (чем мех.), и какими сполсобами можно ее уменьшить? может ктонибудь пробовал такие эксперименты с мышью?

У оптической мыши точность будет выше примерно на порядок, ИМХО, даже если сейчас Вы за чистотой колесика придирчиво следите и оно почти не проскальзывает. Линки на датчики Agilent Вам приводили. Эти же датчики, ИМХО, используются в серии мышей Logitech MX - проследите за ее эволюцией. Для хороших ("геймерских") моделей мышей тестами подтверждается разрешение около 800-1200 DPI, что составляет примерно 25.4/800 = 0.031мм...
Другими словами, берете MX700 или MX1000, если хочется непременно с лазером (там же описан принцип, почему лазер лучше обычной подсветки) и вперед!

Удачи!
*



Это все хорошо, но если, для примера, мышь с колесом поставить на стекло она работае без проблем, а оптика будет стоять в одной точке. В случае стального листа как все будет работать можно только гадать. Наверно надо начать с того, что взять комп (нотбук) и посмотреть в разных точках листа бегает мышь или нет, и есть ли провалы. Если покажется что все ок, то тогда и думать.
Eugeno
Цитата(indela @ Jun 22 2005, 15:11)
а где почитать про такие алгоритмы? Какое разрешение у вашей камеры было? на коком процессоре это все работало и с каой частотой обработки кадров?
*

Алгоритм - обычная NCC корреляция. Камера - обычная бытовая цифровая с выдачей PAL стандарта. Работает в модели на Intel P4 2600 c частотой обработки ~ 10 кадров в секунду (кроме корреляции сюда входит приём видео по 1394, его отрисовка, перекодировки и т.п.). По оценкам то же самое должно работать на TMS320C64 1Gh, но обработка будет вестись не всего кадра в оригинальном масштабе, а центральной части с достаточным уменьшением.
Суть алгоритма - строим корреляцию между учатском прошлого кадра и участком текущего кадра, далее в коррелограмме искался максимум, вокруг максимума проводилась апроксимация поверхности коррелограммы и находился максимум уже с большей точностью.
Цитата(tvv)
Это все хорошо, но если, для примера, мышь с колесом поставить на стекло она работае без проблем, а оптика будет стоять в одной точке. В случае стального листа как все будет работать можно только гадать. Наверно надо начать с того, что взять комп (нотбук) и посмотреть в разных точках листа бегает мышь или нет, и есть ли провалы. Если покажется что все ок, то тогда и думать.

Именно. Если изображение, поступающее на вход камеры будет малоконтрастным, то пик коррелограммы будет очень плоским и вершина не будет определятся точно, будет плавать даже на стоячем изображении.
indela
Цитата(Eugeno @ Jul 1 2005, 15:27)
Цитата(indela @ Jun 22 2005, 15:11)
а где почитать про такие алгоритмы? Какое разрешение у вашей камеры было? на коком процессоре это все работало и с каой частотой обработки кадров?
*

Алгоритм - обычная NCC корреляция. Камера - обычная бытовая цифровая с выдачей PAL стандарта. Работает в модели на Intel P4 2600 c частотой обработки ~ 10 кадров в секунду (кроме корреляции сюда входит приём видео по 1394, его отрисовка, перекодировки и т.п.). По оценкам то же самое должно работать на TMS320C64 1Gh, но обработка будет вестись не всего кадра в оригинальном масштабе, а центральной части с достаточным уменьшением.
Суть алгоритма - строим корреляцию между учатском прошлого кадра и участком текущего кадра, далее в коррелограмме искался максимум, вокруг максимума проводилась апроксимация поверхности коррелограммы и находился максимум уже с большей точностью.
Цитата(tvv)
Это все хорошо, но если, для примера, мышь с колесом поставить на стекло она работае без проблем, а оптика будет стоять в одной точке. В случае стального листа как все будет работать можно только гадать. Наверно надо начать с того, что взять комп (нотбук) и посмотреть в разных точках листа бегает мышь или нет, и есть ли провалы. Если покажется что все ок, то тогда и думать.

Именно. Если изображение, поступающее на вход камеры будет малоконтрастным, то пик коррелограммы будет очень плоским и вершина не будет определятся точно, будет плавать даже на стоячем изображении.
*



такая вычислительная мощность! а в мыши насколько я понимаю используется похожий метод определения смещения фона в видеоизображении, с гораздо большей частотой обработки кадров имхо.
Eugeno, как ты думаешь, таким способом можно застабилизировать модель вертолета в пространстве над поверхностью земли, на которой есть камни, и другие небольшие предметы?
Pathfinder
Цитата(tvv @ Jul 1 2005, 15:41)
Это все хорошо, но если, для примера, мышь с колесом поставить на стекло она работае без проблем, а оптика будет стоять в одной точке. В случае стального листа как все будет работать можно только гадать. Наверно надо начать с того, что взять комп (нотбук) и посмотреть в разных точках листа бегает мышь или нет, и есть ли провалы. Если покажется что все ок, то тогда и думать.
*

Если поверхность не идеально зеркальная, число провалов можно уменьшить, используя несколько датчиков на некотором расстоянии
indela
Цитата(Pathfinder @ Jul 2 2005, 19:06)
Цитата(tvv @ Jul 1 2005, 15:41)
Это все хорошо, но если, для примера, мышь с колесом поставить на стекло она работае без проблем, а оптика будет стоять в одной точке. В случае стального листа как все будет работать можно только гадать. Наверно надо начать с того, что взять комп (нотбук) и посмотреть в разных точках листа бегает мышь или нет, и есть ли провалы. Если покажется что все ок, то тогда и думать.
*

Если поверхность не идеально зеркальная, число провалов можно уменьшить, используя несколько датчиков на некотором расстоянии
*


точно! только не зеркальная поверхность нужна - а с контрастными элементами
PowerF1
Вот интересно, а чем ограничена частота подачи коорд курсора на комп. Сейчас у мышей это около 200 Гц. Это наверое контроллер на стороне мыши.
Жаль, что он однократно программируемый.
Я бы рад был использовать сенсор мышиный, но 200 Гц слишком мало. Мне бы все 2000 Гц или 6000Гц. Как думаете, можно разбомбить мышь и поставить вместо HID USB контроллера какую-нибудь AVR-ку, подцепить к ком-порту и тащить оттуда(сенсора) перемещения с 2000Гц ?
Eugeno
Цитата(indela @ Jul 1 2005, 15:40)
такая вычислительная мощность! а в мыши насколько я понимаю используется похожий метод определения смещения фона в видеоизображении, с гораздо большей частотой обработки кадров имхо.
Eugeno, как ты думаешь, таким способом можно застабилизировать модель вертолета в пространстве над поверхностью земли, на которой есть камни, и другие небольшие предметы?
*

Проблемы будут с выбором железа - лёгкая видеокамера с динамической фокусировкой, процессор и его программирование, проблемы энергопотребления и т.п.

Нашёл неплохой сайт на эту тему - что видит сенсор мыши, использование её в роли сканера - http://o-d-v.nm.ru/optical_mouse
vm1
По тексту не понял лист металический или нет.
Если метал то используют намагничивание:
одна катушка намагничивает линейку вторая
считывает.
Eugeno
На выходных дочитался: необходимую корреляцию изображений делает сама микросхема-сенсор. Вот что написано про последжнее слово техники - микросхему ADNS-3060 ( http://main.soobcha.org/hard/spravka/teh/mouse.html ):
Цитата
После того как интегрированный DSP процессор обработает данные снимков, он вычисляет относительные значения смещения манипулятора вдоль осей X и Y, занося конкретные данные об этом в память микросхемы ADNS-3060. В свою очередь микросхема внешнего контроллера (мыши) через Serial Port может «черпать» эти сведения из памяти оптического сенсора с частой примерно раз в миллисекунду.

Т.е. для реализации задуманного необходима всего лишь одна микросхема, которая являет в себе и сенсор, и процессор данных. Собирается схемка, делается ПО - как для сканера с указанного мной ранее сайта http://o-d-v.nm.ru/optical_mouse (только там микруха другая ADNS-2051) и всё готово! smile.gif
andrey98
Если лист не полированый, то однозначно лучше применять лазерную подсветку. Тогда возможно не придется оптику мыши переделывать.
Можно просто взять китайский лазер от указки. Тут важно выбрать оптимальный размер пятна на металле. Он зависит от разрешения сенсора и изображающей оптики мышки (т.е. фокусного растояния).
При растонии от поверхности в 10мм с диодной подсветкой будет работать плохо, либо придется строить промежуточное изображение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.