UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA - UEFS
Edney da Silva Souza
Manipulação de Objetos Utilizando um Robô Móvel
Orientador: Prof. Anfranserai Morais Dias
FEIRA DE SANTANA
2010
Edney da Silva Souza
Manipulação de Objetos Utilizando um Robô Móvel
Trabalho de Conclusão de Curso apresentado
ao curso de Engenharia de Computação da
Universidade Estadual de Feira de Santana para
a obtenção do tı́tulo de Bacharel em Engenharia
de Computação.
Orientador: Prof. Anfranserai Morais Dias
Feira de Santana
2010
RESUMO
A robótica é uma área de estudo em grande desenvolvimento nos dias atuais, pois permite
automatizar tarefas, nos mais diversos campos da sociedade. Robôs submarinos, robôs
domésticos, sondas interplanetárias, robôs desarmadores de bombas e até robôs que auxiliam
pessoas com deficiência, são exemplos da utilização da tecnologia robótica como beneficio
para a sociedade. Pesquisas e desenvolvimento na área de robótica são geralmente pioneiras e
inovadoras, possibilitando a criação de equipamentos que possuem a capacidade de execução
de tarefas especı́ficas e com certo grau de risco, onde a precisão, eficiência e repetibilidade são
caracterı́sticas imprescindı́veis. Por isso, o projeto de um robô requer uma análise criteriosa
sobre os mais diversos fatores envolvidos no processo de automação. Este documento trata do
desenvolvimento de um robô manipulador de objetos, desenvolvido a partir do kit educacional
AL5C+Kit Tri-Track Robot da empresa Lynxmotion, onde serão abordados todos os elementos
necessários para o desenvolvimento do robô. A modelagem matemática, destacando-se
a modelagem cinemática direta e inversa, a geração de trajetória, a implementação da
comunicação utilizando a linguagem de programação Java e sua inteface Javacomm, são
exemplos de assuntos que serão abordados para o entendimento do projeto como um todo.
Palavras-chave: Manipulador. Robô. Controle.
ABSTRACT
Robotics is an area of study in major development today, it allows you to automate tasks in
various fields of society. Underwater robots, domestic robots, interplanetary probes, bomb
disposal robots and robots that assist people with disabilities are examples of the use of robotic
technology in society’s benefit. Research and development in robotics are often pioneering and
innovative, allowing you to create devices that are capable of performing specific tasks with
any degree of risk, where precision, efficiency and repeatability are essential characteristics.
Therefore, the design of a robot requires a careful analysis of the various factors involved in the
automation process. This document deals with the development of a robot that manipulates
objects, using the educational kit AL5C and Tri-Track Robot by Lynxmotion company,
which will consider all necessary elements for its development. Mathematical modeling,
with emphasis in the direct and inverse kinematics model, path planning, implementation
of communication using the Java programming language and the JavaComm interface are
examples of issues to be addressed for the understanding of the project as a whole.
Keywords: Manipulator. Robot. Control.
LISTA DE FIGURAS
Figura 1
Estrutura de Dispositivos Robóticos (FORESTI, 2006)
. . . . . . . . . . . . . . . . . . . . . 11
Figura 2
Manipulador Robótico (BARRIENTOS et al., 1997)
Figura 3
Robô militar com esteiras (MATILDA, 2010)
Figura 4
Relação entre Cinemática Direta e Inversa (BARRIENTOS et al., 1997)
Figura 5
Notação Denavit Hartenberg (ROSáRIO, 2005)
Figura 6
Formato tı́pico de um pacote serial assı́ncrono (BARCELOS, 2010)
Figura 7
Conector DB9 (BARCELOS, 2010)
. . . . . . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
. . . . . . . 19
. . . . . . . . . . . . . . . . . . . . . . . . . . . 20
. . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
LISTA DE TABELAS
Tabela 1
Comunicação Serial - RS232C - Pinagem DB9 (BARCELOS, 2010)
. . . . . . . . . 28
SUMÁRIO
1
INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2
FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1
Estrutura dos Sistemas Robóticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2
Classificação dos Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1
Classificação Cronológica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2
Classificação quanto ao Nı́vel de Inteligência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3
Classificação quanto ao Nı́vel de Controle da Programação . . . . . . . . . . . . . . . . . . . . 13
2.2.4
Classificação quanto a Linguagem de Programação . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3
Categorias Básicas dos Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1
Robôs Manipuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2
Veı́culos Auto-Guiados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4
Aspectos Construtivos de Robôs Manipuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1
Juntas Robóticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2
Elos ou Vı́nculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3
Graus de Liberdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5
Aspectos Construtivos de Robôs Exploradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6
Modelagem Cinemática de Robôs Manipuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.1
Notação de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6.2
Cinemática Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.3
Cinemática Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.4
Cinemática Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.5
Geração de Trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7
Comunicação Serial - RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7.1
Conceito de Comunicação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7.2
Canal de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7.3
Processo de Transmissão Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7.4
Taxa de Transferência (Baud Rate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.5
Checksum e Paridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.6
Interface Serial RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7.7
Comunicação Serial em JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3
METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1
Cronograma de Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2
Desenvolvimento e validação da Modelagem Matemática . . . . . . . . . . . . . . . . . . . . . . . 31
3.3
Comunicação Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4
Testes de Integração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8
1
INTRODUÇÃO
Os avanços tecnológicos trazem grandes benefı́cios à sociedade em geral. Exemplos
destes benefı́cios são: equipamentos automatizados, novas vacinas e curas para doenças, até
então, ditas incuráveis, aperfeiçoamento dos meios de transporte e das técnicas aplicadas em
construção civil, e até mesmo no campo da biologia encontra-se a utilização destes benefı́cios
trazidos pelos avanços tecnológicos.
O ramo da robótica é uma das áreas de estudo que vem contribuindo, significativamente,
para que os seres humanos possam realizar tarefas que antigamente eram praticamente
impossı́veis, manualmente, e que hoje são realizadas de maneira rápida e eficaz, com a ajuda de
equipamentos robotizados.
Um exemplo de aplicação clássico da robótica é o manipulador industrial utilizado nas
indústrias automobilı́sticas, que consegue realizar o trabalho de fabricar um automóvel de
passeio de maneira rápida e precisa, chegando a produzir, em série e com perfeição, uma média
de cento e cinco mil unidades por mês (ANTT, 2010). Esta quantidade não poderia ser alcançada
por linhas de produção com sistemas mecânicos tradicionais, devido às limitações impostas,
principalmente, pela manipulação humana no maquinário.
Outras aplicações em que os robôs manipuladores se destacam, são as tarefas em área
classificada, ambientes de difı́cil acesso ou até mesmo ambientes hostis onde é grande o
risco oferecido aos seres humanos, impossibilitando que tais tarefas possam ser realizadas
manualmente. Um exemplo deste tipo de aplicação é o robô MER-B (Opportunity) que
explora o solo do planeta Marte, coletando amostras de rocha e fotografando o solo marciano.
Inicialmente a proposta era que o robô permanecesse em solo marciano por apenas três meses,
porém ele está completando dois anos em plena atividade.
Robôs inspetores, robôs desarmadores de bombas, robôs exploradores de terrenos
acidentados e outros tipos existentes, já são comercializados mundialmente, porém, destes
citados acima, nenhum possui tecnologia genuinamente desenvolvida no Brasil.
É possı́vel adquirir um robô móvel manipulador de objetos, mas, são poucas empresas
brasileiras que comercializam equipamentos e soluções na área de robótica móvel, obrigando
os clientes a buscarem soluções importadas.
No Brasil e, mais especificamente, na Bahia, trabalhos de pesquisa e desenvolvimento na
área de Robótica Móvel são considerados pioneiros e podem trazer grandes benefı́cios para o
desenvolvimento sócio-econômico do paı́s. Um dos grandes objetivos do desenvolvimento de
9
tecnologia na área de robótica móvel na Bahia é a popularização de soluções de automação para
sistemas mecânicos, tornando o preço acessı́vel para a aquisição de equipamentos robotizados,
e por conseqüência, barateamento no custo da produção de novos produtos e aumento na
velocidade de produção.
O desenvolvimento de um manipulador robotizado por si só não confere a uma região
o sucesso total em termos de avanço tecnológico, porém é um passo inicial para abrir novas
pesquisas na área e agregar novos interessados em investimento tecnológico da região.
Este trabalho trata da análise, desenvolvimento e teste de um robô móvel manipulador
de objetos onde nos primeiros tópicos serão abordadas todas as técnicas necessárias para
o entendimento do funcionamento de um robô, detalhando seus tipos, partes constituintes
inclusive com noções introdutórias sobre conceitos básicos de robótica que serão necessários
ao entendimento do projeto como um todo.
Nos tópicos seguintes serão apresentados detalhes sobre a modelagem matemática para
robôs móveis e manipuladores que servirá de base para a implementação dos algoritmos que
controlam o seu funcionamento, além de detalhes sobre a cinemática aplicada para o projeto de
robôs.
Nos tópicos finais da fundamentação teórica será apresentado o robô AL5C com o
Kit Tri-Track Robot do fabricante Linx Motion, com informações sobre os algoritmos que se
pretende implementar para seu devido funcionamento.
E por final, de maneira resumida, serão apresentados os objetivos já alcançados no projeto
do robô móvel manipulador de objetos, finalizando com uma análise conclusiva a respeito deste
projeto.
10
2
FUNDAMENTAÇÃO TEÓRICA
Este tópico trata de todo o embasamento teórico necessário para o estudo do
desenvolvimento de aplicações que utilizem robôs móveis e manipuladores robóticos.
Serão mostrados a seguir conceitos e técnicas utilizadas, que serão de suma importância
para o entendimento dos cálculos e decisões de projetos realizados nas fases subseqüentes.
2.1
Estrutura dos Sistemas Robóticos
Um sistema robótico, seja ele projetado por engenheiros, pesquisadores ou estudantes
no campo da robótica, mecatrônica ou inteligência artificial, deve possuir uma estrutura básica
composta dos seguintes componentes (BRAGA, 2002):
• Sistema de Controle: determina a força, posição e velocidade dos seus componentes
móveis a partir de sinais obtidos do sistema inteligente ou mesmo através de sinais
externos podendo ser oriundos também de sensores;
• Drivers: são dispositivos responsáveis pelo envio de informações oriundas do sistema
de controle para os atuadores. Eles são responsáveis por realizar a compatibilização dos
sinais de tal forma que os mais diferentes tipos de atuadores possam ser controlados;
• Atuadores: são equipamentos capazes de converter a energia elétrica fornecida pelo
sistema de alimentação e controladas pelos drivers em movimento mecânico;
• Sensores: são responsáveis por adquirir (sentir) o ambiente ou até mesmo as condições
atuais do próprio sistema robótico, funcionando como feedback para o sistema de
inteligência;
• Sistema de Inteligência: é considerado o centro de processamento do sistema robótico,
pois é nele que são processadas as informações obtidas pelos sensores e são deliberadas
ações em forma de sinais para o sistema de controle.
Um sistema que possui inteligência é capaz de tomar suas próprias decisões ou até mesmo
armazenar experiência adquirida através de um supervisor, a qual será de grande utilidade para
a tomada de decisões futuras.
11
Um sistema robótico pode ainda receber estı́mulos externos de outros sistemas via
interface de comunicação ou de um ser humano utilizando um joysticks ou rádio-controle.
Além dos componentes citados, os sistemas robóticos devem possuir também, algum
equipamento que lhe forneça energia, seja ela através de baterias ou uma fonte de alimentação
externa, os quais devem ser devidamente projetados para suportar a carga do somatório das
potências dos sub-sistemas.
Devido ao fato de um sistema robótico ser composto por vários sub-sistemas
especializados em realizar uma dada tarefa componente para o funcionamento do robô, algumas
literaturas classificam os robôs como Sistemas Embarcado.
A figura 1 demonstra, de maneira resumida, a estrutura básica de um sistema robótico.
Figura 1: Estrutura de Dispositivos Robóticos (FORESTI, 2006)
2.2
Classificação dos Robôs
Existem vários tipos diferentes de classificações apresentados na literatura para os robôs.
Eles podem ser classificados quanto a Geração, quanto ao Nı́vel de Inteligência, quanto ao Nı́vel
de Controle da Programação e quanto a Linguagem de Programação.
12
2.2.1
Classificação Cronológica
Cronologicamente os robôs são classificados em:
• 1a Geração: são os robôs executores: repetem uma seqüência de instruções pré-gravada;
• 2a Geração: robôs controlados por sensores: possuem malhas fechadas de realimentação
sensorial;
• 3a Geração: robôs controlados por visão: a malha fechada possui um sistema de visão
(processamento de imagens);
• 4a Geração: robôs com controle adaptativo: o robô pode reprogramar as suas ações com
base nos seus sensores;
• 5a Geração: robôs com inteligência artificial: usa técnicas de inteligência artificial para
tomar as suas decisões e até resolver problemas.
2.2.2
Classificação quanto ao Nı́vel de Inteligência
Os japoneses introduziram uma nova classificação para os tipos de robôs, o JIRA (Japan
Industrial Robot Association), através do seu conselho, considera que os robôs devem ser
distintos em:
• Dispositivos manuais: são aqueles operados por seres humanos com pouco ou nenhum
nı́vel de automatização;
• Robôs de sequência fixa: Realizam tarefas rı́gidas, pré-definidas na sua construção,
não podem ser reprogramados e na maior parte dos casos não possuem um sistema
computacional;
• Robôs de sequência variável: o operador humano pode mudar a seqüência de passos
realizada pelo robô com facilidade;
• Robôs executores: o operador humano guia o robô na execução de uma tarefa fixa
repetitiva;
• Robôs controlados numericamente: o operador fornece o programa do movimento, em
vez de ensiná-lo manualmente;
13
• Robôs inteligentes: percebem e interagem com alterações no ambiente em que está
imerso.
2.2.3
Classificação quanto ao Nı́vel de Controle da Programação
• Inteligência artificial: instruções de alto nı́vel são decompostas pelo sistema em funções
de mais baixo nı́vel;
• Modo de controle: os movimentos do sistema são modelados incluindo as interações
dinâmicas entre os diferentes mecanismos;
• Servo-sistema: os atuadores controlam os parâmetros do dispositivo usando os dados
sensoriais nas malhas de controle.
2.2.4
Classificação quanto a Linguagem de Programação
• Sistemas guiados: o operador humano indica quais os movimentos o robô deverá fazer;
• Programação ao nı́vel do robô: o utilizador escreve um programa para especificar a
seqüência de movimento que o robô terá que executar;
• Programação ao nı́vel da tarefa: o programador especifica apenas as ações a tomar
sobre os objetos que o robô manipulará.
2.3
Categorias Básicas dos Robôs
Além das mais diversas formas de classificação para os robôs apresentadas pelas
literaturas, os robôs podem ainda ser divididos em duas categorias básicas que são: os
manipuladores e os veı́culos auto-guiados.
14
2.3.1
Robôs Manipuladores
Consiste em um braço mecânico motorizado programável que apresenta algumas
caracterı́sticas antropomórficas e um cérebro na forma de um computador que controla seus
movimentos (ROSáRIO, 2005).
Em analogia ao braço o humano, o manipulador executa movimentos das suas partes
constituintes, segundo uma pré-programação armazenada no seu sistema de controle e pode
repeti-las fielmente indefinidamente, bastando que seja programado para tal.
Caracterı́sticas mais detalhadas sobre os manipuladores serão abordadas em tópicos
posteriores.
2.3.2
Veı́culos Auto-Guiados
Classificação para os robôs móveis de acordo com o ambiente em que estão inseridos e
suas respectivas missões a serem executadas (VALAVANIS; GRACANIN, 1997).
Podem ser subdivididos em:
• Veı́culos Submarinos Não Tripulados: são utilizados para realizar tarefas subaquáticas
em dutos, lagos e represas; trabalhos em profundidade; exploração de petróleo; inspeção e
conserto de cabos submarinos e outras atividades. A sua formação estrutural deve permitir
uma boa vedação e possuir resistência a altas pressões devido ao ambiente em que irão
trabalhar;
• Veı́culos Aéreos Não Tripulados: inicialmente projetado para fins militares, os veı́culos
aéreos são utilizados para mapeamento de território, reconhecimento de desastres
naturais, inspeções de redes de energia elétrica e outras atividades ligadas ao fato deste
equipamento poder realizar vôos coordenados por um sistema de controle normalmente
embutidos na sua própria estrutura;
• Veı́culos Terrestres Não Tripulados: utilizados para realizar tarefa em solo, geralmente
onde a presença do ser humano não é aconselhado devido ao risco apresentado pelo
ambiente hostil, também são muito utilizados em (chão de fabrica) para realizar tarefas
repetitivas e de alta precisão.
Poderá ser utilizado também no desarmamento de
bombas ou até mesmo para fins de exploração de terrenos, neste último caso recebem
a nomenclatura de robôs exploradores.
15
Os robôs exploradores serão melhor abordados nos tópicos posteriores pelo fato de serem
um dos objetos de estudo deste documento.
2.4
Aspectos Construtivos de Robôs Manipuladores
Como citado anteriormente os manipuladores robóticos possuem caracterı́sticas
construtivas análogas ao braço de um ser humano, entretanto diferencia-se, pois manipulador
é constituı́do por peças mecânicas e possui seus movimentos relativos controlados por um
equipamento computacional.
Os manipuladores são normalmente formados por um conjunto de corpos rı́gidos ligados
em série por intermédio de juntas rotativas ou prismáticas, formando uma cadeia cinemática
aberta, onde uma das extremidades do manipulador encontra-se rigidamente ligada a uma base
fixa, enquanto que a extremidade oposta suporta o efetuador que pode mover-se livremente no
espaço (LOPES, 2001).
Este tipo de robô é muito utilizado na indústria para realizar montagens em linhas
de produção que necessite de uma alta precisão e fidelidade na repetição dos movimentos.
Trabalhos de soldagem por resistência por pontos, soldagem por arco, corte e pintura de peças
complexas, manipulação, paletização de materiais, montagem e acabamento são exemplos
destas aplicações. A figura 2 apresenta um manipulador robótico, destacando suas partes
constituintes.
Figura 2: Manipulador Robótico (BARRIENTOS et al., 1997)
16
2.4.1
Juntas Robóticas
O braço robótico é capaz de se mover em varias direções devido à existência de juntas ou
uniões também denominadas de “eixos”. O movimento das juntas robóticas pode ser linear ou
rotacional.
O termo grau de liberdade aplicado aos manipuladores refere-se ao número de eixos que
o braço possui, normalmente variam entre três e seis, os quais podem ser divididos em duas
classes: eixos do corpo e eixos da extremidade do robô (ROSáRIO, 2005).
Os tipos de juntas robóticas mais comuns são:
• Juntas Deslizantes: permitem o movimento linear entre dois elos e são compostas de
dois vı́nculos alinhados um dentro do outro; o vinculo interno desliza em relação ao
externo e dá origem ao movimento linear;
• Juntas Rotacionais: possibilita o movimento de rotação entre dois elos unidos por uma
dobradiça comum. As juntas rotacionais são utilizadas em equipamentos ou ferramentas
tais como em tesouras, limpadores de pára-brisa e dobradiças de portas;
• Juntas tipo Bola-e-encaixe: promovem o movimento como a combinação de três juntas
rotacionais, permitindo movimentos de rotação em torno dos três eixos.
2.4.2
Elos ou Vı́nculos
São peças rı́gidas que interligam duas juntas e funcionam como a estrutura fı́sica do
próprio braço robótico, também são conhecidos com a nomenclatura de links devido ao fato de
permitirem a ligação entre estas juntas (ROSáRIO, 2005).
Geralmente os elos são feitos de material rı́gidos projetados para suportar as cargas à qual
o robô foi projetado para manipular.
2.4.3
Graus de Liberdade
O número do grau de liberdade de um braço robótico geralmente esta associado com a
quantidade de articulações. Logo, quando o movimento relativo se dá em um único eixo tem-se
17
então um grau de liberdade. Quando o movimento acontece em mais de um eixo, a articulação
apresenta dois graus de liberdade. Grande parte dos braços robóticos industriais possui entre
quatro e seis graus de liberdade (ROSáRIO, 2005).
2.5
Aspectos Construtivos de Robôs Exploradores
Os robôs exploradores são uma subcategoria dos robôs móveis, ou ainda, conhecidos
como, veı́culos auto-guiados para fins de exploração. Este tipo de robô se diferencia dos
manipuladores pelo fato de poderem se locomover dentro de um ambiente livre, não sendo
limitado por uma posição fixa imposto por sua base como no caso dos braços robóticos
(FORESTI, 2006).
Na maior parte dos casos os robôs exploradores são utilizados para realizar tarefas em
locais insalubres, de difı́cil acesso ou que ofereçam risco de vida para o ser humano.
No caso dos veı́culos marı́timos, eles possuem sistemas de propulsão para mergulho,
especı́fico para a sua atividade e no caso dos veı́culos auto-guiados aéreos, possuem artifı́cios
que o permita voar, tão qual como um avião ou helicóptero, porém, mais detalhes sobre essas
tecnologias não serão abordados neste documento, devido ao fato de se distânciarem da proposta
do projeto de um robô que executará tarefas, meramente terrestres.
Os veı́culos auto-guiados terrestres ou veı́culos exploradores terrestres, possuem sistema
de locomoção equipados com rodas ou com esteiras e possuem formato semelhante aos veı́culos
tradicionais com as rodas laterais dispostas em duas linhas ou poderiam ser formados ainda por
três rodas como em um veı́culo do tipo triciclo.
O tamanho das rodas do robô explorador influencia diretamente na velocidade que ele
pode alcançar e a medida da distância percorrida poderá ser medida através de um odômetro,
porém estas medidas às vezes possuem alguns pequenos erros de aproximação por causa da
derrapagem das rodas durante o percurso (MCCOMB, 2004).
Por outro lado, os robôs móveis dotados de esteiras, apesar de possuı́rem basicamente o
mesmo aspecto dos robôs compostos de rodas, as suas esteiras lhe permitem transpor obstáculos
com maior facilidade, portanto são utilizados em terrenos acidentados e pantanosos. A Figura 3
mostra um robô móvel com sistema de locomoção por esteiras para fins militares, o MATILDA.
Além dos tipos citados anteriormente, existem, ainda, os robôs móveis com sistema de
locomoção por pernas articuladas. O controle de sistemas de locomoção por pernas é bastante
complexo, chegando a possuir 18 graus de liberdade, no caso dos hexápodes, que são robôs
com seis pernas no formato de um inseto.
18
Figura 3: Robô militar com esteiras (MATILDA, 2010)
A partir do século XX, deu-se o surgimento dos robôs com locomoção por duas pernas,
eles são chamados de robôs bı́pedes e se aproximam muito das caracterı́sticas de locomoção do
homem.
2.6
Modelagem Cinemática de Robôs Manipuladores
Para o projeto e construção de robôs manipuladores torna-se necessário modelá-los
matematicamente para definir o comportamento das suas partes constituintes de maneira precisa
e inter-relacionadas.
A Cinemática dos robôs manipuladores tem como objetivo estudar o movimento dos
mesmos em relação a um sistema de referência. Assim, a cinemática se interessa pela descrição
analı́tica do movimento do robô como uma função do tempo e, em particular, com a posição e
orientação do efetuador em relação aos valores adotados pelas suas articulações intermediárias.
Existem dois problemas a resolver quando se estuda a modelagem cinemática de um
robô, o primeiro deles é conhecido como Cinemática Direta, e consiste em determinar qual a
posição e orientação da extremidade final do robô em relação a um sistema de coordenadas
tomado como referência.
O segundo problema é chamado de Cinemática Inversa, que diz respeito à configuração
que o robô deve adotar para uma posição e orientação da extremidade conhecida.
Denavit e Hartenberg em 1955, propuseram um método sistemático para descobrir e
representar a geometria espacial dos elementos de uma cadeia cinemática e em particular de um
robô, com relação a um sistema de referencia fixo.
19
Figura 4: Relação entre Cinemática Direta e Inversa (BARRIENTOS et al., 1997)
2.6.1
Notação de Denavit-Hartenberg
Em um robô, a evolução das coordenadas das juntas em relação ao tempo representa
o modelo cinemático de um sistema articulado no espaço tridimensional.
A notação de
Denavit-Hartenberg (DH) é uma ferramenta utilizada para sistematizar a descrição cinemática
de sistemas mecânicos articulados com n graus de liberdade (DENAVIT, 1955).
A representação DH de um elo rı́gido depende de quatro parâmetros a ele associados,
os quais descrevem completamente o comportamento cinemático de uma junta prismática ou
rotacional. Na Figura 5 são indicados os parâmetros, para uma melhor visualização, conforme
abaixo definidos (ROSáRIO, 2005):
• θi : é o ângulo de junta obtido entre os eixos Xi−1 e Xi no eixo Zi−1 (usando-se a regra da
mão direita);
• di : é a distância entre a origem do (i-1)-ésimo sistema de coordenadas até a intersecção
do eixo Zi−1 com o Xi ao longo do eixo Zi−1 ;
• ai : é a distância (off-set) entre a intersecção do eixo Zi−1 com o eixo Xi até a origem do
i-ésimo sistema de referência ao longo do eixo Xi (ou a menor distância entre os eixos
Zi−1 e Zi );
• αi : é o ângulo (off-set) entre os eixos Zi−1 e Zi medidos no eixo Xi (usando-se a regra da
mão direita).
Para uma junta rotacional, di , ai e αi são os parâmetros de junta, cujo valor varia na
rotação do elo i em relação ao elo i-1. Para uma junta prismática θi , ai e αi são os parâmetros
da junta, enquanto di é a variável de junta (deslocamento linear).
20
Figura 5: Notação Denavit Hartenberg (ROSáRIO, 2005)
Com os sistemas de coordenada DH estabelecidos, uma matriz de transformação
homogênea pode facilmente ser desenvolvida relacionando-se o i-ésimo ao (i-1)-ésimo frame
de coordenadas. Como demonstra a Equação 2.1.


cosθi −cosαi senθi senαi senθi ai cosθi


senθ cosα senθ −senα cosθ a senθ 
i
i
i
i
i
i
i


i−1
Ai = 

 0

senα
cosα
d
i
i
i


0
0
0
1
2.6.2
(2.1)
Cinemática Direta
A modelagem cinemática direta se utiliza, fundamentalmente, da álgebra vetorial e
matricial para representar e descrever a localização de um objeto no espaço tridimensional
em relação a um referencial fixo. Visto que um robô pode ser considerado como uma cadeia
cinemática formada por objetos rı́gidos, “os elos” unidos entre si, através de articulações, se
pode estabelecer um sistema de referência fixo na base do robô e descrever a posição dos elos
e juntas em relação a este dado sistema de referência. Desta maneira a cinemática direta se
resume a encontrar uma matriz homogênea de transformação “T” que relacione a extremidade
21
do robô em relação a referência fixa situada na base do mesmo. Esta matriz “T” será função das
coordenadas articulares (BARRIENTOS et al., 1997).
Para um braço robótico com seis graus de liberdade, a matriz “T” será formada pela
multiplicação das matrizes de transformação de cada eixo referencial, como mostra a Equação
2.2.
T =0 A6 =0 A1
1
A2
2
A3
3
A4
4
A5
5
A6
(2.2)
A matriz de transformação homogênea 0 A1 representa a localização de um ponto do
referencial 1 em relação ao referencial 0 (referencial da base), de maneira análoga uma matriz
0A
3
representaria as coordenadas de um ponto do referencial 3 nas coordenadas do referencial 0
(referencial da base), logo, com a matriz T = 0 A6 se tem a posição e orientação da extremidade
representadas nas coordenadas da base (BARRIENTOS et al., 1997).
2.6.3
Cinemática Inversa
O objetivo da modelagem cinemática inversa consiste em encontrar os valores que devem
adotar as coordenadas articulares do robô para que a sua extremidade se posicione e oriente
segundo uma determinada localização espacial.
Assim como é possı́vel adotar o problema da cinemática direta de uma maneira
sistemática a partir da utilização de matrizes de transformação homogênea e independente da
configuração do robô, não ocorre o mesmo com a modelagem cinemática inversa, sendo o
procedimento de obtenção das equações fortemente dependente da configuração do robô.
A modelagem cinemática inversa pode ser resolvida basicamente através de três métodos:
analiticamente, fazendo-se manipulações matemáticas nas equações obtidas para o modelo
cinemático direto; geometricamente, realizando cálculos sobre as relações trigonométricas no
modelo fı́sico do robô; ou numericamente, aplicando-se um método iterativo para aproximar os
valores dos ângulos a serem encontrados (BARRIENTOS et al., 1997).
2.6.4
Cinemática Diferencial
O modelo matemático de um robô busca as relações entre as variáveis articulares e a
posição e orientação da extremidade do robô. Nesta relação não é levado em conta às forças
22
que atuam sobre o mesmo e que podem gerar movimento. Para resolver tal problema torna-se
necessário conhecer a velocidade diferencial de cada articulação de modo que possa ser gerada
uma trajetória suave e possı́vel de ser realizada (CRAIG, 1989).
Para este fim, é de grande utilidade dispor de uma relação entre as velocidades das
coordenadas articulares e as posições e orientações do extremo do robô. A relação entre os
vetores de velocidade se obtém através da denominada Matriz Jacobiana (CRAIG, 1989).
A matriz jacobiana direta permite conhecer as velocidades do extremo do robô a partir das
velocidades de cada articulação. Por outro lado, a matriz jacobiana inversa permitirá conhecer
as velocidades articulares necessárias para obter uma determinada velocidade no extremo do
robô (CRAIG, 1989).
2.6.5
Geração de Trajetória
Definir configurações especı́ficas dos ângulos de um manipulador robótico, por si só,
não é suficiente para realizar a sua movimentação, para tal, além da definição dos dois pontos
(origem e destino) será necessário especificar quais os pontos intermediários que o robô deve
adotar para conseguir alcançar o seu destino (CRAIG, 1989).
A geração de uma trajetória, preferencialmente suave, é de grande importância para a
precisão do movimento dos braços robóticos e existem algumas técnicas para esta realização:
• Trajetória Retilı́nea: consiste em calcular os pontos que pertencem a uma reta que passa
pelos pontos de origem e destino. Esta técnica é bastante rudimentar e só permite que o
braço robótico se movimente em linha reta;
• Trajetória Polinomial: consiste na utilização de um polinômio interpolador. Dados
dois pontos no espaço, um de origem e outro de destino, poderá ser calculado os valores
intermediários, através da utilização de uma função matemática que suaviza a trajetória
de acordo com um polinômio escolhido.
Utilizando-se um polinômio interpolador de segundo grau, então será obtido uma
parábola que liga os dois pontos (origem e destino), por outro lado, caso seja escolhido um
polinômio interpolador de terceiro grau, então a trajetória entre estes dois pontos será no
formato de uma função cúbica com dois pontos de inflexão, o que evita os movimentos bruscos
de uma trajetória retilı́nea (CRAIG, 1989).
A Equação 2.3 mostra um exemplo generalizado de polinômio interpolador cúbico que
pode ser utilizado para calcular as posições instantâneas da trajetória de um manipulador
23
robótico, onde através do cálculo da primeira derivada deste polinômio obtém-se a velocidade
instantânea (CRAIG, 1989).
Calculando a segunda derivada deste mesmo polinômio interpolador poderá ser obtida a
aceleração instantânea para o braço robótico.
f (t) = a0 + a1t + a2t 2 + a3t 3
2.7
2.7.1
(2.3)
Comunicação Serial - RS232
Conceito de Comunicação de Dados
Em um computador, a distância que um sinal pode percorrer varia de alguns milı́metros,
quando essa comunicação se dá entre dois circuitos integrados, até centı́metros, no caso da
comunicação entre os dispositivos periféricos, como aquela realizada entre uma placa e o disco
rı́gido ou entre uma memória e o processador (BARCELOS, 2010).
Algumas vezes a comunicação deve ser realizada com outros componentes que estão
fora dos circuitos que constituem o computador. Nesses casos as distâncias envolvidas podem
ser enormes e então surgem vários problemas que dificultam a transmissão de dados de
maneira precisa. Embora alguns cuidados devam ser tomados na troca de dados dentro de
um computador, o grande problema ocorre quando dados são transferidos para dispositivos fora
dos circuitos do computador. Nesse caso a distorção e o ruı́do podem tornar-se tão severos que
a informação é perdida (BARCELOS, 2010).
A Comunicação de Dados estuda os meios de transmissão de mensagens digitais
para dispositivos externos ao circuito originador da mensagem. Dispositivos Externos são
geralmente circuitos com fonte de alimentação independente dos circuitos relativos a um
computador ou outra fonte de mensagens digitais. Como regra, a taxa de transmissão máxima
permissı́vel de uma mensagem é diretamente proporcional a potência do sinal, e inversamente
proporcional ao ruı́do. A função de qualquer sistema de comunicação é fornecer a maior taxa de
transmissão possı́vel, com a menor potência e com o menor ruı́do possı́vel (BARCELOS, 2010).
24
2.7.2
Canal de Comunicação
Um canal de comunicação é definido como sendo o meio pelo qual a informação trafega.
A comunicação pode ser realizada por um canal fı́sico (fio) ou por algum meio de propagação
através de energia radiante, como por exemplo ondas de rádio ou um feixe de laser.
Normalmente o canal de comunicação é classificado de acordo com a direção em que a
informação trafega. Na comunicação por canal simplex, a informação tem um único sentido de
tráfego, por outro lado, caso a comunicação aconteça em duplo sentido no canal, este canal será
classificado como, canal half-duplex, porém, neste caso, a comunicação nos dois sentidos não
pode acontecer simultaneamente. Já no caso dos canais full-duplex, os dados podem trafegar
nos dois sentidos simultaneamente.
Em comunicação digital, a informação é representada por bits de dados individuais,
que podem ser encapsulados em mensagens de vários bits.
Um byte (conjunto de 8
bits) é um exemplo de uma unidade de mensagem que pode trafegar através de um canal
digital de comunicações. Uma coleção de bytes pode ser agrupada em um frame ou outra
unidade de mensagem de maior nı́vel. Esses múltiplos nı́veis de encapsulamento facilitam o
reconhecimento de mensagens e interconexões de dados complexos (BARCELOS, 2010).
2.7.3
Processo de Transmissão Serial
A maioria das comunicações em sistemas digitais é formada por um grande número
de bits, o que torna inviável transmiti-los simultaneamente, portanto, uma mensagem quando
deve ser enviada por um canal de comunicação, ela é quebrada em pequenas partes e enviadas
seqüencialmente (BARCELOS, 2010).
Na comunicação bit-serial, as mensagens são quebradas em bits e eles são enviados um
a um, pelo canal. Este tipo de transmissão é mais conhecida sobre o nome de transmissão serial
e, é utilizada pela maior parte dos sistemas digitais e periféricos de computadores (BARCELOS,
2010).
No outro lado da comunicação, ou seja, no equipamento receptor, os bits são rearranjados
para compor a mensagem original.
A transmissão serial pode ser realizada utilizando-se duas técnicas: Transmissão
Sı́ncrona e Transmissão Assı́ncrona (BARCELOS, 2010).
• Transmissão Sı́ncrona: nesta técnica é utilizado um canal exclusivo de clock, para
25
transmitir informações de temporização, fazendo com que o receptor consiga identificar
quando exatamente começa um pacote de dados e quando o mesmo termina. Um segundo
canal é utilizado para o tráfego dos dados, respeitando os sinais de temporização que
ocorrem em paralelo no canal citado anteriormente;
• Transmissão Assı́ncrona: é realizada através de um único canal. O transmissor e o
receptor devem ser previamente configurados, dando assim a possibilidade da troca de
mensagens sem grandes perdas de dados. Para este tipo de transmissão, os dados são
divididos em pacotes de 10 ou 11 bits, dos quais somente oito constituem a mensagens.
Os bits restantes servem para o controle de inicio e fim de pacote assim como informações
relativas à integridade do pacote (paridade). Quando o canal está em repouso, o sinal
correspondente no canal tem um nı́vel lógico ‘1’. Um pacote de dados sempre começa
com um nı́vel lógico ‘0’ (“start bit”) para sinalizar ao receptor que uma transmissão foi
iniciada. O “start bit” inicializa um temporizador interno no receptor avisando que a
transmissão começou e que serão necessários pulsos de clock. Seguido do “start bit”, 8
bits de dados de mensagem são enviados na taxa de transmissão especificada. O pacote é
concluı́do com os bits de paridade e de parada “stop bit”.
A Figura 6 mostra o formato tı́pico para o pacote na transmissão assı́ncrona.
Figura 6: Formato tı́pico de um pacote serial assı́ncrono (BARCELOS, 2010)
26
2.7.4
Taxa de Transferência (Baud Rate)
O termo taxa de transferência refere-se à velocidade com que a comunicação acontece,
ou seja, a relação entre o tempo gasto e a distância que uma mensagem leva para ser transmitida,
e é medida em transições elétricas por segundo (BARCELOS, 2010).
No padrão de comunicação EIA232, a cada transição elétrica, um único bit é enviado,
logo, a taxa de transferência e a taxa de bits são idênticas, portanto nesse caso, uma taxa de
9600 bauds corresponde a uma transferência de 9600 dados por segundo, ou um perı́odo de
aproximadamente, 104 µs (1/9600 s) (BARCELOS, 2010).
2.7.5
Checksum e Paridade
Distúrbios e ruı́dos gerados ao longo do canal de comunicação podem interferir na
qualidade dos dados transmitidos, fazendo com que o receptor receba mensagens incorretas
ou com perda de dados. Para amenizar este tipo de situação, geralmente é implementado uma
técnica de detecção e/ou correção de erros (BARCELOS, 2010).
Para cada pacote enviado é adicionado ao seu final, um bit de paridade, que garante
na maioria dos casos a integridade dos dados recebidos, realizando-se apenas uma simples
verificação.
Na convenção de paridade-par (“even-parity”), o valor do bit de paridade é escolhido de
tal forma que o número total de dı́gitos ‘1’ dos dados adicionado ao bit de paridade do pacote
seja sempre um número par. Na recepção do pacote, a paridade do dado precisa ser computada
novamente pelo hardware local e comparada com o bit de paridade recebido com os dados. Se
qualquer bit mudar de estado, a paridade não irá coincidir, e um erro será detectado. Se um
número par de bits for trocado, a paridade coincidirá e o dado com erro será validado. Contudo,
uma análise estatı́stica dos erros de comunicação de dados tem mostrado que um erro com bit
simples é muito mais provável que erros em múltiplos bits na presença de ruı́do randômico.
Portanto, a paridade é um método confiável de detecção de erro (BARCELOS, 2010).
Outro método de detecção de erro envolve o cálculo de um “checksum” quando
mensagens com mais de um byte são transmitidas pelo canal de comunicação. Nesse caso,
os pacotes que constituem uma mensagem são adicionados aritmeticamente. Um número de
checksum é adicionado a seqüência do pacote de dados de tal forma que a soma dos dados mais
o checksum é zero (BARCELOS, 2010).
27
2.7.6
Interface Serial RS232
A comunicação serial utilizando a interface serial RS232, possui uma série de
especificações para compatibilizar e padronizar como será realizada a transmissão dos dados
(BARCELOS, 2010).
A sigla RS significa “Recomended Standard”, e teve origem em 1969, criada por um
comitê, conhecido nos dias de hoje com o nome de EIA (Electronic Industries Association).
Atualmente os sinais implementados e sua forma de utilização são muito pouco semelhantes à
especificação original (BARCELOS, 2010).
O padrão RS232, desde que foi concebido, sofreu três grandes modificações, sendo que
a mais recente, em 1991, modificou o nome do padrão para EIA232, renomeou alguns dos seus
sinais e várias linhas novas foram definidas (BARCELOS, 2010).
A transmissão serial utilizando a interface RS232 se dá através da sinalização por tensão,
onde o nı́vel lógico alto é representado através de um valor de tensão que esteja dentro da faixa
de -3V até -25V e o nı́vel lógico baixo por sua vez é representado por um nı́vel de tensão entre
+3V até +25V.
Os equipamentos que trabalham com nı́vel lógico TTL (Transistor-Transistor Logic),
devem possuir um conversor de nı́veis, como por exemplo, o circuito integrado MAX232, que
normaliza os nı́veis de tensão para 0v até +5V.
Uma descrição breve dos sinais para a interface serial utilizando um conector do tipo
DB9 poderá ser vista na Tabela 1 e sua respectiva ilustração na Figura 7.
Figura 7: Conector DB9 (BARCELOS, 2010)
28
Tabela 1: Comunicação Serial - RS232C - Pinagem DB9 (BARCELOS, 2010)
Pino Sinal
2.7.7
Sentido Descrição
1
CD (Carrier Detect)
Entrada
DCE avisa quando recebe sinal
de que dados estão a caminho
2
RD (Receive Data)
Entrada
Recebe dados enviados pelo DCE
3
TD (Transmit Data)
Saı́da
Transmite dados para o DCE
4
DTR (Data Terminal Ready) Saı́da
5
Signal Ground
6
DSR (Data Set Ready)
Entrada
DCE avisa quando conseguiu
estabelecer canal de comunicação
7
RTS (Request to Send)
Saı́da
DTE pede permissão para enviar dados
8
CTS (Clear to Send)
Entrada
DCE permite que DTE envie dados
9
RI (Ring Indicator)
Entrada
DCE avisa que telefone está tocando
DTE avisa quando está pronto para
comunicar
Comunicação Serial em JAVA
Existem muitos dispositivos periféricos, externos ao computador, que utilizam a
comunicação serial como padrão para conectar-se a outros equipamentos. Exemplos destes
dispositivos são as impressoras, câmeras de vı́deo, scanners, plotters, robôs, telefones, entre
outros, que se utilizam do padrão de comunicação serial para enviar e receber dados de outros
dispositivos (SUN; ORACLE, 2010).
Para que estes equipamentos possam trocar informações corretamente é necessário que
ambos suportem o protocolo envolvido na comunicação, neste caso, o padrão serial RS232.
O desenvolvimento de um programa que implemente as regras do padrão de comunicação
pode ser desenvolvido utilizando-se uma linguagem de programação qualquer como JAVA, C,
C++ etc.
Para facilitar o controle da comunicação serial utilizando uma linguagem de mais
alto nı́vel, a SUN Microsystems, desenvolveu uma API (Application Programming Interface)
especı́fica para a comunicação serial utilizando a linguagem de programação JAVA (SUN;
ORACLE,
2010).
A API Javacomm, possibilita ao usuário implementar a comunicação entre dispositivos
seriais, abstraindo os detalhes de mais baixo nı́vel apresentados no padrão RS232.
29
A programação em JAVA utilizando a API Javacomm é baseada basicamente na classe
abstrata CommPort e nas suas duas sub-classes SerialPort e ParallelPort que descrevem os dois
principais tipos de portas encontrados nos computadores de uso geral (SUN, 2010).
A classe ComPort possui dois métodos muito importantes para o controle da
comunicação serial, são eles, o GetInpuStream e GetOutputStream, que de fato manipula os
dados no canal de comunicação (SUN, 2010).
Informações mais detalhadas sobre o funcionamento da API Javacomm podem ser
obtidos diretamente do site da SUN Microsystems.
30
3
METODOLOGIA
Após o esclarecimento na seção anterior sobre alguns conceitos fundamentais para a
construção deste projeto, será visto a seguir, como estes componentes serão associados para
compor a solução proposta a ser desenvolvida.
Inicialmente será apresentada uma sessão relativa ao cronograma de atividades para o
projeto, e em seguida serão detalhados somente os principais itens deste cronograma.
3.1
Cronograma de Atividades
Para a melhor organização do desenvolvimento do projeto, foi realizado um planejamento
em forma de cronograma, onde as tarefas foram divididas em etapas e agrupadas de acordo com
a área de estudo especı́fica, possibilitando assim, o acompanhamento e controle da evolução do
projeto ao longo do tempo.
As tarefas foram divididas em:
• Levantamento Bibliográfico: pesquisa em busca de livros e documentos que tratem
dos assuntos, manipuladores robóticos, robôs móveis, comunicação serial RS232,
programação serial utilizando a linguagem de programação JAVA, entre outros assuntos
que servem de auxı́lio teórico para o desenvolvimento do projeto como um todo;
• Modelagem Matemática:
desenvolvimento de modelos matemáticos relativos à
cinemática direta e inversa, tanto do manipulador robótico quanto do robô móvel, assim
como os cálculos necessários para a geração de trajetória dos mesmos;
• Comunicação Serial: estudo e implementação da comunicação serial entre o robô e o
computador, através da utilização da API de comunicação Javacomm;
• Testes pré-liminares da comunicação: realização de testes de movimentação do robô
através da comunicação serial;
• Validação da Modelagem Matemática:
verificação dos resultados obtidos pela
modelagem matemática, através da medição de pontos e ângulos no robô;
• Testes de Integração: teste da interação dos módulos implementados, para garantir o
correto funcionamento do robô. Os testes são realizados, pondo em funcionamento a
31
interface do usuário, a modelagem matemática e a comunicação serial, para verificar, de
maneira geral, o comportamento dos módulos implementados para o projeto.
3.2
Desenvolvimento e validação da Modelagem Matemática
A modelagem matemática consiste basicamente em realizar os cálculos relativos à
modelagem cinemática direta, inversa e a geração da trajetória.
Em seguida simular e comparar os valores obtidos através de medidas realizadas
diretamente no robô sobre valores de posições conhecidas, com os valores retornados pelos
cálculos das modelagens.
Como visto no capitulo referente a fundamentação teórica, a cinemática direta do robô
manipulador, ao receber como entrada, valores dos ângulos de junta de um manipulador,
irá retornar, como valor calculado, a posição em coordenadas cartesianas (x, y, z) para uma
determinada configuração destes ângulos de junta.
Por outro lado, a cinemática inversa, calcula os ângulos de junta, expressos no espaço de
juntas, a partir de um ponto (x, y, z), fornecido no sistema de coordenadas cartesianas.
A modelagem matemática para este projeto deve contemplar as seguintes atividades:
• Realização de medições no corpo do robô (manipulador), para a retirada dos parâmetros
de Denavit Hartenberg;
• Desenvolvimento das matrizes de transformação para a cinemática direta;
• Testes de transformação com ângulos conhecidos;
• Desenvolvimento das equações para o cálculo dos ângulos na cinemática inversa;
• Testes de transformação com pontos conhecidos;
• Desenvolvimento das equações para a geração de trajetórias, utilizar trajetória linear,
polinômio quadrático e polinômio cúbico;
• Implementação do algoritmo de geração de trajetória para conferir se os pontos gerados
formam a trajetória de acordo com o tipo de interpolação escolhida;
• Realização de medições no robô móvel para os cálculos utilizados na implementação da
cinemática do Kit Tri-Track Robot;
• Análise dos resultados obtidos na Modelagem Matemática.
32
3.3
Comunicação Serial
O controle do robô é feito utilizando-se o padrão RS232 de comunicação serial e através
do envio de comandos no formato pré-estabelecido para o circuito integrado da ATMEL,
que abriga um algoritmo desenvolvido pelo próprio fabricante do robô, o total controle do
posicionamento poderá ser atingido.
As atividades relativas à comunicação entre o software de controle e o robô devem conter
as seguintes tarefas:
• Instalação da API de comunicação Javacomm, preferencialmente na plataforma de
desenvolvimento Netbeans 6.5 ou superior;
• Implementação da configuração da comunicação serial;
• Implementação das rotinas para adequação ao protocolo da placa SSC32 (circuito
integrado da ATMEL);
• Testes de movimentação das juntas individuais;
• Testes dos limites dos ângulos alcançáveis pelas juntas do robô manipulador;
• Testes de movimentação das esteiras do Kit Tri-Track Robot.
3.4
Testes de Integração
Após o desenvolvimento de todos os módulos que constituirão o projeto global, realiza-se
os testes de integração, para garantir que a comunicação serial está funcionando corretamente
com a interface do usuário, a modelagem matemática está funcionando corretamente com a
comunicação serial, e assim realiza-se a compilação dos resultados alcançados e a avaliação da
necessidade de modificações no projeto, além de traçar metas futuras.
Para os testes de integração indica-se as seguintes atividades:
• Implementação das classes que realizarão a ligação entre os módulos de comunicação,
modelagem matemática e interface do usuário;
• Realização de testes de funcionamento, apenas do manipulador, objetivando a retirada de
um objeto de uma posição origem para uma posição destino, dentro do alcance do AL5C;
33
• Realização de testes de funcionamento, apenas do robô móvel Kit Tri-Track Robot,
objetivando a locomoção do robô de um ponto de origem para o um ponto de destino
dentro de um terreno plano e com limites bem definidos;
• Testes de funcionamento completo, verificando se o robô (AL5C + Kit Tri-Track Robot)
realiza a manipulação de um objeto movimentando tanto o manipulador, quanto o robô
móvel;
• Análise dos resultados obtidos e tabulação de resultados para comprovar o correto
funcionamento do projeto e alcance dos principais objetivos.
34
REFERÊNCIAS
ANTT. Agência Nacional de Transportes Terrestres. 2010. Disponı́vel em:
<http://www.antt.gov.br/aett/>. Acesso em: 06 Jul. 2010.
BARCELOS, A. F. Associação Educacional Dom Bosco. 2010. Disponı́vel em:
<http://www.professores.aedb.br/arlei/AEDB/Arquivos/rs232.pdf>. Acesso em: 09
Out. 2010.
BARRIENTOS, A. et al. Fundamentos de Robótica. 1. ed. Universidade Politécnica de
Madrid: Ed. Concepción Fernández Madrid, 1997.
BRAGA, N. C. Robotics Mechatronics and Artificial Inteligence: Experimental Circuit Blocks
for Designers. 1. ed. Worburn-MA-USA: Newnes, 2002. ISBN 0-7506-7389-3.
CRAIG, J. J. Introduction to Robotics: Mechanics and Control. 2. ed. Menlo Park-CA-USA:
McGraw-Hill, 1989.
DENAVIT, J. Description and displacement analysis of mechanics based on the 2x2 dual
matrices. 1. ed. University of Northwestern, Evanston: Cabletron Systems, 1955.
FORESTI, H. B. Desenvolvimento de um robô bı́pede autônomo. Universidade Federal de
Pernambuco, 2006.
LOPES, A. M. Robótica Industrial. 1. ed. Universidade do Porto: McGraw-Hill, 2001.
MATILDA. Robô militar com esteiras. 2010. Disponı́vel em: <http://static.hsw.com.br>.
Acesso em: 13 Jul. 2010.
MCCOMB, G. Constructing Robot Bases. 1. ed. New York-USA: McGraw-Hill, 2004.
ROSáRIO, J. M. Princı́pios de Mecatrônica. 1. ed. São Paulo: Prentice Hall, 2005.
SUN, M. API de comunicação Javacomm. 2010. Disponı́vel em:
<http://download.oracle.com/docs/cd/E1780201/products/products/javacomm/reference/api/index.html>.
Acesso em: 10 Out. 2010.
SUN, M.; ORACLE. Programming Serial and Parallel Ports. 2010. Disponı́vel em:
<http://java.sun.com/developer/Books/javaprogramming/cookbook/11.pdf>. Acesso em: 10
Out. 2010.
VALAVANIS, K.; GRACANIN, D. Control architectures for autonomous underwater vehicles.
1. ed. Ann Arbor-MI-USA: Control Systems Magazine, 1997.
Download

UNIVERSIDADE ESTADUAL DE FEIRA DE