roboforum.ru

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

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

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

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

Сообщение Dmitry__ » 10 фев 2016, 20:59

dccharacter писал(а):Нет, Дим, тест он пройдет.

Нет, не пройдет :)
Вход в кадр на черном столе, выход из кадра на белом фоне, ошибка - УЖОС!
А все что надо: вьехали в поле, если темный фон, то и так все хорошо, если белый фон, то это не пятно, это сцинтилляции, уменьшили мощность лазера, сцинтилляции пропали, вьехали еще в поле, сцинтилляции, уменьшили мощность, сцинтилляции пропали, вьехали еще, сцинтилляций нет, площадь пятна лазера на белом фоне при мощности лазера 0.1% равна площади пятна лазера на черном фоне с мощностью лазера 100%. Вот теперь в дамках!

dccharacter писал(а):Про гит - у меня в гите...

Чтоб что-то смотреть, надо себя заставлять это делать? Зачем? Возникла у меня идея, залез в свой код, который заморожен 100 лет назад, дописал, проверил, ушел дальше думать. А в этом вашем общем коде - то это теперь не собирается, то тут стало так...
Смотри как я обновляю свой код от ваших гитов: зашел к тебе, слил зип, сравнил со своим кодом, вот тут ты константы поменял, супер - принимаю, вот тут ты очепятки исправил - супер, вот тут английский коммент добавил - супер, А ТУТ ТЫ ОПЯТь ПРОБЕЛОВ НАДОБАВЛЯЛ, НЕНАВИЖУ ПРОБЕЛЫ, ТЫ ВСЕГДА ТАК ДЕЛАЕШь!!!, вот тут тебя глючит программно - наф-наф-наф, тут тебя глючит аппаратно - наф-наф-наф, тут тебя глючит по неопытности - наф-наф-наф. :)
Зашел к setar на втку, слил его zip, ну и.т.д.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение linvinus » 10 фев 2016, 21:01

Dmitry__ писал(а):Для самых образованных :), говорю: как только в поле матрицы попадает край пятна лазера.

1) ок зафиксировали в ТЗ - край пятна. для точности скажем 20% от его площади

Dmitry__ писал(а):А так как пятно лазера имеет разную площадь, в зависимости от того что считать пятном, то надо регулировать лазер так, чтоб уровень яркости (пятна) был константой и не выходил в перенасыщение пзс. (pix_max < 63)
А для этого не должен регулироваться shutter,

как зафиксировать shutter понятно.

2)не понимаю как регулировать яркость пятна когда его нет в кадре? как только оно попадает в кадр мы уже должны выдать команду "стоп", это наша цель (пункт 1), когда мы успеем подрегулировать яркость пятна?

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

вот этот момент не понял, что это за участок?, или имеется ввиду участок без вмешательства shutter?

Dmitry__ писал(а):Тогда площадь пятна лазера будет одинаковая для любой поверхности.

я согласен с тем что если мощность лазера привязать к pix_max = 40 то патно и на чёрном и на белом будет по площади одинаковым, но опять, когда успеть подрегулировать мощность?


Собственно ваш вариат совпадает с моим предложением №2 forum107/topic15929-660.html#p347412
с той лишь разницей что я предлагал его фиксировать в момент падения pix_min а вы его фиксируете сразу.

И вообще спора бы не было если бы ваш метод не имел противоречия, реагируем на появление пятна <> регулируем мощность по пятну
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 10 фев 2016, 21:11

я тут видео записал: буквально пошагово по 0.1 опускал голову
и когда было примерно вхождение в поле зрения (максимум в 127) я произвел засветку фанариком, сначала светодиодным (от одной до трех лампочек), затем лампой накаливания.
затем продолжил опускать и повторил засветку.
результаты неожиданные - когда лазер в центре поля датчик игнорирует внешнюю засветку полностью!
мощность лазера постоянная на 200единиц (из 255)


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

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

Сообщение linvinus » 10 фев 2016, 21:23

Сергей, а можно аналогичный тест, завести пятно в центр потом подстелить чёрный лист бумаги, и затем засвечивать фонариком пятно на чёрном листе?

Продолжая мысль forum107/topic15929-690.html#p347445
На видео 0:52 видно что,
1) когда пятно с краю shutter довольно велико порядка 1000, а когда засвечивается центр shutter падает
т.е shutter работает только в центре сенсора
2) когда пятно в центре, shutter удерживает Pix_max.
Последний раз редактировалось linvinus 10 фев 2016, 21:44, всего редактировалось 1 раз.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 10 фев 2016, 21:27

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

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

Сообщение linvinus » 10 фев 2016, 21:47

кстати я догадался откуда у вас 127 это 63<<1 , где то кто то делает лишний сдвиг
попробуйте в консоль вывести сырое значение pix_max считанное по SPI?

я бы вывел какую нибудь формулу типа такой

HZ=(pix_max - pix_sum)*(1/shutter)
если HZ >0.18 то мы на месте.
пример
((127-65)*(1/1044)) = 0.059387 - пятно 127 с краю
((108-60)*(1/815)) = 0.0588957 - пятно 108 с краю
((106-100)*(1/300)) = 0.02 - cильная засветка пятна почти нет
((127-62)*(1/325)) = 0.2 - пятно 127 в центре

Для белого фона работает а для чёрного нет.
Последний раз редактировалось linvinus 10 фев 2016, 22:29, всего редактировалось 1 раз.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 10 фев 2016, 22:11

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

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

Сообщение linvinus » 10 фев 2016, 23:05

Сергей, спасибо это многое прояснило.

Добавлено спустя 19 минут 51 секунду:
судя по видео, на чёрном и белом единственное что одинаково это SQUAL > 50 когда пятно в центре

Для сценария когда движение только по Z
можно реагировать когда SQUAL начинает падать т.е. пройдена точка максимума, только SQUAL нужно сгладить , скользящее среднее + усреднение на три значения
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 10 фев 2016, 23:32

если это поможет то вот такая картина при медленном прохождении центра при регулировке лазера к получению Max_Pix=100
(видео до центра, а график снял при прохождении центра насквозь )

Снимок экрана 2016-02-10 в 22.18.29.png


Добавлено спустя 12 минут 25 секунд:
кстати вот график с регулированием на черном
вообще цепляться не за что :(
Снимок экрана 2016-02-10 в 22.31.11.png
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение dccharacter » 10 фев 2016, 23:34

setar писал(а):вообще цепляться не за что :([/attachment]

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

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

Сообщение linvinus » 10 фев 2016, 23:55

вообще цепляться не за что :(


смотрите какие красивые резкие провалы по мощности лазера, как только лазер попадает в центральную зону сенсора, shutter пытается уменьшиться, но мы вместо этого регулируем мощность лазера, когда пятно целиком в зоне shutter мощность лазера больше не изменяется, вот это можно взять как сигнал что пятно целиком в "центре"

а датчик может как то узнать что двигатель сместился на шаг вниз? (кроме как от оптического сенсора)
нам нужно на что то опираться, нужно сравнивать шаг вниз - изменилась ли мощность лазера, если да то работаем дальше, и так пока не достигнем дна по мощности, как достигли даём сигнал стоп

Добавлено спустя 5 минут 56 секунд:
например можно завести сигналы step и dir от оси z на ардуино
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 11 фев 2016, 00:07

вот по такому условию
(dataMax == laser_power_pwm_target) && (RegPowLaser<200) ? PIN_LOW(LED) : PIN_HIGH(LED);
здесь по идее вместо 200 должен быть детект полочки минимума регулирования
при регулировке лазера дает не плохие результаты (лучше чем было до этого) на черном:
Код: Выделить всёРазвернуть
1 of 10   z: 10.525000
2 of 10   z: 10.482501
3 of 10   z: 10.531875
4 of 10   z: 10.533125
5 of 10   z: 10.504376
6 of 10   z: 10.510625
7 of 10   z: 10.538125
8 of 10   z: 10.511876
9 of 10   z: 10.516876
10 of 10   z: 10.471876
Mean: 10.512625
Standard Deviation: 0.020623


но разница в высоте с белым пока не радует:
Код: Выделить всёРазвернуть
1 of 10   z: 12.689375
2 of 10   z: 12.715001
3 of 10   z: 12.639375
4 of 10   z: 12.683751
5 of 10   z: 12.659376
6 of 10   z: 12.677500
7 of 10   z: 12.631251
8 of 10   z: 12.699376
9 of 10   z: 12.675625
10 of 10   z: 12.661251
Mean: 12.673189
Standard Deviation: 0.024632


Добавлено спустя 1 минуту 57 секунд:
в общем Дима - радуйся мы пришли к необходимости перестукиваться с прошивкой :)
то о чем ты страниц 10 назад нам толковал.
хотя есть еще мыслишка :) ...

Добавлено спустя 1 минуту 50 секунд:
dccharacter писал(а):
setar писал(а):вообще цепляться не за что :([/attachment]

Два лазера :-)

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

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

Сообщение dccharacter » 11 фев 2016, 00:24

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

Добавлено спустя 1 минуту 11 секунд:
Вот два графика - черный и белый
forum107/topic15929-465.html#p344282

Добавлено спустя 9 минут 12 секунд:
setar писал(а):не понимаю что они дадут - может туплю ?

Конечно тупишь, ну включайтесь уже.
1. Смотри, макс_пиксел улетает в 63 при входе пятна в кадр. Шаттер при этом только-только начинает падать. Можно детектить по краю пятна, проблема в том, что край пятна на разных поверхностях в разном месте, ошибка до 3мм - нам про это еще Дима говорит.
2. Шаттер падает в совершенно разный минимум на разных поверхностях - от 300 до 10000. Т.е. никакими порогами не выведешь срабатывание на нужную точность.
3. Нам надо как-то определить, что пятно в центре кадра. Можно ловить этот момент поиском минимумов/максимумов от сигнала от этого лазера. А можно ввести второй лазер и тогда...
4. ...мы ловим момент, когда оба лазера в кадре (т.е. макс пиксел в обоих полупериодах 63). А дальше - ловкость рук! Отсальные параметры будут схожи только тогда, когда пятна от обоих лазеров находятся в сравнимых частях кадра...
5. ...а это значит, что при правильной юстировке (а правильная юстировка - это обеспечение разбега пятен на расстояние не более полукадра и _последовательный_(а не одновременный) вход пятен в кадр, срабатывание возможно только когда оба пятна находятся полностью в кадре.

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

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

Сообщение setar » 11 фев 2016, 00:32

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

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

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

Сообщение dccharacter » 11 фев 2016, 00:35

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

Пред.След.

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

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

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

cron