Как стать автором
Обновить

Комментарии 55

Вот это я понимаю — серьёзный подход к хобби. Скажите, а на мелких объектах точность не проверяли? Получится достичь 0,02мм на объекте размером примерно 40х40х40мм?
Это другие конструкции под другие входные условия. Поворотные столики и маленькое расстояние до камеры.

Точность определяется:
  1. разрешение камеры.
  2. угол обзора
  3. ширина линии лазера.

На расстоянии 1.5 метра для камеры смартфона и 1 мм разрешения это очень хорошо.

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

Предел для:
  1. камера Samsung S5
  2. середина пасмурного дня в помещении не на солнечной сторон .
  3. лазеры 30 мВт.

Около 3-4 метра на светлых обоях. Дальше камера не берет. Точнее результат сильно «зашумленный»
(субъективные критерии конечно. Но фотоэкспономера нет)

Ну да, не на солнечной стороне и в пасмурную погоду, у меня лазер 50мВт вполне хорошо определялся…
Но мне то нужен сканер чтобы везде работал.
Хотя бы в помещениях.
Идея сделать не большой сканер бюджетный(до 100 тыс руб), который бы можно было использовать для сканирования помещений.

Бюджетный сканер помещений (если не нужен цвет скана и не принципиально время сканирования, а важна точность) можно делать на линейках типа TDC1304.
Я на ней спектрометр делал.
Не дорого стоит, и разрешение (линии) всяко побольше чем у бюджетных камер.
Механика только… на коленке не сделать. Но это ВСЕХ сканеров касается. Основное в них — точность механики.

Спасибо, за подсказку.
Нужно сканирование 360°, за 3-4 минуты максимум.
Зы. В личку напишу с описанием проекта, может быть заинтересуетесь.

Механика только… на коленке не сделать

В старых жестких дисках (например на 2 ГБ) два высокоточных шарикоподшипника — двигатель диска и узел подвеса блока головок. Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления

Нужна не столько точность, сколько повторяемость при работе, тогда точность можно получить калибровкой. Т.е. например, если угол будет не 90 градусов, а 88, но с высокой повторяемостью — это можно учесть в софте
Мне кажется, что «лазерную указку» они выдержат. Для варианта как в статье двигатель удобнее — есть фланец для крепления

И у меня такая мысль была.

Но, мне показалось гораздо проще купить очень доступные шаговики (сразу со шкивом на валу) платы драйверов для них. Их сплошь и рядом продают для 3D принтеров.
Чем возится с управляющим контуром для узла подвески и калибровать его (а в каждой модели HDD они разные). Выигрыш в размерах незначительный. А нудной возни — много.

А по поводу использования узла подшипников…
У меня валяет с пяток потрошенных корпусов от HDD. Пытался приспособить узел с подшипником от них как поворотный для этого же 3D сканера. И так прикладывал и сяк… и даже начал срезать лишнее дремелем. Извел 5 дисочков (вязкий метал… дюраль) — задолбался.

… И решил, что проще на ЧПУ вырезать самому из стеклотектолита конструкцию. Два обычных подшипника на одном валу вполне обеспечиваю необходимые требования к люфту оси.
40 минут на эскиз и подготовку файла с G-code. И час на вырезание. А стянуть болтами и закрепит все еще минут 20.

