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.