FACULDADE ASSIS GURGACZ
HAMILTON JOSÉ DA SILVA SENA
CONTROLE ROBÓTICO REFERENCIADO POR SISTEMA DE VISÃO
COMPUTACIONAL
CASCAVEL
2011
FACULDADE ASSIS GURGACZ
HAMILTON JOSÉ DA SILVA SENA
CONTROLE ROBÓTICO REFERENCIADO POR SISTEMA DE VISÃO
COMPUTACIONAL
Projeto de pesquisa apresentado ao
Curso de Graduação em Engenharia
de Controle e Automação da
Faculdade Assis Gurgacz para
elaboração do Trabalho de Conclusão
de Curso.
Professor Orientador: Arthur Schuler
da Igreja.
CASCAVEL
2011
1. TÍTULO
Controle robótico referenciado por sistema de visão computacional
1.1. TEMA
Controlar o robô didático ED-7220C referenciado por um sistema de visão
computacional para reconhecimento e localização de objetos
1.2. DELIMITAÇÃO DO TEMA
Possibilitar o controle do braço robótico didático ED-7220C através do
software Matlab® sendo que a posição do robô será referenciada por um sistema de
visão computacional utilizando o sensor Kinect®.
2. O PROBLEMA
Atualmente a disciplina de robótica tem o objetivo de prover o conhecimento
no desenvolvimento e análise de modelos de robôs industriais e a programação de
robôs manipuladores, com esse intuito a Faculdade Assis Gurgacz dispõem em seu
laboratório de um robô didático, porém esse robô didático desenvolvido pela
empresa coreana ED-Laboratory fornece um software proprietário para controle,
simulação e testes, que tem poucas opções de integração a outros meios de
controle via software, impedindo assim a interação do robô a projetos criados em
diversas outras disciplinas correlatas.
Esse impendimento estende-se também a própria disciplina de robótica, onde
o ensino da interação do robô com o ambiente, é de extrema importância,
principalmente pela concepção de utilização de robôs, onde há a necessidade de ser
flexível na atuação em ambientes dinâmicos de forma robusta e versátil mantendose operacional diante de mudanças em ambientes não estruturado.
Outro problema é a falta de um ambiente didático para testes de visão
computacional, onde geralmente o ensino fica restrito a simulações via software,
impedindo assim, um modelo onde poderia potencializar a elaboração de trabalhos
mais sofisticados na área robótica e no campo da visão computacional.
3. DELIMITAÇÃO DA PESQUISA
Serão realizados estudos no âmbito de mapeamento, controle e atuação dos
sistemas robóticos, a utilização do Matlab® para controle do robô didático, mapear o
protocolo de comunicação da controladora do robô didático ED-7220C e efetuar o
controle do robô didático via visão de maquina .
4. JUSTIFICATIVA
Um ambiente de robótica didática pressupõe a existência de professor, aluno
e ferramentas que propiciam a montagem, automação e controle de dispositivos
mecânicos. Alunos e professores interagindo entre si e com essas ferramentas
produzem novos conhecimentos [1]. Propiciando assim um ambiente de fomentação
de linhas de pesquisa na área robótica.
A robótica, segundo estudos realizados no Japão e EUA, deve ser uma das
10 linhas de pesquisa com mais trabalhos, a nível mundial, nas próximas décadas.
O avanço tecnológico tem permitido a realização de cálculos computacionais
necessários em tempo real, e este fato tem possibilitado que novas descobertas e
aplicações possam ser feitas em sistemas de robótica, tornando essa área uma
fonte quase que inesgotável de pesquisa [2].
Nesse contexto surge a necessidade de ambientes de testes e simulação
onde as ferramentas propiciem potencializar o conhecimento e a difusão da
pesquisa no âmbito da robótica, principalmente pelo fato de áreas como a da
inteligência artificial, sistema de controles avançados, sensores e atuadores,
controle de processo, programação, redes, microcontroladores, identificação de
sistemas, entre outras, possam unir-se para como foi dito anteriormente propiciar
trabalhos mais sofisticados.
Para permitir a utilização desse trabalho para futuros projetos, serão
disponibilizados comandos via MATLAB® para controle do robô, pois o controle atual
é feito pelo software do fabricante do robô.
Um outro ponto que justifica o desenvolvimento desse trabalho é o uso do
Kinect® enquanto sensor (sendo este um sensor por sistema de visão
computacional comercializado como controle para videogames pela empresa
Microsoft), pois para referenciar um robô, são utilizados inúmeros sensores que em
ambientes não estruturados podem não ser efetivos, e que o Kinect pelo
sensoriamento de profundidade é um passo além dos sistemas de visão
computacional que tem esta restrição.
Com isso, o tema escolhido para esse trabalho, baseia-se na grande
relevância tanto para o ambiente industrial como acadêmico em nossa atual
conjuntura mundial.
5. OBJETIVOS DA PESQUISA
5.1. OBJETIVO GERAL
Desenvolver um sistema que controle o robô didático ED-7220C através do
software MATLAB® efetuando o reconhecimento de objetos para referenciamento do
robô via Kinect®.
5.2. OBJETIVOS ESPECÍFICOS
− Estabelecer a comunicação com o controlador do robô com o software
MATLAB®;
− Elaborar o controle de cinemática inversa do sistema;
− Identificar e obter o posicionamento de objetos através de visão computacional;
− Integrar o sistema de visão computacional com o controle do robô;
− Futuramente integrar esse sistema de controle do robô referenciado pela visão
computacional a bancadas e esteiras contidas nos laboratórios da FAG;
6. FUNDAMENTAÇÃO TEÓRICA
6.1. ROBOTICA
6.1.1. Robótica Industrial
O termo robô foi originalmente utilizado em 1921 pelo dramaturgo tcheco
Karen Capek, na peça teatral “Os Robôs Universais de Russum (R.U.R.)” como
referência a um autômato que acaba rebelando-se contra o ser humano. Robô
deriva da palavra "robota" de origem eslava, que significa "trabalho forçado". Na
década de 40, o escritor Isaac Asimov tornou popular o conceito de robô como uma
máquina de aparência humana não possuidora de sentimentos, onde seu
comportamento seria definido a partir de programação feita por seres humanos, de
forma a cumprir determinadas regras éticas de conduta. O termo robótica foi criado
por Asimov para designar a ciência que se dedica ao estudo dos robôs e que se
fundamenta pela observação de três leis básicas:
– Um robô não pode fazer mal a um ser humano e nem consentir, permanecendo
inoperante, que um ser humano se exponha a situação de perigo;
– Um robô deve obedecer sempre às ordens de seres humanos, exceto em
circunstâncias em que estas ordens entrem em conflito com a primeira lei;
– Um robô deve proteger a sua própria existência, exceto em circunstâncias que
entrem em conflito com a primeira e segunda leis [3].
Segundo a Robotic Industries Association (RIA), robô industrial é definido
como um "manipulador multifuncional
reprogramável projetado para movimentar
materiais, partes, ferramentas ou peças especiais, através de diversos movimentos
programados, para o desempenho de uma variedade de tarefas” [4].
Uma definição mais completa é apresentada pela norma ISO (International
Organization for Standardization) 10218, como sendo: "uma máquina manipuladora
com vários
graus de liberdade controlada automaticamente, reprogramável,
multifuncional, que pode ter base fixa ou móvel para utilização em aplicações de
automação industrial"[3], conforme é mostrado na figura 1.
Fonte: [7]
Figura 1: Célula de trabalho robotizada
Um robô industrial é formado pela integração dos seguintes componentes:
Manipulador mecânico: refere-se ao aspecto mecânico e estrutural do robô.
– Elos;
– junta;
– Sistema de transmissão;
Atuadores: São componentes que convertem energia elétrica, hidráulica ou pneumática,
em potência mecânica.
– atuadores hidráulicos e pneumáticos;
– atuadores eletromagnéticos;
Sensores: Fornecem parâmetros sobre o comportamento do manipulador.
Unidade de controle: Responsável pelo gerenciamento e monitoração dos
parâmetros operacionais do robô.
Unidade de potência: É responsável pelo fornecimento de potência necessária à
movimentação dos atuadores.
Efetuador: É o elemento de ligação entre o robô e o meio que o cerca.
6.1.2. Classificação dos robôs
Os robôs industriais podem ser classificados de acordo com o numero de
juntas, o tipo de controle, o tipo de acionamento, e a geometria. É usual classificar
os robôs de acordo como o tipo de junta, ou, mais exatamente, pelas 3 juntas mais
próximas da base do robô. Também pode ser classificados em relação ao espaço de
trabalho, ao grau de rigidez, a extensão de controle sobre o curso do movimento e
de acordo com as aplicações adequadas ou inadequadas a eles.
– Robô de Coordenadas Cartesianas;
– Robô de Coordenadas Cilíndricas;
– Robô de Coordenadas Esféricas;
– Robô SCARA;
– Robô Paralelo;
– E o robô Articulado ou Antropomórfico (caso de estudo desse trabalho);
Na configuração antropomórfica, existem ao menos três juntas de rotação. O
eixo de movimento da junta de rotação da base é ortogonal às outras duas juntas de
rotação que são simétricas entre si. Este tipo de configuração é o que permite maior
mobilidade a robôs. Seu volume de trabalho apresenta uma geometria mais
complexa em relação as outras configurações[5]. Na Figura 2 é demostrado esse
tipo de robô e a sua representação do volume de trabalho.
Fonte: [6]
Figura 2: Robô Articulado ou Antropomórfico com seu respectivo volume de trabalho.
6.1.3. Modelagem Cinemática
Um manipulador mecânico consiste de elos, conectados por juntas
prismáticas ou rotacionais. Cada par junta-elo constitui um grau de liberdade. Assim,
para um manipulador com N graus de liberdade, tem-se N pares juntas-elos, onde o
primeiro elo é a base de sustentação do robô (sistema de coordenadas inerciais
fixado) e no seu último elo é incorporada a sua ferramenta de trabalho. O
conhecimento completo das variáveis articulares de um robô q i , determina o
posicionamento de sua ferramenta no sistema de coordenadas de trabalho. De um
modo geral, os três primeiros graus de liberdade de um robô são responsáveis pelo
posicionamento de sua ferramenta no espaço de tarefas e os restantes pela sua
orientação. Na maioria das aplicações industriais, a programação de tarefas de
robôs, é realizada por aprendizagem, consistindo no movimento individual de cada
junta.
Assim sendo, a programação de trajetórias de um robô torna-se muito fácil,
não necessitando de um conhecimento do modelo, sendo a fase de aprendizagem
basicamente uma operação de armazenamento de uma sequência de incrementos
necessários para que o
conjunto de variáveis articulares determine um
posicionamento final X i , especificado a partir de um perfil de trajetórias fornecido
(robô controlado a partir do sistema de coordenadas de juntas).
Como um robô é controlado através de suas variáveis articulares, a realização
do controle de posição em relação ao sistema de coordenadas cartesianas implicará
no desenvolvimento de metodologias para transformação de coordenadas. A
transformação de coordenadas articulares para cartesianas é normalmente realizada
em tempo real, onde a partir do conjunto de variáveis articulares serão obtidas a
posição e orientação de sua ferramenta[6].
A cinemática de robô manipulador pode ser dividida em dois tipos de
cinemática a cinemática direta e a inversa.
Fonte: [do Autor]
Figura 3: Cinemática direta e inversa
6.1.4. Cinemática direta
Na cinemática direta deseja-se obter a posição e velocidade do efetuador,
para uma dada posição das articulações, ou seja, implementar a cinemática direta
de um manipulador é determinar as relações que exprimem um ponto no espaço
cartesiano, em função de um ponto no espaço das juntas.
6.1.5 Cinemática inversa
Enquanto a cinemática direta resulta no desenvolvimento imediato das
expressões do manipulador, a cinemática inversa procura determinar o conjunto de
valores das juntas que se adequam a uma dada configuração do espaço operacional
ou cartesiano. A cinemática inversa pode ser vista com o conjunto de processos para
determinar as funções inversas do sistema das expressões da cinemática direta.[6]
6.1.6. Notação de Denavit-Hartenberg
A evolução no tempo das coordenadas das juntas de um robô representa o
modelo cinemático de um sistema articulado no espaço tridimensional. A notação de
Denavit-Hartenberg (DH) é uma ferramenta utilizada para sistematizar a descrição
cinemática de sistemas mecânicos articulados com N graus de liberdade[5].
6.1.7. Visão de máquina
Visão computacional é "O conjunto de métodos e técnicas através dos quais
sistemas computacionais podem ser capazes de interpretar imagens. A interpretação
de uma imagem pode ser definida em termos computacionais como a transformação
de um conjunto de dados digitais representando uma imagem (um sinal mono-, bi-,
tri- ou tetradimensional) em uma estrutura de dados descrevendo a semântica
desses dados em um conjunto qualquer" [8].
Ou seja seria como fazer um sistema de computador "enxergar", uma imagem
e transformá-la em dados computacionais.
7.1. KINECT®
O dispositivo Kinect® é um hardware produzido pela Microsoft para utilização
em seu console de videogame de última geração Xbox, ele possui uma câmera RGB
(sistema de cores aditivas formado por Vermelho (Red), Verde (Green) e Azul (Blue))
que faz a captura de cores, uma câmera infravermelho e um projetor infravermelho
que faz a captura de profundidade 3D, possui um motor para rotação e inclinação e
microfones para a captura de som. Na figura 9 é demostrado a foto do Kinect com
seus respectivos sensores.
Fonte: [9]
Figura 4: Microsoft Kinect®
O kinect utiliza-se da tecnologia de luz estruturada (structured light) para fazer
a geração da imagem 3D e uma câmera de infravermelho para efetuar a captura.
No trabalho proposto será utilizado o projetor de infravermelho e as duas
câmeras do mesmo, onde a câmera de leitura infravermelho será responsável por
gerar a informação de profundidade do objeto e a câmera RGB será responsável
pela identificação da geometria plana do objeto a ser localizado.
9. METODOLOGIA
Esse trabalho será realizado a partir de estudos do protocolo de comunicação
do robô didático ED-7220C (Figura 5), estudo e desenvolvimento da modelagem do
robô, estudo das toolbox Robotics e Image Processing do Matlab para controle e
identificação dos objetos respectivamente e a utilização do sensor Kinect como
interface de captura de imagem para referenciamento do robô.
Fonte: [10]
Figura 5: A esquerda o controlador MK-4 e a direita o robô ED-7220C
9.1 Materiais
– Software Free Serial Port® Monitor para analise de dados RS232
– MATLAB®
– Robotics toolbox
– Toolbox Image Processing
– Kinect®
– Robô didático ED-7220C
– Unidade de controle ED-MK4
9.2 Métodos
Inicialmente será efetuado a identificação dos comandos de controle do robô
didático ED-7220C via o software de analise de dados seriais Free Serial Port
Monitor, onde os mesmos serão utilizados como meios de atuação e captação de
informações do status do robô.
Posteriormente será efetuado a modelagem do robô, com a determinação da
sua cinemática direta via parâmetros de Daniv-Handenberg.
O próximo passo será a determinação da cinemática inversa via toolbox
robotics para geração de trajetória, seguindo da criação de um algoritmo que será
responsável pela geração on-line da trajetória, unindo a geração da trajetória com os
comandos interpretados pelo robô.
Para geração do sistema de identificação do objeto, que será feito via toolbox
Image Processing, será utilizado técnicas de processamento de imagens e de
localização de objetos em um espaço cartesiano.
Com os algoritmos de identificação do objeto e geração de trajetória criados,
será efetuado o modo de instalação e calibração do sensor Kinect para atuar de
forma online com o robô, possibilitando assim o resultado requerido para o final
desse projeto.
Após o complemento das tarefas acima, será montando um ambiente com
objetos a serem identificados por formato ou cor, essa definição será feita via GUI
(Graphical User Interface traduzido com interface gráfica do usuário) do MATLAB,
onde o robô será capaz de identificar a localização do objeto e transportá-lo para
algum outro lugar especifico.
Na figura 6 segue o fluxo de funcionamento do sistema proposto.
Fonte: [do Autor]
Figura 6: Fluxograma de funcionamento do sistema
10. CRONOGRAMA
ATIVIDADES
Efetuar
engenharia
reversa da
comunicação do
ED-7220C
Fev. Mar. Abr. Mai. Jun. Jul. Ago. Set. Out. Nov.
2011 2011 2011 2011 2011 2011 2011 2011 2011 2011
5h
10h
Criar script de
envio de
comandos para o
robô ED-7220C
10h
10h
10h
Configuração e
testes no Kinect
10h
5h
5h
5h
10h
10h
Mapear volume de
trabalho do robô
ED-7220C para
inserção no
código principal
5h
10h
Criar um
simulador via
toolbox robotics
para testes sem o
robô
10h
15h
10h
15h
10h
10h
10h
10h
20h
Complementar a
fundamentação
teórica
10h
10h
10h
Finalizar a parte
escrita
10h
15h
10h
Montagem da
cinemática inversa
para mapeamento
de trajetória
10h
Criar código de
interação do
kinect com o
toolbox image
processing
Criar um código
principal com
todas as funções
integradas
5h
Revisão
Metodológica
5h
Redação Final
5h
Entrega do
Trabalho
1h
Defesa em Banca
1h
11. REFERENCIAS
[1]http://seer.uscs.edu.br/index.php/revista_informatica_aplicada/article/download/99
1/805. Disponível em 16-05-2011
[2] http://www.comciencia.br/reportagens/2005/10/09.shtml.Disponível em 30-052011
[3] ROMANO, Victor Ferreira. Robótica Industrial – Aplicações na indústria de
manufatura e de processos. São Paulo, 2002.
[4] RIVIN, E., Mechanical Design of Robots, 1 ed., McGraw-Hill Inc., New York, 1988.
[5] ROSÁRIO, João Maurício. Princípios de Mecatrônica. São Paulo: Prentice Hall,
2005.
[6] SANTOS, V. M. F. Robótica Industrial: Apontamentos teóricos, exercícios
para aulas práticas e problemas de exames resolvidos, Universidade de Aveiro,
2003-2004. Disponível em: http://www.mec.ua.pt/. Acesso em: 25-03-2011
[7] http://eficienciavital.files.wordpress.com/2011/05/industrial_robots.jpg. Disponível
em 05-06-2011
[8] http://www.inf.ufsc.br/~visao/#Introdu%C3%A7%C3%A3o. Disponível em 05-062011
[9]http://blog.andarilhovirtual.com.br/2011/05/dispositivo-microsoft-kinect-e-seus.html.
Disponível em 06-06-11
[10]http://www.adinstruments.es/5-JOINT-Arm-Robot-Trainer-ED7220C/en.
Disponível em 06-06-11
Download

FACULDADE ASSIS GURGACZ HAMILTON JOSÉ DA SILVA SENA