3D сканеры Ciclop и Piclop
Два сканера со сходной идеологией, но разными аппаратными и программными решениями. Вероятно, самый простой способ отсканировать модель это поместить ее на вращающийся стол, осветить под углом лазерной указкой с цилиндрической линзой, превращающей точку в вертикальную линию, снять на камеру и вычислить смешение точек линии от вертикали вызванные моделью.
Года 3 назад идея была реализована в Испании BQ labs и опубликована под свободными лицензиями. Были выложены детали конструкции для печати на 3D принтере и очень красивая программа horus, написанная на Python. Для четкого выделения лазерной подсветки необходимо было управлять экспозицией камеры. В момент создания актуальной была Ubuntu 14.04. V4L2 поддерживает управление камерой, но она не стыкуется с официальной версией OpenCV.
Следуя принципу написания минимального собственного кода для получения работоспособного результата, разработчики слегка подправили текущую версию OpenCV. Решение правильное, рабочая установка была получена, а кто запоздал, пусть сам расхлебывает ситуацию, при которой установка на новые версии Ubuntu требует сноса всех программ, использующих более новые версии OpenCV. Идеологически система устарела, и авторам. вероятно, было не интересно править последующие версии тем более, что массового потребителя, использующего в своей работе Windows это не коснулось, поскольку в этой ОС используются драйверы от производителя камеры.
Сообщество конечно задачу попыталось решить, но идеального всех устраивающего результата похоже не добилось. Я воспользовался решениями, предложенными Fabien Devaux. Его версия horus не требует специальной версии OpenCV, но работает очень медленно. Он предложил свое решение этой проблемы, написав программу thot с интерфейс командной строки CLI (Command line interface). Программа имеет собственную систему автоматической калибровки, но можно воспользоваться и результатами калибровки, полученными с помощью horus.
Программа мне в целом очень понравилась, но вот автоматическая калибровка это не мой стиль :-). В случае ручной калибровки достижение результата это вопрос времени и терпения, а в случае автоматической это всегда лотерея. Конструкция Ciclop плохо приспособлена для калибровки путем перемещения лазеров и камеры, хотя конечно можно подправить автоматически полученные цифры для получения приемлемого результата с имеющимся расположением элементов конструкции.
Поэтому встретив в сети описание сканера на камере Raspberry Pi (с которой я хорошо знаком) и требующей именно точной механической юстировки элементов конструкции я решил ее повторить. Для управления в этом случае используется программа freelss, написанная на C++. У камер Raspberry Pi очень богатые возможности управления экспозицией, но в данной программе они не используются, а для точной подгонки используется регулируемое освещение.
На данном этапе я не стал переделывать программу и решил сравнить возможности сканеров как бы в первозданном виде. Поскольку я собирал свою конструкцию исключительно из имеющихся деталей, то в конструкцию были внесены некоторые изменения, а совместимость с исходным кодом программы была достигнута введением, вообще говоря, лишнего элемента на компьютере Arduino.
- Моя конструкция сканера Piclop
- Сканирование с помощью программы freelss
- Сканирование с помощью программы horus
- Сканирование с помощью программы thot
- Обработка
- Подведение итогов
Сканеры позволяют добиться примерно одинакового результата. Высокое разрешение камеры Piclop не востребовано, как и возможность делать более 800 снимков за один оборот. Лимитирует разрешение воспринимаемая толщина лазерного луча. Воспринимаемая толщина линии зависит от яркости точки, которая в свою очередь зависит от отражающей способности материала модели и угла падения луча на поверхность.
При использовании нынешнего алгоритма выделения лазерного луча уменьшение толщины линии за счет лучшей фокусировки или увеличения единого порогового значения приведет к улучшению разрешения для ярких точек и к полной потере информации для более темных.
Сейчас у нас компромисс состоит в том, что за счет ограничения разрешения мы получаем информацию о всех точках поверхности, на которую упал лазерный луч. Потенциально для сканера Piclop можно написать программу которая при высоких разрешениях будет делать несколько снимков с разной экспозицией. Однако это увеличит и так не маленькое время сканирования с разрешением 5 Мп.
Если не рассматривать отдельных моделей с мелким слабовыраженным рельефом, разумное разрешение для этого сканера 1,9 Мп (1600 х 1200). При этом разрешении скорость сканирования у обеих сканеров порядка пяти минут, но учитывая меньше операций финальной обработки, результат со сканера Piclop будет получен чуть быстрее.
Мне оказалось легче добиться приемлемого результата при сканировании с двумя включенными лазерами на сканере Piclop с ручной калибровкой. Это достаточно трудоемко, но терпение и время позволяют добиться результата, тогда как автоматическая калибровка это лотерея, может сразу повезти, может не повезти никогда.
Еще больше интересных статей
3D-модели для 3D-печати и не только: тoп сайтов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
NetFABB: Кручу-верчу, порезать хочу!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сегодня я хотел бы рассказать о программе NetFABB B...
Печатные пряники и Mathematica
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Автолак точно имеет УФ защиту,...
Чем катртезианская отличается....
Вы на слои посмотрите, это не....
Доброго времени суток, столкну...
купил новый шаговый двигатель...
Разделение моделей это жуть, о...
Я получил доступ к принтеру и...