Страница 1 из 4

Непрерывное контактное сканирование

Добавлено: 14 окт 2017, 14:09
verser
В теме буду выкладывать процесс создания Vers CS - контактного сканера. Под контактным сканером здесь подразумевается не центроискатель (touch trigger probe), одномоментно срабатывающий при касании детали, а аналогово-цифровой контактный сканер (аnalog-to-digital scanning probe), выдающий расстояние, на которое смещается стилус при непрерывном обводе детали, с высокой частотой и точностью в виде потока координат.
scan.JPG (5947 просмотров) <a class='original' href='./download/file.php?id=122139&sid=c5eefe765c3521339b132d857e428298&mode=view' target=_blank>Загрузить оригинал (103.15 КБ)</a>
Тема трудоемкая, очень рассчитываю на посильную интеллектуальную помощь сообщества. Приветствуются замечания, если общий ход мыслей, на Ваш взгляд, будет идти не туда :).
CS-4.png (1795 просмотров) <a class='original' href='./download/file.php?id=198168&sid=c5eefe765c3521339b132d857e428298&mode=view' target=_blank>Загрузить оригинал (142.34 КБ)</a>

Re: Контактное сканирование в linuxcnc

Добавлено: 14 окт 2017, 14:15
verser
Прежде чем создавать красивый интерфейс, надо бы разобраться какой g-code командой можно сканировать?..
Таких пока нет.
Linuxcnc позволяет определить новые g-code команды из перечня незадействованных. Думаю этим воспользоваться.
Набор новых g-code команд для сканирования (здесь полное раздолье для фантазии), которыми, на мой взгляд, можно отсканировать любые 3D поверхности, не содержащие уступов и полостей, скрытых от вида сверху :

G50.2 сканирование нижней плоскости
G50.4 сканирование боковой плоскости слева
G50.6 сканирование боковой плоскости справа

Эти команды легко запомнить, глянув на расположение цифр и стрелок боковой клавиатуры
digit_key.jpeg
digit_key.jpeg (7.44 КБ) 5944 просмотра
Например, сканирование боковой плоскости справа

Код: Выделить всё

G50.6 X10 Y10 Z10 F100
означает "поехать в точку X10 Y10 на скорости F100, при встрече препятствия (стилус начал отклоняться) изменить направление движения так, чтобы препятствие оставалось справа, продолжать двигаться вдоль препятствия, движение при этом автоматически корректируется так, чтобы стилус не отклонялся более 1 мм (к примеру) и менее 0.1 мм. По Z смещаться равномерно от точки касания до точки выхода."
Пока ещё думаю как правильно определять точку выхода для G50.4 и G50.6, если вдруг X10 Y10 окажется недоступна для стилуса (окажется, например, внутри тела заготовки)? :)

сканирование нижней плоскости

Код: Выделить всё

G50.2 X10 Y10 F100
означает "опуститься по Z на скорости F100 до встречи с препятствием (стилус начал отклоняться), продолжать двигаться в точку X10 Y10, Z автоматически корректируется так, чтобы стилус не отклонялся более 1 мм (к примеру) и менее 0.1 мм."

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

Re: Контактное сканирование в linuxcnc

Добавлено: 14 окт 2017, 14:28
NKS
G54-G59 заняты, это заданные оператором системы координат.

Re: Контактное сканирование в linuxcnc

Добавлено: 14 окт 2017, 14:36
verser
Упс, точно. Поправил на G50 :)

Re: Контактное сканирование в linuxcnc

Добавлено: 14 окт 2017, 14:50
NKS
Так гораздо лучше :good:

Re: Контактное сканирование в linuxcnc

Добавлено: 15 окт 2017, 07:10
dinkata
Хорошая идея ! :clap:
На мой взгляд и потребности хочу отправит вопрос :
verser писал(а):(аnalog-to-digital scanning probe), выдающий расстояние, на которое смещается стилус при непрерывном обводе детали, с высокой частотой и точностью.
ГДЕ ? только в Linuxcnc ?
Будет очень хорошо получат файл которьй можно потом в CAD (SolidWorks например ) преобразоват в 3d модель :idea:
MX_metrology_V2.jpg (5852 просмотра) <a class='original' href='./download/file.php?id=122196&sid=c5eefe765c3521339b132d857e428298&mode=view' target=_blank>Загрузить оригинал (19.5 КБ)</a>

Re: Контактное сканирование в linuxcnc

Добавлено: 15 окт 2017, 07:23
verser
dinkata писал(а): Будет очень хорошо получат файл которьй можно потом в CAD (SolidWorks например ) преобразоват в 3d модель :idea:
Да, это обязательно будет.
Новые g-code команды G50.2, G50.4, G50.6 будут формировать облако точек, а новая красивая программа, похожая на Probe Screen, с названием типа Scanner Screen :) (под linuxcnc) , используя эти g-code, предоставит возможность в несколько кликов быстро и точно обмерять поверхности и выдавать результаты в CAD формате. Сейчас пока работаю над g-code командами - это фундамент.

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 09:59
NKS
verser писал(а):предоставит возможность в несколько кликов быстро и точно обмерять поверхности и выдавать результаты в CAD формате
Было бы неплохо иметь ещё и возможность сравнивать обмерянную модель с теоретической :)
PS: Можно уже начинать разработку манипулятора? :)

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 11:38
verser
NKS писал(а):Было бы неплохо иметь ещё и возможность сравнивать обмерянную модель с теоретической :)
Посмотрел PowerInspect. :wtf: :shock:
NKS писал(а):PS: Можно уже начинать разработку манипулятора? :)
обещаю, что конкурентом не буду :good: .

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 11:46
NKS
verser писал(а):Посмотрел PowerInspect.
Я так понимаю есть куда стремиться? :)
verser писал(а):обещаю, что конкурентом не буду .
Надеюсь на диаметрально-противоположное, на сотрудничество :good:

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 11:49
selenur
А подскажи размеры сканера :-)

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 11:51
aftaev
verser писал(а):В качестве "подопытного" прибора будет выступать Vers CS - контактный сканер собственного производства, прототип которого появится через пару месяцев.
какой принцип действия?

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 11:56
verser
Vers CS: корпус Ø32мм L=34мм, хвостовик Ø6мм L=24мм, со стилусом пока не определился.

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 12:11
verser
aftaev писал(а): какой принцип действия?
Это пока конфиденциальная информация. Планируемые характеристики можно глянуть пост#45
verser писал(а): Некоторые характеристики, закладываемые в Vers CS.
1. Точность 1 мкм.
2. Измеряемые отклонения стилуса в любом направлении до 2 мм.
3. Cкорость канала связи не менее 5 000 пространственных координат в секунду в реальном времени.
4. Цена не более 200$.

Re: Скоростное контактное сканирование

Добавлено: 15 окт 2017, 12:25
aftaev
verser писал(а):Это пока конфиденциальная информация.
Знаю два варианта:
1. Есть Ренишоу на тензодатчиках который на директе продаю.
2. Ренишоу с ПЗС матрицей.
https://www.youtube.com/watch?v=UMW_4pCekJU

Re: Скоростное контактное сканирование

Добавлено: 21 окт 2017, 14:47
verser
Выбор способа обмена данными сканер(Vers CS) <--> LinuxCNC.

Vers CS - как три абсолютных линейных энкодера, выдает некие координаты XYZ кончика стилуса. Думаю отправлять их по SPI пачкой из трёх 16-ти рязрядных чисел, максимальная частота отправки таких пачек у прибора - до 10кГц.
LinuxCNC без доп. железа такой поток в реальном времени не обработает.
Доп. железо думаю правильнее не изобретать, а выбрать популярное готовое, например, Mesa 7i92.
Поскольку Vers CS планируется как относительно бюджетное решение для широкого круга пользователей, хотелось бы иметь возможность подключиться к LinuxCNC напрямую, без доп. затрат без доп. железа, ценой потери скорости обмена данными, скажем, до 0.5кГц. Сканировать со скоростью 500 3Dточек в секунду часто может быть тоже вполне достаточно. SPI в этом случае можно подключить напрямую к LPT порту, задействовав 3 пина, считывать биты spi протокола в base-thread, и далее в servo-thread использовать полученные целиком координаты.
Начну с варианта без доп. железа, используя имеющиеся наработки SPI->LinuxCNC of Matt Wortley.
linuxcnc-spi-hal.rar
(327.7 КБ) 307 скачиваний

Re: Скоростное контактное сканирование

Добавлено: 21 окт 2017, 18:55
nkp
stm.comp вроде нет в архиве

Re: Скоростное контактное сканирование

Добавлено: 21 окт 2017, 19:12
verser
В папке l6480 не то?

Re: Скоростное контактное сканирование

Добавлено: 21 окт 2017, 19:19
nkp
verser писал(а):В папке l6480 не то?
не заметил ;)

Re: Скоростное контактное сканирование

Добавлено: 21 окт 2017, 20:30
Сергей Саныч
Терзают меня смутные сомнения...
Насчет передачи 500 48-битовых сообщений в секунду посредством программного драйвера SPI.
Это ж 24 кбит/сек. А на обработку одного бита тратится минимум два такта base-thread. То есть базовая частота должна быть минимум 48 кГц. Что возможно далеко не на каждом компьютере.