беда головок от HDD в том, что они не занимают какую либо позцицию при прикладывании потенциала к катушке. положительный потенциал — едет до конца в одну сторону, отрицательный — в другую. величина потенциала регулирует скорость.
с этой точки зрения, позиционировать что либо головкой от HDD представляется маловероятным, т.к. обратная связь в HDD идет через чтение инфы на жестком диске. а в самопале как понимать, в каком положении головка? энкодер еще туда лепить?
Индукционный или ёмкостный датчик.
Если у нас не шаговик — то нужна обратная связь, ПИД, вот это вот всё.
Использовать мотор HDD действительно сложно. Я имел в виду, что если нужна точная механика «на коленке», то можно использовать этот моторчик с откушенными проводами в качестве точного безлюфтового (ну, почти) подшипника. Т. е. вместо тех двух что вы покупали. Это на случай когда лишний моторчик уже есть под рукой, а за подшипниками надо идти )
Если поднять планку до ~150 тысяч, то Basler ToF Camera очень хороша. К ней какой-нибудь odroid добавить для сбора и сохранения данных и вперед. Точность замечательная, промышленная железка, механику или оптику изобретать не надо, знай себе, тащи готовое облако точек, да считай. Если хорошо попросить, дают образец на недельку-другую попробовать :)
Если не нужно высокой точности, можно попробовать эхолокацию (статья). Собственно, исходник не так интересен, как цитирующие статьи, где описывается улучшение точности и снижение требований к микрофону, динамикам и их расстановке Если интересно, скину самые интересные по моему мнению статьи на тему.
бюджетнее для помещений чем autodesk recap не существует :)
Тоже раньше пытался баловаться с лазерами для 3D-сканов, но после того, как открыл для себя фотограмметрию, лазеры стали как-то абсолютно неинтересны. Честно говоря, не знаю даже, есть ли у них преимущества в домашних условиях.
А как с объектами с однородной монотонной поверхностью?
маркеры можно наклеить, а потом стереть
Или лазером проецировать точки/полоски. Wait, oh shi~
С этим действительно были проблемы. Помню, у меня не получилось отсканировать монотонно окрашенную сторону яблока. Возможно, при лучшем освещении и оборудовании (я фотографировал на очень дешевую мыльницу, на кухонном столе), результаты были бы лучше. + можно нанести маркеры, да. Но с остальными объектами все было более, чем хорошо, учитывая мой ужасный опыт с лазерами до этого. Ну и у лазеров тоже есть недостатки (на мой взгляд их даже больше): использовать их не так удобно, как просто сфотографировать объект со всех сторон. Размер объекта заметно ограничен, проблемно сканировать блестящие объекты и т.д. Не говоря уже о том, что китайцы могут обмануть и прислать дефектный модуль лазера (как это у меня было и чисто бывает с зелеными лазерами в целом), а стоит все это достаточно много. Для бытового использования, мне кажется, фотограмметрия — лучший метод из доступных.
Фотограмметрия, насколько я знаю по опытам с коллегами в плане анализа рельефа спины (осанки), имеет свои минусы. Например необходимость вручную «ставить» точки на координатной сетке, которые неправильно обсчитались программой по стереопаре, затем в отдельной программе простраивать 3d. В отличие от оптических анализаторов (представленных на рынке). Хотя точность фотограмметрии не вызывает ничего кроме восхищения
Спина действительно довольно однородна в плане цвета, так что могут быть проблемы. Я, конечно, имел в виду бытовое использование: я, например, сканировал разные предметы типа фигурок, еды и прочего, которые можно использовать для визуализации или игр. Учитывая, что фотографировал я на мыльницу за 3000р, результаты были более, чем впечатляющие. И никаких лазеров, двигателей и прочего. Размер сканируемого объекта тоже, по сути, неограничен. Ну или ограничен ресурсами ПК и удобством его фотографирования.
Для фотограмметрии обязательны маркеры (естественные или искусственные), или достаточно знать смещение камеры относительно сцены?
На самом деле все сводится примерно к такому: берем объект с относительно неоднородной текстурой (с монотонно окрашенными объектами действительно были проблемы), фотографируем со всех сторон с нормальным освещением и фокусом, закидываем все эти фотографии в программу для обработки, а все остальное делается почти автоматически (строится облако точек, а по нему — модель). Маркеров не надо никаких.

А если вращать не сами лазеры, а зеркала?

По поводу зеркал…
Были сомнения:
  1. по точности управления углом (а это очень важно).
  2. У большинства готовых угол 15-20 максимум.
  3. готовые цифровые стоят безумные деньги.

