roboforum.ru

Технический форум по робототехнике.

Датчик касания оптический, триангуляция

Re: Датчик касания оптический, триангуляция

dccharacter » 10 фев 2016, 09:50


Промахнулся я немного...
Мне кажется, стоит поработать над схемой с двумя лазерами.

Re: Датчик касания оптический, триангуляция

linvinus » 10 фев 2016, 10:00

а чем принципиально отличается версия с двумя лазерами от версии с одним лазером?

Re: Датчик касания оптический, триангуляция

dccharacter » 10 фев 2016, 10:06


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

Добавлено спустя 1 минуту 12 секунд:
linvinus писал(а):а чем принципиально отличается версия с двумя лазерами от версии с одним лазером?

Предположительно данные с двух соседних фреймов (каждый из которых подсвечен своим лазером) будут схожи в очень узком диапазоне высот датчика.

Re: Датчик касания оптический, триангуляция

linvinus » 10 фев 2016, 10:22

dccharacter писал(а):Это тест на сильно замаркированной поверхности, лазерных пятен почти не видно, надо фокусировкой заниматься и вообще оптикой

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

dccharacter писал(а):Предположительно данные с двух соседних фреймов (каждый из которых подсвечен своим лазером) будут схожи в очень узком диапазоне высот датчика.

не уловил, тут речь о двух датчиках adns-2610 или двух кадрах? если кадрах, то мы уже выяснили что кадры считываются очень медленно
если не кадры считывать а опираться на pix_min,max,sum,squial то непонятно как определять что такое два соседних фрейма

Re: Датчик касания оптический, триангуляция

dccharacter » 10 фев 2016, 10:34

Вот код https://github.com/dccharacter/RF3Sens/ ... uble_laser
В этой версии работает так:
Включили лазер 1, считали макс пиксел и шаттер, выключили лазер.
Включили лазер 2, считали макс пиксел и шаттер, выключили лазер.
Сравнили. Если при максимальных значениях пикселей (оба пятна в поле зрения матрицы) значения шаттеров близки, сообщаем о детекте.

Добавлено спустя 1 минуту 33 секунды:
linvinus писал(а):оптика в любом случае нужна, и её нужно юстировать.

Схема с двумя лазерами значительно ослабляет требования к фокусировке, но, естественно, взаимное положение должно быть отъюстировано. Там есть нюансы :-)

Re: Датчик касания оптический, триангуляция

setar » 10 фев 2016, 11:19

linvinus писал(а):@setar на видео больше похоже на то что лазер регулируется по значению pix_sum а не от pix_max , я прав?
хотя по видео мощность лазера постоянна, выходит что это выдержка меняется.

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

ага, это я коллегам уже писал

Re: Датчик касания оптический, триангуляция

linvinus » 10 фев 2016, 11:45

ещё нужно понять почему pix_max,min больше 63


setar писал(а):тут лазер на постоянной PWM величине,
управлять могу но пока это только ухудшает результаты


судя по видео я бы сказал что shutter ориентируется не на pix_max а на pix_sum, только когда достаточно много светлых пикселей появилось в кадре shutter отработал и нормализовал яркость.
Это можно использовать как сигнал того что пятно целиком в кадре.

А есть возможность снять аналогичное видео с медленным проходом на разных поверхностях? (с зафиксированной мощностью лазера)
Мне интересно какая будет зависимость, и какие показатели SQUAL

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

Добавлено спустя 7 минут 35 секунд:
dccharacter писал(а):Включили лазер 1, считали макс пиксел и шаттер, выключили лазер.
Включили лазер 2, считали макс пиксел и шаттер, выключили лазер.
Сравнили. Если при максимальных значениях пикселей (оба пятна в поле зрения матрицы) значения шаттеров близки, сообщаем о детекте.

в таком алгоритме логика есть, правило - две непараллельные прямые на одной плоскости пересекаются в одной точке
а мощности лазеров не отличаются?
а если на один лазер пылинка попадёт?

Re: Датчик касания оптический, триангуляция

setar » 10 фев 2016, 11:51

основная задача сейчас в принципе уже решена (методом обнаружения максимального пиксела в кадре):
получить воспроизводимость срабатывания на одинаковой высоте (какой - в принципе не важно, лишь бы не плавала от дня к другому) с точностью от 0.01мм и лучше.

