Создание 3D сканера из вебкамеры, лазера, и еще кучки радиодеталей

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (2) [1] 2   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
VampirBFW
13.01.2015 - 14:44
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18225
219
В прошлом году мы с другом были на летней школе. На ней необходимо было сделать проект. Прочитав две статьи про создание 3d сканеров мы решили попробовать свои силы в его сборке и по возможности улучшить его конструкцию. Мы даже не представляли, что из этого получится и тем более не представляли, что победим с ним на нескольких научно-инженерных выставках.

8 фото.

Создание 3D сканера из вебкамеры, лазера
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
VampirBFW
13.01.2015 - 14:46
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18225
Первый прототип

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


Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:46
Статус: Online


Главный Сапиосексуал Япа.

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

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

Версия два

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

Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:47
Статус: Online


Главный Сапиосексуал Япа.

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

Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:47
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18225
А результат так:

Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:47
Статус: Online


Главный Сапиосексуал Япа.

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

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

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

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

Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:48
Статус: Online


Главный Сапиосексуал Япа.

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

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

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

Создание 3D сканера из вебкамеры, лазера
 
[^]
VampirBFW
13.01.2015 - 14:49
Статус: Online


Главный Сапиосексуал Япа.

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

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

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

Заключение

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

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

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

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

А еще вот промеры отсканированных объектов. Но все они относятся к третьей версии сканера.
dropbox
В файле model.obj хорошо видно, что получается при проскальзывании этого резинового валика на моторе — у собаки три глаза. Сканирование остановили, из-за чего получился вырез. Все файлы — это облака точек. Открывать можно при помощи MeshLab. Модели не обрабатывались руками. Полностью сырые данные. Сверху видно «белые пятна» — участки без точек. Их не видит камера. Так же белые пятна можно заметить и в других местах. Они появляются либо на слишком темных участках, либо при перекрытии поверхностей. Например в файле stn_10.obj рога козла перекрывают друг друга, из-за чего внутренняя поверхность рогов не отсканировалась.

По традиции скомунизжено с любимой Хабры. Я копипаста, не надо со мной разговаривать.
 
[^]
mestny
13.01.2015 - 14:54
2
Статус: Offline


Весельчак

Регистрация: 17.06.13
Сообщений: 145
Молодцы парни. Однако идея и подобная реализация стары как мир. Пару лет назад тоже рукожопил что то подобное. Однако использовал не свой софт, а забугорный. Качество модели правда оставляли желать лучшего.
Кстати, лазер с успехом заменялся на красную нить, хоть и шероховатость модельки увеличивалась.
 
[^]
MrFormoza
13.01.2015 - 14:56
5
Статус: Offline


Шутник

Регистрация: 19.11.14
Сообщений: 19
Вот так рукоделы! Зеленю!
 
[^]
Sanchozz
13.01.2015 - 14:58
19
Статус: Offline


Ярила

Регистрация: 27.11.12
Сообщений: 2556
Молорики чё

Создание 3D сканера из вебкамеры, лазера
 
[^]
vsprog
13.01.2015 - 14:59
11
Статус: Offline


Ярила

Регистрация: 13.01.15
Сообщений: 1152
Собрать своими руками - очень здорово! Надеюсь, что с такими ребятами и до телепортации объектов доживем)
 
[^]
BETEP
13.01.2015 - 15:00
2
Статус: Offline


Скромный гений

Регистрация: 13.02.10
Сообщений: 913
Камеру я узнал, одна из самых удачных. Логитек С270 :) Она у вас прошла через все 4 варианта.
 
[^]
ТопоГРАВ
13.01.2015 - 15:04
4
Статус: Offline


Главное, ребята, перцем не стареть!

Регистрация: 19.10.07
Сообщений: 12099
Молодцы ребята.

У меня два пожелания: продолжать начатое и соблюдать ТБ, думаю, засветка в глаз лазером здоровья не прибавит.
 
[^]
Alex0053
13.01.2015 - 15:10
6
Статус: Offline


Ярила

Регистрация: 1.09.11
Сообщений: 12312
Гейтс тоже начинал с гаража!
Молодцы, ребята! Дерзайте!!!
 
[^]
2600
13.01.2015 - 15:25
3
Статус: Offline


Анархист

Регистрация: 20.11.12
Сообщений: 60
На такое дело смело потратил бы денег. И на помощь создателям, и на готовый продукт.
 
[^]
Rusyadoomer
13.01.2015 - 16:43
20
Статус: Offline


Яж_врач

Регистрация: 17.09.14
Сообщений: 850
Есть идея захерачить область сканирования метр на два. И в гараже сканировать детали от автомобилей, угадайте для чего smile.gif

Мечта - самому себе простым тыканьем кнопок на ноутбуке сварить в гигантском 3Д принтере деталь обвеса машины. Какую хочу, но со стандартными креплениями.

PS. Я знаю о стекловолокне, знаю что 3Д будет дороже и не такое гладкое. Это мечта, не пачкайте её пожалуйста.
 
[^]
VampirBFW
13.01.2015 - 17:06
16
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18225
Цитата (Rusyadoomer @ 13.01.2015 - 16:43)
Есть идея захерачить область сканирования метр на два. И в гараже сканировать детали от автомобилей, угадайте для чего smile.gif

Мечта - самому себе простым тыканьем кнопок на ноутбуке сварить в гигантском 3Д принтере деталь обвеса машины. Какую хочу, но со стандартными креплениями.

PS. Я знаю о стекловолокне, знаю что 3Д будет дороже и не такое гладкое. Это мечта, не пачкайте её пожалуйста.

Простите, Вас случайно не волк зовут? Вы там нисан с бмв не спаривали?
 
[^]
jarosl
13.01.2015 - 17:36
3
Статус: Offline


Пессимист

Регистрация: 24.12.14
Сообщений: 615
Цитата (Rusyadoomer @ 13.01.2015 - 16:43)
Есть идея захерачить область сканирования метр на два. И в гараже сканировать детали от автомобилей, угадайте для чего smile.gif

Мечта - самому себе простым тыканьем кнопок на ноутбуке сварить в гигантском 3Д принтере деталь обвеса машины. Какую хочу, но со стандартными креплениями.

PS. Я знаю о стекловолокне, знаю что 3Д будет дороже и не такое гладкое. Это мечта, не пачкайте её пожалуйста.

Тогда сканирование не нужно. Просто сделать 3D модель и потом вывести на 3D принтер

Хотя со сканированием мне очень идея понравилась! Молодцы ребята! Творческий процесс!
 
[^]
BelBES
13.01.2015 - 17:57
1
Статус: Offline


Ярила

Регистрация: 15.04.13
Сообщений: 13171
Цитата (BETEP @ 13.01.2015 - 15:00)
Камеру я узнал, одна из самых удачных. Логитек С270 :) Она у вас прошла через все 4 варианта.

Не удачная. Увы, но качество картинки у неё плохое, слишком замыленные картинки. Сейчас как раз мучаюсь проблемой выбора цифровой usb/ethernet-камеры с, пускай небольшим разрешением(для моих целей 640х480 уже хорошо, 1024х768 - просто замечательни), но высоким FPS и максимальным качеством картинки. Пока из доступного разве что GoPro хоть как-то соответствуют моим требованиям, но уж больно у них цена кусается.
 
[^]
Obrazina
13.01.2015 - 17:58
5
Статус: Offline


Шутник

Регистрация: 4.07.13
Сообщений: 0
Главное помнить предупреждение:
ВНИМАНИЕ! НЕ смотри в лазер оставшимся глазом!
А пацаны вообще ребята, в интересное время живут, я о таком в школе мог только мечтать

Это сообщение отредактировал Obrazina - 13.01.2015 - 17:58
 
[^]
Praskovesky
13.01.2015 - 17:59
2
Статус: Offline


Шутник

Регистрация: 29.06.14
Сообщений: 44
Ну 3Д принтеры раньше тоже умельцы из фанеры делали, да и сейчас делают. Однако, некоторые из умельцев уже и посерьезный агрегаты выпускают, на продажу. Сам пользую отечественного производителя, штука очень интересная, правда не окупилась еще...тяжко сей девайс вписывается в реалии нынешние. Но я уверен, за этим будущее. Аналогично и со сканерами будет, так что, в правильном направлении движетесь, товарищи. И технологии отечественные двигаете и сами, глядишь, на кусок хлеба заработать на этом смогёте.
 
[^]
Хитрожопик
13.01.2015 - 18:01
0
Статус: Offline


Наблюдатель за человеками

Регистрация: 18.12.14
Сообщений: 4063
Молодцы, что тут скажешь ) Не бросайте это дело!
 
[^]
Vova227
13.01.2015 - 18:11
2
Статус: Offline


Весельчак

Регистрация: 12.11.14
Сообщений: 176

У них силиконовая дооооооолина, а у нас умельцы с золотыми руками в каждой квартире ....
 
[^]
RozarivaAgro
13.01.2015 - 18:23
1
Статус: Offline


Приколист

Регистрация: 8.04.13
Сообщений: 344
Какая именно летняя школа?
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 37444
0 Пользователей:
Страницы: (2) [1] 2  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх