roboforum.ru

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


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

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

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

Сообщение KomX » 18 июл 2016, 15:14

Минск. Сколько угодно и какой угодно, ибо сижу на отбраковке компьютерной периферии.
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

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

Сообщение dccharacter » 18 июл 2016, 23:14

Блин, а идея с частичным считыванием - это идея! Затык-то не во фрейм-рейте, а именно что в считывании всей картинки.
ДельтаХ, дельтаУ не дает ничего, так как датчик должен работать без интеграции, т.е. в режиме реального времени, а дельтаХ дельтаУ вводит еще одну переменную, которую использовать не получится. Т.е. возможности ретроспективы нет.

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

Добавлено спустя 21 минуту 47 секунд:
А, нет, ничего не даст идея эта. Мы и так ловим макс пиксель на входе, соответственно чтение первой полосы даст ровно ту же информацию, что и просто чтение статус-регистров, т.е. макс пиксель, мин пиксель, вот это все вот это.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение KomX » 19 июл 2016, 00:46

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

Это я помянул Ваши опыты...
Изображение

Как же мне "нравится" эта способность делать выводы на частичном знании о предлагаемом варианте решения. :)
Вот Вы говорите:
А, нет, ничего не даст идея эта. Мы и так ловим макс пиксель на входе, соответственно чтение первой полосы даст ровно ту же информацию, что и просто чтение статус-регистров, т.е. макс пиксель, мин пиксель, вот это все вот это.

Если опираться лишь на информацию статус-регистров, то я может быть и согласился бы. Но в мои планы входит не трата машинного времени на чтение полной матрицы, где информация дублируется (с этим вариантом обработки прекрасно справляется микрокод), а чтение "среза" и последующего получения из выборок-срезов целостной картины более-менее сложного по форме светового пятна (например, перекрестия в виде буквы Х или контура квадрата-прямоугольника).
Что это даст? Вход в матрицу кончиков буквы Х, например, даёт нам два пятна произвольного размера, анализируя и преобразовывая которые мы можем с некоторым приближением получить не только точечное представление пятен, но и относительное расстояние между ними.
А вход в матрицу, скажем, луча в виде левого или правого слеша, или набора мелких точек, даст нам отслеживаемое по X и Y осям движение, которое как ни как линейно связано с движением каретки Z.
Но вернусь к "срезам". Сами по себе "срезы" бесполезны без знания смещения по осям, ибо только смещение позволит геометрически правильно выстроить полную картину и сравнить её с эталонным образом по простейшему алгоритму.
Вот такой набросок плана работ я для себя набросал. Подключаться в этим работам или рьяно использовать "микроскоп" в качестве фотодиода, - решать вам.
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

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

Сообщение dccharacter » 19 июл 2016, 07:01

Блин, интересно!
Давай на ты?
Пробуй, говори, какая помозь нужна (хотя у тебя все есть, чтобы пробовать!!!!)
Предлагаю начать с выяснения реальной частоты съема картинки с матрицы.

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

Блин, вот при идеальной юстировке можно было бы побрыкаться. Например полоса с переломом. До нужной точки светится одна половина матрицы, после точки - другая. Вот это было бы офигенно.

Добавлено спустя 1 час 49 минут 51 секунду:
Чтение одного пикселя - ~1.5kHz. Чтение 5 пикселей - ~300Hz. Одна строка (18 пикселей) - 80Гц, ~12ms...
В цикле:
Код: Выделить всёРазвернуть
void loop(){

  ADNS_write(ADNS_PIX_GRAB, 0x00);

  while (1) {
      temp_byte = ADNS_read(ADNS_PIX_GRAB);
      if (temp_byte & (ADNS_PIX_DATA_VALID | ADNS_DATA_SOF)) {
        break;
      }
  }
  *(buffer + 0) = temp_byte & ADNS_MASK_PIX;

  for (uint16_t count = 1; count < nBytes; count++) { //starts with 1 as 1st pixel is read with SOF previously
    while (1) {
      temp_byte = ADNS_read(ADNS_PIX_GRAB);
      if (temp_byte & ADNS_PIX_DATA_VALID) {
        break;
      }
    }
    *(buffer + count) = temp_byte & ADNS_MASK_PIX;  // only n bits are used for data
  }

PORTD ^= 0b10000000;

}

Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Dmitry__ » 19 июл 2016, 18:34

Во понаписали, мне аж страшно. Еще помолчу/попробую_вникнуть_в_написанное, а дальше - или я Д’Артаньян, или вы все неправы :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 20 июл 2016, 06:43

Ты на курсы чтения что ли пошел? :ROFL:

Добавлено спустя 17 минут 9 секунд:
Моя квази-гениальная идея - в приложении. Если ее реально исполнить, то удастся отвязаться от истории и пролетов лишних
Вложения
Screenshot from 2016-07-19 22-33-10.png
Screenshot from 2016-07-19 22-33-10.png (3.51 КиБ) Просмотров: 1527
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Myp » 20 июл 2016, 10:33