Однако сейчас дистанция срабатывания зависит от цвета поверхности, это не очень хорошо т.к. можно получить ошибку при неравномерно очищенном столике.
Если удастся решить эту задачу - это будет полная победа.
Еще не плохо было бы определять внешнюю засветку, сейчас если осветить ярким фонарем с лампой накаливания пятно датчика, то срабатывания не происходит. Логично наверное дать срабатывание сразу как будет обнаружена чрезмерная засветка, это защитит механику от повреждений.

Принтер дома, вечером проведу серию тестов

Re: Датчик касания оптический, триангуляция

ales2k » 10 фев 2016, 12:00

Для определения внешней засветки надо мерять уровень шума - то есть выключил лазер или оба и посмотрел на засветку датчика, включил проверил разницу. Мой алгоритм будет работать именно так.

P/S ваш код у меня так и не заработал, переписал функции ADNS_read и ADNS_write по примеру референсной библиотеки, сейчас все работает.
Сейчас начал бороться с оптикой.

P/P/S Нашел прогу на процессинге для фокусировки оптики ADNS2620, работает подо всем и виндами, 1-2 кадра в секунду, очень удобно.

Re: Датчик касания оптический, триангуляция

linvinus » 10 фев 2016, 12:03

судя по видео я бы сказал что shutter ориентируется не на pix_max а на pix_sum,

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

возможно мы говорим об одном и том же


нужно понять shutter ориентируется на pix_max или на pix_sum,

может быть такой вариант - shutter отрабатывает по pix_max, как сказано в документации но только в центральной зоне сенсора например в зоне 10x10 пикселей

чтобы понять первый вариант или второй можно подвести лазер к краю, когда pix_max подскочит до 123 потом подсветить место лазера другим источником света, например фонариком, чтобы остальные пиксели засветить но не пересветить.
если shutter изменится - то pix_sum, если нет - то pix_max


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

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

Нашел прогу на процессинге для фокусировки оптики ADNS2620, работает подо всем и виндами, 1-2 кадра в секунду, очень удобно.

а ссылку можно?

Re: Датчик касания оптический, триангуляция

ales2k » 10 фев 2016, 12:51

http://pastebin.com/XqGyP5EA - Пока искал ссылку - вы ответили

По не работе кода функций - у меня есть два подозрения
1 в неполной совместимости 12085 с ADNS2620
2 в задержках, у меня нанка 16Mhz и в референсе задержки на 20% больше.


P/S По видео - а вы доп фокусировку лазера не делаете? Точка сильно велика.

Добавлено спустя 22 минуты 14 секунд:
Похоже подтверждается мое первое подозрение
val = DriverRead(0x08); // в работающем коде сделано как у ADNS2610, хотя везде написано что 12085 полный аналог ADNS2620
#define Pixel_Grab 0x48 // в sensor_ADNS_2620.h

Пойду читать доку с коммандами

Добавлено спустя 24 минуты 16 секунд:
Судя по всему 12085 (мой из мыши логитечь) аналог ADNS2610 а не ADNS2620
Пойду препарирую еще пяток мышей разных

Re: Датчик касания оптический, триангуляция

setar » 10 фев 2016, 13:32

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

Добавлено спустя 2 минуты 52 секунды:
P.S. c фокусировкой тут еще нужно учитывать что от края до края датчика перемещается пятно за 3-5мм хода Z (кстати нужно померять), за это расстояние фокус успевает быть расплывчатым, собраться в точку и опять разойтись.
только на скорости точку эту в пятно все равно размывает.
сейчас попробую видео на другом устройстве снять.

Re: Датчик касания оптический, триангуляция

ales2k » 10 фев 2016, 13:59

Может у меня не такой лазер http://ru.aliexpress.com/item/New-Hot-R ... 44635.html , но на черном глазами видно отлично. Линзу с пирамидкой с него скрутил, сейчас светит в точку.

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

Re: Датчик касания оптический, триангуляция

setar » 10 фев 2016, 14:12

при скрученной линзе в точку ? :shock:
про оптику :
forum107/topic15929-630.html#p347057

Re: Датчик касания оптический, триангуляция

ales2k » 10 фев 2016, 14:15

Не верно выразился. Там идет линза нормальная а за ней стоит стеклышко с пирамидкой чтобы луч в линию расфокусировать


cron
Rambler\'s Top100 Mail.ru counter