Post on 15-Oct-2021
transcript
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
1
CONSTRUÇÃO DE UM BRAÇO ROBÓTICO UTILIZANDO
SISTEMAS INTELIGENTES
CONSTRUCTION OF A ROBOTIC ARM USING INTELLIGENT
SYSTEMS
CONSTRUCCIÓN DE UN BRAZO ROBÓTICO CON SISTEMAS
INTELIGENTES1
Nome do autor: Victor Eduardo Alves da Silva Carvalho
Email: victoreduardo@ufpi.edu.br
Instituição: UFPI-Universidade Federal do Piauí
Nome do co-autor: José Maria Pires de Menezes Junior
Email: josemenezesjr@ufpi.edu.br
Instituição: UFPI-Universidade Federal do Piauí
Nome do co-autor: Erilson de Sousa Barbosa
Email: erilson.barbosa@ifce.edu.br
Instituição: IFCE-Instituto Federal do Ceará
Resumo
Esta pesquisa objetiva a construção (projeto elétrico, mecânico e computacional) e
controle de um braço robótico com 4 graus de liberdade e estrutura mecânica baseado no
manipulador SCARA (Selective Compliance Assembly Robot Arm). Através deste projeto
também é possível analisar a cinemática do manipulador, que por sua vez é utilizada em um
sistema computacional para controle de posição do mesmo, bem como a confecção de peças
mecânicas, estruturais e o estudo de seus materiais afim de otimizar a estrutura do protótipo, tendo
como resultado um manipulador mais leve, ágil e resistente a oxidação.
É feito também o uso de técnicas de processamento digital de imagens (PDI) para obter
informações a respeito da posição de objetos na área de trabalho do robô. Através do estudo e
construção de um sistema para reconhecimento de imagens e detecção de objetos a serem
manipulados pelo braço robótico SCARA, utilizando uma câmera digital IP e linguagem de
programação Python através da biblioteca OpenCV é possível identificar o posicionamento e o
tamanho de objetos colocados em uma mesa dado uma determinada origem e referencial. Esses
dados posteriormente foram convertidos pela interface do manipulador em coordenadas
cartesianas do objeto alvo.
Palavras chave: SCARA; Procesamento Digital de Imagens; OpenCV;
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
2
Abstract
This research aims at construction (electrical, mechanical and computational design)
and control of a robotic arm with 4 degrees of freedom and mechanical structure based on the
SCARA manipulator (Selective Compliance Assembly Robot Arm). Through this project it was
also possible to analyze the kinematics of the manipulator, which in turn was used in a computer
system to control its position, as well as the manufacture of mechanical and structural parts and
the study of its materials in order to optimize the structure of the prototype, resulting in a lighter,
more agile and oxidation-resistant manipulator.
Digital image processing (PDI) techniques were used to obtain information regarding
the position of objects in the robot's work area. We deal with the study and construction of a
system for image recognition and detection of objects to be manipulated by the SCARA robotic
arm, using an IP digital camera and Python programming language through the OpenCV library,
it was possible to identify the positioning and the size of objects placed in a table given a certain
origin and reference. These data were later converted by the manipulator interface into Cartesian
coordinates of the target object.
Keywords: SCARA; Digital Image Processing;; OpenCV;
Resumen
Esta investigación tiene como objetivo la construcción (diseño eléctrico, mecánico y
computacional) y control de un brazo robótico con 4 grados de libertad y estructura mecánica
basado en el manipulador SCARA (Selective Compliance Assembly Robot Arm). A través de
este proyecto también se pudo analizar la cinemática del manipulador, que a su vez se utilizó en
un sistema informático para controlar su posición, así como la fabricación de piezas mecánicas y
estructurales y el estudio de sus materiales con el fin de optimizar la estructura de la prototipo,
resultando en un manipulador más ligero, ágil y resistente a la oxidación.
Se utilizaron técnicas de procesamiento de imágenes digitales (PDI) para obtener
información sobre la posición de los objetos en el área de trabajo del robot. Nos ocupamos del
estudio y construcción de un sistema de reconocimiento de imágenes y detección de objetos para
ser manipulados por el brazo robótico SCARA, utilizando una cámara digital IP y lenguaje de
programación Python a través de la librería OpenCV, fue posible identificar el posicionamiento
y el tamaño de los objetos colocados en una tabla dada un cierto origen y referencia. Estos datos
fueron posteriormente convertidos por la interfaz del manipulador en coordenadas cartesianas del
objeto de destino.
Palabras clave: SCARA; Procesando imagen digital; OpenCV;
INTRODUÇÃO
Através da modernização dos processos de fabricação a robótica se tornou
indispensável para diversos setores da indústria, e começa a ser usada cada vez mais em
áreas como saúde e indústria militar. Sendo assim, cada vez mais a robótica deixa de ser
uma área teórica e acadêmica para se tornar realidade e otimizar os processos industriais
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
3
modernos (ARAÚJO, Victor Ben-Hur Neves; MEDEIROS, Justino; BITENCOURT
Andre, 2012).
Uma ramificação importante da mesma, é o estudo de robôs manipuladores, que
possuem a capacidade de manusear objetos e realizar operações de forma mais rápida e
precisa que um ser humano. Devido à baixa resistência, um manipulador é mais indicado
em operações de montagem de sistemas que requeiram grande precisão. A velocidade é
elevada, e, embora seu alcance seja limitado, apresenta uma boa capacidade de carga
devido a complacência seletiva, aliada a uma alta repetibilidade (CARRARA, Valdemir,
2015). O estudo de manipuladores se torna benéfico para o desenvolvimento tecnológico,
tendo em vista sua gama de aplicações. Romano (2002, p.19) destaca que um manipulador
é um robô que apresenta duas juntas de rotação dispostas em paralelo para se obter
movimento num plano e uma junta prismática perpendicular a este plano, apresentando
uma translação e duas rotações.
Esta pesquisa tem como objetivo principal a construção e controle de um braço
robótico com 4 graus de liberdade e estrutura mecânica baseado no manipulador SCARA,
bem como analisar métodos de processamento de imagem afim de construir um sistema
robusto e preciso para detecção de objetos com cores distintas que se encontrem dentro
da área de trabalho do robô, constatar a eficácia destes métodos por meio de testes
realizados com fotos reais obtidas em laboratório.
Outros objetivos desse projeto é: analisar a capacidade de obtenção dos dados de
localização de objetos a partir da imagem e de informações sobre suas dimensões, obter
as coordenadas cartesianas dos pontos de apoio (centroides) para objetos com cores
distintas bem como a área da vista superior do mesmo. Para solucionar os problemas
apresentados anteriormente é feito um levantamento de métodos que pudessem fornecer
as informações necessárias das dimensões e localização de objetos. Os métodos mais
concebidos pela comunidade acadêmica para aplicações semelhantes a estas são
utilizando processamento de imagem e sensoriamento na obtenção dos valores de tais
variáveis. No processamento de imagem temos que a partir de fotos do ambiente são
obtidas informações a respeito dos objetos em estudo, através do uso de sensores de
distância são extraídos dados de localização do objeto em relação ao ponto de referência
(ponto onde o sensor se localiza).
O projeto também se propõe a estudar a cinemática do braço robótico, que por
sua vez é utilizada no sistema para controle de posição do mesmo, bem como a construção
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
4
de peças mecânicas e seus materiais para otimização da estrutura do protótipo, tendo
como resultado um manipulador mais leve, ágil e resistente a oxidação. Todas as
características e interações de cada um dos componentes elétricos e mecânicos são
demonstradas detalhadamente ao longo do trabalho. Por fim é apresentado um modelo
através de modelagem computacional e um protótipo que será utilizado como um
manipulador de objetos para fins didáticos de ensino, pesquisa e aprendizado da robótica
e automação.
CONSTRUÇÃO DO BRAÇO SCARA
A pesquisa bibliográfica a respeito do tema nos permite o estudo de alguns
projetos de construção distintos para robôs do tipo SCARA e assim fazer adaptações
necessárias à nossa realidade de projeto, logo após foi feita a construção da interface
gráfica em linguagem de programação Python utilizando a biblioteca Tkinter e a
construção do código de controle utilizando o microcontrolador Arduino na linguagem
de programação Sketch. As metodologias adotadas são baseadas no orçamento para
aquisição das peças e componentes necessários, na modelagem computacional dos
sistemas mecânicos do braço, bem como no desenho (em 2D) e projeto dos mesmos, na
programação e configuração da interface gráfica de comandos e no dimensionamento e
instalação dos componentes elétricos do manipulador (sensores, motores, drivers e etc...),
analisando o melhor posicionamento dos mesmos. Após o desenho de todas as peças
mecânicas em 2D é possível obter uma projeção para o formato e as dimensões do
manipulador, este processo foi crucial para a obtenção de um modelo planificado do robô,
bem como para a modelagem 3D que se sucedeu logo após essa etapa.
A seguir, na Figura 1 é visto a modelagem bidimensional da vista de perfil do
protótipo com todas as dimensões cotadas em escala 1:1, onde a figura foi criada com o
auxílio do software Autocad.
Figura 1 — Vista de perfil do braço robótico SCARA.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
5
Fonte: Elaborada pelo próprio autor, 2019.
Na Figura 2 é possível verificar a modelagem (projeto) em duas dimensões da coluna
central de sustentação do robô e na Figura 3 as cantoneiras de apoio, dos blocos para
alinhamento de mancais, das chapas primária e secundária de sustentação dos motores de
passo e do suporte para conexão entre blocos de fusos.
A partir das figuras em 2D é realizada a modelagem 3D do protótipo com tamanho
e formato em escalas reais, utilizando o software Fusion 360.
Figura 2 — Vistas frontal e traseira das chapas de sustentação do robô SCARA.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
6
Fonte: Elaborada pelo próprio autor, 2019.
Com esta modelagem pronta é possível comprovar os valores da área útil de trabalho e
entender melhor o comportamento da dinâmica do braço robótico SCARA considerando
condições ideais de funcionamento, sem deformação das partes mecânicas (considerando
como um corpo rígido) e sem vibrações na estrutura. Após a etapa de modelagem
tridimensional detecta-se algumas características indesejadas da estrutura, sendo possível
realizar o ajuste no tamanho de algumas peças antes da montagem final.
Figura 3 — Vista superior das chapas de sustentação dos motores de passo e do suporte
para conexão de blocos do robô SCARA.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
7
Fonte: Elaborada pelo próprio autor, 2019.
É possível observar o robô SCARA modelado na Figura 4, já na Figura 5 é
possível analisar a vista explodida do protótipo. Com esta imagem é possível obter mais
detalhes a respeito dos elos de conexão entre motores de passo, do fuso esférico e do eixo
linear conectado ao fuso bem como de outras partes mecânicas do braço. Após este
processo foi obtido um levantamento de todas as peças mecânicas e materiais elétricos
necessários para a construção do protótipo, bem como do custo estimado para a aquisição
das mesmas, esse levantamento pode ser visto na Tabela 1.
Figura 4 — Modelo manipulador robótico em 3D.
Fonte: Elaborada pelo próprio autor, 2019.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
8
Figura 5 — Vista explodida do manipulador modelado em 3D.
Fonte: Elaborada pelo próprio autor, 2019.
Tabela 1 — Levantamento de todos os componentes elétricos e mecânicos utilizados no
projeto.
Fonte: Elaborada pelo próprio autor, 2019.
Fazendo uma breve apresentação dos componentes descritos na Tabela 1 temos
na Figura 6 o fuso de esferas de 16mm de diâmetro com 5mm de passo de rosca e 30cm
de comprimento, bem como a porca bola que fica acoplada a castanha do fuso e os
mancais para fuso de esfera BK/BF 12. A estrutura articulada do robô está conectada a
ITEM QUANTIDADE
Acoplador Mandibular 3
Cantoneiras para Fixação 80x93 e 30x93 4
Conector de ABS entre Pillow Block e Porca Bola 1
Conector entre Pillow Block e Porca Bola 1
Porca bola para castanha 1605 SFU 1605 1
Driver Motor de Passo TB6600 3
Eixo Linear Retificado 12mm com 30cm 1
Filamento ABS par impressora 3D 1
Fita Isolante 1
Kit Barra de Fuso Esférico com Castanha 1605 e Mancais 1
Kit com Porcas e Parafusos 1
Mancal com Rolamento KP000 4
Mancal de Apoio para Eixo Linear 12mm e 16mm 4
Motor de Passo NEMA 23 19Kg.cm 3
Perfil de Alumínio Estrutural 200x20x20 2
Pillow Block 12mm 1
Suporte de ABS para mancais e Fuso Esférico 6
Suporte Motor de Passo Nema 23 3
Tarugo de Aço Inóx 1040-1 polegada-50cm 1
Arduino Uno 1
Suporte de encaixe garra robótica (PLA) 1
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
9
porca bola, logo como resultado da movimentação do eixo do fuso de esfera temos que a
estrutura se desloca para cima e para baixo no eixo cartesiano Z.
Figura 6 — Kit com fuso de esferas 1605, porca bola para castanha SFU 1605 e mancal
para fuso de esferas BK/BF 12.
Fonte: Ali Express, 2019.
A partir da Figura 7-a) é possível observar os perfis de alumínio estrutural
utilizados para a construção dos braços (elos) do manipulador. Os perfis tem dimensões
de 200x20x20 em milímetros e contém um orifício central que é rosqueado a partir de
técnicas de usinagem. É mostrado na Figura 7-b) os mancais de suporte utilizados para
realizar a conexão fixa entre os braços (elos) de alumínio e os eixos retificados que estão
acoplados aos motores de passo. Estes eixos se conectam ao suporte através do orifício
central do mesmo e ficam apertados de tal forma que não há escorregamento entre os
mancais e eixos. Como resultado deste acoplamento tem-se que cada movimento angular
do eixo é acompanhado pelo suporte. Os mesmos sempre estão parafusados em chapas
metálicas e estas são conectadas aos braços (elos) do robô.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
10
Figura 7 — Componentes Mecânicos utilizados para montagem da estrutura do robô:
(a) Perfil de Alumínio estrutural com 20cm de comprimento e 20mmx20mm. (b)
Mancal suporte de Alumínio. (c) Acoplador de mandíbula flexível para eixos 8mm-
10mm. (d) Mancal com rolamento para eixos 10mm.
Fonte: Mercadolivre.com, 2019.
Fonte: Mercadolivre.com, 2019.
Fonte: Aliexpress.com, 2019. Fonte: Mercadolivre.com, 2019.
É possível verificar através da Figura 7-(c) o acoplador do tipo mandibular
utilizado no projeto para conexão entre os eixos dos motores de passo e os eixos de aço
inox retificado. Este acoplador se conecta aos mesmos de forma a não permitir
escorregamentos. A fixação entre os eixos retificados e as chapas primária e secundária
de suporte se dá através dos mancais com rolamento, que pode ser visto na Figura 7-(d).
O conjunto final da montagem destes componentes gera um sistema sem folgas ou
escorregamentos, que permite a passagem do deslocamento angular do eixo motor de
passo para os braços (elos). Como resultado tem-se a movimentação controlada dos
braços do robô SCARA.
Para a construção do manipulador são necessárias várias peças feitas sob medida,
em que o uso de impressão 3D se faz muito necessária. A principal delas é o conector de
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
11
blocos, em que o mesmo desempenha um papel fundamental na dinâmica do robô, pois
faz a ligação entre o pillow block que se encontra na parte traseira do protótipo e a
castanha do fuso que se encontra na frontal. Com esta combinação a castanha de fuso
perde um grau de liberdade e tem movimento resultante apenas no eixo Z. Como
consequência disto, a estrutura do manipulador que se conecta a castanha do fuso se move
para cima e para baixo (subindo ou descendo). A partir da Figura 8 é possível observar o
design do conector de blocos.
Figura 8 — Conector de blocos que fixa o pillow block a castanho do fuso esférico.
Fonte: Elaborada pelo próprio autor, 2019.
Através da Tabela 2 são apresentados os equipamentos elétricos e eletrônicos, com
a descrição de suas respectivas características, bem como a estimativa de consumo de
potência de cada um deles.
Tabela 2: Característica elétricas dos componentes utilizados no projeto.
ITEM POTÊNCIA QUANTIDADE TENSÃO CORRENTE
Motor de passo 36W 3 12V 3A
Driver motor de passo 10W 3 12 até 48V Até 48V
Fonte de alimentação 120W 1 12V 10A
POTÊNCIA TOTAL 153W
Fonte: Elaborada pelo próprio autor, 2019.
A partir da Figura 9 é possível observar a fonte de alimentação utilizada no
projeto. Ela possui potência real de até 120W e pode fornecer uma tensão contínua de
12V. O dimensionamento da fonte se deu através do levantamento de cargas e potência
dos dispositivos utilizados no projeto.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
12
Figura 9 — Fonte de alimentação chaveada DC utilizada no projeto.
Fonte: Baúdaeletrônica.com, 2019.
É possível verificar na Figura 10 o driver utilizado no projeto para realizar o
controle dos motores de passo. Este driver permite outra função importante, a proteção
do circuito e configuração de micro passo, que permite o aumento da precisão do braço
robótico. O driver possui a entrada isolada da saída de sinal através de optoacopladores,
o que protege o microcontrolador e os motores, além de facilitar a manutenção.
Figura 10: Driver de motor de passo TB6600.
Fonte: Usermanual.wiki, 2019.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
13
Na Figura 11 é possível apreciar o motor de passo utilizado no projeto, que
possui torque de 19Kgf.cm e passo mínimo de 1,8° com erro de 5%. Com a utilização do
driver TB6600 pode-se fracionar este passo mínimo em até 32 vezes, chegando a obter
um micro passo de 0,05625°. Isso resulta em uma maior precisão do robô, tendo em vista
que é possível alcançar uma quantidade maior de pontos no plano X, Y.
Figura 11 — Motor de Passo NEMA 23 – 24 kgf.cm / 2A.
Fonte: Wotiom.com, 2019.
Através da Figura 12, tem-se o microcontrolador utilizado no projeto para
comando dos motores de passo. O mesmo recebe o sinal dos sensores que serão
instalados. O Arduino faz conexão com o computador através da porta serial recebendo
assim dados da interface gráfica.
Figura 12 — Arduino UNO.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
14
Fonte: Arduino.cc, 2019.
Para a manipulação dos objetos utiliza-se uma garra robótica do tipo grapper.
Esta garra é constituída por 2 servo motores modelo MG996R com torque de 9Kg/cm,
em que um deles tem a função de abrir e fechar a garra enquanto o outro realiza a rotação
da mesma em relação ao seu eixo de fixação. Isso proporciona a versatilidade de poder
transladar e rotacionar objetos em todo o plano de trabalho do braço robótico. A seguir é
possível observar a constituição da garra através da Figura 13.
Figura 13: Vista superior da garra robótica utilizada como efetuador.
Fonte: Aliexpress.com, 2019.
A garra é feita de alumínio e utiliza conectores de plástico para acoplamento. É
importante ressaltar ainda as dimensões da mesma, tendo em vista que isso limita a
quantidade de objetos a serem agarrados, pois é necessário que o objeto esteja contido
dentro da garra para poder ser manipulado através dela. Logo para satisfazer as condições
citadas é necessário que objeto tenha área e diâmetro menores do que à da garra aberta.
Verifica-se estas dimensões observando a Figura 14.
Figura 14 — Dimensões da garra robótica fechada e aberta.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
15
Fonte: Aliexpress.com, 2019.
Por inspeção da Figura 14 é possível afirmar que o diâmetro da garra aberta é de
55mm e a área é de 2940mm². A área é estimada considerando o espaço livre da garra
aberta como sendo um retângulo de 55mm de largura e 54mm de altura.
CINEMÁTICA INVERSA
Diante da necessidade de obter um sistema de comandos cartesianos para o
manipulador é necessária a determinação da cinemática inversa. Este estudo do modelo
cinemático se faz crucial para ser possível obter as posições angulares (das juntas do
manipulador) ou cartesianas que o efetuador (elemento terminal do manipulador) poderá
obter mediante um dado parâmetro. No tocante à Cinemática Inversa, deve-se obter as
posições angulares das juntas para uma dada posição cartesiana do efetuador. Observando
a Figura 15 pode-se verificar um modelo de vista superior do braço robótico. Aplicando
a análise geométrica na Figura 15 e utilizando relações trigonométricas é possível obter
expressões para cada coordenada cartesiana do efetuador, onde as variáveis de entrada do
sistema são os pontos (x,y) do plano e os ângulos θ1 e θ2 dos braços do manipulador são
as variáveis de saída. É importante destacar que os parâmetros l1 e l2 são os
comprimentos de cada elo (parte fixa do manipulador) existente entre duas juntas.
Figura 15 — Modelo de um robô SCARA planar visto de cima.
Fonte: Elaborada pelo próprio autor, 2019.
Executando a representação das coordenadas (x,y) em função dos parâmetros θ1,
θ2, l1 e l2 é possível obter as Equações 1 e 2.
y = 𝑙 1 sen θ1 + 𝑙 2 sen(θ1 + θ2), (1)
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
16
x = 𝑙 1 cos θ1 + 𝑙 2cos(θ1 + θ2). (2)
A relação entre as variáveis C, X e Y pode ser vista a partir da Equação 3, onde
é possível fazer essa afirmação pelo teorema de Pitágoras:
C²=x²+y², (3)
e utilizando a lei dos cossenos para o ângulo suplementar a 𝜃2 obtemos a Equação 4:
C²= 𝑙1²+ 𝑙2²-2𝑙1*𝑙2𝑐𝑜𝑠(180°- θ2), (4)
então pela igualdade entre as equações de (C²) temos a Equação 5:
x²+y² = 𝑙1²+ 𝑙2²-2𝑙1*𝑙2𝑐𝑜𝑠(180°- θ2), (5)
desenvolvendo a expressão da equação 5 e isolando θ2 resulta na Equação 6:
θ2 = ±𝑐𝑜𝑠−1(𝑥2 + 𝑦2 − 𝑙21 − 𝑙22)/(2𝑙1 ∗ 𝑙2), (6)
agora utilizando as relações da tangente da subtração para os ângulos 𝛼 e 𝛽, temos a Equação 7:
tang (𝛼−𝛽) = tang(θ1). (7)
Relacionando a tangente de θ1 com as variáveis X e Y vemos a Equação 8:
tang(θ1) = (y*x), (8)
e por igualdade entre as equações 7 e 8 a obtém-se a Equação 9:
θ1 = 𝑡𝑎𝑛𝑔−1(𝑦∗(𝑙1+𝑙2∗cos θ2 )−𝑥𝑙2∗sen θ2
𝑥∗(𝑙1+𝑙2∗cos θ2 )−𝑦𝑙2∗sen θ2). (9)
A cinemática do ângulo 𝜃3 é obtido por inspeção, tendo em vista que o fuso
esférico utilizado no projeto tem um passo de rosca igual a 5mm, logo se a coordenada Z
é dada em milímetros a função do espaço é linear e dependente de Z e pode ser vista na
equação 10:
θ3 = (𝑍* 72°). (10)
Afim de realizar o controle do braço robótico foi criada uma interface gráfica de
usuário na linguagem de programação Python. Esta interface permite enviar comandos
de posicionamento ao microcontrolador Arduino Uno através da porta serial, este por vez
processa os dados e comanda pulsos adequados aos drivers de motor de passo. A interface
utiliza da modelagem matemática em cinemática inversa para relacionar a posição
espacial do ponto alvo (X,Y,Z) aos ângulos θ1, 𝜃2 e 𝜃3 dos quais os motores devem se
deslocar. A interface permite ao usuário inserir uma determinada coordenada (X,Y,Z) do
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
17
espaço em milímetros e tem como resultado os ângulos dos quais o eixos devem se
movimentar para chegar ao ponto desejado, considerando que o manipulador se encontra
com coordenadas (𝜃1 = 𝜃2 =𝜃3 =0) no início da movimento.
PROCESSAMENTO DIGITAL DE IMAGENS
O presente trabalho faz o uso de técnicas de Processamento Digital de Imagens
(PDI) para obter informações a respeito da posição de objetos na mesa, captados por meio
de uma câmera, posteriormente o robô poderá manusear objetos que se encontram dentro
da sua área de trabalho. No entanto, para manipular os objetos é utilizado uma garra como
efetuador. Com isso, destaca-se a importância no desenvolvimento deste projeto, por ser
capaz de fomentar o estudo da robótica e visão computacional, podendo ajudar na
construção do conhecimento nessas áreas, sendo amplamente difundida e importante para
a formação de um futuro Engenheiro Eletricista.
Para realizar a aquisição das imagens do plano de trabalho é utilizado uma
câmera de modelo IP com resolução de 720p. Esta câmera fica ajustada a uma distância
apropriada do plano de trabalho (afim de obter um fator de escala de 1:1 e onde cada pixel
seja igual a 1mm), de forma a facilitar o foco e captar boa luminosidade do ambiente. O
ajuste da distância ideal para se obter um fator de escala de 1:1 foi realizado
empiricamente através da medição da área de um objeto de dimensões conhecidas, foram
utilizados métodos iterativos para contagem dos pixels correspondentes, por fim o
resultado foi uma quantidade de pixels limiarizados igual a área (medida em milímetros)
na vista superior do objeto de interesse.
Na detecção de objetos foi utilizado a aplicação de uma máscara na imagem, esta
mesma fará o destaque da borda do objeto.
Define-se borda (edge) como a fronteira entre duas regiões cujos
níveis de cinza predominantes são razoavelmente diferentes. Pratt define uma
borda de luminosidade como uma descontinuidade na luminosidade de uma
imagem. Analogamente, pode-se definir borda de textura ou borda de cor, em
imagens onde as informações de textura ou cor, respectivamente, são as mais
importantes (FILHO, Ogê Marques; NETO, Hugo Vieira, 1999, p.58).
Dentre os métodos estudados para detecção/seleção de bordas em imagens o que
se mostrou mais eficiente e robusto é o de aplicação de filtros para realce ou destaque de
áreas desejadas dentro da imagem, configurando assim um filtro rastreador de objetos
com características desejadas. Para a detecção e realce de bordas, aplicam-se
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
18
habitualmente filtros espaciais lineares de dois tipos: (a) baseados no gradiente da função
de luminosidade, I(x,y), da imagem, e (b) baseados no laplaciano de I(x,y) (FILHO, Ogê
Marques; NETO, Hugo Vieira, 1999, p.58). É escolhido a utilização de técnicas baseadas
no gradiente da função de luminosidade e na seleção do limiar de faixa de cores no espaço
HSV.
Figura 16 — Vista superior do plano de trabalho do manipulador SCARA.
Fonte: Elaborada pelo próprio autor, 2019.
Para a detecção de objetos é utilizado como critério de distinção entre pixels as
cores contidas na imagem. Sendo assim a conversão do espaço de cores se fez necessária
pois no espaço RGB é mais difícil repassar ao sistema informações a respeito do brilho e
saturação de cor. Estas informações são fundamentais para distinguir objetos que
possuem cores parecidas, porém tem tonalidades diferentes, aumentando assim a precisão
e robustez do filtro. O modelo HSV é utilizado quando se tem que combinar cores, ou
determinar programaticamente se uma cor é semelhante a outra cor (CARDANI, Darrin,
2001, p.2).
A aplicação do filtro de cor se dá por meio de uma interface gráfica que permite
selecionar a cor de referência a ser separada na imagem. Logo após essa seleção o
programa limiariza todos os pixels que estão fora da escala HSV determinada. Como
resultado tem-se apenas pixels pretos (com tonalidade igual a zero) e os pixels dentro da
faixa de cor determinada. O objeto de interesse fica destacado e então é possível observar
seu formato. Para determinar a coordenada associada ao objeto alvo o algoritmo busca
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
19
sempre a posição do centroide na figura resultante da limiarização na imagem. As
coordenadas cartesianas deste ponto são extraídas e depois repassadas manualmente para
a interface gráfica de controle do robô. A seguir é possível observar na Figura 16 a vista
superior a partir do posicionamento da câmera.
Para aplicação do método de filtragem de cor escolhido o histograma foi de
fundamental importância para definir a faixa de intensidade dos pixels (GONZALES,
2010, p.78). Na identificação dos níveis de intensidade de cor (tonalidade), utiliza-se a
técnica de composição do histograma, em que é através dela que é possível identificar a
concentração de pixels em uma determinada faixa de tonalidade. Esta informação é
importante para compor o intervalo de valores das variáveis HSV e estes são importantes
para filtrar as cores na imagem, definindo assim níveis superior e inferior de amplitude
para os valores de HSV. A seguir é visto na Figura 17 o histograma obtido a partir da
filtragem da cor azul na imagem da Figura 16.
Figura 17— Histograma obtido a partir da aplicação do filtro de cor azul na Fig.7
Fonte: Elaborada pelo próprio autor, 2020.
A seleção de uma cor a ser filtrada é realizada através da interface gráfica, em
que ela fornece a opção para filtrar 6 cores distintas: azul, vermelho, verde, amarelo,
branco e preto. Logo a escolha da cor a ser filtrada é inteiramente do usuário e para este
experimento as cores utilizadas foram azul e verde, pois eram as cores predominantes das
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
20
garrafas disponíveis para o teste. É possível visualizar na Figura 18 a interface gráfica do
filtro de cores.
Figura 18— Interface gráfica do filtro de cores.
Fonte: Elaborada pelo próprio autor, 2020.
RESULTADOS E DISCUSSÕES
Como resultado foi obtido a criação da interface gráfica do robô bem como a
montagem e programação do mesmo. É possível observar através da Figura 19 a interface
gráfica de controle em execução. A interface permite ao usuário escolher o ponto de
destino no espaço para que o braço robótico possa se movimentar. É através dela que o
usuário pode comandar o manipulador e interagir assim com o mesmo.
Figura 19 — Janela inicial da interface gráfica de controle para usuário.
Fonte: Elaborada pelo próprio autor, 2020.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
21
A montagem concluída do manipulador SCARA pode ser visualizada através da
Figura 20. A montagem atendeu as expectativas e obteve um rendimento próximo do
simulado, apresentando baixas vibrações da estrutura física.
Figura 20 — Protótipo de robô SCARA/GRASI finalizado.
Fonte: Elaborada pelo próprio autor, 2019.
Como resultado da detecção de cor foi obtido as coordenadas X e Y do centro
de massa na vista superior do objeto e também a área ocupada pelo mesmo na superfície
da mesa. Com estas informações é possível identificar o ponto ideal para posicionamento
da garra robótica, segurar o objeto e assim manipulá-lo com movimentos de translação
ou rotação. Toda a movimentação inicial do manipulador é realizada com a garra aberta
e acima do plano do objeto, apenas quando se chega ao ponto alvo (coordenada do centro
de massa) o braço robótico desce a garra até o objeto identificado (movimentando-se no
eixo Z), e faz o fechamento da mesma, afim de agarrar o objeto.
O método de PDI utilizado no programa baseia-se na utilização de limites
superior e inferior das variáveis HSV (matiz, saturação e brilho) para criação da máscara
de filtragem de cor. Estes valores são bem definidos para cada cor e tonalidade
selecionada, visto que o intervalo pode ser dimensionado. É escolhido então valores de
limites que abrangessem uma variedade de tonalidades das cores escolhidas (branco,
preto, azul, verde, vermelho, amarelo), tendo em vista que os objetos da Figura 20 tinham
cores bem distintas.
Como critério de separação de pixels optou-se por conservar as propriedades de
cor de objetos que estavam dentro dos limites estipulados de HSV e atribuir como 0 a
tonalidade de pixels que estavam fora do intervalo, isso equivale a deixar todos os pixels
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
22
da imagem pretos exceto os pixels da cor selecionada para filtragem. O resultado da
aplicação do filtro nas cores azul e verde podem ser observados a partir da Figura 21 e
Figura 22, onde é verificado que após a aplicação da máscara tem-se apenas as garrafas
azul e verde destacadas na imagem.
Figura 21 — Resultado da aplicação do filtro de cor azul na Fig.16.
Fonte: Elaborada pelo próprio autor, 2020.
Figura 22 — Resultado da aplicação do filtro de cor verde na Fig.16.
Fonte: Elaborada pelo próprio autor, 2020.
A construção de uma interface gráfica para o filtro de cor permite ao usuário
selecionar qual cor se deseja filtrar na figura, visualizar o tamanho do objeto e as
coordenadas do centro de massa do mesmo. Para a construção do código em Python
utiliza-se as seguintes bibliotecas: OpenCV, Numpy, Matplotlib, Tkinter e OS, e estas
não são bibliotecas nativas da linguagem e foram instaladas através do módulo PIP.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
23
Primeiro é aplicada uma máscara para destacar os objetos de interesse na
imagem, após a aplicação da máscara o programa faz uma binarização da mesma e
converte todos os pixels diferentes de preto (com tonalidade=0) em pixels brancos (com
tonalidade=255), este processo facilita o destaque e visualização da figura formada na
imagem. Através da Figura 23 e Figura 24 percebe-se o resultado desta binarização.
Figura 23 — Resultado da binarização na Fig.21.
Fonte: Elaborada pelo próprio autor, 2020.
Figura 24 — Resultado da binarização na Fig.20 (Acervo do autor, 2020).
Fonte: Elaborada pelo próprio autor, 2020.
Através de um método iterativo a matriz que representa a imagem binarizada é
percorrida por completa em busca de pixels brancos (tonalidade=255). Quando o
algoritmo identifica esses pixels suas coordenadas são armazenadas em variáveis
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
24
correspondentes (X e Y) e somadas a coordenadas anteriores. Por fim o valor dessas
variáveis são divididas pelas dimensões (X,Y) da imagem e assim são obtidas as
coordenadas do centro de massa. O centroide do objeto está assinalado na Figura 23 e
Figura 24 com um ponto de cor amarela, na Figura 19 é possível observar que as
coordenadas deste ponto (centro de massa) são prontamente repassadas a interface gráfica
e então exibidas para o usuário.
CONSIDERAÇÕES FINAIS
É observado através deste trabalho que é viável a construção de um robô SCARA
de baixo custo quando comparado a manipuladores industriais com características
similares. Da concepção a elaboração do protótipo são realizadas as especificações e
detalhamento do mesmo. Tendo em vista o alto valor comercial deste tipo de manipulador
robótico obteve-se um protótipo com configuração robusta, baixo consumo de potência e
uma boa relação custo benefício, tendo em vista o valor comercial que foi estipulado no
orçamento.
A simulação e modelagem 3D comprova a viabilidade técnica da estrutura física
do robô, assim também foi criada uma interface gráfica de controle que se utiliza da porta
serial do computador para realizar a conexão com o microcontrolador, bem como um
sistema de aquisição de imagens para detecção de objetos classificados por cor.
É possível concluir através de pesquisa bibliográfica e de testes aplicados em
laboratório que o processamento digital de imagem (PDI) é eficiente na análise de dados
obtidos a partir de fotos, portanto é ideal para aplicações em visão computacional onde é
necessário extrair informações de imagens reais. O algoritmo se mostrou eficaz e preciso
na detecção de objetos e na aquisição de coordenadas cartesianas dos mesmos, bem como
no cálculo estimado da área do objeto a partir de uma vista superior. Também foi possível
observar a robustez dos métodos adotados, tendo em vista que a imagem selecionada para
filtragem tem objetos de cores e tonalidades semelhantes.
A revisão bibliográfica apontou ainda que o controle em malha aberta é eficiente
para reduzir vibrações e otimizar a velocidade de execução nos movimentos do
manipulador robótico. Por fim verificamos ainda a versatilidade do microcontrolador
Arduíno e da linguagem de programação Python, ambos oferecem suporte e
compatibilidade a várias bibliotecas que auxiliaram na construção do programa de
controle e da interface gráfica, na comunicação serial, na plotagem de gráficos e figuras
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
25
e no processamento digital de imagens (PDI).
REFERÊNCIAS
ARAÚJO, Victor; BITENCOURT, Andrea; MEDEIROS Justino. Desenvolvimento de
robô manipulador com juntas rotacionais e prismática, CONNEPI, Palmas, v.7, out.
2012.
ARDUINO uno wifi rev2. Arduino, 2020. Disponível
em:<https://store.arduino.cc/usa/arduino-uno-wifi-rev2> Acesso em: 06 de Nov. de
2020.
BW Três Mandíbula D25L30 Acoplador CNC de Alumínio Plum Eixo Flexível
Acoplamento Do Motor Conector Flexível Acoplador 5/6/6.35/8/10/12mm. AliExpress,
2019. Disponível em: <https://bit.ly/3p9ykcE> Acesso em: 25 de fev. de 2020.
CÂMERA de Segurança Ip 3 Antenas Wireless Sem Fio WI-FI HD. Amazon, 2019.
Disponível em: < https://amzn.to/35s7X94 >. Acesso em: 25 de fev. de 2020.
CARDANI, Darrin. Adventures in HSV Space. Budapeste: Pázmány Péter Catholic
University, 2001 Disponível em: <http://robotlab.itk.ppke.hu/~rakadam/hsvspace.pdf >.
Acesso em 19 de agosto de 2020.
CARRARA, Valdemir. Apostila de Robótica. São José dos Campos: Instituto Nacional
de Pesquisas Espaciais - INPE, 2009. Disponível em:
<http://urlib.net/8JMKD3MGP3W34P/3K5JPL8>. Acesso em 9 de agosto de 2019.
TB6600 User Guide V1.2. User Manual, 2020. Disponível em:
<encurtador.com.br/dqGIP>. Acesso 06 de Fev. de 2020.
FILHO, Ogê; NETO, Hugo. Processamento Digital de Imagens. 1° Edição. Rio de
Janeiro: Brasport, 1999.
FONTE chaveada 120W 12V 10A. Baú da Eletrônica, 2018 Disponível em :<
https://www.baudaeletronica.com.br/fonte-chaveada-120w-12v-10a.html>. Acesso 06
de Fev. de 2020.
GONZALES, Rafael; WOODS, Richard. Processamento Digital de Imagens. 3ed. São
Paulo: Pearson Prentice Hall, 2010.
3º Congresso sobre Ambiente, Tecnologia e Educação – CATE 2020
26
KP002 - Kit 2 Mancal C Rolamento P Eixo Linear E Fusos 15mm. Mercado Livre,
2019. Disponível em: <https://bit.ly/3l8ChMj>. Acesso em: 25 de fev. de 2020.
MASUTANI, Victor; ARTERO, Almir; ALMEIDA, Leandro; SILVA, Francisco.
Reconhecimento de objetos coloridos e mãos usando cores e formas. Colloquium
Exactarum, Presidente Prudente, v. 5, n. 1, p. 3-11, abr./jun. 2013.
STEPPER Motor NEMA 23 24 kgf.cm / 2A. Wotiom, 2019. Disponível em
:<https://www.wotiom.com/en/stepper-motor-nema-23-24kgf-cm-2a/ >. Acesso 22 de
Fev. de 2019.
PERFIL de Alumínio Estrutural V-slot 20x20 Kit 2 Peças. Mercado Livre, 2020.
Disponível em: <https://bit.ly/32mgOIn>. Acesso 06 de Fev. de 2020.
PRETO 2 dof manipulador braço mecânico pinça braçadeira kit para robô mg996r diy
rc brinquedo peças. AliExpress, 2019. Disponível em: <https://bit.ly/3dTXUgE>.
Acesso em: 25 de fev. de 2020.
RODRIGUES, Denilson Laudares et all. Manipulador robótico horizontal tipo SCARA-
robô S4 uma plataforma aberta para desenvolvimentos e implementações em robótica. -
SBAI- Simpósio Brasileiro de Automação Inteligente, SãoPaulo, v. 4, p. 177-182,
Set. 1999.
ROMANO, Vitor. Robótica Industrial: Aplicação na indústria de manufatura e de
processos. 1 ed. São Paulo: Edgard Blucher, 2002.
STOYCHITCH, Mihaylo. An algorithm of linear speed control of a stepper motor in
real time. Annals Of Faculty Engineering Hunedoara: International Journal of
Engineering, Hunedoara, v. 11, n. 3, p. 51-56, mar/abr. 2013.
KIT C/ 10 Suporte Para Eixo Guia Linear 10mm Sk10 Cnc Router. Mercado Livre,
2019. Disponível em: < https://bit.ly/2JH63Kk> Acesso em: 25 de fev. de 2020.