а чем не устраивает просто линия по диагонали?
Безымянный.jpg
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение KomX » 20 июл 2016, 11:27

Очень мне не нравится устоявшаяся конструкция датчика. Как можно что-то измерять оптическим датчиком, если фокусировка самого датчика неизменна, а расстояние до пятна меняется?
Попытаюсь донести идею необходимости 2-х лазерной схемы.
Надеюсь, не надо объяснять как работает верньерная шкала штангенциркуля (шкала Нониуса). Вот такую шкалу и надо каким-то образом реализовать 2-мя лазерами с различными углами наклона, а значит, и скоростями движения световых "пятен" по поверхности стола.
Но что делать с фокусировкой датчика?
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

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

Сообщение setar » 20 июл 2016, 11:52

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

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

а фокус датчика ловить приходится прямо на корпусе, вдвигая трубочку с линзой. контроль результатов по диаметру пятна в режиме картинки.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10990
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Myp » 20 июл 2016, 11:52

KomX писал(а):Как можно что-то измерять оптическим датчиком, если фокусировка самого датчика неизменна, а расстояние до пятна меняется?

а наскока оно меняется? наскока кривой может быть стол? в худшем случае миллиметровый перепад если забыли стол выставить.
а на расстоянии в несколько см от датчика ГРИП будет такой что туда любая возможная кривизна стола уместится с запасом.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение setar » 20 июл 2016, 12:05

да и в целом там фокусировать нечего.
мы видим либо большое пятно, либо малое, в идеале вгоняем в точку порядка 4x6 пикселей (сам излучатель прямоугольный).
точнее сфокусировать мне никогда не удавалось, а такие результаты достигаются "на коленке" и очень быстро.

Добавлено спустя 5 минут 56 секунд:
процитирую видео, которое уже встречалось тут :
Аватара пользователя
setar
Site Admin
 
Сообщения: 10990
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Myp » 20 июл 2016, 12:23

интересно, дополнительное освещение серьёзно уменьшает размер изображения пятна.
встроенный АРУ корректируется и пропадает паразитная засветка соседних пикселей =)
надо к лазеру ещё и светодиод приделать))
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение Dmitry__ » 20 июл 2016, 12:47

dccharacter писал(а):Ты на курсы чтения что ли пошел?

Да нееееее, ты что? Где я, а где чтение?
Попробую ответить на "новую кровь" :roll:
KomX писал(а):1. Почему был выбран столь широкий угол обзора для CMOS датчика, что даёт вам единичное попадание пятна самой ущербной круглой формы в поле зрения датчика?

Почему широкий? Сфокусированная точка (около 0.1мм в диаметре) занимает около четверти площади пзс. Вообще, тут как у кого получится. Нужно не пятно, а край пятна...
KomX писал(а):2. Почему вы так упорно отказываетесь от функционала программного обеспечения оптического датчика, лишая себя таких параметров, как качество и смешение картинки по координатным осям?

Там все плавает, софт как хочет регулирует кучу параметров, алгоритмы во всех пзс разные и неизвестные.
KomX писал(а):Теперь об отказе съёма сырой матрицы.
Правильно сориентировав матрицу, так чтобы младшая линейка ячеек (та, что считывается в первую очередь) сенсора первой воспринимала входящее в поле зрения пятно, мы получим возможность анализировать форму входящего пятна уже после съёма сырых данных из 1-2 линеек. Это не займет много машинного времени, но повысит нашу информированность о происходящем.

Все огромная скорость пзс недоступна для внешнего мира. Наружу, из всех 100500 фпс, выдается только 10 фпс.
Форма пятна ничего не дает, т.к. форма зависит от качества поверхности, например царапина на стекле может дать отличный волновод для света, превращая точку лазера в сосиску, с концом этой сосиски где угодно, но только не на нужном расстоянии...
Насколько я "вкурил" документацию на 2610 с моим посредственным знанием английского, мы имеем 1500 кадров в секунду. При самом плохом раскладе, при манипуляциях с выключением/включением аналоговой части чипа(изменения флага PD в регистре контроля), которое "съедает" на получение качественной картинки аж 75 кадров, мы можем читать полный кадр с частотой до 25 раз в секунду.

Говорил, но повторюсь, такая скорость недоступна для внешнего мира. Вся эта скорость завязана на обновление внутр. регистров, которые очень трудно применить к детектору расстояния. Наружу, сырые кадры отдаются на скорости 3-10 кадров в сек. Это ОЧЕНЬ мало.
KomX писал(а):Очень мне не нравится устоявшаяся конструкция датчика. Как можно что-то измерять оптическим датчиком, если фокусировка самого датчика неизменна, а расстояние до пятна меняется?

Датчик пороговый. Расстояние срабатывания выставляется для максимально сфокусир. пятна на краю поля пзс. Все нормально тут...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение KomX » 20 июл 2016, 15:24

setar & Myp
Спасибо за информацию полученную опытным путём. Убедили.

Dmitry__

Почему широкий? Сфокусированная точка (около 0.1мм в диаметре) занимает около четверти площади пзс. Вообще, тут как у кого получится. Нужно не пятно, а край пятна...

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

Там все плавает, софт как хочет регулирует кучу параметров, алгоритмы во всех пзс разные и неизвестные.

Для одного пятна я с Вами соглашусь, ибо саморегулировка переходного процесса выдает чёрти-что-и-с-боку-бантик. Но я призываю опробовать штатный режим оптической мыши, после всех переходных процессов, когда начинается выдача данных о смещениях по осям. "А кто пробовал съесть слона"...

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

Вы используете данное обоснование на протяжении всей истории данного обсуждения и каждый раз, как ни странно, Ваш довод действует. И я с Вами согласен лишь в том, что всякому датчику оговорены условия его фунционирования, жёсткие рамки, в которых его показания принимаются за достоверные. Однако, должен Вам заметить, что точно такая же "палка" и тем же "концом" бьёт и по предлагаемому детектированию края пятна. И любые доводы, которыми Вы попытаетесь "обелить" краевой способ детектирования пятна, "обелит" и иной другой предлагаемый и предлагавшийся ранее способ. "Мир, дружба, жевачка!"

Все огромная скорость пзс недоступна для внешнего мира. Наружу, из всех 100500 фпс, выдается только 10 фпс.

Говорил, но повторюсь, такая скорость недоступна для внешнего мира. Вся эта скорость завязана на обновление внутр. регистров, которые очень трудно применить к детектору расстояния. Наружу, сырые кадры отдаются на скорости 3-10 кадров в сек. Это ОЧЕНЬ мало.

А вот господин-хороший dccharacter не жалает с Вами соглашаться:
Чтение одного пикселя - ~1.5kHz. Чтение 5 пикселей - ~300Hz. Одна строка (18 пикселей) - 80Гц, ~12ms...

Я так понимаю, что dccharacter говорит об опытном исследовании частоты готовности сенсора датчика или о максимальных частотах с которыми мы можем получать сграбленную информацию с учётом достаточности этой информации для принятия решения. Переводя эти данные 80 частичных кадров в секунду (18х1), уточним частоту съёма полного кадра (18х18) - 4.(4)Гц. Заметьте, что данный способ съёма убирает избыточность неактуальной информации, оставляя тем не менее возможность получать полный кадр произвольной длины (более 18) банальным смыканием полученных строк.
И предвосхищая Ваш любимый аргумент, скажу:
"Следите за чистотой отражающе-рассеивающей поверхности хотя бы в поле зрения одной строки матрицы сенсора!"
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

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

Сообщение Dmitry__ » 20 июл 2016, 15:52

KomX писал(а):Но я призываю опробовать штатный режим оптической мыши, после всех переходных процессов, когда начинается выдача данных о смещениях по осям. "А кто пробовал съесть слона"...

Данных смещения по осям чего? Контраста грязи в пятне лазера? Мышке пофиг для чего выдавать данные смещения, за что уцепится, то и выдаст, это не датчик расстояния. Говорил тыщу раз: Упри мышку в ограничение, подвигай туда-сюда, начнет накапливаться ошибка. Еще раз - мышка выдает данные перемещения чего-нибудь как-нибудь, для мышки нужен только факт смещения, абсолютных данных она не выдаст, это же очевидно...
KomX писал(а):Однако, должен Вам заметить, что точно такая же "палка" и тем же "концом" бьёт и по предлагаемому детектированию края пятна. И любые доводы, которыми Вы попытаетесь "обелить" краевой способ детектирования пятна, "обелит" и иной другой предлагаемый и предлагавшийся ранее способ. "Мир, дружба, жевачка!"

А кто это отрицает? :shock: :)
KomX писал(а):А вот господин-хороший dccharacter не жалает с Вами соглашаться:

А кто сказал, что если кадр 18х18 отдается за 10 фпс, то одну строку можно забрать за 10*18 фпс? Инженеры мышек не дураки, обрезали любую возможность быстрого граба. Новые данные будут только после установки флага, который 1 раз в 1/10 сек. :), а это полноформатное ожидание. Если не учитывать этот флаг, то будешь забирать все что угодно, но не новые данные, как в анекдоте: Петька, сколько по приборам? 300, чего 300? А чего по приборам? :)
Решения все обозначены:
Если оставаться с мышкой, то надо качественно поднять схему драйвера лазера и сам лазер ( я все не могу проверить синий лазер на 40 мвт.)
Если делать настоящую триангуляцию, то выкинуть мышку, поставить vga камеру + arm и не парить себе моск.

Добавлено спустя 1 минуту 9 секунд:
KomX писал(а):"Следите за чистотой отражающе-рассеивающей поверхности хотя бы в поле зрения одной строки матрицы сенсора!"

Ваще не понял этой фразы, даже в красном виде. Мир жесток и грязен :)
И с шумами, превед dccharacter-у :crazy:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2