Является аналогом известного лазерного сканера FabScan, который разработал Франциск Энгелманн. В качестве бокса для такого сканера автор использовал МДФ, что касается начинки, то она также немного отличается от оригинала.

Оригинальной является программа для Arduino, она была взята с оригинального проекта.

Материалы и инструменты для создания сканера:

4 листа МДВ 600Х300 мм, толщина 5 мм (они нужны для создания корпуса);
- шаговый двигатель (NEMA 17 на 200 шагов);
- драйвер для шагового двигателя L298N;
- модуль лазера мощностью 5 мВт (используется от производителя Red Line);
- для питания устройства нужен источник 12 В - 2 А;
- веб-камера модели Logiteck C270.






В оригинальной самоделке используется драйвер шагового двигателя A4988, а что касается шагового двигателя, то это также NEMA 17. В остальном элементы самоделки точно такие, как и в оригинальной версии.

Процесс изготовления сканера:

Шаг первый. Делаем корпус
Весь процесс создания корпуса для сканера можно увидеть на фото. Самое главное в этом деле - точность. Модуль лазера шаговый двигатель и веб-камера должны находится четко на нужных местах, в соответствии с проектом.













Шаг второй. Подключаем электрооборудование


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

Подключение без шилда
Если принято решение собирать устройство без использования шилда, то выводы шагового двигателя L298 подключаются к контактам Arduino под номерами 10, 11, 9, 8. В принципе, можно использовать и другие контакты, но при этом нужно будет вносить изменения в скетч.
Что касается модуля лазера, то его нужно подключить к пину А4 на контроллере Arduino. После этого можно будет подключать USB-кабель и питание.

Подключение с шилдом
Нужно установить шилд FabScan на Arduino. Что касается драйвера шагового двигателя, то его нужно установить на рельсы, которые для этого предусмотрены. Контакты шагового двигателя подключают к соответствующим контактам на шилде.
Модуль лазера нужно подключить к пину А4 на Arduino. Вот и все, после этого подключается питание и USB-кабель.

Шаг третий. Установка скетча
Теперь нужно скачать и установить официальный скетч для FabScan. Чтобы прошить Arduino, нужно скачать плагин Codebender и затем нажать кнопку "Run on Arduino". При этом скетч можно будет установить прямо через браузер с официального сайта.


Если не использовался шилд, то нужно нажать кнопку Edit и затем добавить такие строки:

const int stepsPerRevolution = 200; // измените этот параметр, чтобы настроить количество шагов на поворот вала вашего шагового мотора

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
Замените функцию step():

myStepper.setSpeed(1);

myStepper.step(1);

Шаг четвертый. ПО для сканера
Для установки программы нужно скачать образ «FabScan Ubuntu Live DVD», после установки появится программное обеспечение FabScan.

В программе нужно произвести некоторые настройки:

Сперва нужно выбрать SerialPort;
- далее выбираем Camera;
- после этого File - Control Panel;
- затем жмем detect laser и выбираем «enable» (при этом ставить никаких объектов перед лазером не нужно);
- ну а теперь жмем «Fetch Frame», при этом синяя горизонтальная линия должна касаться нижней части вращающегося стола. Желтая линия должна быть по центру стола. Если камера будет установлена неправильно, то изображение будет плохого качества.












Вот и все, программа настроена. Теперь можно ставить в сканер какой-то объект, и после этого нажимаем кнопку Start Scan.

Шаг пятый. Сохраняем изображение
После того как сканирование объекта будет завершено, изображение можно будет сохранить в формате.pcd или же.ply. Еще можно сохранить в формате stl, но это уже зависит от используемой платформы.
Чтобы открыть объект, который был сохранен ранее, нужно выбрать File - OpenPointCloud.

В заключении объект обрабатывается в MeshLab. После этого его можно будет распечатать на 3D принтере.

И очень меня эта тема заинтересовала, хотя быстро пришло понимание того, что ни о каких 30$ для качественного сканирования не может быть и речи.

Но основной плюс, который я вынес из статьи – программа для сканирования David-3D, к которой действительно есть хорошее руководство на русском языке и, что немаловажно, покупка лицензии - это последнее, что требуется, так как ограничение у бесплатной версии только на сохранение результата сканирования. Все остальное работает в полной мере, а значит вполне можно тестировать программу, настройки и свое железо сколько угодно. А если вам и результат не требуется с высокой точностью – то и вовсе без покупки лицензии можно обойтись.

Мне точность требовалась, так как основное, что мне хотелось сканировать это были миниатюры из настольной игры Warhammer (дабы потом их изменять, как хочется и печатать:)). В высота этих «солдатиков» всего 3 см, однако это не мешает им быть очень детализированными.


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

Принцип работы программы, и соответственно сканирования, хорошо описан в статье, на которую была ссылка выше (дублировать это, думаю, не обязательно). Желательно прочесть ту статью первой, так как эта будет в некотором роде её логичным продолжением.

Но начнем по порядку. Что понадобится для того, чтобы опробовать 3д сканирование в домашних условиях:
1 – проектор.
2 – веб камера.

Собственно все, короткий список на удивление получился. Тем не менее, если вы хотите получать очень точные и качественные сканы, то придется кое что доработать ручками. Без дополнительных затрат тут конечно не обойтись, но в итоге это все все равно обойдется дешевле, чем покупка любого из имеющихся в продаже 3д сканеров, да и качество результата получить можно намного лучше.

