Механический глаз своими руками

Делаем глазки со следящим эффектом

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

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

Сначала немного теории и условий, без которых этот эффект не выполним.

1. Уголки глаз должны быть на одном уровне или до 30 градусов вверх или вниз.

Далее все разъясню на практике.

2. Верхнее веко должно немного закрывать зрачок.

3. При повороте изделия глазик должен выглядеть примерно так:

А теперь практика. Берем самый обычный глаз, как видим, без всяких эфектов.

Делаем веки. У верхней меня случай, когда уголок глаза выше. Получаем результат.

Получаем результат. Как видно, следящий эффект с обоих сторон.

Разберем ошибки. Что будет если мы слишком отдалим уголок глаз?

Как видно, следящий эфект есть, но только с одной стороны, если развернуть изделие, его не будет.

Что будет, если не прикрывать зрачок верхним веком?

Все просто — эффекта просто не будет.

Вот такой маленький мастер-класс, надеюсь, кому-нибудь пригодиться и совсем сильно ругать не будете, я старалась 🙂

Источник

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

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

Этот мастер-класс для ознакомления, и я буду рада комментариям и советам, особенно от бывалых мастеров, которые работают с кабошонами.

— круглые кабошоны необходимого размера глаз;

— основа для сережек-гвоздиков;

— распечатка радужки глаз такого же размера, что и кабошон (у меня распечатано на обычной бумаге, подозреваю, что можно использовать фотобумагу и таким образом добиться большей четкости, буду рада, если кто-нибудь поделится своим опытом);

— клей у меня титан (UHU, Е6000);

— 6 минут свободного времени;

Вырезаю кружочки — радужки. Плоскую сторону кабошона обезжириваю спиртосодержащей жидкостью, мажу клеем (зубочисткой) тонким слоем и сильно прижимаю вырезанную радужку «лицом» к клею. Мой клей позволяет еще какое-то время производить маневры. Прижимаю, шевелю по кругу, если образовались пузырики. Таким же образом делаю второй глазик.

Жду минутку, чтобы клей схватился. Время ожидания зависит от клея. Делаем «ножку». Тут я делаю проще — макаю пластинку основы для сережек в клей и прижимаю к приклеенной бумажке глазика. Излишки клея можно разровнять зубочисткой.

Сушим! И радуемся результату. У меня на пару глазиков ушло 6 минут.

Но тут мой внутренний китайский пионер не дремал. и раскрасил кабошоны акриловой краской 🙂 Тут уже на любителя — мне больше понравился результат раскрашенных глаз, чем «бумажный» вариант. Всё-таки больше индивидуальности в каждой паре глаз. Как разрисовать глазки, рассказывать не буду, на эту тему много мастер-классов уже написано.

И пару слов про гаджет. Синяя штука, на которой сушатся глазки, это крышечка от маленького пластикового контейнера, я клею на нее двойной скотч — на такой конструкции очень удобно фиксировать глазки, просто «кладу» кабошоны лицом вниз и делаю с ними что хочу, они уже никуда не денутся 🙂 Если вам тоже захочется поэкспериментировать с росписью, попробуйте, очень удобно.

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

Для примера: нижние глазки с распечатки на обычной бумаге, верхние — нарисованные.

Источник

Добавляем роботу глаза

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

Читайте также:  Медная блесна своими руками

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

Шаг 1. Взять робота

Перемещать предметы у нас будет Dobot Magician. Смотреть, как он будет перемещать предметы — Intel Realsense D435. А калибровочным объектом придется побыть красному шарику.

Вот так выглядят они вместе взятые.

Красный шарик выбран не просто так должен же кто-то наряжать ёлку. Красный — чтобы его можно было легко находить на изображении (без обучения ещё одной сети). Шарик — чтобы точнее рассчитать его центр на изображении. Но к этому вернемся позже.

Шаг 2. Где робот двигает шарик

Алгоритм калибровки можно описать так:

  1. Генерируем список позиций в пространстве
  2. Робот передвигает шарик по списку, снимая изображения с ним
  3. Для каждого изображения находим координаты шарика
  4. Рассчитываем преобразование координат камеры в координаты робота

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

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

Единственное требование — чтобы взаимные положения камеры и робота оставались все время неизменными. Также рекомендуем сразу отснять второй набор картинок для валидации — чтобы оценить, насколько точно удалось вычислить калибровку.

Шаг 3. Получаем координаты

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

