Контактный сканер с помощью EMC2
Re: Контактный сканер с помощью EMC2
Медленно очень будет. Если это критично, то я бы смотрел в сторону sampler и halsampler
http://www.linuxcnc.org/docview/2.4/htm ... ler.9.html
http://www.linuxcnc.org/docview/2.4/htm ... ler.1.html
и скрипт, который этот поток данных переводит в "правильные" координаты
Тогда можно не останавливаться для записи и время/точность обработки просто варьировать скоростью
http://www.linuxcnc.org/docview/2.4/htm ... ler.9.html
http://www.linuxcnc.org/docview/2.4/htm ... ler.1.html
и скрипт, который этот поток данных переводит в "правильные" координаты
Тогда можно не останавливаться для записи и время/точность обработки просто варьировать скоростью
root, доделай конвертацию! 
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Не совсем понял... Что будет медленно M66? Думаешь он будет тормозить после каждого G0 или G1 до нуля?
На сколько я понял, sampler будет сохранять значения каждый тик своего потока, т.е. или base thread или servo thread а это от 1000 до 15000 раз в секунду
. Может есть такая штука, которая будет запускать sampler по срабатыванию пина?
На сколько я понял, sampler будет сохранять значения каждый тик своего потока, т.е. или base thread или servo thread а это от 1000 до 15000 раз в секунду
Re: Контактный сканер с помощью EMC2
Да, думаю будет тормозить после каждой команды, но не факт на самом деле.
sampler будет делать столько измерений, сколько раз в секунду запускается его тред.
Надо сделать 100 - делаем под него новую нитку и addf sampler-thread sampler.0
Запуск самплера - sampler.0.enable = 1, остановка - 0
Можно еще написать питоновский модуль по типу halsampler и сделать всё виде приятного гуя с кнопкой
sampler будет делать столько измерений, сколько раз в секунду запускается его тред.
Надо сделать 100 - делаем под него новую нитку и addf sampler-thread sampler.0
Запуск самплера - sampler.0.enable = 1, остановка - 0
Можно еще написать питоновский модуль по типу halsampler и сделать всё виде приятного гуя с кнопкой
root, доделай конвертацию! 
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Да, но как сделать чтобы самплер запускался только один раз...psha писал(а):Запуск самплера - sampler.0.enable = 1, остановка - 0
Может можно загрузить три функции именно в таком порядке:
1. проверяем условие, если срабатывает, то sampler.0.enable
2. собственно сам sampler
3. sampler.0.enable = 0
О, это наверное можно как-то на ladder logic описать...
-
gendos
- Мастер
- Сообщения: 1117
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 81
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Для меня это все пока очень сложно,но буду потихоньку разбираться с emc2 и для начала нужно сделать макет.
Re: Контактный сканер с помощью EMC2
Запускаем самплер, отключаем его (enable = 0).
Перед сканированием смотрим что у нас в файле, запоминаем номер, включаем (enable=1)
В конце - выключаем (enable=0), смотрим номер.
Всё что между - данные сканирования.
Никакого ladder не нужно
upd
Собственно основной бонус такой системы перед сканированием через гкод в том, что команды на движение проще изготовить.
Например, можно просто вручную досканировать какое-нибудь место неприятное
Перед сканированием смотрим что у нас в файле, запоминаем номер, включаем (enable=1)
В конце - выключаем (enable=0), смотрим номер.
Всё что между - данные сканирования.
Никакого ladder не нужно
upd
Собственно основной бонус такой системы перед сканированием через гкод в том, что команды на движение проще изготовить.
Например, можно просто вручную досканировать какое-нибудь место неприятное
root, доделай конвертацию! 
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Я думаю ему будет интереснее ровная сетка сканирования, т.е. нужны данные sampler только для определенных координат.
Т.е. чтобы не перелопачивать уйму данных sampler нужно запускать только на один тик.
Gendos, пока сильно не вникай. Мы беседуем о высоких материях оптимизации. Для начала хватит M66, это возможно будет немного медленнее, зато проще освоить. Вечером напишу тебе готовый Gкод. будешь просто открывать программу запускать Gкод и получать на выходе файл.
Т.е. чтобы не перелопачивать уйму данных sampler нужно запускать только на один тик.
Gendos, пока сильно не вникай. Мы беседуем о высоких материях оптимизации. Для начала хватит M66, это возможно будет немного медленнее, зато проще освоить. Вечером напишу тебе готовый Gкод. будешь просто открывать программу запускать Gкод и получать на выходе файл.
Re: Контактный сканер с помощью EMC2
Не уверен что нужно только для определенных координат.
Как раз идея с самплером и состоит в том, что бы получить _большое_ количество данных вдоль пути сканирования.
Это даст возможность регулировать скорость обработки детали - больше скорость, меньше точность и наоборот.
Никаких проблем в перелопачивании кучи данных не вижу честно говоря. Их всегда можно выкинуть потом.
upd
Более того, это довольно просто делается и без дописывания новых вещей.
Перед enable=1 запускаем halsampler с новым именем файла, после enable=0 - останавливаем.
Получаем результаты сканирования записанные в отдельный файл, без мусора.
Как раз идея с самплером и состоит в том, что бы получить _большое_ количество данных вдоль пути сканирования.
Это даст возможность регулировать скорость обработки детали - больше скорость, меньше точность и наоборот.
Никаких проблем в перелопачивании кучи данных не вижу честно говоря. Их всегда можно выкинуть потом.
upd
Более того, это довольно просто делается и без дописывания новых вещей.
Перед enable=1 запускаем halsampler с новым именем файла, после enable=0 - останавливаем.
Получаем результаты сканирования записанные в отдельный файл, без мусора.
root, доделай конвертацию! 
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Если потом использовать только для прямого создания Gкода, то все хорошо, но если надо сделать 3d модель и ее редактировать, то нужна ровная сетка.
Re: Контактный сканер с помощью EMC2
Не соглашусь.
Что ты называешь "ровной" сеткой?
Оставь код движения как есть, убери только из него логи. Получишь практически эквивалентный результат.
Каждое сечение будет разбито на одинаковое число точек - время полного оборота * тиков самплера.
Что ты называешь "ровной" сеткой?
Оставь код движения как есть, убери только из него логи. Получишь практически эквивалентный результат.
Каждое сечение будет разбито на одинаковое число точек - время полного оборота * тиков самплера.
root, доделай конвертацию! 
Re: Контактный сканер с помощью EMC2
Собственно вопрос автору темы:
Какова требуемая точность? Размер детали? И что планируется делать с результатом
Время работы (<10минут) вроде уже было оглашено.
Какова требуемая точность? Размер детали? И что планируется делать с результатом
Время работы (<10минут) вроде уже было оглашено.
root, доделай конвертацию! 
-
gendos
- Мастер
- Сообщения: 1117
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 81
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: Контактный сканер с помощью EMC2
точность 0.5 мм
размер детали - 42 размер обуви
текстовый файл вида
0000 0000 0000
0000 0000 0000
0000 0000 0000
открывается специализированной обувной программой получается 3d модель которую можно редактировать в ней и сохранять в разных
3d форматах
время сканирования взято очень приблизительно
шаг сканирования 0,5-1мм
размер детали - 42 размер обуви
текстовый файл вида
0000 0000 0000
0000 0000 0000
0000 0000 0000
открывается специализированной обувной программой получается 3d модель которую можно редактировать в ней и сохранять в разных
3d форматах
время сканирования взято очень приблизительно
шаг сканирования 0,5-1мм
Re: Контактный сканер с помощью EMC2
То есть при условной форме ботинка - цилиндр размером 300х100мм нам нужно получить
300-600 сканов по длине и в каждом из них ~600 точек (на оборот).
Можно попробовать посадить sampler в servo-thread, это даст 1000 точек в секунду.
Надо только проверить что точность удовлетворительная получается.
upd
Обсчитался, не 600 а 300 на оборот
300-600 сканов по длине и в каждом из них ~600 точек (на оборот).
Можно попробовать посадить sampler в servo-thread, это даст 1000 точек в секунду.
Надо только проверить что точность удовлетворительная получается.
upd
Обсчитался, не 600 а 300 на оборот
root, доделай конвертацию! 
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Плохо то, что либо траектория будет спиральной, либо будут дополнительные точки во время перехода от среза к срезу...psha писал(а):Каждое сечение будет разбито на одинаковое число точек - время полного оборота * тиков самплера.
А у нее есть спец требования к этим колонкам? Если будет просто 10000 разных точек она тоже их схавает, или нужна определенная сетка?gendos писал(а):открывается специализированной обувной программой получается 3d модель которую можно редактировать в ней и сохранять в разных
Под сеткой я понимаю прямоугольную сетку, т.е. мы как бы покрываем модель четырех угольниками, из них очень просто составить 3д модель. А вот из спирали - сложнее.
-
gendos
- Мастер
- Сообщения: 1117
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 81
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: Контактный сканер с помощью EMC2
мне кажется ровная сетка не нужна,программа по моделированию колодки сама построитNick писал(а):Если потом использовать только для прямого создания Gкода, то все хорошо, но если надо сделать 3d модель и ее редактировать, то нужна ровная сетка.
3d модель по облаку точек и наложит на нее нужную сетку
важно чтобы координаты данных были не угловые, а не знаю как их назвать --- допустим X Y Z
Re: Контактный сканер с помощью EMC2
Как ты покроешь модель ровными четырехугольниками? Только если у тебя модель - куб или цилинидр какой.
Иначе не будет никакой ровной сетки.
Собственно надо скорее всего делать спиральное сканирование, с фиксированным шагом на оборот.
Преобразование полярных координат в обычные делается очень просто.
Пусть у нас ось вдоль ботинка - X, угол A и показания екодера E.
В файле halsampler'а у нас окажутся точки X, A, E
Конвертим их (скриптом после сканирования) в X, E * cos(A), E * sin(A) и получаем то что нужно (с точностью до поворота).
upd
Есличо, из спирали с фиксированным шагом построить triangle mesh должно быть очень просто - достаточно для
каждой точки найти соседние вершины - а это ищется за константное время (максимум - линейное по числу шагов на оборот)
Иначе не будет никакой ровной сетки.
Собственно надо скорее всего делать спиральное сканирование, с фиксированным шагом на оборот.
Преобразование полярных координат в обычные делается очень просто.
Пусть у нас ось вдоль ботинка - X, угол A и показания екодера E.
В файле halsampler'а у нас окажутся точки X, A, E
Конвертим их (скриптом после сканирования) в X, E * cos(A), E * sin(A) и получаем то что нужно (с точностью до поворота).
upd
Есличо, из спирали с фиксированным шагом построить triangle mesh должно быть очень просто - достаточно для
каждой точки найти соседние вершины - а это ищется за константное время (максимум - линейное по числу шагов на оборот)
Последний раз редактировалось psha 07 июл 2011, 15:44, всего редактировалось 1 раз.
root, доделай конвертацию! 
-
gendos
- Мастер
- Сообщения: 1117
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 81
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Nick писал(а):Плохо то, что либо траектория будет спиральной, либо будут дополнительные точки во время перехода от среза к срезу...psha писал(а):Каждое сечение будет разбито на одинаковое число точек - время полного оборота * тиков самплера.
А у нее есть спец требования к этим колонкам? Если будет просто 10000 разных точек она тоже их схавает, или нужна определенная сетка?gendos писал(а):открывается специализированной обувной программой получается 3d модель которую можно редактировать в ней и сохранять в разных
Под сеткой я понимаю прямоугольную сетку, т.е. мы как бы покрываем модель четырех угольниками, из них очень просто составить 3д модель. А вот из спирали - сложнее.
модельная программа может импортировать разные форматы, один из которых(забыл его расширение)
если его открыть в текстовом редакторе выглядит как три колонки цифр через пробел первая X вторая у трерья z
расширение чтото типа .asc
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Контактный сканер с помощью EMC2
Из прямоугольной сетки еще проще. Ты видел как в стандартных 3д редакторах рисуется стандартная сфера? В такой оцифровке есть ооочень большой плюс - у модели появляется два нативных параметра u и v - координаты на поверхности. И по такой модели проще построить NURMS поверхность. В общем маленькие нюансыpsha писал(а):Есличо, из спирали с фиксированным шагом построить triangle mesh должно быть очень просто - достаточно длякаждой точки найти соседние вершины - а это ищется за константное время (максимум - линейное по числу шагов на оборот)
Если программа умеет создавать модель просто из облака точек, тогда действительно описанный psha алгоритм будет работать и очень хорошо.
-
gendos
- Мастер
- Сообщения: 1117
- Зарегистрирован: 06 июл 2011, 15:26
- Репутация: 81
- Настоящее имя: Геннадий
- Откуда: Ростов-на-дону
- Контактная информация:
Re: Контактный сканер с помощью EMC2
вот смог найти только маленький кусок файла созданного и открываемого этой программой
( пример начала файла)-
[000000]
NEWLAST GROUP developed and supported by INESCOP
DEPARTAMENTO CAD/CAM.
EASYLAST3D·
25/02/11 19:45:04
C:\Easylast3D 2.5\колодки\New.asc
[999999]
[003110] Last surface
0.000 0.017 34.226
0.000 0.019 34.226
0.000 0.020 34.226
0.000 0.022 34.226
0.000 0.024 34.226
0.000 0.026 34.227
0.000 0.027 34.227
0.000 0.029 34.227
0.000 0.031 34.228
( пример начала файла)-
[000000]
NEWLAST GROUP developed and supported by INESCOP
DEPARTAMENTO CAD/CAM.
EASYLAST3D·
25/02/11 19:45:04
C:\Easylast3D 2.5\колодки\New.asc
[999999]
[003110] Last surface
0.000 0.017 34.226
0.000 0.019 34.226
0.000 0.020 34.226
0.000 0.022 34.226
0.000 0.024 34.226
0.000 0.026 34.227
0.000 0.027 34.227
0.000 0.029 34.227
0.000 0.031 34.228
Re: Контактный сканер с помощью EMC2
Я понимаю что для некоторых задач очень хочется иметь четырехугольную сетку на поверхности.
Идея в том, что не стоит сам процесс сканирования подгонять под такое требование.
Если есть возможность быстро и точно построить множество точек поверхности, то потом
завсегда это можно перевести в любой понравившийся формат. А сканирование лучше делать так,
как удобно.
Идея в том, что не стоит сам процесс сканирования подгонять под такое требование.
Если есть возможность быстро и точно построить множество точек поверхности, то потом
завсегда это можно перевести в любой понравившийся формат. А сканирование лучше делать так,
как удобно.
root, доделай конвертацию! 