Теперь по порядку и подробно.

ПРОЕКТОР.

Свои первые опыты по сканированию я, как и автор предыдущей статьи, начинал с лазерной указки, но они сразу же показали, насколько это неудобный способ. Недостатков тут сразу несколько:
– невозможность получения луча с достаточно тонкой линией. Тем более, что при повороте указки меняется расстояние от линзы до объекта, а значит сбивается фокусировка.
– если требуется регулярно сканировать, поворачивать лазерную указку с достаточной точностью и плавностью вручную очень сложно, да и утомительно просто – руки не такой уж стабильный инструмент когда речь идет о длительном времени.
– сканировать приходится в темноте, дабы была видна только линия лазера и ничего более.

И если со вторым недостатком еще можно бороться путем создания специального поворотного механизма (хотя это уже получается не такая уж и простая задача, во всяком случае, за 5 минут на коленке такое не сделать), то избавление от первого недостатка дороже.

Когда я все это осознал, то решил попробовать сканирование с помощью проектора, для чего взял на время какую-то простую модель у знакомого.

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

Подойдет проектор с мощной лампой, свет которой нужно направить сквозь узкую щель на сканируемый объект

Возможно, в ранних версиях программы это был единственный вариант, но в версии 3 с которой я экспериментировал, проектор использовался намного лучше, т.к. там есть возможность называемая Structured Light Scanning (SLS). В отличие от лазерного сканирования, проектор сразу проецирует на объект сетки из вертикальных и горизонтальных линий различной толщины, что на порядок уменьшает время сканирования и позволяет в автоматическом режиме снимать цветную текстуру объекта. Ну и при хорошей фокусировке, линия в 1 пиксель шириной намного тоньше, чем возможно получить от недорогой лазерной указки.

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

Критерии для выбора проектора были простые – разрешение больше, цена и размеры меньше:)
Выбор остановился на IconBit Tbright x100 - ультракомпактный DLP LED проектор, разрешение 1080 – на тот момент мне казалось, что лучше и не придумаешь, но как выяснилось позже – я ошибался, хотя занимаясь с ним, я получил много интересного опыта.


Первая проблема, которая возникает при сканировании маленького объекта с помощью проектора, заключается в том, что для лучшего результата, размер проецируемой сетки должен примерно соответствовать размеру сканируемого объекта. Данный проектор позволял получить наименьшую диагональ экрана при самом близком фокусе - примерно в 22 см. Согласитесь, что на таком фоне миниатюра в 3 см высотой далека от понятия «примерно равные размеры». Ответ нашелся на официальном форуме – люди в таких случаях устанавливают на проектор фотоаппаратные линзы для макросъемки. Учитывая небольшие размеры объектива проектора, я остановил свой выбор на линзах marumi с диаметром резьбы 34 мм.

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

Это единичный скан, поэтому и есть «дырки» на модели, рваные края и т.д. Поворачивая монету и сканируя с разных ракурсов, можно получить несколько таких сканов, которые впоследствии объединяются в один объект (сама программа сканирования позволяет правильно совмещать разные сканы, сшивать их и сохранять как единый объект). В процессе сшивания заодно уточняется форма объекта. Но сохранять результаты такого сшивания – возможно только после покупки лицензии.

И вот настал момент первой вещи, которая для сканирования не обязательна, но с ней процесс намного удобнее – это стойка под проектор с камерой. Сам процесс калибровки нужен не только для того, чтоб программа узнала параметры оборудования - софт также должен расчвитать взаимное расположение камеры и проектора. В процессе работы их изменение не допускается (как и изменение фокусировки камеры), а значит, требуется жестко все это закрепить, ведь количество сканов может быть большим даже для одного объекта.

На основной странице David"а и изображена подобная система – ничего сложного она собой не представляет. Да и полистав форум и посмотрев, как это организую себе разные люди, понял, что ничего сложного тут не требуется.

Для этих целей была взята стойка от сгоревшего ЖК монитора, и оргстекло от него же, вырезана и склеена вот такая конструкция, как она выглядела в первом варианте


К подставке для проектора и был приделан крепеж для установки различных линз, что позволяло менять диагональ экрана, и сканировать объекты разного размера.
Следует также упомянуть о том, что сканирование с помощью проектора не требует постоянного нахождения в поле зрения калибровочных панелей. После того как произведена калибровка их можно убрать. Это позволяет откалибровав установку спокойно её переносить, двигать и т.д.
То есть вы можете используя большой калибровочный шаблон произвести дома на стенах калибровку, а затем с этой стойкой и ноутбуком выйти на улицу и отсканировать свой автомобиль, например. Взяли меньший шаблон, поставили пару линз – и можно сканировать ювелирные изделия.

Недавно фирма выпустила усовершенствованный набор для сканирования, вот там уже стойка намного серьезней и интересней смотрится –

Как по мне, при стоимости лицензии на программу около 500$ (это они еще цену подняли недавно), отдавать за такой набор более 2000 евро – не совсем оправданно, собрать самому что-то подобное не сложно и значительно дешевле.