И пр. сомнения. Да же не стал особо копать.
Не нужна здесь скорость перемещения высокая. Камера не скоростная ничуть…
Это хорошо заметно, когда в режиме позиционирования лазеров (20 градусов в сек) луч на экране телефона размазывается в полосу (и так же кадр в буфере выглядит).

Позиционирование шаговым двигателем бюджетное и предсказуемое решение.
Вроде встречал управление поворотом не на шаговых двигателях а на основе электромагнитов — т.е. грубо говоря в одну сторону зеркало поворачивает пружина, а в другую тянет электромагнит с управлением от ЦАП. Нелинейность компенсируется калибровкой и можно получить в принципе любую разрешающую способность в пределах механики. Проблема только с демпфированием колебаний.
Бесколлекторные тихоходные моторы еще можно, в подвесках камер со стабилизацией вроде достаточную точность дают.
Рассмотрите вариант вращения лазера с постоянной скоростью. За объектом ставится юстировочная шкала, которая показывает реальное положение луча в пространстве. Луч вращается с постоянной скоростью. Момент съемки для каждого положения луча выбирается задержкой от прохождения контрольной точки по датчику на оси лазера (по ходу сканирования растет от 0 до максимума в конце шкалы). По ходу съемки в случае пропуска кадра (ошибка, уплывание скорости вращения) отдельные кадры доснимаются в процессе того же самого цикла сканирования (ничего крутить заново не надо, просто делаются допкадры в нужные моменты времени). Лазер (строительный) можно поставить на любую вращалку (хоть на проигрыватель пластинок). Главное, чтобы скорость вращения была не слишком большой для времени экспозиции. Таким образом сильно упрощается механическая часть. Вообще можно крутить лазер руками (важно лишь сохранить ось вращения неподвижной), софт сам ориентируясь по видеоанализу юстировочной шкалы делает фотоснимки и дает просьбу (можно прямо на экране), где еще надо медленно поводить лазером. Это как с мойкой автомобиля. Нужно водить струей (лучом) по объекту, а смывание (в нашем случае съемка) — всего лишь вопрос времени.

Итого, для ручного сканирования нам нужен поворотный строительный лазер (вертикальный луч), штатив для смартфона, распечатка юстировочной шкалы шириной во весь кадр. Далее голая математика. При наличии двух шкал (одна перед объектом, другая за ним) софт сам вычислит расположение оси лазера для левого и правого сканирования. Между левым и правым сканированием необходимо обеспечить неподвижность камеры, объекта и шкал. Ось вращения переносится руками в приблизительное место достаточное для стереобазы сканирования.
Такой метод будет работать без синхроимпульса, когда мотор и камера связаны по воздуху, с каким-то лагом связи? Когда тактирование общее, тут все очевидно.
Положение отметки луча на двух юстировочных шкалах однозначно дает нам ответ об угле поворота лазера в момент создания кадра. При более-менее постоянной скорости вращения луча (даже руками) по информации из предыдущего кадра можно спрогнозировать момент запуска экспонирования следующего кадра для ближайшего столбца сканирования.
В моем проекте используется прошивка TCPtoUart для ESP8266, начиная с версии 5.6 исправлена багуля, что ESP сначала ждем наполнения буфера в N байт, а потом отправляет их. Или, если не наполнен буфер, то отправляет то, что есть, каждые (примерно) 50 мс.

В старших версиях отправляется сразу все, что пришло на порт и обратно так же.

Кароче в моем проекте я из STM32 на пк общаюсь на скорость 4 мегабита (бодрейт).
Фактически, моих данных передается 40 пакетов по 1.5 килобайта в секунду (от STM32) и еще столько же запросов этих пакетов (от ПК).

Это в первом режиме. В другом режиме происходит тупо пинг и запрос статусов, не очень длинной посылки. Тогда уже примерно 100 пакетов в секунду от STM32 приходит. То есть фактически, на коротких посылках, пинг достигает 10 мс, получается.

Так что это вариант для вас ускорить систему.
esp8266.ru/forum/threads/proshivka-tcp2uart-perexodnika-s-nastrojkoj-po-web.146
тут есть прошивка. нужна версия больше 6 (чтоб наверняка)
Большое спасибо.
Я нечто подобное и предполагал, но лезть в боковую ветку и разбираться с ESP8266 было не охота.
Обязательно попробую.
Да не за что.
Я тоже себя когда то переборол и залез в эти дебри. Получил в общем целом очень удобный интерфейс связи с пк для моих устройств.

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

Единственный минус этой прошивки для меня — иногда эти настройки слетают и приходится лезть на веб морду. Чаще всего от сброса по питанию.
Я вычитал, что там есть настройка — детектирование положительных фронтов на юарте модуля при запуске и если что то есть — сброс настроек wi-fi. Хотя я ее и отключил, сбросы иногда случаются.

Возможно кто то тут знает в чем дело и может подсказать?

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

Хотя дайте мне стабильный аналог TCP to UART с веб мордой, за 150 рублей, и я с радостью перейду))
rtl8710? Он чуть дороже.
Еще вопрос в выборе платформы на Андроиде. Почему не выбрали что-то более подходящее? Например тот же Rpi с камерным модулем наверняка бы справился. В нем же уже есть возможности подключения управляемой периферии напрямую.
Предположу, что телефон вот он лежит, а малину с камерой нужно заказать и ждать.
Но ведь и остальные детали данного эксперимента тоже нужно было заказывать? Лазеры, моторы, тот же Bluetooth модуль.
Малина у меня есть. И не одного варианта.
Быстродействие старого Samsung S5 (уже далеко не топ) далеко превосходи Малину.
Ну и да… давно новый телефон. А старый просто валялся…
айфон нечто подобное делает за полсекунды, но принцип работы иной.

image
а что это за софт?
Штатная программа «камера» создает с двух физических оптических камер 3Д картинку для наложения программной эмуляций малой ГРИП. Менять ГРИП и точку фокусировки можно на пост обработке, а пример приведенный выше позволяет посмотреть объемное изображение для точной фокусировки, но для этого нужен любой сторонний софт например программа focus.

image

Прячьте, пожалуйста, такие картинки под спойлеры. У меня из-за них браузер чуть не завис
Трафик жрёт даже под спойлером, возможно и память.
Класс. А можно ли решить подобным образом задачу по определению реальной площади корпуса лодки? Все лодки разные, калькуляторы окраски не точны.
Есть ещё вариант подключиться к USB телефона через IOIO. Обещают отзывчивость (latency) ~ 1 мс.
Вот если бы я был силён в программировании… а нельзя ли выложить просто готовый apk для смартфона? Ну и просто схему для stm? Просто я скорее ленивый, чем незнающий :-)
Считайте это входным барьером…
Если лень поставить Android Studio и выбрать пункт «Build», то и уже спаять провода и пр. точно будет лень
Буду считать ваши слова- пинком к действиям! Андроид студия есть на нетбуке. а паять… в конце концов паять то я умею :-D как ни как- работа такая, тем более, что сканер хочется сделать, чтобы знакомому отдать 3d модель для печати на станке (он его дособерёт вскоре).
Здо́рово. Сколько же труда положено… А теперь поставить всё это на поворотную платформу и делать снимки на 360° и от потолка до пола!!! Когда-то нужен был такой аппарат.
А не рассматривали вы идею использования гальванометров (как в лазерных проекторах) для управления лазерным лучом? Плюсов вроде больше, высокое разрешение и скорость. Но я не такой уж и техник просто тоже думаю о сканере и пока все на стадии мыслей.
Очень интересные решения. Сам пока же нахожусь на уровне сканирования препятствий в помещениях на плоскости.
А если вместо шаговиков на ременях использовать что-то вроде червячных двигателей от cd/dvd приводом для поворота лазеров? Будет намного компактнее и можно решить вопрос с точностью позициониования.
Когда увидел фото подумал — «Что это за колайдер в реальности делает?».
А способ передачи через OTG?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории