alex_avr (alex_avr2) wrote,
alex_avr
alex_avr2

Categories:

Нижнее зрение

Jason von Nieda - автор и главный разработчик проекта OpenPnP - открытой программы для управления станками-расстановщиками SMD компонентов. Человек с огромным энтузиазмом и очень тщательным подходом к разработке. Один из основных принципов разработки - программа должна быть настолько универсальной, насколько возможно. И этот принцип выполняется очень хорошо. Действительно, эту программу можно использовать с огромным количеством совершенно разных по конструкции аппаратов и легко адаптировать под свои нужды.

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

Не долго думая я поставил вторую камеру на станок, добавил подсветку. Это позволяет видеть брюшко SMD деталек :)
Пока сделал лишь предварительные тесты с настройкой фильтров, которые позволяют определить границы компонентов.




Общий вид программы:

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

Поиск контура детали - довольно нетривиальная задача. Если человек сразу видит деталь, то компьютеру "увидеть" ее несколько сложнее. Конечно, современные алгоритмы вытворяют на порядки более сложные анализы изображений, с распознанием объектов, но разработчик, вероятно не умеет делать столь продвинутое распознавание, поэтому был выбран более простой путь - последовательность простейших преобразований изображения, по сути как в обычном графическом редакторе.
Автор программы заложил базовый алгоритм, в основе которого лежит вычитание зеленого цвета фона. Однако у меня этот алгоритм не заработал. Во-первых для его работы нужно делать зеленый фон, что мне было несколько лень. У самого сопла захвата есть пластиковая часть зеленого цвета, но ее диаметр слишком маленький и проекции больших компонентов выходят за ее границы. Во-вторых алгоритм крайне чувствителен к освещению и всевозможным бликам - достаточно ножке детали отсветить с чуть зеленоватым оттенком - и она уже не распознается программой.

Однако, как я упоминал выше, автор старается делать все максимально гибким, не обошел этот принцип и обработку изображения. В программе можно настроить все шаги обработки (их 17 в базовом варианте), чем я и воспользовался. Я убрал выделение зеленого цвета и сделал просто порог по яркости. У всех SMD деталей снизу есть ножки-площадки для пайки, они металлические и блестят и с моей подсветкой они засвечиваются до белого цвета. Все остальное я убираю. Тесты на нескольких разных детальках показали, что алгоритм работает идеально, ни одного сбоя. Посмотрим как оно будет работать на потоке и с бОльшим количеством разных типов деталей.

Промежуточный этап определения положения корпуса - выделены контуры самых ярких областей:


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


Получив прямоугольник, программа вычисляет угол поворота детали и смещение ее центра и вносит эти коррективы в координаты установки детали.

Tags: Расстановщик, Электроника
Subscribe

  • Про автосервисы

    Когда только обзавелся машиной, ещё довольно плохо представлял, как она обслуживается. Сейчас-то мне понятно, что ничего сложного нет, кроме может…

  • 14 лет под землёй

    Традиционная запись 2 ноября: ровно 14 лет как я осознанно изучаю подземку 🙂 Ну и традиционная фотография. Это самая страшная фотография под землёй,…

  • Снежные Ловозёрские тундры

    В Москве снега до сих пор нет, между тем я ещё больше месяца назад успел по нему накататься, заехав наверх Ловозёрского горного массива, что на…

promo alex_avr2 july 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 24 comments

  • Про автосервисы

    Когда только обзавелся машиной, ещё довольно плохо представлял, как она обслуживается. Сейчас-то мне понятно, что ничего сложного нет, кроме может…

  • 14 лет под землёй

    Традиционная запись 2 ноября: ровно 14 лет как я осознанно изучаю подземку 🙂 Ну и традиционная фотография. Это самая страшная фотография под землёй,…

  • Снежные Ловозёрские тундры

    В Москве снега до сих пор нет, между тем я ещё больше месяца назад успел по нему накататься, заехав наверх Ловозёрского горного массива, что на…