Вернемся к проектору. Как оказалось, у этого проектора был один существенный недостаток для использования в сканере, а именно его родное разрешение (854*480). И все бы ничего, если бы он и на выходе выдавал то же самое, но увы – картинка преобразовывалась к стандартным разрешениям (типа 1024*768), и в результате линия шириной в один пиксель была в разных частях экрана где-то ярче, где-то тусклее, где-то уже а где-то шире… Все это негативно сказывалось на качестве сканирования, выражаясь в виде ряби и полосок на получаемой модели.
К тому времени я уже задумывался о покупке проектора для стереолитографического 3Д принтера (http://geektimes.ru/post/245590/). Рассмотрев несколько вариантов, я остановился на модели Acer P1500, т.к. ей не нужны никакие доработки для использования в принтере (этот проектор без всяких линз способен дать сфокусированное изображение на экране примерно 4*7 см). А значит, и для сканера он подойдет как нельзя лучше. При этом разрешение в 1920*1080 у него реальное. Так оно и вышло, этим проектором пользуюсь до сих пор и полностью доволен результатами.

КАМЕРА.

Критерии при выбора камеры у меня были те же, что и при выборе проектора. Пройдясь по магазинам, остановился на Logitech C615. Скан монеты был сделан именно с неё, без всяких модификаций. Но когда я попытался отсканировать фигурку, то столкнулся с трудностью, которая называется «глубина резкости». Когда объект настолько мал, то фактически у нас получается макросъемка, а резкость при такой съемке достигается только на небольшом отрезке, буквально всего пара миллиметров (именно поэтому монета хорошо отсканировалась – рельеф вполне укладывался в область резкости). Было решено переделать камеру под другой объектив. На Ebay было заказано несколько разных объективов для пробы, а также был вырезан новый корпус под плату камеры. План был такой

Финальный результат немного отличался


Основная идея, я думаю, понятна. А сейчас и на Thingiverse и на форуме программы можно скачать stl для печати корпусов под разные типы вебкамер.

С платы камеры пришлось убрать стандартный объектив, и как выяснилось позже – вместе с ним был убран и ИК-фильтр, так что будьте в этом вопросе аккуратней. Фильтр потом пригодится для использования с другими объективами, хотя можно и отдельно их докупить – цена копеечная.

Таким образом, у меня вот такая коллекция объективов образовалась.

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

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

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

Собственно на этом можно было бы и закончить – вроде обо всем рассказал. Я тоже думал что на этом у меня закончилась сборка сканера, но чем дальше в лес… Изучая форум данной программы я часто натыкался на различные схемы поворотных столиков - благо софт позволяет автоматизировать процесс сканирования. После одного скана подается команда на com-порт, поворотный столик вращается, поворачивая объект на заданное количество градусов, и дает команду на следующий скан. В результате одним кликом мышки мы имеем круговые сканы объекта - казалось бы, чего еще желать? Эту систему я с интересом опробовал, но увы – мне такой подход абсолютно не понравился, и тому есть пара причин.

1 – если объект сложной формы, то просто его вращать его будет недостаточно – требуется еще и наклонять в разные стороны, чтобы камера с проектором дотянулась до всех впадин и других труднодоступных мест.
2 – даже если таких мест нет, и учитывая все сканы, которые были сделаны, на объекте не осталось частей, которые не попали в скан, остается вопрос точности скана.

Допустим, какая-то часть модели на одном из сканов вышла идеально. Но это не значит что на всех сканах, в которые эта часть попала, она выглядит также идеально, а при сшивании сканов с разных ракурсов результат будет усреднен, что не может радовать. Программа позволяет немного редактировать полученные сканы (можно вырезать ненужную часть). Если мы вращаем модель на 20 градусов, значит, после полного оборота у нас будет 18 сканов, нужная нам часть вполне может присутствовать на половине из них, следовательно, чтобы оставить наилучший результат надо будет удалить этот кусок из 8ми сканов… А таких кусков при сложной модели может быть много, в результате от каждого скана будет отрезаться чуть ли не половина, что очень трудоемко и требует много времени.

Вместо этого лучше после первого скана сразу сканировать прилегающие области, и проверять результат. Как только какой-то кусок готов – переходим к сканированию следующего, и так, пока вся модель не будет в идеальном виде. Такой подход дает лучший результат за меньшее время.

Но возникает вопрос удобства. Согласитесь, неудобно вручную пытаться крутить объект, глядя не на него, а на монитор – чтоб контролировать попадание в объектив, не поменяв расстояние до камеры и проектора при этом (дабы не сбился фокус). При очередной подобной эквилибристике я случайно задел камеру, что соответственно сбило всю калибровку, и весь процесс пришлось начать заново. Такой расклад мне категорически не понравился, и я после некоторых размышлений пришел к плану вот такой конструкции (которую, как вы понимаете, впоследствии и собрал).

Это не поворотный столик в обычном понимании этого термина. Благодаря такой конструкции я могу не только вращать модель, но и наклонять её, как мне будет нужно. При этом центр модели остается в плоскости фокуса, но даже если и нет – можно вперед-назад крепление с моделью двигать.



Все это собралось на ардуино, была написана небольшая программа для управления, и в результате мне теперь при сканировании не приходится вставать из-за компьютера – используя программу, я меняю положение сканируемого объекта, и при этом тут же, в окне камеры выбираю оптимальный для сканирования ракурс.

Внутренности

В программу я заложил возможность автоматического сканирования, а так же сканирования непросто по кругу, а с наклонами на 45 градусов в одну и другую сторону, что дает в три раза больше сканов. Тем не менее, в итоге, я все-равно никогда этой возможностью не пользуюсь – слишком неудобно потом разбираться в полученной куче сканов и чистить их от неудачных кусков.

Следует также упомянуть о некоторых нюансах сканирования.
1 – невозможно сканировать блестящие и зеркальные поверхности. Свет от них отражается, или дает такой блик, что программа не может корректно распознать линию. Если есть необходимость сканирования такого объекта, то подобные части придется чем-то замаскировать (смывающейся краской, бумажным скотчем и т.д.).
2 – удобнее сканировать монотонные объекты, так как при настройке камеры на светлый цвет выставляется не такая большая яркость проектора, малая экспозиция и т.д. А для объекта темного цвета требуется большая яркость, так что если у вас объект разноцветный, то для разных его частей требуются разные настройки для получения наилучшего результата. Здесь тоже удобней использовать сканирование объекта частями.
3 – если вы хотите сразу получить цветную текстуру то учтите, что настройки камеры и проектора для скана не влияют на настройки для снятия текстуры (скан вообще в черно-белом режиме делается), так что поиграйтесь настройками в режиме текстуры также, как вы будете это делать в режиме сканирования.

Процесс сканирования у меня сейчас выглядит таким образом:
- Фокусировка проектора и камеры

Свет проектора слишком ярок и на фото не видна проецируемая сетка, но вот вид из камеры в программе

Калибровка сканера

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

Вид в программе

Рекомендуется, чтобы совокупный угол между лучом проектора и камеры был около 20 градусов. Поэтому такая стойка и используется - при сканировании больших объектов (например, человека) камеру надо гораздо дальше от проектора отставить, здесь же они у меня вплотную стоят. Расположение камеры относительно проектора может быть только вертикальным, или только горизонтальным - в зависимости от геометрии объекта. В данном случае расположение диагональное (13 градусов по вертикали и 36 по горизонтали).

Результаты сканирования с разных ракурсов. Это уже подчищенные сканы, т.е. удалены все неудачные и ненужные (подставка фигуры, попавшее в кадр крепление) части.

Совмещение сканов для последующего объединения в один объект

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

Ну и после объединения сканов с разных ракурсов получаем такие модели

Миниатюра Боромира из властелина колец.

При сканировании разноцветного объекта результат немного хуже, если сильно не заморачиваться. Но зато можно получить объект сразу с текстурой:)

Оригиналы моделей

В галерее работ пользователей на сайте разработчика (http://www.david-3d.com/en/news&community/usergallery) можно найти еще много интересных сканов, даже отпечатки пальцев люди сканируют. И встречаются даже сканы таких же миниатюр из вархаммера

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

1 - Полученные сканы, при хорошем качестве сканирования (а мы ведь хотим получить наилучшее качество) имеют очень много полигонов. Нет, даже ОЧЕНЬ много. Скан Боромира после слияния содержал более 8 миллионов полигонов - не каждый слайсер сможет работать с таким объектом.
2 - Любые объекты несут на себе следы сборки и изготовления. И если в реальности для исправления этого применяют надфили и наждачку (а иногда все-равно есть недоступные места, где невозможно применить инструменты), то работая с цифровой копией объекта, мы можем изменить его как угодно - убрать дефекты, улучшить детализацию и т.д.
3 - Как я говорил в начале статьи, когда я задумался о сканере, я хотел не копии объектов печатать, а изменять их как мне будет угодно. Я не скульптор, у меня нет инструментов, материалов и навыков, чтобы вылепить такую мелкую модель. Но умея работать в 3Д, мне намного проще, отсканировав подобного Боромира, сделать из него какого-нибудь Принца датского.


Кстати, эта модель содержит уже почти в 100 раз меньше полигонов, чем результат сканирования.

Теги: Добавить метки

Там практически все, что требуется для повседневной работы. Начните постепенно отказываться от пиратских версий в пользу более удобных и функциональных бесплатных аналогов. Если Вы все еще не пользуетесь нашим чатом , весьма советуем с ним познакомиться. Там Вы найдете много новых друзей. Кроме того, это наиболее быстрый и действенный способ связаться с администраторами проекта. Продолжает работать раздел Обновления антивирусов - всегда актуальные бесплатные обновления для Dr Web и NOD. Не успели что-то прочитать? Полное содержание бегущей строки можно найти по этой ссылке .

Делаем недорогой лазерный 3D-сканер своими руками

Анонс: Вообще-то изначально предполагалось сделать 3D-копир из сканера и принтера. Увы, по ряду причин 3D-принтер покинул лоно редакции чуть раньше, чем хотелось бы. Поэтому здесь мы расскажем об изготовлении 3D-сканера, а про принтер будет отдельный материал

Внимание! Соблюдайте меры безопасности при работе с лазерным излучением. Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

Профессиональный 3D-сканер — штука сложная и далеко не каждому нужная, а оттого довольно дорогая. А вот простенький аналог для оцифровки небольшого количества объектов можно сделать самостоятельно и с минимальными затратами денег и времени. Нам понадобятся: лазерный модуль, веб-камера, бумага, принтер, картон или лист фанеры, а также специальный софт. Разберём всё по порядку. Нам необходим лазерный модуль с лучом в виде линии (а не точки, как в некогда популярных китайских указках). Проще всего достать красные модули, но подойдут и зелёные, белые или синие. Стоят они в пределах тысячи рублей при покупке в офлайн-магазине. А если заказывать на какой-нибудь китайской интернет-барахолке, то можно немного сэкономить, но придётся ждать, пока его доставит (слоу-) почта.

Мы приобрели для эксперимента лазерный модуль с длиной волны 650 нм (красного цвета) мощностью 5 мВт. Более мощные лазеры стоят заметно дороже, и при этом они куда опаснее. Лучше, конечно, купить модуль с автономным питанием, так как он гораздо удобнее. В противном случае надо обязательно узнать параметры питания и озаботиться созданием небольшой «обвески» с батареями или аккумуляторами и выключателем. На всякий случай напомним, что красный провод — это +, а чёрный -. Соблюдайте полярность подключения и параметры питания, а иначе лазер может выйти из строя. Обязательно ознакомьтесь с нижеследующим предупреждением!

Внимание!!! Лазерное излучение очень опасно! Никогда не направляйте лазерный луч в глаза людям (в том числе себе) и животным — это может нанести непоправимый вред зрению (например, вызвать ожог сетчатки глаза)! Запрещается смотреть на лазерный луч через любые оптические приборы! Не направляйте лазерный луч на любые транспортные средства (в том числе самолёты)! Никогда не давайте лазер детям или неадекватным людям, а также позаботьтесь о том, чтобы они не смогли получить доступ к лазеру! Не используйте лазерные модули мощностью более 5 мВт, так как в этом случае опасность может представлять даже отражённый луч! В любом случае настоятельно рекомендуется приобрести для работы специальные защитные очки, рассчитанные на ту длину волны, которую излучает лазерный модуль! Не держите лазерный модуль на уровне головы! Всегда соблюдайте меры безопасности! Если вам непонятен смысл вышесказанного, не используйте лазер! Редакция 3DNews и автор не несут никакой ответственности за любые возможные последствия, в том числе за травмы, причиненные лазерным излучением!

Ещё раз прочитайте предыдущий абзац и запомните вышесказанное. Неплохо бы ознакомиться с популярным FAQ по лазерной безопасности. Кстати, отличной заменой модулю может стать лазерный уровень. Стоит он тоже в районе 1 000 рублей. При этом он заведомо менее опасен из-за небольшой мощности излучения, да и не придётся заморачиваться с организацией питания и выключателя: вставил батарейку — и работай.

Дальше по списку идёт веб-камера. Необходимо, чтобы она поддерживала WDM или DirectShow (кажется, все современные модели имеют подходящие драйверы) и выдавала хотя бы 30 FPS при разрешении 640x480. Можно взять камеру похуже, но и результат будет соответствующий. Чем выше поддерживаемое разрешение и частота кадров, тем лучше, но и нагрузка на ПК в этом случае будет заметнее. Разработчики используемого нами софта, к которому мы сейчас перейдём, рекомендуют отдать предпочтение Logitech Pro 9000. Мы же воспользовались веб-камерой Logitech HDPro Webcam 910. Идеальный вариант — использование хорошей чёрно-белой камеры с CCD-матрицей.

Наконец, о самом главном — о программе, которая будет заниматься переводом плоского изображения с веб-камеры в трёхмерную модель. Это давно известная утилита DAVID-Laserscanner , которая уже попадала в новостные заметки нашего ресурса. Совсем недавно вышел «мажорный», третий по счёту релиз. Для корректной работы на ПК должен быть установлен Microsoft .NET Framework версии 2.0 или старше. Сразу надо оговориться, что полноценная версия программы стоит 329 евро. Демоверсия практически полноценна, но не позволяет сохранять готовую 3D-модель. Кажется, нашим читателям не надо объяснять, где приобрести правильную версию. Если же вы кристально чисты душой и у вас есть свободные 400 евро, то купите готовый фирменный комплект из веб-камеры с подставкой, ПО, калибровочных панелей с креплениями и красным лазером с питанием. Если нет, то начать надо с изготовления калибровочного угла.

В принципе, процесс настройки и работы с утилитой хорошо расписан в wiki проекта. Так что мы лишь вкратце опишем основные этапы работы. Скачайте и установите DAVID-Laserscanner. В папке с программой в каталоге Printout вы найдёте файлы с шаблонами калибровочных поверхностей под форматы A3 и A4. Надо выбрать подходящий формат исходя из размеров сканируемого объекта. Примерно прикинуть можно, опираясь на то, что высота сканируемого объекта должна быть в 1,5-2 раза меньше высоты калибровочного угла. Распечатайте шаблоны, разрежьте или согните их по линиям сгиба и закрепите на двух плоских поверхностях — листах фанеры или картона, на стенах в углу комнаты, внутри коробки и так далее. В общем, включите фантазию.

Главное условие — угол между двумя плоскостями должен составлять 90 градусов и не меняться. Также надо следить за тем, чтобы распечатанные листы оставались гладкими и ровными, а на их поверхности не было ничего глянцевого. Разработчики, в частности, рекомендуют крепить распечатанные листы с помощью пластыря. Также важно не перепутать ориентацию листов. На распечатке надо измерить и запомнить длину (в мм) линии, подписанной Scale. В качестве примера мы будем сканировать небольшую фигурку совы. В этом случае подошёл шаблон формата А4, который был прикреплён к куску картонной папки с помощью степлера.

Когда угол будет готов, надо установить веб-камеру так, чтобы она смотрела точно на линию сгиба. Есть ещё один нюанс — между линией зрения камеры и сканирующим лазерным лучом должен быть как можно больший угол. Поэтому можно сделать так, чтобы камера смотрела немного вверх. Возможно, понадобится сделать небольшие подставки под сканируемый объект и саму камеру. Самое главное — необходимо обеспечить возможность жёстко закрепить положение камеры и калибровочного угла относительно друг друга после настройки и калибровки. Если вам не нужно текстурирование объекта, то веб-камеру надо сразу переключить в чёрно-белый режим.

Как только камера и угол будут установлены, можно приступать к калибровке. Запустите DAVID-Laserscanner, выберите в качестве источника видеосигнала вашу веб-камеру, а также установите режим её работы (разрешение и частоту кадров). Теперь перейдите к разделу Camera Calibration. Введите заранее измеренную ширину Scale и нажмите Calibrate. Если программа сразу выдала, что калибровка прошла успешно, то это очень здорово. В противном случае придётся играться с настройками камеры. Отключите различные «улучшалки» изображения, уберите автоматическую подстройку яркости и контраста, а также следящий автофокус. Если есть ручная фокусировка, то сделайте изображение круглых меток более чётким. Также придётся подобрать расстояние от угла до объектива и наклон камеры. Процесс калибровки может надолго затянуться, но, как только он завершится, сразу же аккуратно закрепите камеру и калибровочный угол и больше не трогайте их.

Перед каждым новым сканированием процесс калибровки придётся повторять. Теперь можно поместить сканируемый объект в угол (можно на подставку) и перейти в раздел 3D Laser Scanning. Объект должен находиться в центре изображения с камеры, а слева и справа обязательно должны быть видны части калибровочного угла. Чтобы убедиться в этом, включите лазер и наведите его на образец — на изображении должна быть видна линия как слева и справа, так и на самом объекте. Обратите внимание, что просканировать полупрозрачный или прозрачный образец не получится — его надо покрыть чем-нибудь вроде талька или матовой краской. Вообще, матовые объекты гораздо лучше подходят для сканирования.

Теперь надо затенить помещение (выключить источники света, зашторить окна). Ещё раз наведите лазер на образец. В это время на экране в идеальном случае вы должны увидеть только красную линию на чёрном фоне. Если это не так, то придётся ещё раз открыть настройки веб-камеры и поменять их. Но для начала стоит подвигать ползунок значения экспозиции (Exposure) влево-вправо. Ах да, не забудьте выбрать цвет лазерного излучения вашего модуля. Как только всё будет готово, можно приступать к пробному сканированию.

Переключите режим отображения на карту глубины (Camera Shows -> Depth Map). Аккуратно переместите лазерный луч в поле зрения веб-камеры. Луч должен быть по возможности горизонтальным, как можно более тонким, а сам модуль надо держать выше камеры. Поводите лучом вверх-вниз вдоль сканируемого объекта — и вы увидите, как программа с небольшой задержкой отрисовывает на экране его контуры в пространстве. Нельзя водить лучом слишком быстро, но и от слишком медленного перемещения толку не будет. Старайтесь «закрасить» образец как можно более плотной сеткой линий. Также надо добиться того, чтобы не было «грязи» — лишних линий вокруг объекта. Лучше всего держать лазерный модуль в руке и при этом двигать его только кистью. В конце надо будет аккуратно вывести линию луча за пределы калибровочного угла.

Скорее всего, вам удастся добиться чистого сканирования далеко не с первого раза. Поэкспериментируйте с настройками камеры и самого сканирования, положением камеры и лазера, освещением, фильтрацией (Result filtering, но эти значения лучше не менять) и так далее. В общем, надо как следует набить руку. Зато потом всё будет гораздо проще. Как только вы освоитесь и подберёте оптимальные значения для всех параметров, приступайте к финальному сканированию. Нажмите Stop и Erase, а затем снова Start и сделайте первый скан объекта. Как только он покажется вам достаточно качественным, нажимайте Stop, а затем Add to list. На всякий случай сохраните отдельно копию скана, нажав Save As.

Снова нажмите Stop и Erase. Поверните объект вокруг вертикальной оси так, чтобы он хоть немного пересекался с предыдущим положением. Повторяйте таким образом процедуру сканирования до тех пор, пока объект не повернётся на 360 градусов. Не забывайте сохранять копии сканов и добавлять их в список. В принципе, совсем не обязательно поворачивать образец вокруг одной из осей (иногда это просто невозможно), просто так будет удобнее. Ваша задача — получить трёхмерные сканы объекта со всех сторон, чтобы слить их воедино и экспортировать.

Процесс текстурирования оставим для самостоятельного изучения и перейдём к сшиванию, за которое отвечает модуль Shape Fusion. Можно сделать это и вручную почти в любом трёхмерном редакторе. DAVID-Laserscanner сохраняет сканы в открытом формате Alias Wavefront (*.obj), но в демоверсии специально занижает качество. У вас уже должен быть готовый список с отсканированными элементами. Нам надо выровнять их между собой. Выбираем тип выравнивания в списке. Если вы «крутили» объект вокруг одной оси, то выберите её. Ну а если ещё и поворачивали на строго определённый угол, укажите и его. Затем нажмите Align Scans и выберите в списке два соседних скана. Программа ненадолго «задумается» и постарается выровнять их между собой в паре-тройке вариантов. Выберите наиболее точный кнопками с закруглёнными стрелочками в верхней части окна.

Повторяйте процедуру выравнивания попарно между элементами списка — 1-2, 2-3, 3-4 и так далее. В результате вы получите грубую трёхмерную модель. Не исключено, что некоторые сканы никак не будут выравниваться — их можно выкинуть или начать совмещение с конца списка, постепенно подбираясь к проблемному месту. Можно попробовать выбрать для них другой тип выравнивания. Не обращайте внимания на «грязь» вокруг объекта и недостатки на его поверхности — программа их в итоге сгладит. В общем-то, чем больше сканов, тем качественнее может получиться модель. Но тогда возрастает и вероятность случайной ошибки. Здесь, как и c самим сканированием, приходится идти трудным путём проб и ошибок.

Как только вы посчитаете, что добились нужной степени совмещения сканов, нажимайте кнопку Fuse и ждите, пока программа подготовит трёхмерную модель. Как и выравнивание, этот процесс довольно ресурсоёмкий. Очень скоро вы сможете насладиться (или, наоборот, разочароваться) результатом своих действий. Кстати говоря, у DAVID-Laserscanner есть альтернативный режим работы, где используется проектор . Если он у вас есть, то можете поэкспериментировать именно с ним, а не с лазером.

Готовую модель можно экспортировать в тот же obj-формат и открыть в 3D-редакторе для окончательной доводки до ума и подготовки к печати. Естественно, точную копию сканируемого объекта получить не удастся. Во-первых, DAVID-Laserscanner особенно трудно даются различные хитрые выемки или полости. Во-вторых, для воспроизведения очень мелких узоров на поверхности (например, частой насечки) требуется высокое разрешение камеры и как можно более тонкая линия лазера. В-третьих, при сканировании в любом случае получаются пропуски, которые программа пытается заполнить, основываясь на положении близлежащих точек. В общем, идеал, как всегда, недостижим.

Готовая, максимально сглаженная модель

Помимо этого, есть очевидные ограничения на размер сканируемых объектов. Слишком мелкие не будут получаться из-за относительного малого разрешения сканирования, а для очень крупных надо изыскивать соответствующих размеров место для установки калибровочного угла. Кроме DAVID-Laserscanner есть и другие программные комплексы со схожим принципом работы. Правда, зачастую они требуют наличия дополнительных приспособлений для вращения объекта или перемещения лазера. Тем не менее даже описанная выше самодельная конструкция может сэкономить массу времени неопытным 3D-моделлерам. Так что пробуйте, экспериментируйте и у вас обязательно всё получится! Удачи!

Самый первый вопрос будет к администрации, почему нет рубрики "3d-Сканирование"?

Второй вопрос будет к сообществу и продавцам: почему информации об устройствах, которые стоят как пол машины (а в некоторых случаях и дороже) настолько мало в интернете? Если она и существует, то в основном на англоязычных форумах, далеко не каждый человек способен адекватно воспринимать разговорный/сленговый английский. Поэтому я столкнулся прежде всего практически с полным отсутствием информации на этот счет. Частично меня спасла данная и я даже спсиался с автором по скайпу и он мне разъяснил достаточно много вещей, но потом он уехал в длительный отпуск и я остался один на один со своим колхозом, который выглядел в первом исполнении вот так:

За основу был взят проектор ACER p1500 имеющий разрешение FullHD, насколько мне известно, то этот проектор используется в некоторых дорогущих сканерах (не будем упоминать названия), штатив для фото/видео аппаратуры, уголок 10*40, вэбка (о ней будет подробнее чуть ниже). Самый доступный софт для всего этого дела это конечно же DAVID, благо есть бесплатная версия с некоторым ограниченным функционалом.
К выбору камеры надо подходить осторожно, прежде всего надо обратить внимание на наличие автофокуса, его не должны быть, либо он должен быть отключаем, либо он должен настраиваться в ручном режиме, именно по последнему пункту я выбрал Defender G-lense hd 720, но, как уже позже выяснилось это был единственный плюс в ней, программная начинка и софт не выдержали даже первого испытания:

Конечно я был ошарашен таким сканом Пытаться настраивать что-то на этой вэбке вообще бессмысленно и я очень расстроился выкинутым на ветер 2000 рублей, потом вспомнил, что у меня где-то валялся Logitech c270 от совершенно бесполезной сборки сканера BQ, с ней дело пошло веселее и первый вменяемый скан собранный в кучу получился вот таким:

Результат уже значительно лучше, а все дело в софте, который идет с камерой, у Logitech присутствует достаточно настроек, одна экспозиция чего стоит, которая решает проблему с мерцанием. Но у нее был один минус, фокус был настроен на заводе от 40 см и до бесконечности, что явно мне не подходило. В инете нашел информацию, чтобы его можно сделать регулируемым, надо лишь разобрать и сорвать резьбу с клея, на который приклеена линза. Полный энтузиазма превратить камеру с регулировкой фокусного расстояния я ее стал разбирать, легко дошел до места, где линза была подклеена и стал ее пытаться сдернуть с приклеенного места...................сердце екнуло от того, что линза лопнула от такого нахальства и стала не пригодной для дальнейшего использования. Вот тут я взгрустнул по полной, потому как остался вообще без нормально работающей вэбки Пошел с горя пить чай. Вернувшись на рабочее место меня посетила просто гениальная мысль: а что если сделать франкештейна? Разобрал нафиг Defender, посадочные места оказались несколько разными, но меня это не остановило и я таки срастил чужеродные элементы. О, чудо, у меня появилась новая вэбка с нормальным софтом и регулируемым фокусом (кстати линзы у Defendera больше по размерам). Первый приемлемый результат не заставил себя долго ждать:

Был успешно сделан скан ящика с инструментами, справа наблюдается небольшая ряб, но это моя вина, не докрутил настройки. Но согласитесь, это уже приемлемый результат
После этого дела была оперативно создана конструкция для крепления камеры, чтобы можно было ее крутить/вертеть и двигать по уголку.

Можете заметить, насколько не родной объектив не гармонирует с корпусом

А теперь вопросы знатокам, потому как пока я не могу найти логическое объяснение происходящему. Почему при сканировании объекта в 360 градусов в конце можно получить не совпадение сканов:

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

Надо еще конечно играться с настройками, так как они порой сильно влияют на результат.
Ради интереса зашел посмотреть, сколько стоит родная камера David, почти 700 баксов, даже не знаю, есть ли смысл покупать такую камеру, с нынешним курсом это совсем не бюджетно.

FabScan - это open-source, DIY 3D лазерный сканер.

Начало проекта было положено во время разработки бакалаврского проекта Франциска Энгелманна. Официальная страница проекта находится .

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

Программа для Arduino взята с оригинального проекта. Так что спасибо команде FabScan за отличный open-source 3D сканер!

Итак, приступим.

Необходимые компоненты

Детали и узлы для оригинального проекта FabScan:

  • Драйвер шагового двигателя A4988;
  • Шилд FabScan;
  • Биполярный шаговый двигатель NEMA 17 (200 шагов);
  • Источник питания 12 В - 1 А;
  • Веб-камера Logitech C270.

Для корпуса надо 4 листа из МДФ. Размеры - 600 мм на 300 мм. Толщина - 5 мм. Более детальная информация .

Детали и узлы, которые используются в этой инструкции:

  • (200 шагов);
  • Драйвер шагового двигателя L298N;
  • Модуль лазера на 5 мВт - производитель Red Line;
  • Источник питания 12 В - 2 А;
  • Веб-камера Logiteck C270.

То есть мы просто не станем использовать шилд FabScan и используем другой модуль драйвера шагового двигателя

Разработка корпуса для 3D сканера

Процесс и результат разработки корпуса нашего 3D сканера показаны на фотографиях. Основная сложность - максимально точная установка камеры, модуля лазера и шагового двигателя. Если вы хотите облегчить себе жизнь, можете заказать эти детали за 35 евро.

Сборка 3Д сканера







1. С шилдом .

Установите FabScan шилд на Arduino. Драйвер шагового двигателя A4988 устанавливается на предусмотренные рельсы. Шаговый двигатель подключается к соответствующим контактам на шилде. Модуль лазера подключается к аналоговому пину A4. После этого можете подключать питание и USB кабель. Более детальная иструкция находится .

2. Без шилда .

Если вы решили собрать сканер без использования шилда, подключите драйвер шагового двигателя L298 к контактам 10, 11, 9, 8 на Arduino (в принципе, эти контакты можно изменить с соответствующими правками в скетче). Модуль лазера подключается к пину A4 на Arduino . Все. Можно подключать питание и USB кабель.


Скетч для Arduino

Важное примечание! Если вы используете опцию "Try Ubuntu", убедитесь, что вы сохранили файлы перед тем как выключить персональный компьютер!

Следуйте инструкции, фотографии к которой приведены ниже:

  • Выберите SerialPort;
  • Выберите Camera;
  • File - Control Panel;
  • Нажмите detect laser (пока что не устанавливайте никаких объектов перед сканером) и выберите "enable";
  • Нажмите "Fetch Frame" и убедитесь, что синяя горизонтальная линия касается вершины вращающегося стола, а желтая горизонтальная линия касается нижней части вращающегося стола. Кроме того, желтая вертикальная линия должна совпадать с центром вращающегося стола. Если камера установлена некорректно, результат сканирования будет не четким!

После настройки закройте окно, установите объект в 3 D сканере и нажмите кнопку Start Scan.

Примечание: дополнительные материалы по настройке Файла configuration.xml изложены в этом гайде .

Сохранение 3D изображения

Когда процесс 3Д сканирования завершится, вы сможете сохранить сканированный 3D объект с расширением.pcd или.ply. Можно сохранить и в формате 3D stl файла, но эта возможность доступна не на всех платформах. Открыть сканированный и сохраненный ранее объект можно, выбрав File - OpenPointCloud.

Что дальше?

Вы можете использовать MeshLab для обработки сканированного 3Д объекта и распечатать его на 3D принтере!

При обработке файла в MeshLab:

1. Убедитесь, что вы сохранили объект как.ply файл.

2. Откройте файл с помощью MeshLab.

3. В MeshLab рассчитайте нормали (Filters/Point Set/Compute normals).

4. После этого перестройте поверхность, используя Poisson reconstruction (Filters/Point Set/Surface Reconstruction: Poisson)

Окончательно собранная конструкция приведена на фото ниже.


Видео работы оригинального FabScan 3-Д сканера:

Огромное спасибо команде FabScan за потрясающий open-source сканер на Arduino!!!

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!