Для изображений шарика же его координаты еще предстоит вычислить. Воспользуемся удачно выбранным объектом для калибровки. Переформулируем задачу поиска шарика как «найти наибольшую область красного цвета», что на python + opencv будет звучать как:

После конвертирования в пространство HSV изображение выглядит вот так:

Как видно, для темных пикселей оттенок (hue) достаточно шумный, и нужен дополнительный критерий для сегментации. Оставим только красные пиксели , и посмотрим на канал насыщенности. На этом канале калибровочный шарик ярко выделяется.

Тогда итоговый критерий будет выглядеть так:

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

После чего получаем примерно следующее:

Теперь необходимо найти координаты центра сферы. Здесь существуют разные подходы, например можно подгонять 3д модель сферы под облако точек. Однако у realsense D435 на границах объектов значения глубины достаточно шумные, поэтому мы пойдем другим путём.

Будем считать, что шарик здесь — наибольшая связная область. Тогда найдем её центр и узнаем глубину до этой точки поверхности шара из depth канала. И с небольшой помощью стереометрии, перейдем от видимой точки поверхности шара к его его центру.

Чтобы найти центр шара, воспользуемся знанием, что проекция должна быть кругом, а мы хотим получить несмещенную оценку центра (но присоска робота пытается нам помешать). Здесь достаточно найти круг минимальной площади, описывающий данную область, и это уже решено в opencv — minEnclosingCircle.

Получив 2 координаты точки u, v в пикселях и глубину до нее в миллиметрах, переведем их в физические координаты в СК камеры:

camera_matrix — матрица внутренних параметров камеры, согласно формуле.

Шаг 4. Производим калибровку

Читайте также:  Подставки под мотоблоки своими руками

На данный момент мы получили 2 набора точек для разных положений в пространстве: координаты самого верха сферы — точки, за который роботу присасывает шарик, в СК робота, и координаты видимого центра шарика — точки сферы, ближайшей к камере, в СК камеры. Чтобы их сопоставить, сначала нужно привести их к одной физической точке шара.

И наиболее простым способом будет перевести эти точки к центру шара. Измеряем его радиус r = 24мм. Тогда понятно, как из точки касания K получить координаты центра шара O — касание всегда на 1 радиус выше по оси Z.

Остается перевести координаты V центра видимой области в координаты центра шара O. Чтобы объяснить, как это сделать, воспользуемся рисунком:

Получается, что реальный центр шара O всегда находится ровно на 1 радиус глбуже, чем видимая точка V. Это означает, что найденный радиус-вектор надо продлить на 24 мм.

Остаётся совсем немного — имея 2 набора 3д координат, отвечающих одним и тем же физическим точкам, найти преобразование первого набора во второй. Воспользуемся для этого функцией opencv cv2.estimateAffine3D. Для идеально найденных координат аффинное преобразование — конечно перебор, для того, чтобы описать преобразование точек достаточно поворота и смещения, растяжение будет лишним. Однако использование аффинного преобразование позволяет скомпенсировать неточности при плохо рассчитанной матрице внутренних параметров камер. Даже более того — позволяет получить калибровку не зная их совсем.

На выходе — 3х4 матрица transformation, первые 3х3 компоненты являются матрицей поворота совмещенной с растяжением по осям. При правильной калибровке камеры и хороших входных данных должна получиться матрица, близкая к матрице поворота. Оставшиеся 3 числа — вектор смещения между камерой и роботом.

Шаг 5. Пользуемся калибровкой

Чтобы воспользоваться полученной калибровкой, придется повторять указанные преобразования. Сведём их в единый алгоритм.

  1. Находим на RGBD изображении координаты интересующей нас точки u,v, depth
  2. Переводим их в физические координаты x, y, z в СК камеры при помощи матрицы внутренних параметров
  3. В случае с шариком, интересующая нас точка находится в глубине шарика
  4. Применяем найденное преобразование transformation, которое обозначим матрицей Т
  5. Мы получили координаты центра шара в СК робота. Чтобы робот не пытался проткнуть шар — на управление отправим точку на 1 радиус выше

Точность калибровки

Мы рассчитывали калибровку по 9 положениям. На валидационном наборе из еще 6 положений получилась точность в 2.5 мм при размере рабочей области 16х30х5 см. Для этого мы применили найденное преобразование к оставшимся изображениям и рассчитали среднюю длину вектора ошибки.

Шаг 6. Используем в прикладных задачах

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

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

