Download PDF
ads:
CENTRO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO
DESENVOLVIMENTO DE ESQUEMA DE CONTROLE COM REALIMENTAÇÃO
VISUAL PARA UM ROBÔ MANIPULADOR
Dissertação de Mestrado
ALLAN AMINADAB ANDRÉ FREIRE SOARES
NATAL
2005
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
ALLAN AMINADAB ANDRÉ FREIRE SOARES
DESENVOLVIMENTO DE ESQUEMA DE CONTROLE COM REALIMENTAÇÃO
VISUAL PARA UM ROBÔ MANIPULADOR
Dissertação apresentada como requisito
parcial à obtenção do grau de Mestre em
Engenharia Elétrica, Programa de Pós-
Graduação em Engenharia Elétrica,
Departamento de Engenharia de
Computação e Automação, Universidade
Federal do Rio Grande do Norte.
Orientador: Prof. Dr. Pablo Javier Alsina
Coorientador: Prof. Dr. Adelardo Adelino
Dantas de Medeiros
NATAL
2005
ads:
i
TERMO DE APROVAÇÃO
ALLAN AMINADAB ANDRÉ FREIRE SOARES
DESENVOLVIMENTO DE ESQUEMA DE CONTROLE COM REALIMENTAÇÃO
VISUAL PARA UM ROBÔ MANIPULADOR
Dissertação aprovada como requisito parcial para a obtenção do grau de Mestre no Programa de Pós-
Graduação em Engenharia Elétrica, Centro de Tecnologia da Universidade Federal do Rio Grande do
Norte, pela seguinte banca examinadora:
Orientador: _________________________________________________________________
Professor Dr. Pablo Javier Alsina
Departamento de Engenharia de Computação e Automação, UFRN
Coorientador: _______________________________________________________________
Professor Dr. Adelardo Adelino Dantas de Medeiros
Departamento de Engenharia de Computação e Automação, UFRN
Examinador Externo: _________________________________________________________
Professor Dr. Jés de Jesus Fiais Cerqueira
Departamento de Engenharia Elétrica, UFBA
Examinador Interno: __________________________________________________________
Professor Dr. Luiz Marcos Garcia Gonçalves
Departamento de Engenharia de Computação e Automação, UFRN
Natal, 22 de março de 2005
ii
Dedico este trabalho aos
professore(a)s que me acompanharam nessa
atual existência desde a mais tenra infância.
iii
AGRADECIMENTOS
Aos meus pais, Salizete Freire Soares e José Soares, meus primeiros orientadores.
Aos meus irmãos, Allany Amadine Amélie Freire Soares e Allyson Amílcar Ângelus
Freire Soares, pelo imenso carinho a mim dedicado.
Ao meu orientador, Professor Dr. Pablo Javier Alsina, pelo apoio e orientação
irrestritos.
Ao meu coorientador, Professor Dr. Adelardo Adelino Dantas de Medeiros, pelas
imprescindíveis sugestões e discussões técnicas.
Aos professores, André Laurindo Maitelli (UFRN), Adrião Duarte Dória Neto
(UFRN), Fred Sizenando Rossiter Pinheiro (UFRN), José Alberto Nicolau de Oliveira
(UFRN), José de Arimatéia Fernandes (UFCG), Luiz Mendes Albuquerque Neto (UFCG),
exemplos de vida e profissionalismo.
À Drª. Débora Cristina Diógenes Andrade, minha orientadora na escola da vida.
À Patrícia Áurea Lourenço, por me compreender e amar um pouco mais a cada dia.
À Paula Lins Goulart, pelos inesquecíveis momentos de companheirismo.
Aos eternos amigos, Gunther Josuá Costa, Márcio Cavalcante de Azevedo, Diogo
Pinheiro Fernandes Pedrosa e Fernando Roberto Guilherme da Silveira pela amizade de todos
os momentos.
Aos colegas do Laboratório de Sistemas Inteligentes, Antônio P. Araújo Júnior
(Toinho), Osmar Dourado Júnior, Patrícia Nishimura Guerra e Marcelo M. Yamamoto pelo
coleguismo sincero de todos os dias.
iv
Aprender é a única coisa de que a mente
nunca se cansa, nunca tem medo e nunca se
arrepende.
Leonardo da Vinci
v
SUMÁRIO
LISTA DE FIGURAS .......................................................................................................... viii
LISTA DE TABELAS ........................................................................................................... xi
RESUMO ............................................................................................................................... xii
ABSTRACT .......................................................................................................................... xiii
1 INTRODUÇÃO .................................................................................................................... 1
1.1 TÉCNICAS DE SERVO VISÃO APLICADAS À ROBÓTICA ....................................... 2
1.2 EXTRAÇÃO E RASTREAMENTO DE CARACTERÍSTICAS NA IMAGEM .............. 2
1.3 ESTRATÉGIAS DE CONTROLE SERVO VISUAL ....................................................... 2
1.3.1 Controle Servo-Visual Baseado na Posição ..................................................................... 3
1.3.2 Controle Servo-Visual Baseado na Imagem .................................................................... 3
1.3.3 Métodos Híbridos ............................................................................................................. 4
1.4 HISTÓRICO DO CONTROLE SERVO VISUAL PARA MANIPULADORES
ROBÓTICOS .................................................................................................................... 5
1.5 ORGANIZAÇÃO DO TEXTO .......................................................................................... 8
2 PROPOSTA DE TRABALHO ......................................................................................... 10
2.1 MOTIVAÇÃO .................................................................................................................. 11
2.2 OBJETIVO PRINCIPAL .................................................................................................. 12
2.3 OBJETIVOS ESPECÍFICOS ............................................................................................ 13
2.4 IMPLEMENTAÇÃO DA PROPOSTA ............................................................................ 14
2.4.1 Braço Robótico .............................................................................................................. 14
2.4.2 Espaço de Trabalho ........................................................................................................ 14
2.4.3 Rotulação ....................................................................................................................... 15
2.4.3.1 Rotulação para a calibração dos parâmetros extrínsecos ............................................ 15
2.4.3.2 Rotulação para obtenção da pose ................................................................................ 16
2.4.4 Sistema de Visão ............................................................................................................ 17
2.4.5 Sistema de Acionamentos do Robô Manipulador .......................................................... 19
2.4.6 Programa Computacional ............................................................................................... 20
3 ESCOLHA E CALIBRAÇÃO DAS CORES .................................................................. 22
3.1 INTRODUÇÃO ................................................................................................................ 23
3.2 IMAGENS COLORIDAS ................................................................................................. 23
3.3 MODELOS DE CORES ................................................................................................... 23
vi
3.4 ESCOLHA DO MODELO DE COR ................................................................................ 24
3.5 ESCOLHA DAS CORES ................................................................................................. 24
3.6 CALIBRAÇÃO DAS CORES .......................................................................................... 26
3.7 ANALISANDO O PIXEL A PARTIR DA COR .............................................................. 27
3.8 RESULTADOS ................................................................................................................. 27
4 CALIBRAÇÃO DA CÂMERA ......................................................................................... 32
4.1 INTRODUÇÃO ................................................................................................................ 33
4.2 MODELO DE CÂMERA ................................................................................................. 33
4.3 PARÂMETROS INTRÍNSECOS ..................................................................................... 34
4.3.1 Calibração dos Parâmetros Intrínsecos .......................................................................... 35
4.4 PARÂMETROS EXTRÍNSECOS .................................................................................... 35
4.4.1 Calibração dos Parâmetros Extrínsecos ......................................................................... 36
4.4.2 Obtenção dos Pontos de Referência na Imagem ............................................................ 39
4.5 EQUAÇÕES DE PROJEÇÃO .......................................................................................... 40
4.5.1 Mapeamento Inverso ...................................................................................................... 40
4.6 RESULTADOS ................................................................................................................. 41
4.6.1 Calibração Intrínseca ...................................................................................................... 41
4.6.2 Calibração Extrínseca .................................................................................................... 44
5 EXTRAÇÃO DOS VÉRTICES E CÁLCULO DA POSE ............................................. 48
5.1 INTRODUÇÃO ................................................................................................................ 49
5.2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 49
5.2.1 Equação da reta bissetriz ................................................................................................ 49
5.2.2 O Algoritmo de Bresenham ........................................................................................... 51
5.2.2.1 Implementação do algoritmo para segmentos com inclinação 0 m 1 ................... 51
5.2.2.2 Implementação do algoritmo para segmentos com inclinação -1 m 1 .................. 53
5.2.2.3 Implementação do algoritmo para todas as direções .................................................. 54
5.3 EXTRAÇÃO DOS VÉRTICES ........................................................................................ 54
5.3.1 Regras Heurísticas para Extração dos Vértices .............................................................. 55
5.3.2 Casos Especiais .............................................................................................................. 61
5.3.3 As Regras Heurísticas: Identificação dos Vértices ........................................................ 62
5.4 DETERMINAÇÃO DA POSE ......................................................................................... 63
5.4.1 Obtenção da Orientação da Garra em {B} ...................................................................... 65
5.4.2 Obtenção da Posição da Garra em {B} ........................................................................... 67
vii
5.5 RESULTADOS ................................................................................................................. 68
5.5.1 Regras Heurísticas .......................................................................................................... 68
5.5.2 Visibilidade .................................................................................................................... 74
5.2.3 Região de Interesse ........................................................................................................ 76
5.2.4 Análise Comparativa ...................................................................................................... 77
5.2.5 Precisão da Pose ............................................................................................................. 79
6 CONTROLE CINEMÁTICO ........................................................................................... 81
6.1 INTRODUÇÃO ................................................................................................................ 82
6.2 CONTROLE CONVENCIONAL PARA MANIPULADORES ROBÓTICOS .............. 82
6.3 CONTROLE CINEMÁTICO E CONTROLE DINÂMICO ............................................ 84
6.4 O ESQUEMA DE CONTROLE PROPOSTO ................................................................. 85
6.4.1 Geração de Trajetória ..................................................................................................... 86
6.4.1.1 Função polinomial de terceiro grau ............................................................................ 87
6.4.1.2 A geração de trajetória no esquema de controle proposto .......................................... 88
6.4.2 O Sinal de Erro do Esquema de Controle Proposto ....................................................... 88
6.4.3 Jacobiano do Manipulador Robótico ............................................................................. 89
6.4.3.1 O jacobiano do manipulador no esquema de controle proposto ................................. 90
6.4.3.2 O algoritmo de Greville .............................................................................................. 91
6.4.4 Funcionamento do Esquema de Controle Proposto ....................................................... 92
6.5 ESQUEMA DE CONTROLE EM MALHA ABERTA ................................................... 93
6.5.1 Cinemática Inversa ......................................................................................................... 93
6.5.2 Funcionamento do Esquema de Controle em Malha Aberta ......................................... 94
6.6 RESULTADOS ................................................................................................................. 95
7 CONCLUSÃO .................................................................................................................. 101
7.1 CONCLUSÃO E PERSPECTIVAS FUTURAS ............................................................ 102
REFERÊNCIAS .................................................................................................................. 104
DOCUMENTOS CONSULTADOS .................................................................................. 109
viii
LISTA DE FIGURAS
FIGURA 2.1 – ESQUEMA DE CONTROLE CONVENCIONAL EM ESPAÇO DE
JUNTAS ..................................................................................................... 11
FIGURA 2.2 – ESQUEMA DE CONTROLE CONVENCIONAL EM ESPAÇO
CARTESIANO ........................................................................................ 11
FIGURA 2.3 – ESQUEMA DE CONTROLE PROPOSTO: DIAGRAMA DE BLOCOS
GERAL .................................................................................................. 12
FIGURA 2.4 – ROBÔ MANIPULADOR .............................................................................. 14
FIGURA 2.5 – O MANIPULADOR NO SEU ESPAÇO DE TRABALHO .......................... 15
FIGURA 2.6 – RÓTULO RETANGULAR ........................................................................... 16
FIGURA 2.7 – RÓTULO TRIANGULAR ............................................................................. 16
FIGURA 2.8 – SISTEMA DE VISÃO ................................................................................... 19
FIGURA 2.9 – MONTAGEM FINAL ................................................................................... 20
FIGURA 2.10 – ESQUEMA GERAL DO PROGRAMA COMPUTACIONAL .................. 21
FIGURA 3.1 – CUBO DE CORES RGB ............................................................................... 25
FIGURA 3.2 –VIZINHANÇA 8-CONECTADA ................................................................... 26
FIGURA 3.3 – POSE DE CALIBRAÇÃO COM ILUMINAÇÃO AMBIENTE .................. 28
FIGURA 3.4 – ILUMINAÇÃO AMBIENTE: RESULTADO DA CALIBRAÇÃO ............. 29
FIGURA 3.5 – POSE DE CALIBRAÇÃO COM ILUMINAÇÃO QUENTE ....................... 30
FIGURA 3.6 – ILUMINAÇÃO QUENTE: RESULTADO DA CALIBRAÇÃO ................. 31
FIGURA 4.1 - MODELO PONTUAL MODIFICADO ......................................................... 34
FIGURA 4.2 – CALIBRAÇÃO EXTRÍNSECA: REFERENCIAIS ...................................... 36
FIGURA 4.3 – REFERENCIAIS INTERMEDIÁRIOS ......................................................... 37
FIGURA 4.4 – IMAGEM USADA NA CALIBRAÇÃO INTRÍNSECA .............................. 42
FIGURA 4.5 - DISTORÇÕES DAS LENTES ....................................................................... 43
FIGURA 4.6 – SEGMENTAÇÃO DO RETÂNGULO ......................................................... 44
FIGURA 4.7 – DETALHE DA SEGMENTAÇÃO DA BORDA .......................................... 45
FIGURA 4.8 – SEGMENTAÇÃO DOS LADOS E DOS VÉRTICES .................................. 45
FIGURA 4.9 – PONTO CENTRAL DO RETÂNGULO NA IMAGEM .............................. 47
FIGURA 5.1 – RETAS CONCORRENTES NO PLANO ..................................................... 50
FIGURA 5.2 – CONSTRUÇÃO DO SEGMENTO DE RETA NA IMAGEM ..................... 52
FIGURA 5.3 – DETERMINAÇÃO DO PIXELS DE BORDA .............................................. 55
ix
FIGURA 5.4 – DETERMINAÇÃO DO NOVO PIXEL INTERNO ...................................... 56
FIGURA 5.5 – DETECÇÃO DAS BORDAS: CASO 1 ........................................................ 56
FIGURA 5.6 – DETECÇÃO DAS BORDAS: CASO 2 ........................................................ 57
FIGURA 5.7 – DETERMINAÇÃO DO PONTO AUXILIAR .............................................. 57
FIGURA 5.8 – DETERMINAÇÃO DO PRIMEIRO VÉRTICE ........................................... 58
FIGURA 5.9 – DETERMINAÇÃO DA EQUAÇÃO DA RETA BISSETRIZ ..................... 59
FIGURA 5.10 – DETERMINAÇÃO DAS RETAS AUXILIARES ...................................... 59
FIGURA 5.11 – DETERMINAÇÃO DO SEGUNDO E TERCEIRO VÉRTICES ............... 60
FIGURA 5.12 – ILUSTRAÇÃO DO PRIMEIRO CASO ESPECIAL .................................. 61
FIGURA 5.13 – ILUSTRAÇÃO DO SEGUNDO CASO ESPECIAL .................................. 61
FIGURA 5.14 – OBTENÇÃO DA ORIENTAÇÃO DA GARRA ........................................ 66
FIGURA 5.15 – OBTENÇÃO DA POSIÇÃO DA GARRA ................................................. 67
FIGURA 5.16 – BUSCA DO PIXEL INTERNO FINAL ...................................................... 69
FIGURA 5.17 – DETERMINAÇÃO DO PRIMEIRO VÉRTICE ......................................... 70
FIGURA 5.18 – DETERMINAÇÃO DO SEGUNDO E TERCEIRO VÉRTICES ............... 71
FIGURA 5.19 – AJUSTE E IDENTIFICAÇÃO DOS VÉRTICES ....................................... 71
FIGURA 5.20 – DEFINIÇÃO IRREGULAR DA BORDA ................................................... 72
FIGURA 5.21 – PRIMEIRO CASO ESPECIAL: RESULTADO ......................................... 72
FIGURA 5.22 – SEGUNDO CASO ESPECIAL: RESULTADO ......................................... 73
FIGURA 5.23 – RÓTULO TRIANGULAR NÃO VISÍVEL ................................................ 74
FIGURA 5.24 – EXTRAÇÃO INCORRETA DOS VÉRTICES ........................................... 74
FIGURA 5.25 – COORDENADAS ESFÉRICAS ................................................................. 75
FIGURA 5.26 – REGIÃO DE INTERESSE .......................................................................... 76
FIGURA 6.1 – RELAÇÃO ENTRE O GERADOR DE TRAJETÓRIA E O BRAÇO
ROBÓTICO ............................................................................................... 83
FIGURA 6.2 – DIAGRAMA DO ESQUEMA DE CONTROLE PROPOSTO ..................... 85
FIGURA 6.3 – FORMAS DE VARIAÇÃO PARA A POSE ................................................. 86
FIGURA 6.4 – DISCRETIZAÇÃO DA TRAJETÓRIA ........................................................ 88
FIGURA 6.5 – EXPERIMENTO 1: POSE INICIAL ............................................................. 96
FIGURA 6.6 – EXPERIMENTO 1: POSE FINAL ................................................................ 96
FIGURA 6.7 – EXPERIMENTO 1: POSIÇÃO X ................................................................. 97
FIGURA 6.8 – EXPERIMENTO 1: POSIÇÃO Y ................................................................. 97
FIGURA 6.9 – EXPERIMENTO 1: POSIÇÃO Z .................................................................. 98
x
FIGURA 6.10 – EXPERIMENTO 1: ÂNGULO GAMA (ROLL) ......................................... 98
FIGURA 6.11 – EXPERIMENTO 1: ÂNGULO BETA (PITCH) ......................................... 99
FIGURA 6.12 – EXPERIMENTO 1: ÂNGULO ALFA (YAW) ............................................ 99
xi
LISTA DE TABELAS
TABELA 2.1 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA CÂMERA .................. 17
TABELA 2.2 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA OBJETIVA ................ 17
TABELA 2.3 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA PLACA DE
AQUISIÇÃO ........................................................................................................................... 18
TABELA 2.4 – PRINCIPAIS AJUSTES DA PLACA DE AQUISIÇÃO ............................. 18
TABELA 2.5 – ESPECIFICAÇÕES TÉCNICAS DO COMPUTADOR .............................. 18
TABELA 3.1 – CORES E LOCALIZAÇÃO ......................................................................... 25
TABELA 3.2 – EXECUÇÃO DO ALGORITMO PARA CALIBRAÇÃO DAS CORES .... 30
TABELA 4.1 – CALIBRAÇÃO DOS PARÂMETROS INTRÍNSECOS ............................. 43
TABELA 4.2 – ERROS DE REPROJEÇÃO ......................................................................... 47
TABELA 5.1 – FAIXAS DE VISIBILIDADE ...................................................................... 75
TABELA 5.2 – DESEMPENHO DAS REGRAS HEURÍSTICAS ....................................... 77
TABELA 5.3 – DESEMPENHO DO MÉTODO CLÁSSICO ............................................... 77
TABELA 5.4 – EXPERIMENTO 1: POSES .......................................................................... 79
TABELA 5.5 – EXPERIMENTOS 1 A 10: ERROS DE POSE ............................................ 79
TABELA 6.1 – RESULTADOS DO CONTROLE: ERROS QUADRÁTICOS ................. 100
xii
RESUMO
Este trabalho propõe um esquema de controle cinemático, utilizando
realimentação visual para um braço robótico com cinco graus de liberdade. Foi
desenvolvido um método que utiliza técnicas de visão computacional, para a
determinação da posição e orientação Cartesiana tridimensional (pose) do braço
robótico a partir da imagem do mesmo fornecida por uma câmera.
Um rótulo triangular colorido é disposto sobre a garra do manipulador robótico
e regras heurísticas eficientes são utilizadas para obter os vértices desse rótulo na
imagem. Métodos numéricos são usados para recuperação da pose da garra a partir
desses vértices.
Um esquema de calibração de cores fundamentado no algoritmo k-means foi
implementado de modo a garantir a robustez do sistema de visão na presença de
variações na iluminação.
Os parâmetros extrínsecos da câmera são calibrados usando-se quatro pontos
coplanares extraídos da imagem, cujas posições no plano Cartesiano em relação a um
referencial fixo são conhecidas.
Para duas poses distintas da garra, inicial e final, adquiridas através da
imagem, interpola-se uma trajetória de referência em espaço Cartesiano. O esquema de
controle proposto possui como sinal de erro a diferença entre a pose de referência e a
pose atual da garra. Após a aplicação de ganhos, o sinal de erro é mapeado em
incrementos de junta utilizando-se a pseudoinversa do Jacobiano do manipulador. Esses
incrementos são aplicados às juntas do manipulador, deslocando a garra para a pose de
referência.
xiii
ABSTRACT
This work proposes a kinematic control scheme, using visual feedback for a
robot arm with five degrees of freedom. Using computational vision techniques, a
method was developed to determine the Cartesian 3D position and orientation of the
robot arm (pose) using a robot image obtained through a camera.
A colored triangular label is disposed on the robot manipulator tool and
efficient heuristic rules are used to obtain the vertexes of that label in the image. The
tool pose is obtained from those vertexes through numerical methods.
A color calibration scheme based in the k-means algorithm was implemented to
guarantee the robustness of the vision system in the presence of light variations.
The extrinsic camera parameters are computed from the image of four coplanar
points whose Cartesian 3D coordinates, related to a fixed frame, are known.
Two distinct poses of the tool, initial and final, obtained from image, are
interpolated to generate a desired trajectory in Cartesian space. The error signal in the
proposed control scheme consists in the difference between the desired tool pose and the
actual tool pose. Gains are applied at the error signal and the signal resulting is mapped
in joint incrementals using the pseudoinverse of the manipulator Jacobian matrix. These
incrementals are applied to the manipulator joints moving the tool to the desired pose.
1
CAPÍTULO 1
INTRODUÇÃO
2
1.1 TÉCNICAS DE SERVO VISÃO APLICADAS À ROBÓTICA
O controle servo visual constitui-se na utilização de sensores de visão como fonte
dos sinais realimentados numa malha de controle fechada. A aplicação das técnicas de servo
visão à robótica proporciona uma elevação da confiabilidade, versatilidade e precisão das
tarefas realizadas pelos robôs.
1.2 EXTRAÇÃO E RASTREAMENTO DE CARACTERÍSTICAS NA IMAGEM
Qualquer método implementado para executar uma tarefa baseada em imagens é
precedido de uma extração de informações relevantes nessas imagens. Essas informações
visuais são úteis e necessárias para realimentar o sistema de controle ou de decisão.
Nas pesquisas desenvolvidas na área de controle servo visual destacam-se o uso de
marcações artificiais ou das cores específicas de um objeto pertencente à cena para realizar a
segmentação da imagem.
Das características extraídas da imagem de um objeto-alvo, a mais pesquisada
segundo CORKE (1993) são os pontos pertencentes ao próprio objeto. Outras características
como segmentos de reta (SILVEIRA et al., 2001a), área projetada por uma superfície ou a
área relativa entre duas superfícies (WEISS; ANDERSON, 1987), centróide (SILVEIRA et
al., 2001b), momentos de ordem superior e parâmetros de elipse (AZINHEIRA et al., 2002)
também são empregadas como informação visual para o sistema de controle.
Para minimizar o esforço computacional desenvolvido na extração das
características, duas importantes estratégias são comumente aplicadas:
a) a segmentação e rastreamento de parâmetros na imagem através de regiões de
interesse (Regions of Interest, ROI);
b) a subamostragem da imagem processando-se um pixel a cada n pixels.
1.3 ESTRATÉGIAS DE CONTROLE SERVO VISUAL
Para a realização de uma determinada tarefa num esquema de controle servo visual
pode-se utilizar uma ou mais câmeras, em diferentes configurações. As duas configurações
básicas são:
3
a) eye-in-hand (olho na mão): a câmera encontra-se disposta na parte terminal do
robô;
b) eye-to-hand (mão-olho): uma ou mais câmeras fixadas em pontos externos ao
espaço de trabalho do robô.
De acordo com os parâmetros que compõem o sinal de erro a estratégia de controle
servo visual pode ser classificada como: controle servo visual baseado na posição (Position-
Based Visual Servoing ou PBVS), controle servo visual baseado na imagem (Image-Based
Visual Servoing ou IBVS) ou método híbrido.
1.3.1 Controle Servo Visual Baseado na Posição
Também denominado de servo controle visual 3D.
Caracteriza-se por possuir o sinal de erro definido em termos de coordenadas
Cartesianas tridimensionais em relação a um referencial Euclidiano fixo no espaço de
trabalho.
Esse tipo de controle tem como objetivo promover movimentos de translação e
orientação do sistema de coordenadas da garra do robô (ou da câmera) de forma que a posição
inicial deste referencial se aproxime progressivamente de uma posição desejada.
Dependente da calibração da câmera, do modelo cinemático preciso do robô e
exigindo grande esforço computacional na sua execução o controle PBVS tem como principal
vantagem possibilitar o controle da trajetória do robô no plano Cartesiano, permitindo a
elaboração de leis de controle mais simples, capazes de eliminar singularidades e facilitar o
contorno de obstáculos presentes na cena.
1.3.2 Controle Servo Visual Baseado na Imagem
Também denominado de servo controle visual 2D.
Caracteriza-se por possuir o sinal de erro definido em termos de informações visuais
extraídas da imagem.
O objetivo desse tipo de estratégia é controlar o movimento da garra do robô (ou da
câmera) de modo que as medições das informações visuais na imagem alcancem um valor
desejado. Esse valor pode ser determinado a partir das equações analíticas de projeção ou
4
através do deslocamento do robô (ou da câmera) até a posição desejada e a captação da
imagem correspondente para extração das informações visuais (método teach by showing).
O controle servo visual baseado na imagem é independente da calibração da câmera
e exige um reduzido esforço computacional para sua execução. Sua principal desvantagem é
não permitir o controle direto sobre o movimento Cartesiano do robô. Além disso, há a
necessidade de estimar a dimensão subentendida da garra do robô ao objeto a ser manipulado,
conhecida como profundidade.
Para relacionar os movimentos do robô (ou da câmera), definidos em função das
coordenadas de junta, coordenadas do espaço de trabalho ou velocidades dos motores, com os
movimentos obtidos a partir das características contidas na imagem é preciso computar a
denominada matriz de interação. Destacam-se na determinação da matriz de interação o
trabalho de ESPIAU, CHAUMETTE e RIVES (1992) que a calcula analiticamente através de
primitivas geométricas genéricas, e o de JÄGERSAND, FUENTES e NELSON (1997) que
utiliza medições do movimento do robô e parâmetros da imagem.
1.3.3 Métodos Híbridos
Também denominado de servo controle visual 2D
2
1
.
As estratégias híbridas aplicam o controle servo visual baseado na imagem para
alguns dos graus de liberdade do robô, enquanto utiliza o controle servo visual baseado na
posição para os graus remanescentes. Esse tipo de controle busca evitar as desvantagens
apresentadas por cada uma das estratégias apresentadas nas subseções anteriores (1.3.1 e
1.3.2).
As aplicações mais importantes das estratégias híbridas pertencem à CASTAÑO e
HUTCHINSON (1994), à MALIS, CHAUMETTE e BOUDET (1999), e à DEGUCHI
(1998).
CASTAÑO e HUTCHINSON (1994) utilizam servo controle visual 2D para
controlar os dois graus de liberdade de um manipulador robótico paralelos ao plano da
imagem e servo controle visual 3D para controlar o grau de liberdade perpendicular.
MALIS, CHAUMETTE e BOUDET (1999) executam parte do controle do
manipulador no espaço Cartesiano tridimensional (espaço 3D) e parte no plano sensorial.
5
O trabalho de DEGUCHI (1998) desacopla completamente os movimentos
translacional e rotacional de um manipulador robótico.
1.4 HISTÓRICO DO CONTROLE SERVO VISUAL APLICADO A MANIPULADORES
ROBÓTICOS
Os primeiros estudos no campo da visão computacional aplicada à robótica datam do
início dos anos 70 e se restringem às aplicações em reconhecimento de padrões. Os resultados
satisfatórios obtidos neste primeiro momento e o avanço dos recursos computacionais
possibilitaram direcionar as pesquisas em visão computacional para as tarefas de
reconhecimento, localização e inspeção dos movimentos realizados por objetos ou
mecanismos. Entre esses mecanismos destacam-se os manipuladores robóticos e os robôs
móveis.
A maior parte destes trabalhos iniciais com mecanismos robóticos encontrava-se no
domínio da visão dinâmica, isto é, limitavam-se ao estudo e exploração das informações
visuais contidas numa seqüência de imagens, sem realizar o controle do movimento da
câmera ou do robô. Posteriormente o sensoriamento visual e a manipulação foram
combinados numa estratégia serial de controle em malha aberta conhecida como observar-
para-depois-agir (look-and-move-approach) cuja precisão e robustez mostraram-se pouco
eficientes. SHIRAI e INOUE (1973) foram os primeiros pesquisadores a descrever como uma
malha de controle com realimentação visual eleva essa precisão e robustez.
No final dos anos 80 surgiram os primeiros trabalhos significativos na área de servo
visão aplicada à robótica. Um marco importante é o trabalho de WEISS e ANDERSON
(1987) no qual se faz a distinção entre controle servo visual baseado na posição e controle
servo visual baseado na imagem. FEDDEMA e MITCHELL (1989) são os responsáveis pela
primeira demonstração de um controle servo visual baseado na posição. Esta demonstração
utilizava um gerador explícito de trajetória e um controle de juntas em malha fechada visando
superar o problema da baixa taxa de amostragem do sistema de visão.
CHAUMETTE, RIVES e ESPIAU (1991) publicaram um trabalho no qual as
projeções no plano da imagem de pontos característicos do manipulador robótico são
utilizadas no cálculo dos parâmetros da matriz de interação. No ano seguinte WANG (1992)
apresentou um trabalho sobre calibração dos parâmetros extrínsecos para uma câmera
montada sobre um robô manipulador. Neste trabalho são desenvolvidos três métodos para a
6
calibração: através de um objeto referência pré-calibrado, através de um objeto referência não
pré-calibrado e usando-se um simples ponto fixo. Ainda neste ano WANG e WILSON (1992)
investigaram a aplicação do filtro de Kalman estendido (HAYKIN, 1999, 765-788) na
estimação da pose de um braço robótico, e ALLEN et al. (1992) usando visão estéreo
conseguiram rastrear e agarrar um trem de brinquedo deslocando-se num trilho circular.
Outras importantes contribuições são os trabalhos de PAPANIKOLOPOULOS e
KHOSLA (1993) e PAPANIKOLOPOULOS, KHOSLA e KANADE (1993) onde uma
câmera montada sobre um manipulador robótico rastreia em tempo real um objeto
tridimensional em movimento, ou o localiza quando este se encontra estático, a partir da
análise dos campos de fluxo ótico obtidos para cada pequeno deslocamento do objeto que se
encontra a uma distância fixa e previamente conhecida do plano da imagem. Quatro anos mais
tarde SMITH, BRANDT e PAPANIKOLOPOULOS (1997) aprimoram o controle desse
manipulador permitindo que ele trabalhasse num ambiente não-calibrado, isto é, sem
conhecimento prévio dos parâmetros relacionados ao objeto (posição no espaço de trabalho) e
dos parâmetros relacionados à câmera (parâmetros extrínsecos). Este último trabalho garante
um controle do braço com grau de robustez suficiente para inspecionar e explorar o ambiente
de trabalho, acompanhar a trajetória do objeto em movimento, agarrar o objeto e evitar
colisões.
Apenas em meados dos anos 90 é que trabalhos envolvendo servo visão, redes
neurais e lógica nebulosa foram aplicados no controle de robôs manipuladores. Entre esses
primeiros trabalhos destaca-se o de ZHA, ONITSUKA e NAGATA (1996), no qual uma rede
neural do tipo auto-organizável de Kohonen (KOHONEN, 1995) mapeia Cartesianamente o
espaço de trabalho do manipulador. A cada neurônio está associado um vetor contendo a
posição no espaço Cartesiano do próprio neurônio, um vetor com a configuração angular das
juntas necessárias, para que a garra do manipulador alcance essa posição e o jacobiano do
manipulador para esta configuração de junta.
Uma técnica de controle servo visual para um manipulador robótico utilizando lógica
nebulosa foi apresentada por TODA, KONISHI e ISHIGAKI (1996). As regras nebulosas são
aplicadas tomando-se como parâmetros a posição espacial da garra do manipulador,
atualizada constantemente via imagem, e a posição final desejada para a mesma
correspondente à detecção prévia na imagem da posição de um objeto a ser manipulado.
Os resultados obtidos ao se utilizar duas câmeras associadas a uma rede neural para
controlar um braço robótico são apresentados por POPOVIC e BLECHSCHMIDT (1996).
7
Neste trabalho realizou-se um estudo de caso com dois tipos de rede: uma rede de Kohonen,
em esquema semelhante ao proposto por ZHA, ONITSUKA e NAGATA (1996), e uma rede
perceptron de múltiplas camadas (HAYKIN, 1999, p. 135-143), composta por duas redes
perceptron associadas de forma serial ou paralela, onde a primeira calcula a próxima posição
da garra e a segunda realiza uma correção (ajuste fino) no resultado obtido para a próxima
posição.
Na procura de um controle IBVS mais eficiente SHARMA e HUTCHINSON (1997)
propõem o parâmetro Percepção de Movimento que relaciona a taxa de mudança na posição
espacial de um objeto com a taxa de mudança da posição de pontos característicos desse
objeto no plano da imagem. Esse parâmetro associado ao conceito de manipulabilidade é
aplicado no controle de posição para um robô manipulador. JANABI-SHARIFI e WILSON
(1997) aplicaram conceitos tais como visibilidade, resolução, campo de visão, região de
interesse e estimação de parâmetros no processamento das imagens captadas de um
manipulador robótico elaborando um eficiente método de seleção automática de
características específicas de um objeto situado no espaço de trabalho do robô. As
características a serem extraídas do objeto a partir da imagem são escolhidas de acordo com a
tarefa a ser realizada pelo manipulador e utilizadas no controle do mesmo.
Nesse histórico do controle servo visual aplicado a braços robóticos destaca-se
também a publicação do método para calibração de câmeras montadas sobre um braço
robótico de WEI, ARBTER e HIRZINGER (1998). O método consiste na aplicação de um
modelo estatístico baseado na variância da posição no plano da imagem de pontos fixos no
espaço de trabalho do robô enquanto a câmera se movimenta. O objetivo do método é calibrar
os parâmetros intrínsecos e extrínsecos da câmera, incluindo as distorções da lente. Um
esquema de captura de objetos utilizando-se um manipulador robótico com uma câmera
montada sobre a garra foi apresentado por JANABI-SHARIFI e WILSON (1998) onde a
posição do objeto no referencial da câmera é calculada aplicando-se um filtro de Kalman
estendido às coordenadas no plano da imagem de determinadas características do objeto. A
posição do objeto associada às restrições mecânicas e geométricas do robô são utilizadas no
desenvolvimento de uma estratégia robusta para a movimentação da garra em direção ao
objeto, evitando colisões com outros objetos e as singularidades geométricas do braço. Num
outro trabalho WEI e HIRZINGER (1999) usaram uma rede neural do tipo perceptron de
múltiplas camadas para realizar a fusão de dados sensoriais: a imagem de um objeto captada
por uma câmera e a distância da garra do manipulador a esse objeto medida utilizando-se
8
laser. O processamento desses dados pela rede permite controlar o movimento do robô
manipulador de forma que este alcance o objeto com precisão.
O posicionamento inteligente de um braço robótico utilizado para mover as peças de
um jogo de xadrez sobre um tabuleiro é desenvolvido por FERREIRA, CAVALCANTI e
MONTEIRO (2000) e aperfeiçoado em ELSHHEIBIA, FERREIRA e CAVALCANTI
(2002). O sistema utiliza lógica nebulosa com regras obtidas a partir da observação dos
movimentos da mão de um jogador durante a manipulação das peças numa partida. Um
esquema IBVS para um robô manipulador completamente independente da calibração de
câmera é proposto por PIEPMEIER, GUMPERT e LIPKIN (2002), neste a aplicação de
métodos numéricos às características extraídas da imagem permitem controlar o movimento
do braço robótico enquanto este segue um determinado objeto em movimento. Um
controlador IBVS desenvolvido por DIAS (2002) é aplicado a um manipulador robótico
redundante e utiliza rótulos coloridos em cada uma das juntas como forma de permitir a
detecção da pose através da imagem. Os rótulos possibilitam que o controle cinemático do
manipulador se realize de modo independente para cada elo.
Uma solução para o problema de posicionamento de um braço robótico é apresentada
por SILVA JÚNIOR, FERRUGEM e BARONE (2003) usando um desenvolvimento do
algoritmo genético (NASCIMENTO e YONEYAMA, 1997) conhecido como algoritmo
genético cooperativo e coevolucionário. Esta estratégia é aplicada para evoluir os ângulos de
junta do braço, com n graus de liberdade, em tempo real com a finalidade de posicionar uma
câmera de fibra ótica num procedimento cirúrgico minimamente invasivo.
Devido ao crescente interesse e à diversidade de estratégias propostas,
HUTCHINSON, HAGER e CORKE (1996) publicaram um tutorial sobre os métodos de
controle servo visual pesquisados até aquele momento. Uma outra sugestão de publicação
sobre as técnicas de controle servo visual de robôs é a realizada por SILVEIRA et al. (2002).
Para um estudo comparativo dos esquemas clássicos de controle servo visual baseado nos
resultados obtidos em várias simulações recomenda-se o trabalho de SILVEIRA (2003).
1.5 ORGANIZAÇÃO DO TEXTO
O próximo capítulo apresentará a proposta de trabalho desta dissertação de Mestrado
descrevendo o que motivou a elaboração de tal proposta, a proposta propriamente dita e os
objetivos específicos necessários para a correta execução da mesma.
9
Os demais capítulos detalham os métodos, algoritmos, heurísticas, formas de
implementação, resultados obtidos e análises dos resultados para cada um dos objetivos
específicos.
O capítulo 3 refere-se à etapa de calibração de cores.
O capítulo 4 apresenta os métodos de calibração dos parâmetros intrínsecos e
extrínsecos da câmera.
O capítulo 5 trata da etapa de extração na imagem dos vértices do rótulo triangular, e
do cálculo da posição e orientação da garra do robô manipulador a partir desses vértices. É
neste quinto capítulo que este trabalho fornece sua real contribuição científica na forma das
regras heurísticas para extração dos vértices na imagem e determinação da pose.
O capítulo 6 discorre sobre o sistema de controle usando a realimentação visual
proposta.
O capítulo 7 apresenta a conclusão deste trabalho discorrendo uma análise sobre os
resultados obtidos para cada etapa implementada nos capítulos anteriores, principalmente
sobre o controlador proposto, além de apresentar perspectivas futuras quanto a algumas dessas
etapas.
10
CAPÍTULO 2
PROPOSTA DE TRABALHO
11
2.1 MOTIVAÇÃO
Os métodos convencionais de controle em malha fechada para a posição e orientação
de manipuladores robóticos são baseados na realimentação das variáveis de juntas θ medidas
indiretamente através de codificadores óticos.
No espaço de juntas (fig. 2.1) o sinal de controle τ para o manipulador é obtido a
partir do erro δθ entre os ângulos de junta realimentados e os ângulos de referência θ
r
obtidos
através da aplicação de cinemática inversa às poses de referência χ
r
produzidas por um
gerador de trajetória.
No espaço Cartesiano (fig. 2.2), o sinal de controle é gerada a partir do erro δχ entre
a pose atual, obtida aplicando-se cinemática direta aos ângulos de junta realimentados, e a
pose de referência produzida pelo gerador de trajetória.
Os métodos clássicos de controle dependem então dos modelos cinemáticos do braço
robótico a ser controlado. Se o modelamento cinemático do braço contiver erros, ocorrerá que
um erro δχ nulo no espaço Cartesiano, não representará um erro de pose nulo no espaço
CONVERSOR DE
COORDENADAS
E
GANHOS
δχ
+
BRAÇO
-
θ
τ
χ
r
CINEMÁTICA DIRETA (θ)
χ
θ
r
θ
δθ
CINEMÁTICA
INVERSA (θ)
GANHOS
BRAÇO
+
-
τ
χ
r
FIGURA 2.1 – ESQUEMA DE CONTROLE CONVENCIONAL EM ESPAÇO DE JUNTAS
FIGURA 2.2 – ESQUEMA DE CONTROLE CONVENCIONAL EM ESPAÇO CARTESIANO
12
Cartesiano real do robô. Da mesma forma que um erro δθ nulo no espaço de juntas, não
representará um erro de posição nulo no espaço de juntas real do robô.
Atualmente, inúmeras pesquisas são realizadas na área de controle de manipuladores
robóticos utilizando a informação visual como uma alternativa ao controle convencional.
Encontrar um sistema de visão computacional que acoplado ao robô manipulador ou disposto
em seu espaço de trabalho possibilite um eficiente controle de posição e orientação é uma das
áreas de pesquisa mais importantes no campo da robótica atual, devido principalmente à
riqueza de dados encontrados na informação visual e à flexibilidade de processamento destas
informações.
Além disso, um esquema de controle com realimentação visual realmente trabalha
em malha fechada, pois o posicionamento da garra do manipulador não será mais fornecido de
maneira indireta pelos codificadores óticos, mas por um sinal visual digitalizado que
processado indicará precisamente a posição e orientação atual da garra do robô independente
dos modelos cinemáticos.
2.2 OBJETIVO PRINCIPAL
Propõe-se elaborar um esquema de controle cinemático em malha fechada, no espaço
Cartesiano (PBVS), para a posição e orientação de um manipulador robótico usando
realimentação visual (fig. 2.3).
A malha de realimentação recebe como sinal de entrada as imagens do manipulador
captadas em tempo real por uma câmera disposta no seu espaço de trabalho (configuração
+
δθ
χ
IMAGEM
χ
r
-
PROCESSAMENTO DE IMAGEM DIGITAL
δχ
CONVERSOR DE
COORDENADAS
E
GANHOS
BRAÇO
FIGURA 2.3 – ESQUEMA DE CONTROLE PROPOSTO: DIAGRAMA DE BLOCOS GERAL
13
mão-olho). Rótulos coloridos associados ao manipulador permitirão a recuperação da posição
e orientação espacial da garra do robô através do processamento das imagens.
O processamento das imagens é realizado utilizando-se as técnicas clássicas dessa
área de pesquisa com a finalidade de simplificar e tornar mais eficiente do ponto de vista
computacional a execução do esquema proposto. A pose da garra obtida para cada
processamento de imagem é usada no cálculo do sinal de controle, isto é, no cálculo do
incremento angular δθ a ser aplicado em cada junta do braço.
2.3 OBJETIVOS ESPECÍFICOS
Para que o objetivo principal deste trabalho possa ser alcançado foi necessária a
realização das seguintes etapas:
a) Desenvolver, implementar e testar rotinas computacionais para captura de
imagens através de uma câmera CCD (GONZALEZ e WOODS, 1993, p. 10-14) e
uma placa de aquisição de imagens;
b) Desenvolver, implementar e testar uma rotina computacional para a calibração das
cores presentes nas imagens;
c) Executar a calibração dos parâmetros intrínsecos da câmera;
d) Implementar e testar rotinas computacionais para calibração dos parâmetros
extrínsecos da câmera;
e) Desenvolver, implementar e testar uma rotina computacional para processamento
das imagens com a finalidade de extrair determinadas características da imagem
adquirida do braço robótico;
f) Desenvolver, implementar e testar uma rotina para calcular a posição e orientação
da garra do robô a partir das características extraídas da imagem;
g) Desenvolver, implementar e testar um algoritmo de controle de posição e
orientação do robô em espaço cartesiano utilizando na composição do sinal de
erro a pose obtida através da imagem;
h) Integrar e testar as rotinas computacionais descritas nos itens anteriores aplicando-
as a um braço robótico real;
i) Comparar o desempenho do sistema de controle proposto com o desempenho de
um sistema de controle em malha aberta.
14
2.4 IMPLEMENTAÇÃO DA PROPOSTA
As subseções seguintes apresentam os materiais, dispositivos, equipamentos e
programas computacionais usados na implementação da proposta de trabalho e
disponibilizados pelo Laboratório de Sistemas Inteligentes (LABSIS) do Departamento de
Engenharia de Computação e Automação (DCA) da UFRN.
2.4.1 Braço Robótico
O braço robótico utilizado na implementação da proposta possui cinco graus de
liberdade e todas as juntas são do tipo revolução (fig. 2.4).
2.4.2 Espaço de Trabalho
O ambiente de trabalho (fig. 2.5) do manipulador robótico possui tamanho suficiente
para este posicionar e orientar sua garra em todas as configurações possíveis.
FIGURA 2.4 – ROBÔ MANIPULADOR
15
Este ambiente é construído em cor neutra (preto) e a iluminação nele incide com
intensidade aproximadamente constante e distribuição uniforme. A cor neutra é usada com o
objetivo de facilitar a extração de características específicas na imagem que processadas
permitem a detecção dos objetos presentes na cena.
2.4.3 Rotulação
A rotulação utilizada neste trabalho consistiu em confeccionar rótulos coloridos na
forma de primitivas geométricas (triângulo e retângulo) que recuperados na imagem auxiliam
nos procedimentos de calibração da câmera e na realização do controle de posicionamento e
orientação do manipulador robótico.
2.4.3.1 Rotulação para a calibração dos parâmetros extrínsecos
Para a calibração dos parâmetros extrínsecos da câmera (capítulo 4, seção 4.3)
utilizam-se os vértices (P
0
, P
1
, P
2
, P
3
) de um rótulo retangular (40 x 80 mm) fixado na base do
robô manipulador. A figura 2.6 apresenta em detalhe o rótulo retangular e descreve a
identificação dos vértices do mesmo.
FIGURA 2.5 – O MANIPULADOR NO SEU ESPAÇO DE TRABALHO
16
2.4.3.2 Rotulação para obtenção da pose
Para facilitar a tarefa de extrair a pose do braço robótico, um rótulo triangular
composto por um triângulo eqüilátero (60 x 60 x 60 mm) com uma faixa (60 x 10 mm)
adjacente a um dos lados é fixado na garra do manipulador. A função da faixa é permitir a
correta identificação dos vértices (A, B e C) usados na obtenção da pose (capítulo 5).
A figura 2.7 apresenta em detalhe o rótulo triangular e descreve a identificação dos
vértices do mesmo.
FIGURA 2.7 – RÓTULO TRIANGULAR
RETÂNGULO
VÉRTICE
P2
VÉRTICE
P
0
VÉRTICE
P3
VÉRTICE
P1
BASE
DO
ROBÔ
FIGURA 2.6 – RÓTULO RETANGULAR
VÉRTICE C
VÉRTICE B
VÉRTICE A
FAIXA
TRIÂNGULO
17
2.4.4 Sistema de Visão
A imagem do manipulador robótico e do seu espaço de trabalho é captada por meio
de um sistema de visão composto por uma câmera CCD conectada a uma placa de aquisição e
processamento de imagens instalada num computador do tipo ‘PC’.
A tabela 2.1 descreve as características mais relevantes da câmera (FIORANTE,
2001, p. 9-11;14-18).
TABELA 2.1 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA CÂMERA
DESCRIÇÃO ESPECIFICAÇÃO
Fabricante Kodo
Modelo da câmera kc-512nt
Modelo do CCD
color
3
1
pol.
Resolução horizontal (pixels) 811
Resolução vertical (pixels) 508
Ajuste do nível de branco na imagem SIM
Dimensões (C x A x P) 55 x 65 x 125 mm
A tabela 2.2 descreve as principais características da objetiva utilizada na câmera
CCD (FIORANTE, 2001, p. 11-14).
TABELA 2.2 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA OBJETIVA
DESCRIÇÃO ESPECIFICAÇÃO
Fabricante Honeywell
Modelo HLM6V12E
Tipo das lentes
vari-focal
3
1
pol.
Distância focal (mm) 6 – 12
Abertura F1.4
As tabelas 2.3 e 2.4 apresentam, respectivamente, as principais especificações
técnicas e a configuração dos principais parâmetros da placa de aquisição e processamento de
imagens.
18
TABELA 2.3 – PRINCIPAIS ESPECIFICAÇÕES TÉCNICAS DA PLACA DE AQUISIÇÃO
DESCRIÇÃO ESPECIFICAÇÃO
Fabricante national instruments
Modelo IMAQ PCI - 1411
Modelos de cores
Monocromático
HSL
RGB
TABELA 2.4 – PRINCIPAIS AJUSTES DA PLACA DE AQUISIÇÃO
DESCRIÇÃO ESPECIFICAÇÃO
Resolução da imagem (C x A) 640 x 480 pixels
Início da imagem: topo (pixel) 18
Início da imagem: esquerda (pixel) 111
Modelo de cor RGB 32 bits
Taxa de aquisição 30 imagens/s
A tabela 2.5 descreve as principais características técnicas do computador utilizado
na implementação da proposta.
TABELA 2.5 – ESPECIFICAÇÕES TÉCNICAS DO COMPUTADOR
DESCRIÇÃO ESPECIFICAÇÃO
Processador: fabricante intel
Processador: modelo e velocidade pentium 4A 478PIN 533 2.4GHz
Placa mãe: fabricante ECS
Placa mãe: modelo P4VMM v8.1
Memória RAM: tamanho 256 MB
A figura 2.8 mostra parte dos dispositivos componentes do sistema de visão:
computador e conjunto câmera-objetiva.
19
Inicialmente a câmera é ajustada no espaço de trabalho de modo que o manipulador
possa ser captado por inteiro, da base à garra, em todas as suas possíveis configurações. As
distâncias mínima e máxima da câmera ao braço foram então determinadas garantindo,
respectivamente, um completo enquadramento do mesmo e uma correta definição na imagem
de suas partes constituintes.
2.4.5 Sistema de Acionamentos do Robô Manipulador
O acionamento dos motores de junta do robô manipulador é realizado através de
rotinas computacionais executadas num computador configurado para tal finalidade. O meio
de comunicação entre o computador e o robô consiste num cabo padrão RS-232 (cabo de
impressora) devidamente adaptado para utilizar a saída serial. O computador usado no
acionamento dos motores é o mesmo utilizado pelo sistema de visão.
Na figura 2.9 pode-se observar parte da montagem final para o sistema de controle
servo visual implementado: o robô no seu espaço de trabalho e o conjunto câmera-objetiva.
FIGURA 2.8 – SISTEMA DE VISÃO
20
2.4.6 Programa Computacional
Todas as rotinas computacionais desenvolvidas neste trabalho encontram-se reunidas
num único programa computacional implementado em linguagem C++ para sistema
operacional WINDOWS
®
. Podem-se classificar as etapas desse programa em três partes:
a) Rotinas gerais: executadas a qualquer momento pelo programa.
b) Rotinas off-line: utilizadas antes da execução do controle cinemático;
c) Rotinas on-line: utilizadas durante a execução do controle cinemático.
Especificamente as rotinas que compõem o programa computacional são as
seguintes:
a) Rotina de captação de imagens;
b) Rotina de acionamento dos motores das juntas do manipulador robótico;
c) Rotina para calibração das cores;
d) Rotina para calibração da câmera (parâmetros extrínsecos);
e) Rotina para extração dos vértices do rótulo triangular;
f) Rotina para cálculo da pose do manipulador;
g) Rotina de execução do controle cinemático.
A figura 2.10 resume as partes e rotinas que compõem o programa computacional
que implementa a proposta de trabalho. As setas indicam a seqüência de execução das rotinas.
As rotinas gerais podem ser executadas em qualquer ordem.
FIGURA 2.9 – MONTAGEM FINAL
21
PROGRAMA COMPUTACIONAL
CAPTAÇÃO
DE
IMAGENS
ACIONAMENTO
DOS MOTORES
ROTINAS GERAIS
ROTINAS OFF-LINE
CALIBRAÇÃO
DAS
CORES
CALIBRAÇÃO
DE
CÂMERA
EXTRAÇÃO
DOS
VÉRTICES
CÁLCULO
DA
POSE
CONTROLE
CINEMÁTICO
ROTINAS ON-LINE
FIGURA 2.10 – ESQUEMA GERAL DO PROGRAMA COMPUTACIONAL
22
CAPÍTULO 3
ESCOLHA E CALIBRAÇÃO DAS CORES
23
3.1 INTRODUÇÃO
Neste capítulo são escolhidas as cores para os rótulos e apresentado o método de
calibração das cores. Comenta-se sobre o processamento de imagens coloridas, sobre os
modelos de cores e justifica-se a escolha do modelo de cor utilizado neste trabalho. A forma
como cada pixel (GONZALEZ e WOODS, 1992, p. 1-20) é analisado na imagem para
determinação da sua classe de cor também é apresentada.
3.2 IMAGENS COLORIDAS
O olho humano pode discernir milhares de cores e intensidades de cores em
detrimento de poucas dezenas de níveis de cinza. Assim a cor é um poderoso descritor que
freqüentemente simplifica a identificação e extração de um objeto, ou característica(s) de um
objeto, numa cena (GONZALEZ e WOODS, 1992, p. 221-225). Por esse motivo neste
trabalho escolheu-se o processamento de imagens coloridas em detrimento ao processamento
de imagens em escala de cinza. As imagens coloridas processadas são denominadas imagens
em cores reais por serem captadas através de um sensor de cores reais, a câmera CCD.
3.3 MODELOS DE CORES
O propósito de um modelo de cor é facilitar a especificação das cores que compõem
uma imagem por meio de um padrão. De forma geral um modelo de cor corresponde a um
subespaço do sistema Cartesiano tridimensional onde cada cor é representada por um ponto.
Os modelos de cores mais usados em processamento de imagens são o modelo RGB
(red, green e blue), direcionado para equipamentos e dispositivos que funcionam como
sensores visuais (câmeras CCD, por exemplo), e o modelo HSL (hue, saturation e lightness),
aplicado na manipulação de cores. Uma descrição detalhada desses modelos de cores
encontra-se em AIRES(2001, p. 13-15).
24
3.4 ESCOLHA DO MODELO DE COR
Neste trabalho o processamento das imagens captadas é realizado com base na análise
das cores que a compõem. Por esse motivo a escolha do modelo de cor a ser utilizado é de
extrema importância.
O modelo HSL possui as características de cromatância e brilho desacopladas ao
máximo através das componentes HS e da componente L da cor (GONZALEZ e WOODS,
1992, p. 229-237). Deste modo variações de iluminação interferem diretamente na
componente de brilho L produzindo pequenas alterações nas componentes HS. O problema
deste modelo é que para as cores branca e preta não há valores definidos para o parâmetro H.
Como a câmera CCD utilizada nos experimentos capta e fornece imagens no padrão
RGB, isto é, as imagens são naturalmente expressas em termos dos três planos de cores que
compõem este modelo, e as cores branca e preta são predominantes na imagem escolheu-se o
modelo RGB para representar as cores.
O modelo RGB utiliza seus três parâmetros para definir a cor e a quantidade de luz
presente na imagem. Ao utilizar-se este modelo no processamento de imagens deve-se então
usar as três componentes de cor, caso deste trabalho, ou definir-se uma relação entre elas.
3.5 ESCOLHA DAS CORES
A escolha das cores para os rótulos deve ser realizada com a finalidade de assegurar
que no processamento da imagem, os rótulos, sejam facilmente destacados da imagem a partir
da sua cor. Ou seja, deve-se escolher as cores dos rótulos de forma que, nas imagens captadas,
os pixels pertencentes aos rótulos possuam padrões de cores que satisfaçam os seguintes
critérios:
a) ao serem agrupados em suas respectivas classes de padrões (classes de cores)
apresentem mínima dispersão em torno do centro da classe;
b) componham agrupamentos cujas distâncias Euclidianas entre as fronteiras são
suficientemente grandes para garantir que as classes de cores não se intersectem.
Como padrões de cores referentes a ruídos na imagem não pertencem a nenhuma
classe de cor, a dispersão mínima permite detectar ruídos muito próximos a quaisquer das
classes de cores. Por sua vez, a inexistência de intersecção entre as classes evita que um pixel
25
cujo padrão de cor pertence à determinada classe seja associado como pertencente a uma
outra classe.
As cores dos rótulos foram escolhidas a partir do subespaço Cartesiano referente ao
modelo RGB: cubo de cores (fig. 3.1).
As cores representadas pelos vértices do cubo possuem máxima distância Euclidiana
entre si, possibilitando que os rótulos confeccionados com essas cores apresentem na imagem
pixels cujos padrões de cores quando agrupados em classes proporcionem agrupamentos sem
intersecção. A tabela 3.1 mostra as cores utilizadas neste trabalho e o local onde estas são
encontradas.
TABELA 3.1 – CORES E LOCALIZAÇÃO
COR LOCAL
Amarelo braço robótico
Preto espaço de trabalho
Azul rótulo triangular – triângulo
Verde Rótulo triangular – faixa
Branco rótulo retangular
ESCALA DE CINZA
B
MAGENTA
G
R
VERMELHO (0,1,0)
VERDE (0,1,0)
BRANCO
PRETO
CIANO
AZUL (0,0,1)
AMARELO
FIGURA 3.1 – CUBO DE CORES RGB
26
3.6 CALIBRAÇÃO DAS CORES
Mudanças na luminosidade sujeitam variações correspondentes nos centros das
classes de cores. Por isso, previamente ao controle, é necessário calibrar o sistema de visão
computacional determinando os centros das classes de cores para as condições de iluminação
do momento.
O método de calibração de cores adotado neste trabalho consiste na aplicação do
algoritmo k-means (COSTA, 1999, p. 36-40) ao conjunto de pixels de uma imagem capturada
do manipulador rotulado no seu espaço de trabalho, denominada imagem modelo.
A partir da imagem modelo, colhem-se amostras de cada uma das cores presentes
(tabela 3.1), clicando-se com o mouse sobre um pixel qualquer referente a cada cor que se
deseja calibrar. Escolhido o pixel calcula-se então a média para as componentes R, G e B do
mesmo e dos seus pixels vizinhos 8-conectados (GONZALEZ; WOODS, 1993, p. 41-42). A
média obtida é validada como a estimativa inicial do centro da classe de cor. A figura 3.2
ilustra o pixel P e seus pixels vizinhos 8-conectados.
O algoritmo k-means é executado para um número K de classes igual a 16,
equivalente ao dobro de classes (oito) que se necessita para a calibração das cores neste
trabalho:
a) uma classe para a cor de fundo (preto);
b) uma classe para a cor do manipulador (amarelo);
c) três classes para as cores dos rótulos (azul, verde e branco);
FIGURA 3.2 – VIZINHANÇA 8-CONECTADA
1
2 3
4
P 5
7 8 6
27
d) três classes para classificar os pixels espúrios, isto é, pixels pertencentes a uma
determinada classe de cor que são classificados como pertencentes a uma outra
classe.
Os centros das oito classes de cores são escolhidos entre os 16 centros fornecidos
pelo k-means da seguinte forma:
a) os centros das cinco classes de cores presentes na imagem modelo correspondem
aos centros fornecidos pelo k-means que possuem menor distância Euclidiana em
relação às respectivas amostras;
b) os três centros referentes às classes de pixels espúrios correspondem aos centros
fornecidos pelo k-means que possuem menor distância Euclidiana em relação à
amostra da cor amarelo, pois esta é a classe de cor que possui maior número de
pixels espúrios quando se classifica a imagem somente com os cinco centros de
cores fornecidos pelas amostras.
3.7 ANALISANDO O PIXEL A PARTIR DA COR
Para determinar a qual classe de cor um pixel da imagem pertence aplica-se a este o
classificador de distância mínima (GONZALEZ; WOODS, 1993, p. 571-574) onde as classes
de padrões correspondem às classes de cores escolhidas e os protótipos dessas classes são os
centros das classes de cores obtidos na etapa de calibração.
Para determinar se um pixel é interno a um rótulo ou pertencente à borda do mesmo
aplica-se o classificador ao pixel analisado e aos seus vizinhos 8-conectados, se o
classificador indicar que todos os pixels pertencem a uma mesma classe de cor o pixel
analisado é interno ao rótulo. Caso contrário, o pixel analisado é considerado como
pertencente à borda do rótulo.
3.8 RESULTADOS
Para um total de dez experimentos o algoritmo de calibração de cores converge para
uma solução numa média de 36 iterações, executadas num tempo médio de sete minutos.
O algoritmo de calibração de cores possui como critério de parada a estabilização do
erro quadrático total (ver COSTA, 1999, p. 40). Esta estabilidade é alcançada quando a
28
variação entre os dois últimos erros quadráticos totais calculados é menor que 3% (três por
cento).
Inicialmente a garra do manipulador robótico é deslocada para uma configuração fixa
denominada pose de calibração onde todos os rótulos fixados no manipulador (triângulo, faixa
e retângulo) encontram-se completamente visíveis na imagem.
A figura 3.3 abaixo apresenta o manipulador robótico na referida pose de calibração
e iluminado somente com a luz ambiente do laboratório, ou seja, iluminado pela luz natural e
pela luz proveniente das lâmpadas fluorescentes.
A figura 3.4 (página seguinte) mostra que a execução do algoritmo de calibração
para essas condições de iluminação produz uma classificação incorreta das cores presentes na
cena captada.
FIGURA 3.3 – POSE DE CALIBRAÇÃO COM ILUMINAÇÃO AMBIENTE
29
A figura anterior mostra que alguns pixels do triângulo (de cor azul) e da faixa (de
cor verde) são classificados como pixels pertencentes à cor branca, que partes do corpo do
manipulador (de cor amarela) são classificadas de forma incorreta como pertencentes às cores
branca e verde, e que o rótulo retangular (de cor branca) apresenta pixels erroneamente
classificados como pertencentes à cor verde.
A correta classificação das cores presentes na imagem foi obtida aplicando-se ao
manipulador robótico no seu espaço de trabalho uma iluminação quente proveniente de um
conjunto de refletores com lâmpadas de halogênio de 150W cada uma (AIRES, 2001, p. 6-8).
A iluminação quente permite uma distribuição mais uniforme da luz sobre a área do
experimento intensificando o brilho das cores nos objetos em cena (fig. 3.5), e possibilitando
uma separação mais precisa entre as cores na imagem.
FIGURA 3.4 – ILUMINAÇÃO AMBIENTE : RESULTADO DA CALIBRAÇÃO
30
A tabela abaixo apresenta os valores para os parâmetros RGB dos centros das
amostras de cores e dos centros fornecidos pelo algoritmo de calibração. Estes últimos valores
foram usados na classificação da imagem mostrada na figura acima (ver fig 3.6).
TABELA 3.2 – EXECUÇÃO DO ALGORITMO PARA CALIBRAÇÃO DAS CORES
AMOSTRA CALIBRAÇÃO
CLASSE DE COR
R G B R G B
Amarelo 178 150 52 175 150 43
Preto 65 64 56 59 65 68
Azul 87 124 234 79 125 231
Verde 139 242 150 132 232 144
Branco 177 184 199 185 186 189
Espúrios 1 234 105 228 243 70 113
Espúrios 2 15 90 207 207 115 154
Espúrios 3 3 35 52 169 153 140
FIGURA 3.5 – POSE DE CALIBRAÇÃO COM ILUMINAÇÃO QUENTE
31
A calibração de cores utilizando iluminação quente permite segmentar corretamente
o rótulo retangular, o triângulo e a faixa na imagem através das cores. Isto é, os pixels
pertencentes a esses rótulos na imagem são classificados de acordo com a classe de cor
previamente associada a cada rótulo sem a presença de pixels pertencentes a uma outra classe
de cor.
Alguns pixels do corpo do manipulador são classificados incorretamente como
pertencentes à cor verde. Essa situação demonstrada por DIAS (2002, p. 44-54) não apresenta
prejuízos ao funcionamento do sistema de visão e conseqüentemente do controlador, pois
ocorre no corpo do manipulador e não nos rótulos fixados no mesmo usados na calibração,
cálculo da pose e controle cinemático.
FIGURA 3.6 – ILUMINAÇÃO QUENTE: RESULTADO DA CALIBRAÇÃO
32
CAPÍTULO 4
CALIBRAÇÃO DA CÂMERA
33
4.1 INTRODUÇÃO
A utilização de um sistema de visão computacional que trabalha no espaço
Cartesiano tridimensional requer como etapa preliminar a calibração da câmera. Essa
calibração consiste em determinar os valores de um conjunto de grandezas relacionadas com a
construção e constituição física da câmera, parâmetros intrínsecos, e com a posição e
orientação da câmera no espaço Cartesiano em relação a um referencial global, parâmetros
extrínsecos.
Desta forma a calibração da câmera é parte essencial no processamento métrico da
imagem e a sua não execução inutiliza a informação visual fornecida pela câmera para o
sistema de servo visão (capítulos 5 e 6).
A execução da etapa de calibração das cores (capítulo 3) permitiu a correta execução
do método de calibração extrínseca ao possibilitar a segmentação na imagem do rótulo
retangular de cor branco cujos vértices são utilizados nos cálculos.
4.2 MODELO DE CÂMERA
Para a aplicação das rotinas de calibração da câmera é importante compreender o
processo de formação da imagem, isto é, a relação entre o mundo real e a imagem capturada
pela câmera. Neste trabalho é utilizado o modelo de câmera pontual modificado (pin-hole
camera model) que representa a projeção perspectiva de um ponto tridimensional no
referencial da câmera {C}, no plano da imagem {I} (GASPAR, 1994, p. 17-32).
O modelo pontual modificado apresenta o plano da imagem situado à frente do
sensor CCD na posição correspondente ao centro da lente (L) e o centro de projeção (O)
colocado na origem do sistema de coordenadas da câmera (fig. 4.1).
O símbolo λ representa a distância entre o plano da imagem e o centro de projeção.
Esta distância é conhecida como distância focal, devido à concretização do modelo pontual
ser uma câmera equipada com uma lente. Neste trabalho a distância focal será utilizada na
forma de suas componentes λ
x
e λ
y
associadas às coordenadas do plano da imagem (VIANA,
WALDMANN e CAETANO, 1999).
34
A projeção p
i
do ponto P
C
no plano da imagem é determinada pela intersecção do
raio de luz proveniente daquele ponto, em direção ao centro de projeção, com o plano da
imagem. Os eixos coordenados x
p
e y
p
compõem o referencial da imagem (em pixels) e c
corresponde ao centro ótico, ponto no qual o eixo ótico (Z
C
) intercepta o plano da imagem.
Este modelo de câmera afasta-se da realidade física, mas adapta-se melhor aos atuais
dispositivos de aquisição e apresentação de imagens, além de simplificar as expressões
matemáticas que o utilizam.
Para tornar o modelo mais robusto, e dessa forma menos distante da realidade,
corrigem-se as distorções que as lentes provocam na imagem. A correção mais comum
corresponde à distorção radial que como denominada produz um deslocamento radial do pixel
no plano da imagem. Outro tipo de distorção corrigida é a tangencial produzida pela não
colinearidade dos centros das lentes que formam a objetiva (BROWN, 1971).
4.3 PARÂMETROS INTRÍNSECOS
Mais precisamente os parâmetros intrínsecos são os parâmetros necessários para
referenciar em coordenadas da imagem qualquer ponto 3D explicitado em coordenadas do
referencial da câmera.
λ
y
p
x
p
p
i
(x,y)
CENTRO ÓTICO (c)
L
O
CENTRO
DE
PROJEÇÃO
y
i
x
i
z
i
,Z
C
Y
C
X
C
PLANO DA IMAGEM
Pc (X,Y,Z)
FIGURA 4.1 - MODELO PONTUAL MODIFICADO
35
Os parâmetros intrínsecos calibrados neste trabalho são os seguintes:
a) o foco na direção x
p
: λ
x
;
b) o foco na direção y
p
: λ
y
;
c) as coordenadas no referencial da imagem do centro ótico: x
pc
,y
pc
;
d) a inclinação entre os eixos x
i
e y
i
do referencial da câmera: α
xy
;
e) os coeficientes de distorção radial das lentes: k
r1
, k
r2
e k
r3
;
f) os coeficientes de distorção tangencial das lentes: k
t1
e k
t2
.
4.3.1 Calibração dos Parâmetros Intrínsecos
Para a calibração dos parâmetros intrínsecos da câmera aplicou-se o método proposto
por HEIKKILÄ e SILVÉN (1997) onde a calibração se processa em duas etapas:
a) estimação dos parâmetros lineares: determinação dos parâmetros lineares da
câmera (itens a a d da seção anterior) na forma de uma solução única aplicando o
método da transformação linear direta (DLT) às equações de projeção fornecidas
por um conjunto de pontos extraídos da imagem cujas relações cartesianas 3D são
previamente conhecidas;
b) estimação dos parâmetros não-lineares: determinação dos parâmetros não-lineares
da câmera (itens e e f da seção anterior) através da minimização de uma função
objetivo que relaciona as coordenadas na imagem dos pixels distorcidos e não-
distorcidos.
4.4 PARÂMETROS EXTRÍNSECOS
A calibração dos parâmetros extrínsecos é definida através da determinação da
matriz de transformação (CRAIG, 1989, p.19-67) de coordenadas do referencial da base para
o referencial da câmera T
C
B
. A figura 4.2 apresenta através de uma imagem real a disposição
espacial dos referenciais da base do robô e da câmera.
36
Neste trabalho utilizou-se o método de calibração extrínseca com solução única
desenvolvido por KAMATA et al. (1992). Esse método demonstra que utilizando-se as
propriedades da matriz
T
C
B
são necessários apenas quatro pontos de referência para realizar-
se a calibração.
4.4.1 Calibração dos Parâmetros Extrínsecos
A matriz de calibração
T
C
B
é determinada usando-se quatro pontos de referência
coplanares no espaço 3D cujas coordenadas em relação ao referencial da base (P
0
,P
1
,P
2
,P
3
) e
as projeções no plano da imagem (p
0
,p
1
,p
2
,p
3
) são previamente conhecidas. Para i = 0,1,2,3:
P
i
(X
i
,Y
i
,Z
i
) (4.1)
p
i
(x
i
,y
i
) (4.2)
FIGURA 4.2 – CALIBRAÇÃO EXTRÍNSECA: REFERENCIAIS
{C}
{B}
X
Y
Z
Z
Y
X
37
Dois referenciais intermediários, {α} e {β}, são introduzidos entre o referencial da
base {B} e o referencial da câmera {C}. Esses referenciais reduzem para quatro a quantidade
de pontos de referência necessários para a calibração extrínseca (fig. 4.3).
Deste modo, a matriz T
C
B
pode ser escrita como:
T
C
B
= TTT
α
B
β
α
C
β
(4.3)
onde
T
α
B
é a matriz de transformação entre o referencial da base {B} e o referencial {α}, T
β
α
é
a matriz de transformação entre o referencial {α} e o referencial {β}, e T
C
β
é a matriz de
transformação entre o referencial {β} e o referencial da câmera {C}.
O referencial {α} é orientado e posicionado de forma que os pontos de referência
quando representados nesse referencial situem-se na denominada posição padrão, na qual P
0
encontra-se na origem do referencial, P
1
situa-se sobre o eixo coordenado X positivo e P
2
encontra-se no primeiro e/ou segundo quadrantes do plano XY. Sendo os pontos coplanares,
P
3
também pertence ao plano XY de {α}.
O referencial {β} corresponde ao referencial de uma câmera imaginária situada na
denominada posição ideal. Nessa posição a origem de {β} é a mesma do referencial {C} da
FIGURA 4.3 – REFERENCIAIS INTERMEDIÁRIOS
Z
Y
X
Y
X
Z
Y
Z
X
Z
Y
X
{α}
{β}
{C}
{B}
P
3
P
2
P
1
P
0
38
câmera real e a orientação satisfaz os seguintes critérios para as projeções dos pontos de
referência no plano da imagem:
a) a imagem de P
0
situa-se na origem do referencial do plano da imagem;
b) a imagem de P
1
situa-se sobre o eixo coordenado x
I
positivo.
As matrizes T
α
B
e T
C
β
são completamente determinadas pelos pontos de referência:
T
α
B
através das coordenadas 3D desses pontos e T
C
β
através das coordenadas das projeções
desses pontos na imagem.
A determinação da matriz
T
β
α
corresponde à solução de um problema simples de
calibração onde os pontos de referência encontram-se na posição padrão e são visualizados
por uma câmera na posição ideal.
As definições para os referenciais {α} e {β} permitem que vários dos coeficientes das
matrizes T
α
B
, T
β
α
e T
C
β
sejam setados para zero garantindo a unicidade de solução do
método.
Para a obtenção da pose (capítulo 5, seção 5.4) usa-se a transformação inversa ( T
B
C
)
da matriz de calibração extrínseca
T
C
B
. Expressando esta última como:
=
1000
PRRR
PRRR
PRRR
34333231
24232221
14131211
C
B
T (4.4)
calcula-se T
B
C
da seguinte forma:
()
()
()
++
++
+
+
=
1000
PRPRPR-RRR
PRPRPR-RRR
PRPRPR-RRR
343324231413332313
343224221412322212
343124211411312111
B
C
T (4.5)
39
4.4.2 Obtenção na Imagem dos Pontos de Referência
Neste trabalho os pontos de referência 3D (P
0
, P
1
, P
2
, P
3
) correspondem aos vértices
do rótulo retangular. Considerando-se que as coordenadas na imagem desses pontos são
expressas por:
(x
Pi
,y
Pi
) (4.6)
onde i = 0,1,23.
E que a câmera possua rotação moderada em relação ao referencial da base {B}.
Obtêm-se as seguintes relações para as coordenadas na imagem:
x
p0
,x
p2
< x
p1
,x
p3
(4.7)
y
p0
,y
p1
< y
p2
,y
p3
(4.8)
A extração e identificação dos vértices do retângulo na imagem segue os seguintes
passos:
a) segmenta-se o retângulo na imagem e extrai-se sua borda;
b) calculam-se as equações das retas correspondentes aos lados do retângulo;
c) a intersecção das retas fornece os vértices;
d) aplicando-se as relações (4.7) e (4.8) aos vértices encontrados identifica-se p
0
, p
1
,
p
2
e p
3
.
Para extrair a borda do retângulo na imagem (item a) percorre-se o retângulo
segmentado pixel a pixel e aplica-se a técnica de busca da borda do rótulo descrita no capítulo
três, seção 3.7.
A extração dos lados do retângulo a partir da borda segmentada (item b) é obtida
aplicando-se sobre os pixels da borda o método clássico da transformada de Hough (HOUGH,
1962) para segmentação de retas numa imagem. A aplicação do método fornece as equações
das retas que compõem esses lados (NOGUEIRA, MEDEIROS e ALSINA, 2004).
40
4.5 EQUAÇÕES DE PROJEÇÃO
Dado o ponto P
B
(X
B
,Y
B
,Z
B
) no referencial da base aplica-se a matriz de parâmetros
extrínsecos a este obtendo-se o ponto P
C
(X,Y,Z) no referencial da câmera.
Normalizando-se as coordenadas de P
C
, tem-se que:
p
n
=
Z
Y
,
Z
X
=
()
nn
y,x (4.9)
Considerando-se que
r
2
=
2
n
x
+
2
n
y
(4.10)
a inclusão das distorções das lentes nas coordenadas de p
n
produzem coordenadas
normalizadas distorcidas (p
d
) expressas por
p
d
= (1+k
r1
r
2
+ k
r2
r
4
+ k
r3
r
6
)p
n
+
KT = (x
d
,y
d
) (4.11)
onde KT corresponde aos efeitos da distorção tangencial calculado do seguinte modo:
KT = (2k
t1
x
n
y
n
+k
t2
(r
2
+2x
n
), k
t1
(r
2
+2y
n
)+2k
t2
x
n
y
n
) (4.12)
As coordenadas finais na imagem para a projeção de P
C
são obtidas da seguinte
forma:
x
P
= λ
x
(x
d
+y
D
cos(α
xy
))+x
pc
(4.13)
y
P
= λ
y
x
d
+y
pc
(4.14)
41
4.5.1 Mapeamento Inverso
O mapeamento inverso, também denominado normalização, consiste em obter-se as
coordenadas normalizadas p
n
correspondente às coordenadas da imagem (x
p
,y
p
).
Devido a não-linearidade das expressões relacionadas às distorções, (4.11) e (4.12),
não há uma expressão algébrica geral que permita a realização do mapeamento inverso. A
solução é aplicar métodos de busca não-linear à equação (4.11) onde a estimativa inicial para
p
n
seja o ponto p
d
obtido analiticamente a partir de (x
p
,y
p
) tal como demonstrado por
HEIKKILÄ e SILVÉN (1997, p. 4-5).
4.6 RESULTADOS
4.6.1 Calibração Intrínseca
As rotinas computacionais que implementam o método de calibração dos parâmetros
intrínsecos da câmera CCD foram desenvolvidas em linguagem MATLAB
®
e obtidas no
endereço eletrônico http://www.vision.caltech.edu/bouguetj/calib_doc/#system. Estas rotinas
executam o método de calibração intrínseca proposto por HEIKKILÄ e SILVÉN (1997),
referido anteriormente na subseção 4.3.1. A utilização do ambiente de programação
MATLAB
®
para a elaboração das rotinas de calibração intrínseca deve-se a grande facilidade
de programação que este ambiente apresenta e a sua alta aceitação nos círculos da pesquisa
acadêmica.
O rótulo padrão para a calibração dos parâmetros intrínsecos também é fornecido
junto com as rotinas computacionais. Este rótulo consiste numa grade retangular, com
dimensões 210 x 270 mm, composta por pequenos quadrados, de dimensões 30 x 30 mm,
impressos nas cores branco e preto semelhante a um tabuleiro de xadrez como pode ser
observado na figura 4.4 (próxima página).
42
Várias imagens do padrão são captadas para diferentes configurações do mesmo.
Para cada imagem adquirida as rotinas computacionais extraem e armazenam
automaticamente os vértices dos quadrados para posterior utilização pelo método de
calibração (ver fig 4.4).
A tabela 4.1 apresenta os valores finais para os parâmetros intrínsecos fornecidos
pela execução do método de calibração para um número total de 20 imagens do padrão:
TABELA 4.1 – PARÂMETROS INTRÍNSECOS (continua)
PARÂMETRO DESCRIÇÃO VALOR
λ
x
foco na direção x
P
852 pixels
λ
y
foco na direção y
P
853 pixels
x
pc
(pixel) coordenada x do centro ótico 335
y
pc
(pixel) coordenada y do centro ótico 181
α
xy
(graus) ângulo entre x
0i
e y
i
89.9449
FIGURA 4.4 – IMAGEM USADA NA CALIBRAÇÃO INTRÍNSECA
43
TABELA 4.1 – PARÂMETROS INTRÍNSECOS (conclusão)
PARÂMETRO DESCRIÇÃO VALOR
k
r1
coeficiente de distorção radial -0.28271
k
r2
coeficiente de distorção radial 0.12478
k
r3
coeficiente de distorção radial 0
k
t1
coeficiente de distorção tangencial -0.00163
k
t2
coeficiente de distorção tangencial 0.00033
A figura 4.5 apresenta a distribuição na imagem dos efeitos de deslocamento
produzidos sobre os pixels pelas distorções radial e tangencial (gráfico gerado
automaticamente pelas rotinas de calibração). Para cada região da imagem o número
representa a quantidade de pixels deslocados e a seta indica a direção e o sentido desse
deslocamento para os pixels projetados sem distorção.
FIGURA 4.5 – DISTORÇÕES DAS LENTES
44
Na figura acima a marca X representa o centro da imagem enquanto o círculo indica
o centro ótico. As maiores distorções encontram-se próximas às bordas da imagem captada,
por esse motivo em todos os experimentos deste trabalho a câmera e o manipulador robótico
foram dispostos de forma que este estivesse o mais centralizado possível na imagem.
4.6.2 Calibração Extrínseca
A figura 4.6 mostra a segmentação do rótulo retangular na imagem. Os pixels do
retângulo têm seus valores RGB setados para o padrão da cor branca (255,255,255).
A figura 4.7 apresenta em detalhe a borda do retângulo destacada do rótulo
segmentado. Na figura os pixels da borda segmentada têm seus valores RGB setados para o
padrão da cor branca.
FIGURA 4.6 – SEGMENTAÇÃO DO RETÂNGULO
45
A figura 4.8 mostra em detalhe os resultados da aplicação da Transformada de
Hough: detecção dos lados do retângulo (amarelo) e dos vértices (marcados com um X
vermelho).
FIGURA 4.8 –SEGMENTAÇÃO DOS LADOS E DOS VÉRTICES
FIGURA 4.7 – DETALHE DA SEGMENTAÇÃO DA BORDA
46
Abaixo a matriz de calibração extrínseca obtida a partir das imagens 4.2 e 4.6 a 4.8:
T
C
B
=
1000
501.6110.1903-0.0012-0.9813-
121.0560.9801-0.0084-0.1904
2.2544-0.0376-10.0005
(4.15)
A transformação inversa de (4.15), usada pelo controlador, é dada por:
T
B
C
=
1000
214.14980.1903-0.9801-0.0376-
3.86380.0012-0.0084-1
469.17510.9813-0.19040.0005
(4.16)
A reprojeção na imagem do ponto 3D referente ao centro do rótulo retangular
utilizando-se a matriz de parâmetros extrínsecos possibilita uma análise da precisão da
calibração desses parâmetros. As coordenadas em pixels do ponto reprojetado são comparadas
com as coordenadas também em pixels desse mesmo ponto recuperado diretamente na
imagem. Mais precisamente o erro de reprojeção corresponde à distância Euclidiana entre
esses dois pixels.
Neste trabalho considerou-se que as coordenadas na imagem do ponto central do
retângulo correspondem à média das coordenadas encontradas para os vértices e que as
coordenadas Cartesianas tridimensionais (
B
X
cr
,
B
Y
cr
,
B
Z
cr
) do centro do retângulo no referencial
da base {B} são, em milímetros:
(0,0,-19.95) (4.17)
A figura 4.9 mostra em detalhe o ponto central do rótulo retangular extraído na
imagem a partir dos vértices do retângulo (X vermelho). A tabela 4.2 apresenta os valores dos
erros de reprojeção obtidos para dez experimentos de calibração extrínseca.
47
TABELA 4.2 – ERROS DE REPROJEÇÃO
PONTO CENTRAL
NA IMAGEM
(PIXELS)
PONTO CENTRAL
REPROJETADO
(PIXELS)
EXPERIMENTO
x
P
y
P
x
P
y
P
ERRO
(PIXELS)
1 323.75 414.25 323.2343 416.717 0.5157
2 319.5 414.75 320.0873 415.8693 1.2587
3 319.5 415.75 318.915 416.7842 1.1882
4 323 415.25 323.5737 415.9809 0.9291
5 322.5 417 322.4618 417.6824 0.6835
6 323.25 416.5 323.1683 416.0726 0.4351
7 322.25 414.75 322.7792 414.3786 0.6465
8 323.25 414.75 323.7814 414.3812 0.6468
9 324 415.5 325.041 415.6482 1.0466
10 323.5 446.5 323.5145 447.212 0.5906
Média - - - - 0.8
A média do erro de projeção para os experimentos da tabela 4.2 é de 0.8 pixel. Esse
valor garante que o método de calibração dos parâmetros extrínsecos possui ótima precisão na
sua execução.
FIGURA 4.9 – PONTO CENTRAL DO RETÂNGULO NA IMAGEM
48
CAPÍTULO 5
EXTRAÇÃO DOS VÉRTICES E CÁLCULO DA POSE
49
5.1 INTRODUÇÃO
O objetivo deste capítulo é extrair da imagem captada do manipulador robótico os
vértices do rótulo triangular fixado na garra e a partir da posição desses vértices no plano da
imagem determinar a pose da garra.
Para a extração dos vértices aplica-se à imagem do triângulo um conjunto de regras
heurísticas que se fundamentam nas relações geométricas possíveis para um triângulo. O
algoritmo computacional de Bresenham é usado em parte dessa heurística para encontrar um
dos lados do triângulo. A extração dos vértices depende somente da calibração de cores
(capítulo 3).
O cálculo da pose da garra corresponde à solução de um sistema de equações não-
lineares obtido através da relação entre as distâncias Euclidianas dos vértices 3D e as
coordenadas das projeções desses vértices na imagem. Para a solução do sistema não-linear
aplica-se o método de Newton. A determinação da pose não depende apenas da calibração das
cores, mas também da calibração dos parâmetros intrínsecos e extrínsecos da câmera (capítulo
4).
No contexto desse trabalho este capítulo apresenta o que realmente há de novo no
âmbito científico da proposta inicial para o controle cinemático de um manipulador robótico
utilizando realimentação visual: as regras heurísticas para extração e identificação dos vértices
e os procedimentos de cálculo da pose (SOARES, ALSINA e MEDEIROS, 2001).
5.2 FUNDAMENTAÇÃO TEÓRICA
5.2.1 Equação da reta bissetriz
A figura 5.1 apresenta duas retas r e s concorrentes no ponto I, que possuem
respectivamente as seguintes equações gerais:
a
1
x + b
1
y + c
1
= 0 (5.1)
a
2
x + b
2
y + c
2
= 0 (5.2)
50
Para um par de retas concorrentes existem duas retas bissetrizes, t
1
e t
2
. As
respectivas equações para essas retas bissetrizes são dadas por:
2
2
2
2
222
2
1
2
1
111
ba
cybxa
ba
cybxa
+
++
=
+
++
(5.3)
2
2
2
2
222
2
1
2
1
111
ba
cybxa
ba
cybxa
+
++
=
+
++
(5.4)
Para se escolher uma dentre as duas possíveis retas bissetrizes t
1
e t
2
utiliza-se um
ponto de teste p
t
(x
t
,y
t
) que seleciona a reta bissetriz que lhe é mais próxima. A seleção é
baseada no estudo dos sinais das equações das retas r e s no ponto p
t
.
A reta r divide o plano xy em dois semi-planos nos quais o trinômio:
E
1
(x,y) = a
1
x + b
1
y + c
1
(5.5)
assume valores numéricos de sinais contrários, excluídos os pontos de r (elementos em
vermelho na fig. 5.1).
Analogamente, a reta s divide o plano xy em dois semi-planos nos quais o trinômio:
FIGURA 5.1 – RETAS CONCORRENTES NO PLANO
I
O
x
y
+
+
t
1
t
2
s
r
-
-
-
+
-
+
51
E
2
(x,y) = a
2
x + b
2
y + c
2
(5.6)
assume valores numéricos de sinais contrários, excluídos os pontos de s (elementos em azul
na fig. 5.1).
As retas r e s determinam dois ângulos opostos pelo vértice onde E
1
e E
2
assumem
valores numéricos de mesmo sinal e determinam dois outros ângulos opostos pelo vértice
onde E
1
e E
2
assumem sinais contrários.
Se o ponto p
t
encontrar-se próximo à reta t
1
, tem-se:
E
1
(x
t
,y
t
)·E
2
(x
t
,y
t
) < 0 (5.7)
Se o ponto p
t
encontrar-se próximo à reta t
2
, tem-se:
E
1
(x
t
,y
t
)·E
2
(x
t
,y
t
) > 0 (5.8)
5.2.2 O Algoritmo de Bresenham
O algoritmo de BRESENHAM(1965, p. 25-30) é aplicado neste trabalho para a
construção de linhas na imagem. O algoritmo utiliza os pixels extremos do segmento de reta
que deseja-se construir na imagem para decidir quais os pixels intermediários que melhor
representam esse segmento na imagem.
Além de possuir uma implementação simples, o algoritmo de Bresenham é muito
rápido para a construção de linhas retas na imagem, não realiza operações em ponto flutuante,
o que aumentaria o esforço computacional para a execução do algoritmo, e permite apenas
adições, subtrações, deslocamentos unitários e comparações com zero.
5.2.2.1 Implementação do algoritmo para segmentos com inclinação 0 m 1
A(x
a
,y
a
) e B(x
b
,y
b
) são as coordenadas para os pixels das extremidades de um
segmento de reta na imagem onde A é considerado o pixel inicial.
Para desenhar o segmento de reta na imagem simplesmente “caminha-se”, a partir do
pixel A, um pixel por vez no sentido da direita em x, e determinar-se o valor da coordenada y
que melhor representa o segmento de reta para cada valor de x (fig. 5.2).
52
A escolha na imagem do próximo pixel para o k-ésimo pixel:
(x(k),y(k)) (5.9)
resume-se à decisão entre os pixels de coordenadas:
(x(k+1),y(k)) (5.10)
(x(k+1),y(k+1)) (5.11)
As coordenadas (5.10) e (5.11) representam respectivamente um passo simples na
imagem à direita em x, e um passo simples na imagem à direita x e acima em y a partir de
(5.9).
O algoritmo de Bresenham para um segmento de reta restrito as condições descritas
nesta subseção desenvolve-se da seguinte forma:
a) definem-se os pixels extremos do segmento de reta: A e B;
b) escolhe-se o pixel inicial: A;
c) calcula-se a variação em x: dx, onde dx = x
B
- x
A
;
d) calcula-se a variação em y: dy, onde dy = y
B
- y
A
;
y
k+1
y
x
k
PLANO
DA
IMAGEM
(AMPLIADO)
y
b
y
k
y
a
x
a
x
k+1
x
b
x
PIXEL
A
B
FIGURA 5.2 – CONSTRUÇÃO DO SEGMENTO DE RETA NA IMAGEM
53
e) faz-se x(k) = x
A
e y(k) = y
A
, onde k = 0;
f) plota-se A como pixel inicial do segmento de reta na imagem;
g) calcula-se o valor de decisão inicial (associado ao pixel A): P(0) = 2dy – dx;
h) plota-se o próximo pixel para (x(k),y(k)):
- se P 0 plota-se (x(k+1),y(k)). Faz-se x(k) = x(k+1);
- se P > 0 plota-se (x(k+1),y(k+1)). Faz-se x(k) = x(k+1) e y(k) = y(k+1).
i) incrementa-se P baseado nas escolhas realizadas em h:
- se escolheu-se (x(k+1),y(k)) para próximo pixel, incrementa-se P por 2dy;
- se escolheu-se (x(k+1),y(k+1)) para próximo pixel, incrementa-se P por 2(dy -
dx).
j) se x(k) for diferente de x
b
retorna-se para o passo h;
k) se x(k) for igual a x
b
termina-se a execução do algoritmo.
5.2.2.2 Implementação do algoritmo para segmentos com inclinação -1 m 1
A derivação do algoritmo de Bresenham para segmentos de reta com inclinação -1
m 1, para qualquer relação entre as coordenadas dos pixels A e B e para qualquer um desses
pixels tomado como pixel inicial é simples.
Como visto, para segmentos com inclinação 0 m 1 sempre incrementa-se x(k), e
se necessário, y(k) em uma unidade. Na expansão do algoritmo para segmentos com
inclinação -1 m 1, estes incrementos continuam válidos para x(k) se dx > 0, e y(k) se dy >
0. A diferença é que para os casos em que dx < 0 decrementa-se x(k), e para os casos em que
dy < 0 decrementa-se, se necessário, y(k). Assim, no passo h da subseção anterior a escolha
do próximo pixel para (x(k),y(k)) é feita entre os pixels de coordenadas (x(k ± 1),y(k)) ou
(x(k ± 1),y(k ± 1)).
Estas alterações são bastante fáceis de implementar necessitando apenas alguns
ajustes nos procedimentos descritos para o algoritmo na subseção 5.2.2.1. Em essência, para
segmentos com -1 m 1, a escolha dos pontos subseqüentes para (x(k),y(k)) fundamenta-se
nos cálculos da subseção anterior para construção de um segmento de reta pertencente ao
primeiro octante do plano XY (0 m 1).
54
5.2.2.3 Implementação do algoritmo para todas as direções
Um exame cuidadoso do algoritmo de Bresenham para segmentos de reta com
inclinação -1 m 1 revela que para cada passo x(k) na direção x escolhe-se um entre dois
valores para y(k) na direção y. Isto ocorre porque sempre há dois possíveis valores de y(k)
para cada valor de x(k) ao longo dos segmentos que possuem esta inclinação. Diz-se então que
para inclinações -1 m 1, o valor de y(k) é dependente do valor x(k).
Para um segmento de reta com inclinação m < -1 ou m > 1 tem-se a situação inversa
dos segmentos com inclinação -1 m 1: para cada passo y(k) na direção y escolhe-se um
entre dois valores para x(k) na direção x. Isto ocorre porque sempre há dois possíveis valores
de x(k) para cada valor de y(k) ao longo dos segmentos de reta com inclinação m < -1 ou m >
1. Diz-se então que para inclinações m < -1 ou m > 1, o valor de x(k) é dependente do valor
y(k).
Assim para segmentos com m < -1 ou m > 1, aplica-se o algoritmo de Bresenham
como descrito nas subseções 5.2.2.1 e 5.2.2.2, invertendo-se os parâmetros x(k), y(k), dx e dy
do seguinte modo:
x(k) y(k) (5.12)
dx dy (5.13)
Em princípio, a aplicação do algoritmo para segmentos de reta com inclinações m < -
1 ou m > 1 fundamenta-se na aplicação deste mesmo algoritmo para segmentos pertencentes
ao primeiro octante (0 m 1). Esta expansão do algoritmo para segmentos com m < -1 ou m
> 1 conclui a implementação do algoritmo de Bresenham para a construção de segmentos de
reta na imagem.
5.3 EXTRAÇÃO DOS VÉRTICES
A projeção no plano da imagem do triângulo eqüilátero que compõem o rótulo
triangular corresponde a um triângulo qualquer: eqüilátero, isósceles ou escaleno. Esta seção
apresenta o conjunto de regras heurísticas utilizadas na extração e identificação dos vértices
desse triângulo na imagem. O uso das regras heurísticas descritas a seguir é uma forma
55
eficiente de extrair em tempo real os vértices do triângulo na imagem sem a necessidade de
analisar todos os pixels da mesma.
5.3.1 Regras Heurísticas para Extração dos Vértices
a) inicialmente percorre-se a imagem em passos fixos quanto ao número de pixels
até encontrar um pixel p
int
interno ao triângulo, varredura seqüencial (DIAS, p.54-
57, 2002). O passo de varredura é escolhido o maior possível de modo que pelo
menos quatro pixels internos ao triângulo sejam analisados quando a garra do
manipulador robótico se encontrar na sua posição mais afastada da câmera,
minimizando o risco de não se detectar o triângulo;
b) a partir de p
int
, percorre-se a imagem pixel a pixel em quatro direções: para cima,
para baixo, para a direita e para a esquerda até alcançar-se as bordas do triângulo
(p
c
, p
b
, p
d
e p
e
, respectivamente): Ver figura 5.3;
c) calcula-se a média das coordenadas dos pixels de borda encontrando-se um novo
pixel interno p
int
. Aplica-se o procedimento do item b novamente obtendo-se
novos pixels de borda. Este procedimento é repetido enquanto o novo pixel
interno for diferente do anterior, ou até que um número máximo de iterações,
previamente definido, seja alcançado (fig. 5.4). As regras heurísticas restantes
serão aplicadas sobre o último pixel interno encontrado (pixel interno final, p
intf
).
p
int
p
int’
p
intf
p
int’
p
c
p
b
p
e
p
d
FIGURA 5.3 – DETERMINAÇÃO DO PIXELS DE BORDA
56
O objetivo desta etapa é armazenar todos os pixels de borda encontrados para
posterior utilização na etapa de ajuste das equações das retas (passo o);
d) na busca pelas bordas do triângulo a partir do pixel interno final, duas situações
podem ocorrer:
- caso 1: dois dos pixels de borda pertencem a um mesmo lado do triângulo e os
outros dois estão em lados isolados (fig. 5.5);
- caso 2: dois pixels de borda pertencem a um mesmo lado do triângulo, os outros
dois pertencem a um outro lado, e um terceiro lado fica sem pixel de borda (fig.
5.6).
FIGURA 5.4 – DETERMINAÇÃO DO NOVO PIXEL INTERNO
FIGURA 5.5 – DETECÇÃO DAS BORDAS: CASO 1
p
in
t
p
d
p
e
p
c
p
b
p
in
t
f
p
d
p
e
p
c
p
b
57
e) determinam-se os pixels de borda que pertencem a um mesmo lado. Isto é
realizado tomando-se os pixels dois a dois: (p
c
, p
e
), (p
c
, p
d
), (p
e
, p
b
) e (p
b
, p
d
). Os
pares de pixels são considerados como pertencentes a um mesmo lado se o pixel
médio do segmento de reta formado por eles for também um pixel da borda do
triângulo;
f) configurando-se o caso 1 do passo d é necessário determinar mais um pixel de
borda, p
a
(pixel auxiliar), num dos lados que contêm apenas um pixel. O pixel
auxiliar é encontrado varrendo-se o triângulo em busca da borda, a partir do pixel
p
intf
, no sentido diagonal oposto ao lado já detectado (fig. 5.7);
g) testa-se qual dos dois pixels isolados encontra-se no mesmo lado do triângulo que
contém p
a
. A determinação de p
a
e do par ordenado que este forma com um dos
p
c
p
in
t
f
p
d
p
e
p
b
p
a
FIGURA 5.7 – DETERMINAÇÃO DO PONTO AUXILIAR
p
in
t
f
p
d
p
e
p
c
p
b
FIGURA 5.6 – DETECÇÃO DAS BORDAS: CASO 2
58
pixels isolados, direciona a extração dos vértices do triângulo para o caso 2 do
passo d;
h) para o caso 2 do passo d utilizam-se os pares de pixels situados sobre dois lados
distintos do triângulo para determinar as equações das retas, l
1
e l
2
, que contêm
esses lados. A intersecção das retas l
1
e l
2
fornece o vértice v
1
do triângulo (fig.
5.8);
i) determina-se para cada uma das retas l
1
e l
2
, qual dentre os dois pixels detectados
sobre cada uma delas nos passos anteriores é o mais distante do vértice v
1
(p
dist’
e
p
dist’’
). Para o caso apresentado na figura 5.8 esses pixels correspondem à: p
dist’
=
p
c
e p
dist’’
= p
a
;
j) determina-se a inclinação da reta l
b
, bissetriz das retas l
1
e l
2
, e do ângulo interno
ao triângulo em v
1
. Para determinar qual das retas bissetrizes para l
1
e l
2
é a
bissetriz desejada (ver subseção 5.2.1), usa-se como ponto de teste as coordenadas
na imagem do pixel médio p
m
, correspondente ao ponto médio dos pixels p
dist’
e
p
dist’’
(fig. 5.9);
FIGURA 5.8 – DETERMINAÇÃO DO PRIMEIRO VÉRTICE
l
b
l
1
p
in
t
f
p
d
p
e
p
dist’
= p
c
p
b
l
2
v
1
p
m
p
dist’’
= p
a
59
k) determinam-se as equações de duas retas auxiliares, lb’ e lb’’, cujas inclinações
são iguais à da reta lb, e que contêm respectivamente os pixels pdist’ e pdist’’ (fig.
5.10);
l) encontram-se então os pixels p
e’
e p
e’’
, correspondentes à intersecção das retas l
b’
e
l
b’’
com os extremos da imagem, no sentido oposto ao vértice v
1
(ver fig. 5.10);
FIGURA 5.10 – DETERMINAÇÃO DAS RETAS AUXILIARES
IMAGEM
p
in
t
p
d
p
e
p
dist’
= p
c
p
dist’’
= p
a
l
2
v
1
l
b
l
b
l
b
’’
p
e’’
l
1
p
b
p
e’
p
m
FIGURA 5.9 – DETERMINAÇÃO DA EQUAÇÃO DA RETA BISSETRIZ
p
in
t
f
p
d
p
e
l
1
l
2
v
1
p
c
p
b
p
a
60
IMAGEM
p
in
t
p
e
p
dist’
= p
c
p
dist’’
= p
a
l
2
v
1
p
m
l
b
l
b
l
b
’’
p
e’’
p
o’
p
o’’
l
1
l
3
v
2
v
3
p
d
p
b
p
e’
m) aplica-se o algoritmo de Bresenham aos pares de pixels (p
dist’
,p
e’
) e (p
dist’’
,p
e’’
),
onde p
dist’
e p
dist’’
são os pixels iniciais. O algoritmo permite varrer-se o triângulo
sobre as retas l
b’
e l
b’’
determinando respectivamente dois pixels de borda p
o’
e p
o’’
no lado que contém apenas um pixel de borda (fig. 5.11).
n) as coordenadas na imagem dos pixels p
o’
e p
o’’
determinam a equação da reta l
3
que contém o lado do triângulo oposto ao vértice v
1
(ver fig. 5.11);
o) calcula-se as distâncias de cada pixel de borda armazenado no passo c às retas l
1
,
l
2
e l
3
. Cada pixel analisado é associado à reta da qual se encontra mais próximo,
produzindo três conjuntos de pixels que descrevem os lados do triângulo. Aplica-
se o método numérico dos mínimos quadrados para o ajuste de cada conjunto de
pixels numa única reta (BARROSO et al., 1987, p. 323-333). Este procedimento
garante uma definição mais precisa das equações das retas que contêm os lados do
triângulo;
p) a partir das novas equações das retas recalcula-se o vértice v
1
(ver fig. 5.11);
q) determina-se o vértice v
2
do triângulo, contido na intersecção das retas l
1
e l
3
(ver
fig. 5.11);
r) determina-se o vértice v
3
do triângulo, contido na intersecção das retas l
2
e l
3
(ver
fig. 5.11).
FIGURA 5.11 – DETERMINAÇÃO DO SEGUNDO E TERCEIRO VÉRTICES
61
5.3.2 Casos Especiais
Podem ocorrer dois casos especiais na aplicação das regras heurísticas para extração
dos vértices do triângulo na imagem:
a) na busca dos pixels de borda para o pixel interno final (p
intf
) pode encontrar-se um
vértice (fig. 5.12). A detecção desse vértice é confirmada no passo e quando dois
dos pares ordenados forem pertencentes a lados distintos do triângulo, e
possuírem em comum um mesmo ponto de borda. Este ponto comum corresponde
ao vértice v
1
;
b) ao buscar-se p
a
pode encontrar-se um vértice (fig. 5.13). A detecção desse vértice
é confirmada no passo g quando se identifica que os dois pontos isolados nos
lados do triângulo formam pares ordenados com o ponto p
a
: p
a
= v
1
.
p
c
= v
1
p
intf
p
d
p
e
p
b
FIGURA 5.12 – ILUSTRAÇÃO DO PRIMEIRO CASO ESPECIAL
p
c
p
int
f
p
d
p
e
p
b
p
a
= v
1
FIGURA 5.13 – ILUSTRA
Ç
ÃO DO SEGUNDO CASO ESPECIAL
62
Observar-se facilmente que ambos os casos especiais constituem o caso 2 do passo d,
onde obtêm-se dois pares de pontos que situam-se em lados distintos do triângulo. Pode-se
então aplicar normalmente as regras heurísticas da seção anterior para extrair os vértices do
triângulo na imagem.
Para ambos os casos especiais não é necessário realizar o primeiro cálculo do vértice
v
1
a partir da intersecção das retas l
1
e l
2
. Para o segundo caso não é necessário aplicar as
regras para determinação do terceiro lado do triângulo. A reta l
3
é determinada pelos pixels de
borda que não formam lado com o pixel auxiliar.
5.3.3 As Regras Heurísticas: Identificação dos Vértices
Os vértices obtidos no plano da imagem correspondem aos vértices reais do
triângulo, por isso, extraídos os vértices na imagem, é necessário determinar a que lados do
triângulo real eles pertencem, identificando-os conforme a sua etiquetação: v
a
, v
b
e v
c
.
Para realizar a identificação dos vértices é utilizada a informação fornecida pela faixa
adjacente a um dos lados do triângulo.
O vértice v
a
é obtido na interseção dos lados não adjacentes à faixa.
Os vértices remanescentes, por exemplo v
2
e v
3
, considerando-se que v
a
corresponde
à v
1
, são identificados realizando-se o produto vetorial:
(v
2
– v
a
) × (v
3
– v
a
) (5.14)
Caso o sinal de (5.14) seja positivo, toma-se v
3
= v
b
e v
2
= v
c
, senão, faz-se v
3
= v
c
e
v
2
= v
b
.
5.4 DETERMINAÇÃO DA POSE
As coordenadas 2D dos vértices e a identificação dos mesmos com os vértices reais
(3D) possibilitam calcular a pose da garra, ou seja, obter a posição e orientação da garra do
robô manipulador em relação ao referencial da base {B} fixado na sua base.
63
As coordenadas dos vértices obtidas na imagem são expressas por:
v
a
= (x
a
,y
a
) (5.15)
v
b
= (x
b
,y
b
) (5.16)
v
c
= (x
c
,y
c
) (5.17)
As coordenadas dos vértices no referencial da câmera são desconhecidas e expressas
por:
V
a
= (X
a
,Y
a
,Z
a
) (5.18)
V
b
= (X
b
,Y
b
,Z
b
) (5.19)
V
c
= (X
c
,Y
c
,Z
c
) (5.20)
As normalizações das coordenadas (5.18) a (5.20) são dadas por:
x
na
=
a
a
Z
X
(5.21)
y
na
=
a
a
Z
Y
(5.22)
x
nb
=
b
b
Z
X
(5.23)
y
nb
=
b
b
Z
Y
(5.24)
x
nc
=
c
c
Z
X
(5.25)
y
nc
=
c
c
Z
Y
(5.26)
Os valores para as variáveis x
ni
e y
ni
(i = a,b,c) presentes nas expressões (5.21) a
(5.26) são obtidos a partir do mapeamento inverso das coordenadas (5.15) a (5.17) (ver
capítulo 4, seção 4.5, subseção 4.5.1)
64
As distâncias Euclidianas entre os vértices no plano Cartesiano 3D produzem as
seguintes equações:
(X
a
- X
b
)
2
+ (Y
a
- Y
b
)
2
+ (Z
a
- Z
b
)
2
=
2
T
l (5.27)
(X
a
– X
c
)
2
+ (Y
a
– Y
c
)
2
+ (Z
a
– Z
c
)
2
=
2
T
l (5.28)
(X
b
– X
c
)
2
+ (Y
b
– Y
c
)
2
+ (Z
b
– Z
c
)
2
=
2
T
l
(5.29)
onde l
T
corresponde ao comprimento do lado do triângulo eqüilátero.
Isolando-se X
a
, Y
a
, X
b
, Y
b
, X
c
e Y
c
nas expressões (5.21) a (5.26), e substituindo-se o
resultado nas equações (5.27) a (5.29), obtém-se o seguinte sistema de equações não-lineares
para Z
a
, Z
b
e Z
c
:
()
()
(
)
()
()
()
()
()
()
=+++++++
=+++++++
=+++++++
0lZ1yxZZ1yyxxZ1yx
0lZ1yxZZ1yyxxZ1yx
0lZ1yxZZ1yyxxZ1yx
2
T
2
c
2
nc
2
nccbncnbncnb
2
b
2
nb
2
nb
2
T
2
c
2
nc
2
nccancnancna
2
a
2
na
2
na
2
T
2
b
2
nb
2
nbbanbnanbna
2
a
2
na
2
na
(5.30)
O sistema de equações (5.30) é resolvido utilizando-se o método de Newton para
sistemas de equações não-lineares (RUGGIERO e LOPES, 1996, p. 192-200). Com a
finalidade de garantir a unicidade da solução (GAO e TANG, 2003), estabeleceram-se as
seguintes restrições para a execução do método:
a) em cada nova execução do método de Newton as estimativas iniciais para Z
a
, Z
b
e
Z
c
correspondem aos valores finais encontrados para essas variáveis na última
execução do método;
b) no caso da primeira execução do método de Newton, os valores estimados para
Z
a
, Z
b
e Z
c
são obtidos a partir da medição no espaço cartesiano 3D das distâncias
de cada vértice do triângulo ao local da câmera onde se supõe encontrar fixado o
sensor CCD (origem do referencial da câmera {C});
c) como o rótulo triangular encontra-se na frente da câmera os valores para Z
a
, Z
b
e
Z
c
são sempre positivos.
65
Substituindo os valores obtidos para Z
a
, Z
b
e Z
c
nas equações (5.21) a (5.26) obtêm-
se os valores para as demais coordenadas X
i
e Y
i
(i = a,b,c) dos vértices do triângulo no
referencial da câmera {C}.
As coordenadas dos vértices em {C} são descritas no referencial da base {B},
B
V
i
(i =
a,b,c), fixado na base do robô, aplicando-se a transformação T
B
C
a cada um desses vértices.
Esta transformação corresponde à transformação inversa da transformação de coordenadas
fornecida pela calibração extrínseca ( T
C
B
).
5.4.1 Obtenção da Orientação da Garra em {B}
A partir das coordenadas dos vértices em {B} obtêm-se três vetores unitários (X
v
, Y
v
,
Z
v
) com mesma direção e sentido dos vetores unitários correspondentes aos eixos
coordenados do referencial da garra (X
g
, Y
g
, Z
g
).
O vetor Y
v
é obtido diretamente da diferença entre
B
V
c
e
B
V
b
:
Y
v
=
b
B
c
B
b
B
c
B
-
-
VV
VV
(5.31)
onde ||
B
V
c
-
B
V
b
|| corresponde a aplicação da norma Euclidiana para o vetor (
B
V
c
-
B
V
b
).
O vetor Z
v
é obtido da diferença entre
B
V
a
e o ponto médio (p
m
) para
B
V
b
e
B
V
c
:
B
P
m
=
2
c
B
b
B
VV +
(5.32)
Z
v
=
m
B
a
B
m
B
a
B
-
-
PV
PV
(5.33)
O vetor correspondente a X
v
é obtido a partir do produto vetorial dos vetores
calculados em (5.31) e (5.33):
X
v
= Y
v
×
Z
v
(5.34)
66
A figura 5.14 ilustra em detalhe os vetores de orientação da garra obtidos a partir dos
vértices do triângulo.
Os vetores X
v
, Y
v
e Z
v
compõem a matriz de orientação da garra em relação ao
referencial da base do robô (
B
R
G
):
B
R
G
= [X
v
Y
v
Z
v
]
3x3
(5.35)
Neste trabalho, a representação final da orientação da garra em relação ao referencial
{B} ocorre na forma do vetor de dimensões 3x1 composto pelos ângulos γ, β e α referentes à
representação da matriz (5.35) em ângulos fixos X-Y-Z (CRAIG, p.43-48, 1989),
representação também denominada roll, pitch e yaw:
B
O
G
= [γ β α]
T
(5.36)
FIGURA 5.14 – OBTENÇÃO DA ORIENTAÇÃO DA GARRA
RÓTULO
TRIANGULAR
(TRIÂNGULO)
X
v
B
P
m
Y
v
B
V
a
B
V
c
B
V
b
Y
G
Z
G
X
G
{G}
Z
v
67
5.4.2 Obtenção da Posição da Garra em {B}
A posição da garra do manipulador em relação ao referencial da base {B} é dada pelo
vetor
B
P
G
de dimensão (3 x 1), expresso por:
B
P
G
= [
B
X
G
B
Y
G
B
Z
G
]
T
(5.37)
e calculado da seguinte forma:
B
P
G
= T
B
R
R
P
G
(5.38)
onde T
B
R
é a matriz de transformação entre os referencial do rótulo {R} e o referencial da base
{B}, e
R
P
G
corresponde à posição da garra no referencial do rótulo (fig. 5.15).
B
P
m
Y
B
Y
R
Z
R
Z
B
X
B
{B}
Z
G
Y
G
{G}
{R}
FIGURA 5.15 – OBTENÇÃO DA POSIÇÃO DA GARRA
68
O referencial do rótulo {R} possui a mesma orientação do rótulo da garra e sua
origem situa-se no ponto médio
B
P
m
para
B
V
b
e
B
V
c
. Assim, a matriz T
B
R
é dada por:
()
(
)
4x4
3x1
1x3
m
B
3x3
G
B
B
R
1
=
0
PR
T
(5.39)
A posição
R
P
G
da garra no referencial do rótulo {R} é fixa para qualquer pose da
garra e previamente conhecida.
O cálculo de
B
P
G
conclui a determinação da pose χ da garra do manipulador robótico
no referencial da base {B}:
χ =
()( )
[]
T
1x3
G
B
1x3
G
B
OP (5.40)
ou
χ = [
B
X
G
B
Y
G
B
Z
G
γ β α]
T
(5.41)
5.5 RESULTADOS
5.5.1 Regras Heurísticas
Os resultados da aplicação das regras heurísticas para a extração e identificação dos
vértices do triângulo na imagem apresentados nesta subseção são referentes à pose de
calibração do manipulador robótico (ver figura 3.5).
A figura 5.16 apresenta em detalhe a etapa de busca pelo pixel interno final. Foram
necessárias três buscas no interior do triângulo para que esta etapa fosse concluída. Na figura
os pixels internos encontrados são indicados em vermelho e numerados seqüencialmente de
um a três indicando a ordem em que foram encontrados: p
int
= 1, p
int’
= 2 e p
intf
= 3.
Os respectivos pixels de bordas são indicados na cor magenta enquanto as direções
de busca são descritas em amarelo.
69
A figura 5.17 mostra a busca pelo pixel auxiliar a partir do pixel interno final. Na
figura os pixels internos encontrados antes do pixel final são omitidos e o pixel auxiliar p
a
é
indicado na cor verde.
Os pixels p
c
e p
e
determinam o lado l
1
.
Os pixels p
b
e p
a
determinam o lado l
2
.
A intersecção de l
1
e l
2
fornece o primeiro vértice v
1
indicado na figura por um X
vermelho.
Os pixels amarelos isolados correspondem aos testes aplicados aos pares ordenados
formados pelos pixels p
c
, p
b
, p
e
e p
d
.
Os pixels isolados de cor laranja correspondem aos testes aplicados aos pares
ordenados (p
a
,p
b
) e (p
a
,p
d
).
FIGURA 5.16 – BUSCA DO PIXEL INTERNO FINAL
70
A figura 5.18 (página seguinte) mostra a determinação no plano da imagem do
segundo e terceiro vértices do rótulo triangular.
Em cor ciano se destacam as execuções do algoritmo de Bresenham a partir dos
pixels p
c
e p
a
na busca do terceiro lado do triângulo. Estes pixels correspondem,
respectivamente, aos pixels de borda mais distantes de v
1
sobre as retas l
1
e l
2
.
Os segmentos de reta plotados pelo algoritmo possuem a mesma inclinação da reta
bissetriz do ângulo interno ao triângulo no vértice v
1
. O pixel branco corresponde ao pixel de
teste p
m
usado na escolha dessa reta bissetriz.
Os pixels p
o’
e p
o’’
que determinam o terceiro lado do triângulo (l
3
) são marcados na
cor azul.
As intersecções da reta que contém o lado l
3
do triângulo com as retas que contém os
lados l
1
e l
2
do mesmo fornecem respectivamente o segundo e terceiro vértices, v
2
e v
3
,
indicados na figura por um X vermelho.
FIGURA 5.17 – DETERMINAÇÃO DO PRIMEIRO VÉRTICE
71
A figura 5.19 apresenta as novas localizações na imagem dos vértices do triângulo
após a execução da etapa de ajuste das equações das retas e da aplicação das regras de
identificação.
O vértice V
a
é identificado na figura por um X amarelo.
O vértice V
b
é identificado por um X magenta.
O vértice V
c
é identificado por um X laranja.
FIGURA 5.18 – DETERMINAÇÃO DO SEGUNDO E TERCEIRO VÉRTICES
FIGURA 5.19 – AJUSTE E IDENTIFICAÇÃO DOS VÉRTICES
72
A imprecisão inicial na extração dos vértices ocorre devido à definição irregular na
imagem das bordas do triângulo, como se pode observar na figura 5.20 onde o triângulo
apresenta-se segmentado de acordo com a análise da cor para cada pixel.
A figura 5.21 mostra a extração dos vértices do triângulo para o primeiro caso
especial da aplicação das regras heurísticas descrito na subseção 5.3.2. Para a geração desse
resultado não se realizou a busca pelo pixel interno final e conseqüentemente não executou-se
a etapa de ajustes das equações da reta. Os pixels de teste foram omitidos da figura.
FIGURA 5.20 – DEFINIÇÃO IRREGULAR DA BORDA
FIGURA 5.21 – PRIMEIRO CASO ESPECIAL: RESULTADO
73
A figura 5.22 mostra a extração dos vértices do triângulo para o segundo caso
especial da aplicação das regras heurísticas descrito na subseção 5.3.2. Para a geração desse
exemplo não se realizou a busca pelo pixel interno final e conseqüentemente não executou-se
a etapa de ajustes das equações da reta. Os pixels de teste foram omitidos da figura.
5.5.2 Visibilidade
Há três situações possíveis relacionadas à visibilidade do rótulo triangular na
imagem:
a) o rótulo triangular não se encontra visível na imagem (ver fig. 5.23);
b) o rótulo encontra-se visível na imagem, mas não propicia a correta extração dos
vértices. A figura 5.24 (próxima página) ilustra essa situação apresentando o
rótulo em detalhe e com os vértices extraídos indicados por um X vermelho:
- Classifica-se como incorreta a extração dos vértices na imagem em que as
coordenadas de pelo menos um deles se encontra a uma distância Euclidiana
maior que três pixels do local onde se supõe localizar-se o vértice real;
FIGURA 5.22 – SEGUNDO CASO ESPECIAL: RESULTADO
74
c) o rótulo encontra-se visível na imagem e possibilita a correta extração dos vértices
(exemplos da subseção anterior). Classifica-se como correta a extração dos
vértices na imagem em que as coordenadas obtidas para cada um deles se encontra
a uma distância Euclidiana menor que três pixels do local onde se supõe localizar-
se o vértice real;
Utilizando-se coordenadas esféricas pode-se descrever a posição do vetor
C
N
t
normal
ao plano do rótulo triangular no referencial da câmera {C} (fig 5.25).
FIGURA 5.24 – EXTRAÇÃO INCORRETA DOS VÉRTICES
FIGURA 5.23 – RÓTULO TRIANGULAR NÃO VISÍVEL
75
O vetor
C
N
t
é obtido a partir do seguinte produto vetorial envolvendo as coordenadas
dos vértices do triângulo no referencial {C}:
(
C
V
C
-
C
V
A
) x (
C
V
B
-
C
V
A
) (5.42)
Partindo-se de (5.44) e usando a representação esférica para
C
N
t
exposta na figura
(5.25) obtém-se quatro faixas de variação angular para θ e φ que garantem a correta extração
dos vértices do triângulo na imagem:
TABELA 5.1 – FAIXAS DE VISIBILIDADE
θ (graus) φ (graus)
FAIXA
MÍNIMO MÁXIMO MÍNIMO MÁXIMO
1 21.4 84.6 108.5 170
2 103.4 169.1 103.8 162.2
3 -159.5 -107.1 110.7 163.4
4 -79.7 -0.4 94 170.9
C
N
t
φ
θ
Y
C
Z
C
X
C
{C}
FIGURA 5.25 – COORDENADAS ESFÉRICAS
76
5.2.3 Região de Interesse
A varredura seqüencial da imagem em busca do primeiro pixel interno do triângulo
inicia-se no pixel superior-esquerdo da imagem, coordenadas (0,0), para a primeira aplicação
das regras heurísticas na execução do algoritmo de controle (capítulo 6, seção 6.4.6).
Para as aplicações seguintes a varredura inicia-se pelo pixel superior-esquerdo de
uma região de interesse definida na imagem a partir do pixel interno final extraído na última
aplicação das regras.
Esta região de interesse é definida como uma região retangular com dimensões
250x200 pixels centrada no pixel interno final. A figura 5.26 ilustra a construção da região de
interesse, retângulo vermelho. As dimensões da região correspondem a uma área equivalente
a duas vezes a área em pixels do triângulo na imagem quando a câmera encontra-se na
posição mais próxima da garra.
5.2.4 Análise Comparativa
As tabelas 5.2 e 5.3 apresentam respectivamente os principais resultados obtidos para
a extração dos vértices do triângulo na imagem usando-se as regras heurísticas propostas e o
método clássico da transformada de Hough. O tempo de processamento refere-se à quantidade
de tempo necessária por ambas as técnicas para extraírem os vértices na imagem e identificá-
FIGURA 5.26 – REGIÃO DE INTERESSE
77
los. A média da tabela 5.2 corresponde à média das coordenadas encontradas para cada
vértice. As variações máximas correspondem as maiores diferenças encontradas dentre as
coordenadas obtidas para x
P
e para y
P
. A variação total é calculada com sendo a soma das
variações máximas.
TABELA 5.2 – DESEMPENHO DAS REGRAS HEURÍSTICAS
REGRAS HEURÍSTICAS
VÉRTICE A
(pixels)
VÉRTICE B
(pixels)
VÉRTICE C
(pixels)
EXPERIMENTO
TEMPO DE
PROCESSAMENTO
(ms)
x
P
y
P
x
P
y
P
x
P
y
P
1 2 221 122 172 191 237 238
2 2 221 124 172 191 237 238
3 2 221 123 172 192 237 238
4 2 221 123 172 191 237 238
5 2 221 123 172 191 237 238
6 2 221 123 172 191 237 238
7 2 221 123 172 192 237 238
8 2 221 123 172 192 237 238
9 2 221 124 172 191 237 238
10 2 221 123 172 191 237 238
Média 2 221 124 172 191 237 237
Variação máxima - 0 2 0 1 0 0
Variação total - 3
TABELA 5.3 – DESEMPENHO DO MÉTODO CLÁSSICO (continua)
TRANSFORMADA DE HOUGH
VÉRTICE A
(pixels)
VÉRTICE B
(pixels)
VÉRTICE C
(pixels)
EXPERIMENTO
TEMPO DE
PROCESSAMENTO
(ms)
x
P
y
P
x
P
y
P
x
P
y
P
1 18 221 124 172 191 237 236
2 18 221 124 172 191 237 237
3 18 221 124 172 191 237 236
4 18 221 124 172 191 237 237
5 18 221 124 172 191 237 237
78
TABELA 5.3 – DESEMPENHO DO MÉTODO CLÁSSICO (conclusão)
TRANSFORMADA DE HOUGH
VÉRTICE A
(pixels)
VÉRTICE B
(pixels)
VÉRTICE C
(pixels)
EXPERIMENTO
TEMPO DE
PROCESSAMENTO
(ms)
x
P
y
P
x
P
y
P
x
P
y
P
6 18 221 124 172 191 237 237
7 18 221 124 172 191 237 236
8 18 221 124 172 191 237 237
9 18 221 124 172 191 237 236
10 18 221 124 172 191 237 237
Variação máxima - 0 0 0 0 0 1
Variação total - 1
As regras heurísticas possuem tempo de execução menor que o método de Hough.
Este por sua vez é mais preciso que as regras heurísticas na extração das coordenadas dos
vértices. Enquanto as regras heurísticas possuem erro total de três pixels, o método apresenta
erro total igual a um pixel. Quanto maior o erro total, maiores são as diferenças encontradas
entre as poses do manipulador calculadas em cada experimento.
5.2.5 Precisão da Pose
Pequenas variações nas coordenadas extraídas para os vértices na imagem, para uma
mesma pose espacial da garra, produzem variações consideráveis no cálculo da pose a partir
da imagem.
A tabela 5.4 apresenta dez experimentos de captação da pose através da imagem para
a garra mantida numa pose espacial fixa. Os valores da pose mostrados na tabela abaixo se
referem às coordenadas dos vértices apresentadas na tabela 5.2. A pose média corresponde à
pose calculada a partir da média para as coordenadas dos vértices (tabela 5.2) e o tempo de
execução consiste na quantidade de tempo necessária para a extração e identificação dos
vértices na imagem e conseqüente obtenção da pose.
79
TABELA 5.4 – EXPERIMENTO 1: POSES
POSIÇÃO (mm) ORIENTAÇÃO (graus)
EXPERIMENTO
TEMPO DE
EXECUÇÃO (ms)
X
B
Y
B
Z
B
γ β Α
1 2 50 -120 108 -136.2 66.7 -82.9
2 2 44 -122 105 -136.6 68.5 -82.6
3 2 49 -120 107 -136.4 67.1 -82.5
4 2 47 -121 108 -134.4 66.5 -81.8
5 2 47 -121 108 -134.4 66.5 -81.8
6 2 47 -121 108 -134.4 66.5 -81.8
7 2 47 -120 107 -136.5 67 -82.4
8 2 47 -120 107 -136.5 67 -82.4
9 2 44 -122 105 -136.6 67.1 -82.6
10 2 47 -121 108 -134.4 66.5 -81.8
Média 2 47 -121 106 -135.9 67.1 -82.8
Variação máxima - 7 3.2
A variação máxima para a posição apresentado na tabela anterior corresponde a
maior distância Euclidiana encontrada entre os vetores de posição calculados. Por sua vez, a
variação máxima para a orientação corresponde a maior distância Euclidiana encontrada entre
os vetores de orientação.
A tabela 5.5 apresenta as variações máximas de posição e orientação obtidos para
dez experimentos de captação da pose semelhantes ao descrito anteriormente para a
elaboração da tabela 5.4. Os experimentos da tabela 5.5 correspondem a dez poses diferentes
para a garra do manipulador no espaço 3D.
TABELA 5.5 – EXPERIMENTOS 1 A 10: ERROS DE POSE (continua)
VARIAÇÃO MÁXIMA
EXPERIMENTO
POSIÇÃO (mm) ORIENTAÇÃO (graus)
1 7 3.2
2 6.6 3
3 6.5 3.1
4 6.9 2.9
5 6.8 2.4
80
TABELA 5.5 – EXPERIMENTOS 1 A 10: ERROS DE POSE (conclusão)
VARIAÇÂO MÁXIMA
EXPERIMENTO
POSIÇÃO (mm) ORIENTAÇÃO (graus)
6 6.5 2.6
7 6 3.1
8 6.8 3.1
9 6.4 2.6
10 6.6 3.1
As variações no cálculo da pose para uma mesma pose espacial da garra (tabela 5.4)
e as variações máximas de posição e orientação associadas a essas variações da pose (tabela
5.5) definem respectivamente a forma de obtenção da pose atual da garra no algoritmo de
controle e o critério de parada utilizado nesse algoritmo (capítulo 6, subseção 6.4.4).
81
CAPÍTULO 6
CONTROLE CINEMÁTICO
82
6.1 INTRODUÇÃO
Este capítulo descreve o desenvolvimento, implementação e execução das etapas do
controlador cinemático utilizando realimentação visual para um manipulador robótico com
cinco graus de liberdade proposto como objetivo principal desse trabalho.
O controlador desenvolvido nesse capítulo realimenta apenas a imagem captada por
uma única câmera CCD, diferentemente do controlador desenvolvido por FEDDEMA e
MITCHELL (1989) que também realimenta os ângulos de junta do manipulador, e do
controlador de ALLEN (1992) que usa visão estéreo.
Para o correto funcionamento do controlador proposto, as únicas características
extraídas da imagem são os vértices do retângulo e do triângulo, não havendo extração de
elipses, quadrados, círculos, ou qualquer outra primitiva geométrica, tal como sugerido por
JANABI-SHARIFI e WILSON (1997).
As simples regras heurísticas descritas no capítulo anterior são aplicadas na
determinação das poses da garra utilizadas pelo controlador proposto durante a execução do
algoritmo de controle, não necessitando estimar-se a pose da garra através da aplicação de
filtro de Kalman às características extraídas da imagem (JANABI-SHARIFI e WILSON,
1998), ou através da fusão de dados sensoriais (WEI e HIRZINGER, 1999).
O algoritmo de controle implementado no esquema de controle proposto é simples. O
sinal resultante da aplicação de ganhos proporcionais ao sinal de erro é mapeado em
incrementos angulares para as juntas através da pseudoinversa do Jacobiano do manipulador
robótico. Esses incrementos angulares correspondem ao sinal de controle e são aplicados às
juntas do manipulador movendo a garra para a pose de referência. O controlador
implementado neste trabalho não utiliza redes neurais (ZHA, ONITSUKA e NAGATA,
1996), regras nebulosas (ELSHHEIBIA, FERREIRA e CAVALCANTI, 2002) ou algoritmos
genéticos (SILVA JÚNIOR, FERRUGEM E BARONE, 2003), para gerar o sinal de controle
a partir do sinal de erro.
6.2 CONTROLE CONVENCIONAL PARA MANIPULADORES ROBÓTICOS
Considerando o modelo geral para um manipulador robótico apresentado por CRAIG
(1989, p. 1-18), cada junta possui:
a) sensores de posição para medição dos deslocamentos angulares das juntas;
83
b) atuadores responsáveis por aplicar os sinais de torque responsáveis pelos
deslocamentos dos elos que lhes são subseqüentes.
Sob o ponto de vista de um controle tipo PBVS, para a realização da maioria das
tarefas, as juntas de um manipulador robótico precisam percorrer uma trajetória previamente
definida no espaço de juntas, correspondente a uma trajetória desejada no espaço cartesiano
tridimensional para a ferramenta (garra) do manipulador (CRAIG, p. 227-261, 1989). Como
os atuadores trabalham aplicando os sinais de torque aos elos do manipulador, faz-se
necessário a implementação de um sistema de controle que compute os sinais de torque
apropriados para que o manipulador realize o movimento desejado (fig. 6.1).
Na figura 6.1 o braço robótico recebe um vetor de sinais de torque τ do sistema de
controle, os sensores das juntas fornecem ao controlador as posições das juntas θ, e θ
r
corresponde ao vetor de configurações de junta de referência. Todos os sinais do sistema são
vetores de dimensão (N x 1), onde N é o número de juntas do manipulador.
A aplicação contínua do vetor τ aos elos do braço, com a finalidade deste realizar o
movimento desejado, requer que o modelo dinâmico do manipulador seja completo, preciso e
isento de ruídos, o que não acontece em aplicações reais devido às imprecisões no cálculo do
modelo dinâmico, e à presença constante de perturbações que atuam sobre o manipulador.
Esta técnica de controle é denominada controle em malha aberta por não usar as informações
fornecidas pelos sensores de posição no cálculo dos sinais de torque, ou seja, na
implementação do sistema de controle, o vetor de sinais de torque τ é função somente da
trajetória desejada, não se considerando a trajetória atual.
A construção de um sistema de controle eficiente e robusto utiliza a realimentação
das posições de juntas tal como apresentado na figura 6.1. A realimentação dessas posições é
usada no cálculo de um sinal de erro δθ, denominado erro de posição, correspondente à
diferença entre a posição desejada (posição de referência) e a posição atual:
θ
r
θ
GERADOR DE
TRAJETÓRIA
SISTEMA
DE
CONTROLE
BRAÇO
ROBÓTICO
τ
FIGURA 6.1 – RELAÇÃO ENTRE O GERADOR DE TRAJETÓRIA E O BRAÇO ROBÓTICO
84
δθ = θ
r
θ (6.1)
Para esta técnica de controle, o sinal de torque requerido pelos atuadores é
computado como uma função dos erros de posição. O objetivo principal é reduzir-se esses
erros a cada computação dos sinais de torque. Esses sistemas de controle que utilizam
realimentação de sinais sensoriais são denominados sistema de controle em malha fechada.
O problema principal no desenvolvimento de um sistema de controle é garantir que
determinadas especificações de desempenho do sistema sejam satisfeitas, destacando-se
dentre estas a estabilidade do próprio sistema. É importante observar que o desenvolvimento
incorreto de um sistema de controle resulta num controlador instável, isto é, um controlador
para o qual os erros de pose crescem a cada execução da trajetória desejada, em vez de
reduzirem-se.
6.3 CONTROLE CINEMÁTICO E CONTROLE DINÂMICO
Pode-se dividir o controle de posição e orientação para um manipulador robótico em
duas partes distintas (DIAS, 2002, p. 16-23):
a) o controle cinemático, responsável por definir em espaço de juntas os
deslocamentos angulares necessários para que a garra do manipulador descreva
determinada trajetória no espaço Cartesiano tridimensional;
b) o controle dinâmico, que utiliza os atuadores das juntas para aplicar os sinais de
torque sobre os elos do manipulador, executando em espaço de juntas a trajetória
especificada para a garra.
Deste modo, o controle cinemático possibilita o deslocamento da garra do braço
robótico de uma pose inicial para uma pose final no espaço Cartesiano 3D seguindo uma
trajetória específica. Durante este deslocamento assume-se que a garra (provida ou não de
carga) não colide com qualquer elemento do espaço de trabalho, movendo-se livremente pelo
espaço 3D (YOSHIKAWA, 1990, 155-210).
O controle dinâmico consiste na aplicação, para cada junta do manipulador robótico,
dos sinais de torque que promovem o correto deslocamento espacial da garra do manipulador.
Neste tipo de controle, um complexo conjunto de funções é aplicado aos atuadores,
acelerando a garra do manipulador a partir do repouso, movendo-a em velocidade constante e
desacelerando-a até parar.
85
A forma analítica exata dessas funções envolve os atributos espaciais e temporais
associados ao caminho a ser percorrido pela garra, as propriedades relacionadas à massa dos
elos (tensores de inércia, por exemplo), a carga útil carregada pela garra, os atritos nas juntas
do manipulador, etc.
6.4 O ESQUEMA DE CONTROLE PROPOSTO
Uma vez que o braço manipulador utilizado nesse trabalho possui um controlador
dinâmico em cada servomotor das juntas, o esquema de controle proposto consiste somente
no controle cinemático do movimento do braço robótico, realizado em malha fechada, no
espaço Cartesiano, e utilizando realimentação visual. O sinal realimentado corresponde às
imagens do manipulador captadas por uma câmera CCD. A recuperação da pose χ da garra do
robô em relação ao referencial da base {B} é realizada para cada imagem captada.
A figura 6.2 mostra um diagrama de blocos para o esquema de controle proposto. O
símbolo K
p
corresponde ao vetor de ganhos proporcionais aplicados ao sinal de erro δχ, χ
r
é a
pose de referência e δθ consiste no vetor dos incrementos angulares das juntas (sinal de
controle).
Uma análise detalhada da estabilidade, diante de perturbações moderadas, e da
robustez, perante os erros de calibração do sistema de visão, para um esquema de controle do
tipo apresentado na figura acima (PBVS) encontra-se em DENG, JANABI-SHARIFI e
WILSON (2002).
As subseções seguintes descrevem cada uma das etapas do esquema de controle
proposto quanto as suas fundamentações teóricas, as formas como foram implementadas e a
funcionalidade das mesmas dentro do esquema de controle.
IMAGEM
K
p
·δχ
+
δθ
χ
χ
r
-
PROCESSAMENTO DE IMAGEM DIGITAL
δχ
GANHOS
BRAÇO
JACOBIANO
INVERSO
FIGURA 6.2 – DIAGRAMA DO ESQUEMA DE CONTROLE PROPOSTO
86
6.4.1 Geração de Trajetória
A movimentação suave e controlada do manipulador robótico no espaço
tridimensional, partindo de uma pose inicial para uma pose final, é especificada através da
variação da pose de acordo com uma determinada função temporal χ(t). O problema da
geração de trajetória consiste na computação dessa função temporal (CRAIG, 1989, p. 227-
261). Como mostrado na figura 6.3, há várias funções de suavização possíveis para χ(t), que
podem interpolar os valores da pose associados à trajetória desejada para o manipulador no
espaço 3D.
O movimento do manipulador no espaço 3D consiste no deslocamento da garra em
relação ao referencial da base {B}.
Assim, pode-se resumir a geração de trajetória como sendo o conjunto de poses
necessárias para que a garra do manipulador desloque-se espacialmente numa trajetória
previamente definida.
FIGURA 6.3 – FORMAS DE VARIAÇÃO PARA A POSE
t
f
t
0
χ
f
χ
0
t
χ(t)
87
6.4.1.1 Função polinomial de terceiro grau
Pode-se aplicar às funções de movimento uma forma polinomial do terceiro grau
com o objetivo de solucionar o seguinte problema de geração de trajetória: movimentar a
garra do manipulador robótico de uma pose inicial para uma pose final dentro de um
determinado intervalo de tempo.
Cada elemento constituinte da pose do manipulador (ver equação 5.41) requer uma
função polinomial que forneça o valor desse elemento num instante de tempo t qualquer.
Para o instante t
0
a função fornece o valor inicial χ
0
do elemento.
Para o instante t
f
a função fornece o valor final χ
f
do elemento (ver fig. 6.3).
Assim, para χ(t) representado por um polinômio de grau três, tem-se:
χ(t) = a
0
+ a
1
t + a
2
t
2
+ a
3
t
3
(6.2)
onde
a
0
= χ
0
(6.3)
a
1
= 0 (6.4)
a
2
=
2
f
t
3
(χ
f
- χ
0
) (6.5)
a
3
=
3
f
t
2
(χ
f
- χ
0
) (6.6)
Usando as expressões (6.2) a (6.6) pode-se calcular a forma polinomial cúbica que
conecta qualquer pose inicial a qualquer pose final desejada para a garra.
A geração da trajetória por computador, discretiza a variação da pose no tempo, ou
seja, a pose da garra é atualizada em intervalos fixos de tempo (taxa de atualização do
caminho) a partir da pose inicial (fig. 6.4).
88
Desta forma, a implementação computacional da trajetória calcula uma nova pose
para a garra em cada instante t
i
(i = 0,1,2, ... ,f), do intervalo de tempo (t
f
– t
0
).
6.4.1.2 A geração de trajetória no esquema de controle proposto
Gera-se uma trajetória para o manipulador robótico utilizando as pose inicial e final
da garra obtidas através da imagem. O deslocamento da garra para as poses inicial e final é
realizado manualmente e cada pose gerada é apresentada ao controlador como pose de
referência (χ
r
).
6.4.2 O Sinal de Erro
O sinal de erro δχ do esquema de controle proposto é obtido a partir da diferença
entre a próxima pose de referência χ
r
para a garra do manipulador robótico e a pose atual χ. A
pose atual da garra é obtida através da imagem usando-se as técnicas descritas no capítulo
anterior. O sinal de erro é computado para cada deslocamento do manipulador entre as poses
de referência.
δχ = χ
r
χ =
() ()
[]
T
1x3
G
B
1x3
G
B
OP
(6.7)
t
f
t
i
· · · · · · t
1
t
2
t
i-1
χ
f
χ
0
t
0
t
χ(t)
FIGURA 6.4 – DISCRETIZAÇÃO DA TRAJETÓRIA
89
6.4.3 O Jacobiano do Manipulador Robótico
A matriz Jacobiano, ou simplesmente Jacobiano,
J
G
(θ) para um manipulador
robótico consiste na matriz que permite mapear as velocidades das juntas (
θ
&
), em velocidades
Cartesianas (
B
ν
G
) associadas à garra do manipulador:
B
ν
G
=
B
J
G
(θθ
&
(6.8)
O mapeamento inverso, das velocidades Cartesianas da garra, em velocidades de
juntas, também é possível através da matriz inversa do Jacobiano, ou simplesmente Jacobiano
inverso,
1
G
J
(θ):
θ
&
=
B
1
G
J (θ
B
ν
G
(6.9)
A representação sobrescrita
B indica que as velocidades Cartesianas e o Jacobiano
são expressos em relação ao referencial da base
{B}. Essa indicação sobrescrita é omitida nas
situações em que é óbvio que o Jacobiano está referenciado em
{B}, ou na quais referenciar o
Jacobiano em
{B} não influencia no desenvolvimento dos cálculos para o manipulador.
Jacobianos de qualquer dimensão, incluindo os representados por matrizes não-
quadradas, podem ser definidos para um manipulador robótico. O número de linhas do
Jacobiano corresponde ao número de graus de liberdade considerados para o manipulador no
espaço Cartesiano. O número de colunas corresponde ao número de juntas do manipulador.
Observando-se as expressões (6.8) e (6.9), verifica-se que as velocidades de juntas
relacionam-se linearmente com as velocidades Cartesianas, e vice-versa, e que a natureza dos
mapeamentos (valores das matrizes
J ou J
-1
) altera-se na medida em que os ângulos de juntas
do manipulador variam. A relação entre as velocidades de juntas e Cartesianas é instantânea,
pois o Jacobiano depende da configuração angular do manipulador a cada instante do
movimento.
Para algumas configurações de juntas a matriz Jacobiano não é inversível, indicando
que determinadas posições no espaço Cartesiano não podem ser alcançadas pelo manipulador.
Estas posições são denominadas
singularidades.
90
6.4.3.1 O jacobiano do manipulador no esquema de controle proposto
Para o caso do manipulador robótico utilizado neste trabalho, as velocidades
associadas à garra são: a velocidade linear (
B
v
G
) e a velocidade angular (
B
ω
G
). Estas
velocidades compõem o vetor de velocidades Cartesianas da seguinte forma:
B
ν
G
=
()
(
)
[]
T
1x3
G
B
1x3
G
B
ωv (6.10)
A partir da expressão (6.10) pode se expressar a relação (6.9) do seguinte modo:
θ
&
=
B
1
G
J (θ) ·
()( )
[]
T
1x3
G
B
1x3
G
B
ωv (6.11)
Para pequenas variações da
pose pode-se realizar a seguinte aproximação na
expressão (6.11):
δθ =
B
1
G
J (θ
() ()
[]
T
1x3
G
B
1x3
G
B
OP
(6.12)
onde o termo que multiplica o Jacobiano inverso corresponde à variação da
pose (sinal de
erro), conforme apresentado na subseção anterior:
δθ =
B
1
G
J
(θδχ (6.13)
Desta forma, a matriz inversa do Jacobiano permite mapear as variações da
pose
(
δχ), em incrementos dos ângulos de juntas (δθ). Esses incrementos dos ângulos de juntas são
usadas como referência pelos controladores de juntas, possibilitando que o manipulador
desloque-se em direção à
pose de referência.
O cálculo da matriz Jacobiano do manipulador robótico depende do modelo
cinemático do manipulador. Essa dependência não prejudica o desempenho do esquema de
controle proposto, pois o mapeamento incorreto gerado pelo Jacobiano é corrigido pela
realimentação visual. Diferenças não-nulas entre as
poses de referência e atual produzem
incrementos angulares para as juntas do manipulador que movimentam a garra para uma
pose
91
próxima da referência. A malha de realimentação visual fornece a nova
pose da garra,
gerando um novo sinal de controle que reduz o erro de
pose produzido pelo Jacobiano. Este
procedimento repete-se até que o erro de
pose (sinal de erro) alcance valores previamente
definidos para o controlador (subseção 6.4.4).
Sendo a matriz Jacobiano deste trabalho, uma matriz não quadrada de dimensões
6x5, a sua inversa
B
1
G
J (θ) consiste na matriz pseudoinversa de
B
J
G
(θ). A matriz
pseudoinversa corresponde à generalização da inversa da matriz original, quando esta é
singular ou não-quadrada. A subseção seguinte apresenta o algoritmo aplicado neste trabalho
para o cálculo da pseudoinversa do Jacobiano.
6.4.3.2 O algoritmo de
Greville
GREVILLE (1960) propôs um algoritmo recursivo para o cálculo da pseudoinversa
(
A
#
) de uma matriz A pertencente a
mxn
. Sendo a
i
, A
i
e A
i
#, respectivamente, as
representações para a
i-ésima coluna de A, para a matriz formada pelas primeiras i colunas de
A, e para as i primeiras linhas da pseudoinversa, pode-se então descrever o algoritmo de
Greville da seguinte forma:
a)
se a
1
= 0, faz-se A
1#
= 0:
- se
a
1
0, faz-se A
1#
= (a
1
T
·a
1
)
-1
· a
1
T
.
b)
faz-se i = 2;
c)
calcula-se d
i
= A
i-1#
·a
i
;
d)
calcula-se c
i
= a
i
- A
i-1
·d
i
;
e)
se c
i
0, faz-se b
i
T
= c
i
#
:
- se
c
i
= 0, faz-se b
i
T
= (1 + d
i
T
· d
i
)
-1
· d
i
T
· A
i-1#
;
f)
prepara-se A
i#
para a próxima iteração: A
i#
=
T
i
T
ii
1#-i
b
bdA
;
g)
se i = n, faz-se A
#
= A
n#
, e encerra-se a execução do algoritmo:
- se
i < n, faz-se i = i +1 e retorna-se para o passo c.
O algoritmo de
Greville para o cálculo da pseudoinversa do Jacobiano finaliza a
apresentação das etapas que compõem o esquema de controle proposto.
92
6.4.4 Funcionamento do Esquema de Controle Proposto
Pode-se resumir o funcionamento do esquema de controle proposto da seguinte
forma:
a)
desloca-se manualmente o manipulador para uma pose desejada: captura-se essa
pose como sendo a pose inicial;
b)
desloca-se manualmente o manipulador para uma pose desejada diferente da
anterior: captura-se essa
pose como sendo a pose final;
c)
retorna-se o manipulador para a pose inicial;
d)
usando as pose inicial e final gera-se a trajetória desejada para a garra;
e)
para cada pose de referência (χ
r
) fornecida pelo gerador de trajetória geram-se os
incrementos de junta necessários para alcançá-la executando-se o seguinte
algoritmo de controle:
i.
captura-se via da imagem a pose atual da garra (χ);
ii.
gera-se o sinal de erro (δχ) fazendo-se a diferença entre a pose de referência
e a
pose atual;
iii.
aplicam-se ganhos proporcionais (K
p
) ao sinal de erro;
iv.
calcula-se o Jacobiano do manipulador (
B
J
G
(θ));
v.
calcula-se a pseudoinversa do Jacobiano (
B
1
G
J (θ));
vi.
aplica-se a pseudoinversa do Jacobiano ao sinal de erro resultante do passo
iii gerando-se os incrementos de junta (δθ);
vii.
aplica-se os incrementos de junta às juntas do manipulador;
viii.
os passo de i a vii são repetidos até que o sinal de erro encontre-se dentro do
limite estabelecido como critério de parada, isto é, até que a
pose atual da
garra “alcance” a
pose de referência.
O gerador de trajetória somente fornece uma nova
pose de referência para o
controlador quando a
pose de referência atual for “alcançada” pela garra. A última pose de
referência fornecida ao controlador pelo gerador de trajetória consiste na
pose final.
Analisando-se a tabela 5.5 do capítulo anterior verifica-se que as variações máximas
de posição e orientação são respectivamente 7 mm e 3.2º. Estes valores são utilizados no
controlador cinemático como critério de parada da execução do algoritmo de controle, ou seja,
quando as diferenças de posição e orientação entre a
pose atual da garra e a pose de referência
93
forem menores que esses valores considera-se que as
poses são idênticas, e que
conseqüentemente a garra do manipulador “alcançou” a
pose de referência.
Para a captação da
pose atual no algoritmo de controle se executam por dez vezes as
regras heurísticas para extração e identificação dos vértices do triângulo na imagem. A partir
da média das coordenadas obtidas para os vértices determina-se a
pose da garra do
manipulador. A aplicação desse procedimento deve-se às variações existentes no cálculo da
pose da garra através da imagem, para uma pose espacial fixa da mesma (tabela 5.4). Assim, o
objetivo do procedimento acima descrito é garantir uma melhor representação para a
pose
atual da garra recuperada via imagem durante a execução do controle cinemático.
Como o tempo máximo para extração e identificação dos vértices do triângulo na
imagem e cálculo da
pose usando-se as regras heurísticas desenvolvidas é de dois
milisegundos (tabela 5.4), o procedimento para obtenção da
pose atual da garra transcorre em
tempo real (20 ms). Isto é, a captação da
pose atual pelo controlador cinemático utilizando o
procedimento descrito no parágrafo anterior ocorre num tempo menor que o intervalo de
aquisição de imagens pela placa de captura (33 ms).
Devido à presença de perturbações acentuadas na estrutura do manipulador robótico,
ao término de cada iteração do algoritmo de controle é aplicado um tempo de espera igual a
um segundo para inicia-se uma nova iteração. Essas perturbações são geradas principalmente
pelo falta de sincronismo entre os dois servomotores que acionam a segunda junta do
manipulador. O tempo de espera acima descrito corresponde ao tempo mínimo para que os
controladores dinâmicos presentes nos motores atuem estabilizando o sistema.
6.5 ESQUEMA DE CONTROLE EM MALHA ABERTA
6.5.1 Cinemática Inversa
Dadas a posição e orientação da garra do manipulador robótico, a cinemática inversa
possibilita calcular todas as possíveis configurações de juntas que permitem o manipulador
alcançar essa posição e orientação (CRAIG, 1989, p. 113-151).
Como as equações cinemáticas de posição e orientação do manipulador são não-
lineares, o problema da cinemática inversa tem soluções complexas, pode não apresentar
solução, ou possuir múltiplas soluções. Desta forma, a solução do problema da cinemática
94
inversa para um manipulador não é tão simples quanto à aplicação da cinemática direta para o
mesmo (CRAIG, 1989, p. 68-112).
A existência, ou inexistência, de solução para o problema da cinemática inversa
define o espaço de trabalho do manipulador. A falta de solução para um problema de
cinemática inversa significa que o manipulador não pode alcançar a posição e orientação dada
porque esta encontra-se fora do espaço de trabalho.
6.5.2 Funcionamento do Esquema de Controle em Malha Aberta
Pode-se resumir o funcionamento do esquema de controle em malha aberta do
seguinte modo:
a)
desloca-se manualmente o manipulador para uma pose desejada: captura-se essa
pose como sendo a pose inicial;
b)
desloca-se manualmente o manipulador para uma pose desejada diferente da
anterior: captura-se essa
pose como sendo a pose final;
c)
retorna-se o manipulador para a pose inicial;
d)
usando as poses inicial e final gera-se a trajetória desejada para a garra;
e)
para cada pose de referência fornecida pelo gerador de trajetória faz-se:
i.
obtêm-se os ângulos de junta correspondentes através da solução do problema
de cinemática inversa do manipulador robótico;
ii.
aplicam-se às juntas do manipulador os ângulos de junta obtidos no passo
anterior;
iii.
ao término de cada deslocamento da garra captura-se e armazena-se via imagem
a
pose da mesma para posterior análise.
Tal como ocorre no controlador usando realimentação visual a última
pose de
referência fornecida ao controlador em malha aberta pelo gerador de trajetória consiste na
pose final.
Devido à presença de perturbações acentuadas na estrutura do manipulador robótico,
ao término de cada deslocamento da garra (passo
iii) executa-se um tempo de espera igual a
um segundo antes de captar-se a
pose da mesma. A finalidade desse procedimento é captar a
pose correta para a garra em repouso sem a presença de perturbações que induzam uma
análise incorreta dos resultados para o controle em malha aberta.
95
O esquema de controle em malha aberta é utilizado numa análise comparativa de
desempenho com o esquema de controle proposto que usa realimentação visual.
6.6 RESULTADOS
Para uma análise precisa dos resultados de controle, elaborou-se as seguintes
definições de erro:
a)
erro quadrático médio de posição: E
qmp
;
b)
erro quadrático médio de orientação: E
qmo
.
Define-se o erro quadrático médio de posição como sendo a média do somatório dos
quadrados das normas Euclidianas das diferenças entre as posições
P
ri
e P
fi
obtidas
respectivamente da
pose de referência χ
ri
e da pose final χ
fi
para a garra do manipulador
robótico após cada execução
i do algoritmo de controle. Sendo n o número de referências
fornecidas pelo gerador de trajetória no experimento de controle, o erro quadrático médio de
posição é expresso da seguinte forma:
E
qmp
=
=
n
1i
2
firi
n
1
PP (6.14)
Define-se o erro quadrático médio de orientação como sendo a média do somatório
dos quadrados das normas Euclidianas das diferenças entre as orientações
O
ri
e O
fi
obtidas
respectivamente da
pose de referência χ
ri
e da pose final χ
fi
para a garra do manipulador
robótico após cada execução
i do algoritmo de controle. Desta forma, o erro quadrático médio
de orientação é expresso da seguinte forma:
E
qmo
=
=
n
1i
2
firi
n
1
OO (6.15)
Os erros quadráticos médios definidos em (6.14) e (6.15) fornecem uma noção do
erro total para o posicionamento e orientação da garra do manipulador no espaço
tridimensional.
As figuras 6.5 e 6.6 mostram as
pose inicial e final para a garra do manipulador no
primeiro experimento de controle.
96
As execuções dos controles em malha aberta e com realimentação visual para a
trajetória da garra descrita no experimento
1 produziram os seguintes resultados para a
posição (figs. 6.7, 6.8 e 6.9) e orientação espacial da mesma (figs. 6.10, 6.11 e 6.12):
FIGURA 6.5 – EXPERIMENTO 1: POSE INICIAL
FIGURA 6.6 – EXPERIMENTO 1: POSE FINAL
97
FIGURA 6.7 – EXPERIMENTO 1: POSIÇÃO X
FIGURA 6.8 – EXPERIMENTO 1: POSIÇÃO Y
98
FIGURA 6.9 – EXPERIMENTO 1: POSIÇÃO Z
FIGURA 6.10 – EXPERIMENTO 1: ÂNGULO GAMA (ROLL)
99
FIGURA 6.12 – EXPERIMENTO 1: ÂNGULO ALFA (YAW)
FIGURA 6.11 – EXPERIMENTO 1: ÂNGULO BETA (PITCH)
100
As figuras acima mostram que os erros de posição e orientação para a garra do
manipulador aumentam durante a execução do esquema de controle em malha aberta
(tracejado vermelho), enquanto que esses mesmos erros (tracejado azul) são mantidos
pequenos durante a execução do esquema controle utilizando realimentação visual, sempre
acompanhando de perto a referência (tracejado preto).
A tabela 6.1 a seguir resume os erros obtidos para dez experimentos de controle
cinemático do manipulador robótico incluindo o experimento
1 apresentado anteriormente.
Cada experimento corresponde a uma trajetória diferente para a garra do manipulador no
espaço Cartesiano
3D, onde cada trajetória movimenta todas as juntas do manipulador
produzindo conseqüentemente variações em todas as coordenadas de posição e de orientação
da garra.
TABELA 6.1 – RESULTADOS DO CONTROLE: ERROS QUADRÁTICOS
MALHA ABERTA
REALIMENTAÇÃO VISUAL
TRAJETÓRIA
E
qmp
E
qmo
E
qmp
E
qmo
1 269.5851 50.4535 10.3977 3.9261
2 264.8908 48.5505 8.3817 4.1964
3 217.6634 59.2419 11.4241 4.4571
4 304.2437 58.8672 10.1694 3.1717
5 263.6222 48.6426 12.1937 4.2108
6 282.0326 58.3979 10.2563 3.7368
7 301.0659 41.5311 10.0594 4.4472
8 315.0709 47.4842 11.8377 3.9305
9 295.2719 56.7736 10.5023 4.2551
10 234.6756 40.5618 9.161 3.8144
A tabela 6.1 mostra que o sistema de controle proposto possui desempenho
satisfatório quando comparado ao sistema de controle convencional em malha aberta e que a
utilização da realimentação visual cumpre com o seu objetivo principal que é melhorar a
precisão do sistema de controle convencional.
101
CAPÍTULO 7
CONCLUSÃO
102
7.1 CONCLUSÃO E PERSPECTIVAS FUTURAS
Para a elaboração deste trabalho de Dissertação de Mestrado utilizou-se
conhecimentos de diversas áreas de pesquisa tais como: robótica, processamento de imagens
digitais e controle inteligente.
O trabalho foi concluído com êxito, pois o objetivo inicial de desenvolver e
implementar um controlador cinemático usando realimentação visual foi alcançado com
eficiência junto aos objetivos secundários:
a)
a etapa de calibração de cores funcionou corretamente segmentando em cores a
imagem captada para o manipulador rotulado no seu espaço de trabalho através da
aplicação do algoritmo
k-means a uma imagem modelo. Para tornar mais robusta
essa etapa propõem-se como perspectiva futura implementar um método de
calibração utilizando rede de
Hopfield (HAYKIN, 1999, p. 680-696) que trabalhe
com o modelo cor HSL. Este tipo de rede neural armazenará em seus estados as
diversas alterações de tonalidade que as cores da imagem apresentem devido às
variações de iluminação;
b)
a calibração dos parâmetros intrínsecos utilizou um método já implementado
computacionalmente cujos testes revelaram ser bastante preciso. A determinação
dos valores para o foco, centro ótico e, principalmente, coeficientes de distorção
possibilitaram a correta execução das etapas seguintes;
c)
a calibração extrínseca também mostrou-se precisa com erros de reprojeção
menores que dois
pixels. Isto ocorreu devido os quatro pontos usados na
calibração encontrarem-se próximos da origem do referencial da base;
d)
as regras heurísticas mostraram-se eficientes na extração e identificação dos
vértices do triângulo na imagem, ao mesmo tempo em que se apresentaram
sensíveis à definição irregular das bordas do triângulo. Propõem-se como
perspectiva futura o teste do método de extração dos vértices do triângulo
desenvolvido por NOGUEIRA, ALSINA e MEDEIROS (2004) que fundamenta-
se nas regras heurísticas desenvolvidas nesse trabalho, otimizando-as;
e)
o procedimento de cálculo da pose a partir dos vértices do triângulo extraídos na
imagem mostrou-se robusto, principalmente, quanto à convergência do método de
Newton para uma resposta próxima da realidade. Propõe-se como perspectiva
futura o teste do método de cálculo da
pose desenvolvido por NOGUEIRA,
103
ALSINA e MEDEIROS (2004) que reduz o sistema de equações não-lineares a
uma função polinomial do quarto grau cuja solução fornece a
pose da garra. Outra
perspectiva para o cálculo da
pose parte da determinação das coordenadas na
imagem que melhor representam os vértices do triângulo para uma dada
pose
espacial da garra através da implementação de um filtro de
Kalman que prediz
essas coordenadas a partir das coordenadas anteriores e atuais.
Nos experimentos realizados, o controlador cinemático usando realimentação visual
obteve ótimo desempenho em relação ao controlador cinemático em malha aberta. A
pose da
garra afastou-se da referência durante a execução do controle em malha aberta gerando
grandes erros de posição e orientação, e seguiu próxima a trajetória de referência durante a
execução do controle com realimentação visual produzindo pequenos erros.
A utilização dos rótulos retangular e triangular, a elaboração de regras heurísticas
robustas para extração dos vértices do triângulo na imagem e determinação da
pose, e uma lei
de controle simples garantiram o sucesso do esquema de controle com realimentação visual
no que se refere ao cumprimento do proposto para o mesmo no início desse trabalho:
controlar cinematicamente com eficiência um manipulador robótico através de imagens
captadas do mesmo;
Como perspectiva futura propõe-se o estudo de um controlador do tipo IBVS usando
as rotulações aplicadas nesse trabalho para extração da
pose da garra através da imagem. A
utilização de visão estéreo para recuperação da
pose e conseqüente aplicação desta no
controle cinemático do manipulador também constitui promissora fonte de pesquisa.
104
REFERÊNCIAS
AIRES, K. R. T. Desenvolvimento de um sistema de visão global para uma frota de mini-
robôs móveis. Natal, 2001. 59f. Dissertação (Mestrado em Engenharia Elétrica). Centro de
Tecnologia, Universidade Federal do Rio Grande do Norte.
ALLEN, P. K.; TIMCENKO, A.; YOSHIMI B. Real-time visual servoing. In: IEEE
INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, 1992.
Proceedings... 1992. p. 1850-1856.
AZINHEIRA, J. R.; RIVES P.; CARVALHO, J. R. H.; SILVEIRA, G. F.; PAIVA, E. C. de;
BUENO, S. S. Visual servo control for the hovering of an outdoor robotic airship. In: IEEE
INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, 2002,
Washington. Proceedings... Washington: 2002. p. 2787-2792.
BARROSO, L. C.; BARROSO, M. M. de A.; CAMPOS FILHO, F. F.; CARVALHO, M. L.
B. de; MAIA, M. L. Cálculo numérico (com aplicações). 2 ed. São Paulo: Editora Harbra,
1987.
BRESENHAM, J. E. Algorithm for computer control of Digital Plotter. IBM System
Journal, v. 4, pp. 25-30, jan. 1965.
BROWN, D. C. Closed-range camera calibration. Photogrammetric engineering, v. 37, n. 8,
p. 855-866, 1971.
CASTAÑO, A.; HUTCHINSON, S. A. Visual compliance: task-directed visual servo control.
IEEE Transactions on Robotics and Automation, v. 10, n. 3, p. 334-342, 1994.
CHAUMETTE, F.; RIVES, P.; ESPIAU, B. Positioning of a robot with respect to an object,
tracking it and estimating its velocity by visual servoing. In: IEEE INTERNATIONAL
CONFERENCE ON ROBOTICS AND AUTOMATION, 1991. Proceedings... 1991. p.
2248-2253.
CORKE, P. I. Visual control of robot manipulators – a review. Robotics and Automated
Systems, v. 7, p. 1-31, 1993.
COSTA, J. A. F. Classificação automática e análise de dados por redes neurais auto-
organizáveis. Campinas, 1999. Tese (Doutorado). Universidade de Campinas.
CRAIG, J. J. Introduction to robotics: mechanics and control. 2 ed. Addison-Wesley,
1989.
DEBEVEC, P.E. Modeling and rendering architecture from photographs. Berkeley, 1996.
154 f. Tese (Doutorado em Ciência da Computação). University of California.
DEGUCHI, K. Optimal motion control for image-based visual servoing by decoupling
translation and rotation. In: IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND
AUTOMATION, 1998. Proceedings... Victoria, B.C., Canadá: 1998. p. 705-711.
105
DENG, L.; JANABI-SHARIFI, F.; WILSON, W. J. Stability and robustness of visual
servoing methods. In: IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND
AUTOMATION, 2002. Proceedings... Washington: 1992. p. 2638-2645.
DIAS, A. M. Controle de manipulador redundante utilizando realimentação visual.
Natal, 2002. 92 f. Dissertação (Mestrado em Engenharia Elétrica). Centro de Tecnologia,
Universidade Federal do Rio Grande do Norte.
ELSHHEIBIA, T. A. A.; FERREIRA, C. N. M do A.; CAVALCANTI, J. H. F. Controle de
um braço robótico utilizando uma abordagem multi-agentes. In: CONGRESSO
BRASILEIRO DE AUTOMÁTICA, 2002, Natal. Anais... Natal: 2002. p. 55-60.
ESPIAU, B.; CHAUMETTE, F.; RIVES, P. A new approach to visual servoing in robotics.
IEEE Transactions on Robotics and Automation, v. 8, n. 3, p. 313-326, 1992.
FEDDEMA, J. T.; MITCHELL, O. R. Vision-guided servoing with feature-based trajectory
generation. IEEE Transactions on Robotics and Automation, v. 5, n. 5, p. 691-700, 1989.
FERREIRA, C. N. M do A.; MONTEIRO, E. F.; CAVALCANTI, J. H. F. Posicionamento
inteligente de um braço robótico. In: CONGRESSO NACIONAL DE ENGENHARIA
MECÂNICA, 2000. Anais... 2000.
FIORANTE, G. R. C. Sensores de imagem CCD’s para aplicações em visão robótica. São
Paulo, 2001. 34f. Monografia (Mestrado em Engenharia). Escola Politécnica da Universidade
de São Paulo.
GAO, X.-S.; TANG, J. On the Probability of the Number of Solutions for the Perspective
n Point Problem. Pequim, 2003. 14f. Key Laboratory of Mathematics Mechanization,
Institute of System Science, Academia Sinica, Pequim, China.
GASPAR, J. A. da C. P. Visão para robótica móvel: detecção de obstáculos sobre
pavimentos planos. Lisboa, 1994. 104f. Dissertação (Mestrado em Engenharia Eletrotécnica
e de Computadores). Instituto Superior Técnico – Universidade Técnica de Lisboa.
GOZALEZ, R. C.; WOODS, R. E. Digital image processing. Addison-Wesley, 1993.
GREVILLE, T. N. E. Some applications of pseudoinverse of a matrix. SIAM Review, n. 2, p.
15-22, 1960.
HAYKIN, S. Neural networks: a comprehensive foundation. 2 ed. New Jersey: Prentice
Hall, 1999.
HEIKKILÄ, J.; SILVÉN, O. A Four-Step Camera Calibration Procedure with Implicit
Image Correction. 1997. Oulu, Finlândia, 1997. 7f. Infotech Oulu and Department of
Electrical Engineering - University of Oulu.
HOUGH, P. V. C. Methods and means for recognizing complex patterns. U.S. n.
3,069,654. 1962.
106
HUTCHINSON, S.; HAGER, G. D.; CORKE, P. I. A tutorial on visual servo control. IEEE
Transactions on Robotics and Automation, v. 12, n. 5, p. 651-670, 1996.
JÄGERSAND, M.; FUENTES, O.; NELSON, R. Experimental evaluation of uncalibrated
visual servoing for precise manipulation. In: IEEE INTERNATIONAL CONFERENCE ON
ROBOTICS AND AUTOMATION, 1997. Proceedings... 1997. p. 2874-2880.
JANABI_SHARIFI, F.; WILSON, W. J. Automatic grasp planning for visual-servo controlled
robotic manipulators. IEEE Transactions on Systems, Man, and Cybernetics, v. 28, n. 8, p.
693-711, 1998.
JANABI-SHARIFI, F.; WILSON, W. J. Automatic selection of image features for visual-
servoing. IEEE Transactions on Robotics and Automation, v. 13, p. 890-902, 1997.
KAMATA, S.-I.; EASON, R. O.; TSUJI, M.; KAWAGUCHI, E. A camera calibration using
a 4 point-targets. In: INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION,
1992. Proceedings… Hague. 1992. p. 550-553.
KOHONEN, T. Self-Organizing Maps. Berlin/Heidelberg: Springer-Verlag, 1995.
MALIS, E.; CHAUMETTE, F.; BOURDET, S. 2D ½ visual servoing. IEEE Transactions
on Robotics and Automation, v. 15, n. 2, p. 238-250, 1999.
NASCIMENTO Jr., C. L.; YONEYAMA, T. Inteligência artificial em automação e
controle. 1997.
NOGUEIRA. M. B.; MEDEIROS, A. A. D. de; ALSINA, P. J. Development of a visual
feedback system for a manipulator robot. Natal, 2004. 6 f. Departamento de Engenharia de
Computação e Automação, Universidade Federal do Rio Grande do Norte.
PAPANIKOLOPOULOS, N. P.; KHOSLA, P. K. Adaptative robotic visual tracking: theory
and experiments. IEEE Transactions on Robotics and Automation, v. 38, n. 3, p. 429-445,
1993.
PAPANIKOLOPOULOS, N. P.; KHOSLA, P. K; KANADE, T. Visual tracking of a moving
target by a camera mounted on a robot: a combination of control and vision. IEEE
Transactions on Robotics and Automation, v. 9, n. 1, p. 14-35, 1993.
PIEPMEIER, J. A.; GUMPERT, B. A.; LIPKIN, H. Uncalibrated eye-in-hand visual servoing.
In: IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, 2002.
Proceedings... Washington: 2002. p. 568-573.
POPOVIC, D.; BLECHSCHMIDT, R. Hand-eye coordination of a robot system using
neural networks. 1996. Institute of Automation Technology, University of Bremen.
RUGGIERO, M. A. G.; LOPES, V. L. DA R. Cálculo numérico: aspectos teóricos e
computacionais. 2 ed. São Paulo: Makron Books, 1996.
107
SHARMA, R.; HUTCHINSON, S. Motion percebility and its application to active vision-
based servo control. IEEE Transactions on Robotics and Automation, v. 13, p. 607-617,
1997.
SHIRAI, Y.; INOUE, H. Guiding a robot by visual feeedback in assembly tasks. Pattern
Recognition, v. 5, p. 99-108, 1973.
SILVA JÚNIOR, E. P. da; FERRUGEM, A. P.; BARONE, D. A. Positioning of a robotic arm
using genetic algorithms. In: SIMPÓSIO BRASILEIRO DE AUTOMAÇÃO
INTELIGENTE, VI, 2003, Bauru. Anais... Bauru: 2003. p. 367-372.
SILVEIRA, G. F. Comparative results of 3D, 2D and 2½D visual servoing. In: SIMPÓSIO
BRASILEIRO DE AUTOMAÇÃO INTELIGENTE, VI, 2003, Bauru. Anais... Bauru: 2003.
p. 769-774.
SILVEIRA, G. F.; CARVALHO, J. R. E.; BUENO, S. S.; MADRID, M. K. Uma revisão das
técnicas de controle servo visual de robôs. In: CONGRESSO BRASILEIRO DE
AUTOMÁTICA, 2002, Natal. Anais... Natal: 2002. p. 648-654.
SILVEIRA, G. F.; CARVALHO, J. R. H.; MADRID, M. K.; RIVES P.; BUENO, S. S. A fast
vision-based road following strategy applied to the control of aerial robots. In: IEEE XIV
BRAZILIAN SYMPOSIUM ON COMPUTER GRAPHICS AND IMAGE PROCESSING,
XIV, 2001a, Florianópolis, SC, Brasil. Proceedings... Florianópolis: 2001a. p. 226-231.
SILVEIRA, G. F.; CARVALHO, J. R. H.; RIVES P.; BUENO, S. S. Visual servo control of
nonholonomic mobile robots. In: 16
th
BRAZILIAN CONGRESS OF MECHANICAL
ENGINEERING, 16, 2001b, Uberlândia, MG, Brasil. Anais... Uberlândia: 2001b.
SMITH, C. E.; BRANDT, S. A.; PAPANIKOLOPOULOS, N. P. Eye-in-hand robotic tasks in
uncalibrated environments. IEEE Transactions on Robotics and Automation, v. 13, n. 6, p.
903-914, 1997.
SOARES, A. A. A. F.; ALSINA, P. J.; MEDEIROS, A. A. D. Desenvolvimento de um
esquema de controle com realimentação visual para um robô manipulador. In: SIMPÓSIO
BRASILEIRO DE AUTOMAÇÃO INTELIGENTE, V, 2001, Canela. Anais... Canela: 2001.
TODA,Y.; KONISHI, Y.; ISHIGAKI, H. Positioning-control of robot manipulator using
visual sensor. 1996. Himeji Institute of Technology, Department of Mechanical and
Intelligent Engineering.
VIANA, S. A. A.; WALDMANN, J.; CAETANO, F. de F. Non-linear optimization-based
batch calibration with accuracy evaluation. SBA Controle & Automação, v. 10, n. 2, p. 161-
175, mai./jun./jul./ago.1999.
WANG, C. Extrisinc calibration of a vision sensor mounted on a robot. IEEE Transactions
on Robotcis and Automation, v. 8, p. 161-175, 1992.
108
WANG, J.; WILSON, W. J. Three-D relative position and orientation estimation using
Kalman filter for robot control. In: IEEE INTERNATIONAL CONFERENCE ON
ROBOTICS AND AUTOMATION, 1992. Proceedings... 1992. p. 2638-2645.
WEI, G.; ARBTER, K.; HIRZINGER, G. Active self-calibration of robotics eyes and hand-
eye relationships with model identification. IEEE Transactions on Robotics and
Automation, v. 14, p. 158-166, 1998.
WEI, G.; HIRZINGER, G. Multisensory visual servoing by a neural network. IEEE
Transactions on Systems, Man, and Cybernetics, v. 29, n. 2, p. 276-280, 1999.
WEISS, L. E.; ANDERSON, A. C. Dynamic sensor-based control of robots with visual
feedback. IEEE Journal of Robotics and Automation, v. 3, n. 5, p. 404-417, 1987.
YOSHIKAWA, T. Foundations of robotics: analisys and control. Massachusetts: The MIT
Press, 1990.
ZHA, H.; ONITSUKA, T.; NAGATA, T. A visual motor coordination algorithm for
controlling arm’s Movements in enviroments with obstacles. 1996. Graduate School of
Information Science & Electrical Engenieer, Kyushu University, Institute of Systems &
Information Technologies.
109
DOCUMENTOS CONSULTADOS
BORENSTEIN, J.; EVERETT, H. R.; FENG, L. Where Am I? Sensors and Methods for
Mobile Robot Positioning. The University of Michigan, 1996.
BOYCE, W. E.; DIPRIMA, R. C. Equações diferenciais elementares e problemas de
valores de contorno. 3 ed. Rio de Janeiro: Guanabara Koogan, 1990.
BUSSAB, W. O.; MORETTIN, P. A. Métodos quantitativos: estatística básica. 4 ed. São
Paulo: Atual, 1997.
DAVIES, C. J.; NIXON, M. S. A huogh transform for detecting the location and orientation
of three-dimensional surfaces via color encoded spots. IEEE Transactions on Systems,
Man, and Cybernetics, v. 28, n. 1, p. 90-95, 1998.
DEMARCHI, F. L.; GUENTHER, R. Implementação de um controle para um robô com
seis graus de liberdade. Florianópolis, 1999. 8 f. Departamento de Engenharia Mecânica,
Universidade Federal de Santa Catarina.
DIAS, A.; SIMAS, H.; GOLIN, J. F.; GUENTHER, R. Uma metodologia para geração de
trajetórias de manipuladores no espaço Cartesiano. Florianópolis, 1999. 8 f. Departamento
de Engenharia Mecânica, Universidade Federal de Santa Catarina.
DU, F.; BRADY, M. Self-calibration of the intrinsic parameters of cameras for active vision
systems. In: IEEE INTERNATIONAL CONFERENCE ON AUTOMATION, ROBOTICS
AND COMPUTER VISION, 1993. Proceedings... 1993. p. 477-482.
DUDA, R. O.; HART, P. E. Use of the Hough transformation to detect lines and curves in
pictures. Communications ACM, v. 15, n. 1, p. 11-15, 1972.
GAO, X.-S.; HOU, X.-R., TANG, J.; CHENG, H.-F. Complete solution classification for the
perspective-three-point problem. IEEE Transactions on Pattern Analysis and Machine
Intelligence. v. 25, n. 8, p. 930-943, 2003.
GAT-FALIK, T.; FLASH, T. The superposition strategy for arm trajectory modification in
robotic manipulators. IEEE Transactions on Systems, Man, and Cybernetics, v. 29, n. 1, p.
83-95, 1999.
GOMES, S. C. P. Sobre a modelagem e o controle de robôs manipuladores. Rio Grande,
1998. 8 f. Departamento de Matemática, Fundação Universidade Federal do Rio Grande.
GUENTHER, R.; SIMAS, H.; PIERI, E. R. de. Concepção cinemática de um manipulador
para volumes de trabalhos restritos. Florianópolis, 1999. 9 f. Departamento de Engenharia
Mecânica, Universidade Federal de Santa Catarina.
GUISSIN, R.; ULLMAN, S. Direct Computation of the Focus of Expansion from Velocity
Field Measurements. In: IEEE WORKSHOP ON VISUAL MOTION, 1991. Proceedings...
1991. p. 146-155
110
HANSELMAN, D.; LITTLEFIELD, B. Matlab 5 versão do estudante: guia do usuário.
São Paulo: Makron Books do Brasil, 1999.
JAIN, A. K. Fundamentals of digital image processing. New Jersey: Prentice-Hall, 1989.
KEARNEY, J. K.; YANG, X.; ZHANG, S. Camera calibration using geometric constraints.
In: IEEE COMPUTER SOCIETY CONFERENCE ON COMPUTER VISION AND
PATTERN RECOGNITION, 1989, San Diego. Proceedings... San Diego: p. 672-679, 1989.
LATOMBE, J.-C. Robot motion planning. Boston [Massachusets]: Kluwer Academic
Publishers, 1998.
MA, S. D. A self-calibration technique for active vision systems. IEEE Transactions on
Robotics and Automation, v. 12, n. 1, p. 114-120, 1996.
MENÉNDEZ, J. M.; GARCÍA, N.; SALGADO, L.; RENDÓN, E. An algorithm for FOE
localization. 1996.
MIZRAHI, V. V. Treinamento em linguagem C: módulo 1. São Paulo: Makron Books do
Brasil, 1990.
MIZRAHI, V. V. Treinamento em linguagem C: módulo 2. São Paulo: Makron Books do
Brasil, 1990.
MIZRAHI, V. V. Treinamento em linguagem C++: módulo 1. São Paulo: Makron Books
do Brasil, 1995.
MIZRAHI, V. V. Treinamento em linguagem C++: módulo 2. São Paulo: Makron Books
do Brasil, 1995.
MUNEM, M. A.; FOULIS, D. J. Cálculo. In: _____. Cálculo. Rio de Janeiro: Guanabara,
1982. v. 2.
NAKAMURA, Y. Advanced robotics: redundancy and optimization. Santa Barbara:
Addison-Wesley, 1991.
OGATA, K. Engenharia de controle moderno. 2 ed. Rio de Janeiro: Prentice Hall do Brasil,
1993.
PETZOLD, C. Programming Windows. 5 ed. Washington: Microsoft Press, 1998.
RAO, N. S. V.; WU, W.;GLOVER, C. W. Algorithms for recognizing planar polygonal
configurations using perspective images. IEEE Transactions on Robotics and Automation,
v. 8, n. 4, p. 480-486, 1992.
SANTOS, N. M. dos. Vetores e matrizes. 2 ed. Rio de Janeiro: Livros técnicos e Científicos,
1979.
111
TCHON, K. Calibraton of manipulators kinematics: a singularity theory approach. IEEE
Transactions on Robotics and Automation, v. 8, n. 5, p. 671-678, 1992.
WINSTON, P. H. Artificial intelligence. 3 ed. Addison-Wesley, 1993.
YANG, C.; HU, Z. An intrinsic parameters self-calibration technique for active vision
system. Pequim, 1997. 3 f. Institue of Automation, Chinese Academy of Sciences.
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo