Sls 3d сканер своими руками из проектора. Бесконтактные активные сканеры

Первые 3D-принтеры, которые стоят дешевле игрового компьютера, стали обязательным атрибутом почти любого хакспейса или фаблаба (лабораторий технического творчества и электронного искусства). Теперь к ним присоединились 3D-сканеры. Студент МФТИ и сотрудник Политехнического музея Даниил Веловатый сам собрал трехмерный сканер из лазера, веб-камеры и подручных материалов. В рамках спецпроекта «Физтех. Читалка» он рассказал T&P о будущем сканирования реальности.

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

Лидар (от английского Light Detection and Ranging) - дорогое, но очень точное устройство. Оно позволяет с точностью до миллиметров строить 3D-модели объектов, размер которых можно сравнить с размерами здания. Из расшифровки аббревиатуры LIDAR следует, что им является любой дальномер, измеряющий расстояние при помощи света. Под это описание попадает невероятное количество устройств. Но чаще всего лидарами называют аппараты вроде этого:

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

Технологии для землян

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

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

Одно из основных преимуществ такого сканера - он не ограничен областью сканирования. Мы можем отсканировать, например, лицо человека без необходимости ставить его голову на поворачивающийся стол. При определенном усердии можно отсканировать даже целое помещение, если только точность позиционирования позволит это сделать. Чтобы повысить точность, можно наклеивать специальные метки, которые сканер находит и использует как реперные точки. Собственно, на фотографии выше так и сделано. Такой подход ограничивает область сканирования, но, к сожалению, здесь либо овцы целы, либо волки сыты.

В нашей лаборатории мы решили создать дешевый 3D-сканер, имеющий точность, сравнимую с точностью 3D-печати. Это был наш первый серьезный проект, поэтому мы допускали ошибки, многого не понимали и еще больше узнавали в процессе. Сначала мы построили простой лазерный дальномер из лазерной указки и веб-камеры. Чтобы понять, как 2D-камера позволяет измерять расстояние, придется подключить воображение. Представьте себе натянутую в воздухе нить, по которой ползет паук. Если мы стоим вплотную к веревке, то видим, как паук ползет строго на нас (не очень приятное зрелище). А если теперь мы посветим на всю эту конструкцию лампой сбоку, на полу мы увидим тень. Так как свет поступает сбоку, проекция паука будет двигаться по проекции нити. Измеряя расстояние от начала тени нити до тени паука, мы можем вычислить, сколько паук прополз, умножив на некоторый коэффициент, ведь мы создаем сжимающее отображение.

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

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

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

Обработка изображения с камеры происходит на компьютере, для этого была написана программа на Java. После окончания сканирования программа выдает так называемое облако точек, которые с помощью другой программы соединяются в полноценную модель. Эту модель уже можно напечатать на 3D-принтере, то есть получить копию реального объекта.

Не пропустите следующую лекцию:

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

Первый прототип

Сначала мы решили собрать лазерный дальномер. Сделан он был по мотивам статьи на радиолюбительском форуме. Просто лазерная указка и камера. Для обработки изображений была написана программа на Java. Для одного измерения делались две фотографии: с лазером и без лазера. После их сравнения мы могли однозначно найти лазерную точку. После того, как это заработало, дальномер был установлен на платформу, которая могла вращаться в двух плоскостях. Прежде чем я покажу то, что получилось, нужно предупредить - на летней школе не так много материалов, а потому мы собрали прототип из того, что у нас было:

Камеру видно сразу, а лазер - это тот латунный цилиндрик над ней. Для вращения платформы мы применили два шаговых двигателя, которые в свою очередь были подключены к плате управления на микроконтроллере Atmega32. К ней же подключался лазер. Сама плата соединялась с компьютером посредством USB->UART переходника. Программа на компьютере делала снимки, обрабатывала их, заносила координаты полученных точек в файл и отсылала команды плате управления.

Результат был интересный. Да, мы находили расстояние. Да, мы могли «нацелиться» на любую точку в полусфере над сканером. И радости нашей не было предела. Но когда мы провели оценку времени сканирования этой полусферы, то оно оказалось равным 48 часам. И дело не в камере. И даже не в Java. А в том, что установка была настолько хлипкой, что колебалась после каждого поворота в течение пяти секунд. Приходилось делать измерение, поворачиваться и ждать пять секунд, пока она не перестанет качаться. А вдобавок библиотека для камеры перед каждым снимком включала ее, а затем выключала. На это уходило 1-2 секунды. Но летняя школа заканчивалась, и переделывать было некогда: это была уже ночь перед сдачей проекта. Вернее утро. На следующий день мы представляли наш проект на конкурсе перед научным жюри и неожиданно выиграли. Наверное, именно из-за этой победы мы решили продолжить нашу работу над этим проектом.

Версия два

На самом деле лето закончилось, а учебный год начался. Желание работать пропало. Установку планировали закончить к следующему конкурсу, до которого был целый месяц. Месяц. А потом внезапно три дня. Но за месяц мы решили изменить установку. Собрать ее крепкой, установить на лазерную указку линзу, которая будет создавать лазерную линию. Это позволило бы сканировать сразу 720 точек (в сканере стояла HD камера). Вот только три дня внесли свои коррективы:

Собран второй сканер из визирных пластиковых линеек, клея, малярного скотча и держится только благодаря синей изоленте. Вместо линзы стоит пробирка. На эту пробирку светит зеленый лазер. Отразившийся луч создает на экране более-менее равномерную лазерную полоску. Дальномер закреплен лишь на одном моторе, который вращает его в горизонтальной плоскости. Плату управления заменили на STM32VLDiscovery. Просто STM32 я знаю лучше, да еще и Atmega сгорела, а программатор был давно утерян. Выглядит не очень, зато работает! Колебания уменьшились, а скорость соответственно увеличилась. Но не сильно. Тут был обнаружен очень интересный подвох - китайская лазерная указка включалась не сразу, а плавно увеличивала свою мощность в течение секунды. Таким образом, секунда на колебания, секунда на прогрев лазера, секунда на снимок, а их два. Вот и получаем 4 секунды. Но за одно измерение мы находим расстояние до 720 точек! Выглядел процесс сканирования приблизительно так:

А результат так:

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

А что собственно конкурс? А вот ничего! Мы закончили сканировать все подряд в 4 часа ночи, а в 9 утра на стенде обнаружили, что лазер сгорел. Как оказалось, пока мы несли его из гостиницы к стенду, в него попал дождь, и при включении он сгорел. А выглядит она в нерабочем состоянии так, что поверить в слова «оно работало 5 часов назад» сложно. Мы расстроились. Желание продолжать улетучилось с дымком из лазера. Но все же была собрана…

Третья версия

И собрана она была опять же к конкурсу. Причем к нему мы готовились долго и основательно. Больше недели. И вот результат:

Первое что бросается в глаза - это то, что теперь мы сканируем не область вокруг сканера, а объект, который вращается на платформе. А так же мы достали нужную линзу, собрали все нормально, переписали программу, а еще заменили отладочную плату на самодельную. И еще теперь мы делаем только один снимок на измерение. Лазер достаточно мощный, а линза достаточно хороша для того, чтобы однозначно находить лазер на фотографии. Благодаря этому мы не дожидаемся прогрева лазера - он всегда включен. А еще камеру теперь включаем только один раз. То есть время тратится по большей части на поворот платформы и обработку изображения. В программе добавили меню выбора точности. Время сканирования - от двух до десяти минут. В зависимости от выбранной точности. При максимальной точности получается, что платформа за шаг поворачивается на 0,5 градуса, а расстояние определяется с точностью 0,33 мм. Платформа приводится в движение шаговым мотором через редуктор. Собственно платформа - большой диск, а резиновый валик на валу мотора - маленький. Мотором и лазером управлял микроконтроллер STM32F050F4 через полевые транзисторы. В самом начале статьи как раз скан игрушки, полученный с помощью этого сканера. Так как сканер выдает облако точек в формате.obj, то после триангуляции мы можем напечатать отсканированный объект на 3D принтере, что и видно на той же фотографии. На экране мы можем видеть модель после триангуляции. Никакой ручной работы над моделью не проводилось.

На конкурсе мы победили. А он давал проход на международный конкурс Intel ISEF. А потому мы начали работать над следующим сканером.

Четвертая версия

На данный момент это последняя версия сканера, которую мы собрали. Для сравнения на платформе стоит вторая версия. К разработке четвертого сканера мы постарались подойти со всей основательностью, с какой только могли. Установка была начерчена в САПРе, детали вырезаны лазером, все покрашено, ничего лишнего снаружи не торчит. Изменения: теперь платформа действительно является шестерней. Она вырезана из оргстекла и по краям у нее 652 зубчика. Это решает проблему, которая сильно портила сканы в предыдущем сканере: резиновый валик немного проскальзывал, из-за чего платформа часто поворачивалась не на 360 градусов. Сканы были либо с «вырезанным кусочком», либо с перекрытием. Здесь же мы всегда точно знали насколько повернута платформа. Мощность лазера сделали регулируемой программно. Благодаря этому можно было на ходу менять мощность лазера, избегая засветки ненужных частей при малой освещенности помещения. Для управления всей электронникой решили не разводить новую плату, а просто применить отладочную F401RE-Nucleo. На ней установлен ST-LinkV2.1, который работает отладчиком и USB->UART адаптером.

Точность получилась потрясающая: Угловое разрешение 0.14 градуса. По расстоянию 0,125 мм. Область сканирования представляет собой цилиндр высотой 20 см и диаметром 30 см. Цена всех деталей и резки лазером на момент его создания (май 2014) составляла менее 4000 рублей.

В процессе использования мы всего один раз ставили максимальную точность. Сканирование длилось 15-20 минут. Получили почти 2 миллиона точек. Ноутбук отказался рассчитывать модель из облака точек. Эксперимент больше не повторяли.

Заключение

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

Спасибо всем, кто дочитал до конца!

UPD:
Коллега нашел видео о работе сканера, которое мы снимали на ISEF:

Да, большая часть видео не интересная, но в конце моделька на ноутбуке.

А еще вот примеры отсканированных объектов. Но все они относятся к третьей версии сканера.


Что мне нужно для сборки

  • Контроллер Arduino Nano

  • Веб камера Logitech C270

  • Два лазера 650nm 5mW Red Laser Line Module (12х36 мм)

  • Драйвер шагового двигателя A4988

  • Шаговый двигатель Nema 17 (1.7А 1,8 град/шаг) не длинее 40 мм

  • Конденсатор 100 Мкф 35В

  • Резистор 10К

  • Блок питания 12В 1,5А

  • Шариковый подшипник

  • Ø200 x 8 мм круглая база. Может напечатать из трёх частей?

  • Ø200 мм нескользящее покрытие

  • Шпильки М8

  • Гайки М8

  • Шайбы М8

  • Винты и гайки М3

  • Напечатанные пластиковые детали

  • Прямоугольный шахматный паттерн (контур pattern-surface.dxf)

Пластиковые детали

Посадочное отверстие под лазеры должно быть диаметром 12 мм.

Теперь нужно по умному разделить деталь camera-holder.stl

Почистил ее от поддержек. Можно скачать чистую деталь . Пока буду резать на три части под скрутку винтами.

Порезал на три части под скрутку винтами M3x10. Скачать архив с stl моделями.

Общая схема подключения драйвера шагового двигателя

Подключение к Arduino Nano

Лазеры подключаем D2+GND, D3+GND

Общая схема сборки

Сборка столика

3 - М3х10 винт 5 штук
4 - М3 гайка 1 штука
6 - М8х30 болт 3 штуки. Вкручивается в диск (10). Можно взять винт М8 "в потай" и вкрутить сверху вниз, затянув внизу гайкой.

Установка и фиксация лазеров

2 - М3х10 винт фиксации корпуса лазера, 2 шт
3 - М3 гайка 2 штуки
4 - Лазер 2 штуки

Сошпиливание

1 - М8х400 резьбовая шпилька 2 штуки
2 - М8 гайка 28 штук
3 - М8 шайба 18 штук. Прокладывается между гайкой и пластиковой деталью
4 - Кабельканал. Можно заменить изолентой
5 - М8х292 резьбовая шпилька 1 штука
6 - М8х170 резьбовая шпилька 4 штуки. Держат лазеры. Думаю разумнее здесь ставить более тонкие шпильки
7 - Кабельканалы 3 штуки. Можно заменить изолентой или термоусадкой

Сборка холдера шахматного паттерна

2 - М3 гайка 2 штуки
3 - М3x10 винт 2 штуки
4 - картонка-фанерка
5 - шахматная бумажка-наклейка. pdf , svg

Видео сборки

Пока сам не начал собирать мне кажется, что этого достаточно для сборки. По ходу дела инфа будет меняться и дополняться.

Сборка

Брутальный подшипник



Наклеиваю кожанку на столик

Паяю проводки на драйвере

В итоге придётся делать на Arduino Uno, так как с Нанами я просчитался.

Вот уже и натыкал коннекторов в UNO ;)

Приехали. Хорус не видит COM порт UNO.

А в диспетчере устройств вместо Arduino UNO написано CH340. Похоже придётся бутлоадер перепрошивать.

Вот правильная схема для прошивки UNO (Duemilanova) через MEGA 2560. Только у меня кондёр на 100 мкф (наверное пойдёт). Буду проверять.

Шаги прошивки бутлоадера в Arduino UNO (Duemilanova), через Arduino Mega:

шаг 1 - К Меге ничего не подключено, кроме USB кабеля. Запускаем Arduino IDE. Выставляем параметры Меги: Плата, Процессор, Порт.

шаг 2 - Переходим в меню Файл -> Образцы и жмём ArduinoISP. В редактор загружается скетч программатора ArduinoISP. Жмём круглую кнопку со стрелкой вправо "Вгрузить" и заливаем скетч в Мегу.

шаг 3 - Отсоединяем Мегу от всего и подсоединяем к UNO (Duemilanova) по схеме (выше). А так же втыкаем конденсатор (у меня на 100 мкФ). Подключаем Мегу по USB к компьютеру.

шаг 4 - Теперь в Arduino IDE выставляем параметры для UNO (Duemilanova): Плата, Процессор, Порт

шаг 5 - Заходим в меню Инструменты -> Программатор и жмём на "Arduino as ISP". Теперь наша Мега стала программатором.

шаг 5 - Прошиваем bootloader на UNO (Duemilanova) через Мегу. В меню Инструменты жмём "Записать загрузчик". На обеих платах должны мигать светодиоды. Готово. Всё отсоединяем.

Пробовал перепрошить Bootloader по схеме в UNO. Всё мигало и заливалось, но в итоге ничего не вышло. Видимо фьюзы неправильные.
Освободилась Arduino Nano и я подлключил её к компьютеру. В диспетчере устройств опять вижу CH340, но ведь она то рабочая. Запускаю Xloader и заливаю HEX прошивки. Всё проходит, как по маслу. Подключаю UNO - Xloader зависает на прошивке, светодиоды не моргают. Вычитал, что под UNO может быть замасктрована Duemilanova. Ну и чем Чёрт не шутит, решил прошить на неё бутлоадер от этой Duemilanova. Замигали светодиоды - жизнь есть. Заливаю HEX прошивки и "о чудо" она заливается. Вот, что значит "правильные фьюзы" :-)

Вот такие настройки я выставил в Хорусе, иначе не работает. COM порт вписал сам, так как автоматически определяет неверно (определяет Мегу от 3D принтера) и выбор не предоставляет.

Обсуждение моих изысканий на

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

3D-сканеры можно разделить на два типа: Контактные и, соответственно, бесконтактные.

Контактные сканеры

К первому типу сканеров относятся CMM (coordinate measuring machine - координатно-измерительные машины).Эти устройства напоминают промышленные ЧПУ станки, на массивном основании, но вместо шпинделя крепится измерительная головка с рубиновым шариком на конце. Сканирование, или контроль геометрических размеров производится контактным способом. Щуп медленно подходит к измеряемому объекту, регистрируя малейшее касание.

Так же существуют системы с подвижными “суставами”, в которых установлены высокоточные энкодеры. При перемещении сканирующего органа оператором эти датчики фиксируют перемещение всей системы и на основе этих данных строит трехмерную модель изделия.

Пример таких сканеров: Faro Arm Edge 9 - компактный и точный промышленный сканер идеально подходящий для контроля пресс форм, или штампов.И ROMER Absolute Arm SE 7 - 7-ми осевая измерительная рука, крайне удобная в работе, оборудованная магнитным основанием, которые позволяют надежно закрепить сканер на любой ровной металлической поверхности.Данные сканеры широко применяются на высокоточных производствах для контроля геометрических размеров выпускаемой продукции. Так же при помощи данных устройств можно произвести “полное” сканирование и получить облако точек.
Но данная технология не идеальна, и имеет ряд ограничений, таких как:

  • Низкая скорость сканирования
  • Невозможно (чаще всего) сканировать поднутрения и малые отверстия
  • Установки стационарны и массивны. Поэтому применение их в 3D съемке ландшафта и архитектурных объектов невозможно
Хотя и существуют портативные решения, такие как Creaform HandyProbe , который позволяет сканировать достаточно габаритные конструкции, но все же для съемки ландшафта они мало применимы. Зато идеально подходят для реверс-инженеринга и контроля качества.

Бесконтактные активные сканеры

Бесконтактные сканеры делятся на несколько типов по способу сканирования. Условно их можно разделить на лазерные и оптические.

Лазерные сканеры Основная часть лазерных сканеров работает на принципе триангуляции. Суть триангуляционных 3D сканеров состоит в том, что высоко контрастная камера ищет лазерный луч на поверхности объекта и измеряет расстояние до него. При этом оптическая ось камеры и лазера разнесены, а расстояние между ними и угол заведомо известны. Таким образом, путем не хитрых геометрических измерений мы можем достаточно точно измерить расстояние до объекта, быстро получив облако точек. По сравнению со сканерами измеряющими время отклика луча этот класс устройств имеет ограничения по дальности сканирования, но при этом сканирует объекты с высокой точностью.
Ярким примером подобных лазеров являются:

  • BQ Ciclop - 23 890 руб., Точность: 0.5-5мм от размеров детали, Область сканирования: 205 мм. Имеется вращающаяся платформа.
  • David Laserscanner - 59 000 руб., Точность: 0.5% от размеров детали, Область сканирования: 10-600 мм.
  • Digitizer (MakerBot) - 93 100 руб., Точность: 2мм, Область сканирования: 205 мм. Имеется вращающаяся платформа.
По сравнению с промышленными сканерами, стоимость данных устройств более демократична, и доступна большому кругу энтузиастов. Не зря такие сканеры стали настолько популярны. Эти сканеры идеально подходят для сканирования не больших объектов, например художественных фигурок или детских игрушек, для последующей печати на 3D принтере или получения 3D модели для использования в анимации или компьютерных играх.

А так же данные сканеры уже используются в образовательных целях во многих Российских школах и вузах.К другому типу лазерных сканеров относятся сканеры, основанные на измерении времени отклика лазерного луча от поверхности объекта. Данные виды сканеров представляют собой, по сути, лазерный дальномер. Такие сканеры широко распространены в строительстве и ландшафтном дизайне, успешно используются для создания 3D моделей зданий и памятников культуры. Они позволяют быстро оцифровывать окружающее пространство. Подобные системы компьютерного зрения даже устанавливались на первые прототипы беспилотных автомобилей.

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

Так же стоит отметить точность и скорость сканирования. У сканера FARO Focus 3D , стоимостью 65 500 $, заявленная точность составляет +-2мм на расстоянии до 25 метров. Скорость сканирования - 976 000 точек/секСканеры Leica HDS8800 и Leica ScanStation P20 имеют точность от2 до 20мм на расстоянии 100 и 1000м. Скорость сканирования же составляет до 1 млн точек/сек.Эти сканирующие устройства идеально подходят для съемок местности и больших объектов и не предназначены для сканирования мелких деталей.

Области применения: Ландшафтный дизайн, Геодезические измерения, Построение карт местности, Сканирование памятников культуры.

Оптические сканеры
Переходя к оптическим сканерам, хочется отметить сканеры, основанные на методе сканировании структурированным светом. Эти устройства представляют собой одну или две видео камеры в связке с кинопроектором. При засветке сканируемого объекта “зеброй” или черно-белыми квадратами, которые расположены в шахматном порядке, камеры анализируют искривления полученной картинки и на основе этих данных строят 3D модель. Этот метод широко применяется для реверс-инжинеринга, сканирования ювелирных украшений, часто применяется в медицине (протезирование). Особо стоит отметить использование данных сканеров в протезирование, так как трехмерное сканирование и печать в данной сфере работает максимально эффективно. Данная технология позволяет максимально точно изготовить косметический, функциональный или стоматологический протезы.

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

Данный метод сканирования популярен, и дает прекрасные результат, поэтому на рынке представлено достаточно много таких сканеров, вот некоторые из них:

  • RangeVision Smart - 175 000 руб. Область сканирования от 150х112х112 мм, до 500х375х375 мм, Точность: 0,2 мм - 0,1 мм.
  • David SLS-3 - 299 000 руб. Область сканирования от 10 до 600 мм, Точность - 0.05%
  • Volume Technologies VT Mini - 340 000 руб. Область сканирования - от 50 до 500 мм, Точность - 0.1%
  • RangeVision Standard Plus - 585 000 руб. Область сканирования от 66*50*50 мм до 850*530*530 мм, Точность: 0,015 - 0,16 мм
  • RangeVision Advanced - 710 000 руб. Область сканирования 66*50*50 мм до 850*530*530 мм, Точность: 0,03 мм - 0,16 мм. Разрешение камер: 2Мп
  • RangeVision Premium - 1 220 000 руб. Область сканирования от 66*50*50 мм до 850*530*530 мм. Точность: 0,015 мм - 0,16 мм. Разрешение камер: 5мп
Так же стоит отметить возможность использования совместно со сканерами дополнительные аксессуары, например клеящиеся маркеры, специальные матирующие спреи а так же моторизированные поворотные столы . Все это упрощает сканирование.

Области применения:

Ручные сканеры

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

Области применения: Реверс-инжиниринг, Образование, Хобби, Компьютерные игры, Протезирование, Сканирование людей, Архитектура, Музейное дело

Контроль измерений

Одним из наиболее востребованных направлений применения 3D сканеров является контроли измерений. В этом направлении используются высокоточные сканеры, оборудованные очень точными камерами, проекторами и имеющими специализированное ПО для анализа отсканированных изделий и сравнения их с CAD моделями. Например:

  • AICON stereoSCAN 3D – Точность сканирования - 0,025 мм, область сканирования – 400х400 мм.
  • GOM ATOS Compact Scan 2M – Точность сканирования - 0,021 - 0,615 мм, область сканирования: 35 x 30 - 1000 x 750 мм².
  • Gom ATOS Core 200 – Точность сканирования - 0,03 мм, область сканирования: 200 x 150 мм.
Области применения: Высокоточный Реверс-инжиниринг, Контроль геометрии

Бесконтактные пассивные сканеры И последний метод сканирования, о котором мы расскажем - бесконтактные пассивные способы сканирования. Они существуют трех видов: Стереоскопический, Фотометрический и метод силуэта.

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

Области применения: Не детализированный реверс-инжиниринг

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

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

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

Если у вас появились дополнения или вопросы - мы с радостью их обсудим! Пишите в комментарии или на почту [email protected]

Хотите больше интересных новостей из мира 3D-технологий?

Доброго дня, мозгочины ! Самоделка о которой пойдет речь в этой статье, это лазерный 3D-сканер с открытым кодом под названием «FabScan», разработанный, кстати, как диссертация бакалавра.

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

Итак, поехали!

Шаг 1: Нам понадобится

Что рекомендует «FabScan»:
— Arduino Uno
— драйвер A4988 для шагового двигателя
— щилд для 3D-сканера «FabScan»
— 5мВт лазерный модуль
— биполярный шаговый двигатель NEMA 17 (200 шагов)
— блок питания 12В, 1А
веб-камера Logitech C270
— материал для корпуса (4 листа МДФ 60х30х0.5см, более подробно здесь)

То, что использовал я:
— Arduino Uno
— шаговый двигатель NEMA 17 (200 шагов)
— драйвер L298N для шагового двигателя
— 5мВт лазерный модуль (красный луч)
— блок питания 12В, 2А
— веб-камера Logiteck C270

Шаг 2: Создание корпуса

Из МДФ вырезаем детали корпуса, я для этих целей использовал дремель, и собираем его. Процедура эта не простая, так как для верного сканирования мозгокамера , двигатель и лазерный модуль должны правильно располагаться.

Шаг 3: Подключение электроники

Это довольно просто: монтируем шилд FabScan на Arduino, а уже на шилд устанавливаем драйвер в первый разъем для двигателя. К выходным контактам подключаем шаговый двигатель, а лазерный модуль к аналоговому контакту A4, и, наконец, подсоединяем питание и USB-кабель. Более подробно об этом .

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

Шаг 4: Код

Перед вами код для поделки от команды-разработчика, и который можно загрузить на Arduino прямо из браузера с помощью плагина Codebender. Для этого необходимо установить этот плагин и нажать кнопку «Run on Arduino», тем самым запустив «заливку» прямо из окна с кодом.

Примечание: Если вы используете опцию «Try Ubuntu», то перед выключением компьютера обязательно убедитесь, что ваши файлы сохранены!

Ориентируясь на вышепредставленные фото выполните следующие действия:

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

После настройки закрываем окно панели управления, помещаем в сканер объект и нажимаем кнопку «начать сканирование (start scan)».

Совет: Можно изменить файл конфигурации от команды-разработчика configuration.xml следуя представленным .

Сохранение полученного 3D-изображения:

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

— убедитесь, что файл со сканом имеет расширение.ply
— открываем файл в MeshLab и вычисляем нормали (Filters/Point Set/Compute normals for point sets)
— воссоздаем поверхности используя реконструкцию Пуассон (Filters/Point Set/Surface Reconstruction: Poisson).
На этом все! И всем мозгоудачи !