Мы с Vasyutka и ZlodeiBaal планируем и дальше рассказывать про мир роботов, VR и машинное обучение, если это будет интересно. А исходники калибровки можно найти в моем гите.

Источник

Механический глаз своими руками

Коротко приведем здесь, что можно увидеть в телескоп с той или иной апертурой.

30 мм. То же, плюс спутники Юпитера Европа, Ио, Каллисто и Ганимед. При очень удачном стечении обстоятельств – спутник Титан Сатурна. Полосы на диске Юпитера. Планета Нептун – в виде звезды.

40 мм. Разделяется двойная звезда Кастор – Альфа Близнецов. Хорошо видна Большая Туманность Ориона и рассеянные звездные скопления в созвездиях Персея, Возничего, Большого Пса и Рака.

60 мм. Разделяется четырехкратная звезда Эпсилон Лиры. Видна формация Прямая Стена в Море Облаков на Луне.

Читайте также:  Красивый звук глушителя своими руками

80 мм. Видны тени от спутников Юпитера при прохождении их перед диском планеты. В кольцевой туманности M57 заметен темный провал в центре. Несколько спутников Сатурна. Щель Кассини в кольце Сатурна.

100 мм. Видны спутник Ригеля – Альфы Ориона – и Полярной Звезды – Альфы Малой Медведицы.

120 мм. Спутник Сатурна Энцелад. Детали на диске Марса во время противостояний – моря и полярные шапки из углекислоты.

150 мм. Двойственность Эпсилона Волопаса. Деление шарового скопления M13 на отдельные звёзды.

200 мм. Деление Энке в кольце Сатурна – несколько концентрических колец, разделенных промежутками. Спирали в Туманности Андромеды.

250 мм. Плутон. Спутники Урана.
300 и более. Туманность Конская Голова. Спутник Сириуса. Галактики в деталях. Центральная звезда в кольцевой туманности М57. Шаровое звёздное скопление в галактике М31.

И так подводим итоги — для того, чтобы построить простой телескоп-рефрактор, нужны всего две собирающие линзы — длиннофокусная (с малой оптической силой) — для объектива и короткофокусная (сильная лупа) для окуляра.

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

Теперь с механической стороны. Для того, чтобы все это хозяйство не держать в руках, берем две трубки, одна из которых вдвигается в другую, или делаем их из бумаги и ПВА, черним изнутри активированным углем или начинкой от батарейки с ПВА (баллончик с черной матовой краской тоже подойдет), и крепим на конце одной трубки объектив, на конце другой окуляр. После этого вдвигаем одну трубку в другую, так чтобы видеть четкое изображение удаленных предметов. Труба готова.
Существенные моменты: объектив — очковое стекло, конденсорная линза или ахроматическая склейка с фокусным расстоянием 40 — 100 см. Диаметр входного отверстия телескопа 20 — 30 мм, если склейка (объектив от какого-то оптического прибора), то можно больше. Если диаметр будет больше приведенных значений, то изображение может получиться неконтрастным. Для ограничения диаметра делаем диафрагму — вырезаем картонный круг диаметром, равным внешнему диаметру объектива, в нем по центру вырезаем круглое отверстие диаметром 20 — 30 мм. Ставим диафрагму вплотную к объективу перед или за ним.
Увеличение такого телескопа 20 — 50 крат.

Линзы объектива и окуляра должны быть установлены в трубу как можно более соосно. Объектив обязательно должен быть стеклянным. Что видно: в 28 мм 40 крат за городом видны звезды до 9-й величины, кольцо Сатурна и просвет между ним и диском, спутники и две темных полосы на Юпитере (они кажутся скорее оранжевыми), фаза Марса, когда он был 6 секунд диаметром, кратеры на Луне, пятна на Солнце (только при проекции окуляром, глазом не смотреть. ).

Вывод такой — по различимости деталей это изделие, если собрано хорошо, превзойдет и 8-кратный бинокль.

На всякий случай напоминаем — очковая линза +1 дптр имеет фокусное расттояние 1 метр и она вполне достаточна для такого простейшего телескопа. Не стоит следовать расхожим рекомендациям и изготавливать объектив из пары одинаковых линз +0.5 дптр (вогнутостями друг к другу). Это схема «Перископ», которая имеет какие-то преимущества только на полях в 30-50 градусов, что не актуально для телескопов с их полями в пол-градуса.

Источник

Оцените статью
Своими руками