Яйцебот 2

 

290312 002

3D принтер "Люмен"

 

lumen sm

3D сканер

 

3dscan

ЧПУ Выжигатель

 

woodburner

Контроллер Lumentino

 

lumentino sm

Тестируем 3D сканер

DSC05144 sm

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

Я взял два лазера и одну камеру, хотя с таким же успехом можно использовать один лазер и две камеры.

Тестовая камера - Logitech С270 - к сожалению плохо фокусируется на близкостоящих предметах. Т.е. выбирая камеру для сканера надо учитывать, что снимаемый объект будет находиться примерно на расстоянии 20 см от камеры. В данном обзоре пока используем то, что есть.

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

Перед началом сканирования нужно совместить оптическую ось камеры с осью вращения стола, а также определить разрешение нашей камеры в пикселях на 1 мм. В этом тесте я задал формат камеры 640х480. Подставляем линейку, смотрим через камеру и видим, что по вертикали у нас видно 110 мм. Делим 480 на 110 и получаем разрешение, которое надо занести в программу для того, чтобы в результате размер объекта совпадал с реальным.

 Сканируя объект, программа сохраняет изображения и результат поиска луча в картинки для первого лазера:

 Laser1-001Laser1-out-001

и то же самое для второго лазера:

Laser2-001Laser2-out-001

Количество таких сканирований задается в программе на Processing`e. В данном случае идет 200 сканирований на один оборот для каждого лазера.

 После окончания сканирования мы имеем набор картинок (которые уже не нужны), и два облака scan1.asc и scan2.asc.

Открываем их в MeshLab, сначало одно, а затем поверх него другое:

snapshot01snapshot02

Затем следует объединение облаков точек: MeshLab: Align (методом ICP):

snapshot03

Следующий этап - вычисление нормалей облака: Filters -> Point Set -> Compute normals for point sets. Хорошие результаты дает величина параметра "Number of neigbors" порядка 50-70.

Следом идет этап преобразования облака точек в полигональный объект с помощью Surface reconstruction: Poisson. Я использовал параметры 9 7 1 1. Надо сказать, что на последних двух этапах иногда происходит аварийное закрытие программы MeshLab... Тем не менее скан уже почти готов:

 snapshot04

Иногда есть необходимость перевернуть нормали:  Invert Faces Orientation.

Сохраняем объект в STL, и затем его можно открыть в том же Netfabb для контроля:

stlDSC05145

На этом пока все.

А вообще надо еще распечатать этот гриб на 3D принтере...

Ниже в загрузках облака точек с обоих лазеров и итоговая 3D модель.

Вложения:
Доступ по ссылке (http://cnc.maket-city.ru/attachments/article/80/scan_stl.zip)scan_stl.zip[Итоговый STL-файл]0 Kb04/03/14 13:00
Скачать этот файл (skan1.zip)skan1.zip[облако точек от первого лазера]474 Kb03/31/14 11:30
Скачать этот файл (skan2.zip)skan2.zip[облако точек от второго лазера]472 Kb03/31/14 11:31