Ministério da Educação e do Desporto. Universidade Tecnológica Federal do Paraná. Departamento Acadêmico de Eletrônica. Diretoria de Ensino. Disciplina de Projeto Final II. Professor Wolney Edirley Gonçalves Betiol. ROBÔ HEXÁPODE ESCALADOR DE SUPERFÍCIES FERROMAGNÉTICAS Equipe: Carlos Augusto Luguesi Jean George Boss Marcos Vinícius Freitas Rafael José Daciuk Renato Leite Urzedo CURITIBA 2006 Carlos Augusto Luguesi Jean George Boss Marcos Vinícius Freitas Rafael José Daciuk Renato Leite Urzedo ROBÔ HEXÁPODE ESCALADOR DE SUPERFÍCIES FERROMAGNÉTICAS Trabalho apresentado para a disciplina de Projeto Final II, sob orientação do professor Wolney Edirley Goncalves Betiol, referente ao projeto de final de curso de Engenharia Eletrônica durante o segundo semestre letivo de 2005. Professor Orientador: Flávio Neves Jr., Dr. CURITIBA 2006 ii SUMÁRIO LISTA DE FIGURAS................................................................................................. VI LISTA DE TABELAS ................................................................................................ IX RESUMO ................................................................................................................... X ABSTRACT ............................................................................................................... X 1 INTRODUÇÃO ...................................................................................................1 1.1 ESCOPO ....................................................................................................1 1.2 JUSTIFICATIVA E MOTIVAÇÃO................................................................2 1.3 OBJETIVOS ...............................................................................................3 1.4 APRESENTAÇÃO DA ESTRUTURA DO RELATÓRIO .............................3 2 ESTUDO DO DOMÍNIO DO PROBLEMA ..........................................................5 2.1 HISTÓRICO DA ROBÓTICA......................................................................5 2.2 ROBÔS EXISTENTES ...............................................................................7 2.3 PROPRIEDADES INDUSTRIAIS .............................................................15 2.3.1 2.3.2 3 FIXADORES ELETROMAGNÉTICOS .....................................................16 ROBÔS ESCALADORES ....................................................................18 DESENVOLVIMENTO......................................................................................20 3.1 MODELAGEM DO SISTEMA ...................................................................20 3.1.1 DIAGRAMA DE CASOS DE USO ..........................................................20 3.1.1.1 Descrição dos Casos e Atores...............................................21 3.1.2 LEVANTAMENTO DAS CLASSES .........................................................22 3.1.3 DIAGRAMAS DE SEQUÊNCIA .............................................................24 3.1.4 ESPECIFICAÇÕES NÃO FUNCIONAIS ...................................................26 3.2 MODELAGEM DO MOVIMENTO DO ROBÔ ...........................................27 3.2.1 MODOS ..........................................................................................27 3.2.1.1 Modo Normal .........................................................................28 3.2.1.2 Modo Crab .............................................................................28 3.2.1.3 Modo Rotacionar ...................................................................28 3.2.2 MARCHAS .......................................................................................28 3.2.2.1 Marcha Wave.........................................................................29 3.2.2.2 Marcha Ripple........................................................................31 3.2.2.3 Marcha Tripod........................................................................32 3.2.2.4 Marcha Climb.........................................................................33 3.2.3 LIMITES ..........................................................................................34 3.2.4 EFEITO DE ARRASTE........................................................................36 3.2.5 CINEMÁTICA ....................................................................................39 3.2.5.1 Cálculo da Cinemática Direta ................................................42 iii 3.2.5.2 Cálculo da Cinemática Inversa ..............................................45 3.2.6 TRAJETO DAS PATAS .......................................................................47 3.3 MÓDULO MECÂNICO .............................................................................50 3.3.1 ESTUDO DA ESCALABILIDADE ...........................................................50 3.3.2 ESTRUTURA MECÂNICA DO ROBÔ .....................................................57 3.3.2.1 Chassis ..................................................................................58 3.3.2.2 Pernas ...................................................................................59 3.3.2.3 Peças.....................................................................................60 3.3.2.4 Composição do Material ........................................................60 3.3.2.5 Graus de Liberdade ...............................................................62 3.3.2.6 Servos ...................................................................................64 3.3.3 DECISÃO DO ROBÔ A SER COMPRADO ..............................................68 3.3.4 PATAS MAGNÉTICAS ........................................................................70 3.3.4.1 Requisitos ..............................................................................71 3.3.4.2 Soluções Apontadas..............................................................72 3.3.4.3 Estudo de ímãs permanentes ................................................76 3.3.4.4 Sistema de fixação empregado .............................................79 3.3.5 FIXAÇÃO DO CARRETEL À PATA .........................................................83 3.4 MÓDULO DE HARDWARE ......................................................................85 3.4.1 FONTE DE ALIMENTAÇÃO .................................................................85 3.4.2 CONTROLE .....................................................................................87 3.4.2.1 MotherBoard para o DSP TMS320C6711D ...........................89 3.4.2.2 DaughterBoard ......................................................................93 3.4.2.3 Placa de Acionamento dos Eletroímãs ..................................96 3.4.2.4 Módulo Conversor RS-232/RS-422 .......................................98 3.5 MÓDULO DE SOFTWARE ....................................................................101 3.5.1 PROJETO DO SOFTWARE SIMULADOR/CONTROLADOR(IHM)..............101 3.5.1.1 Diagrama de Casos de Uso.................................................101 3.5.1.1.1 Simulador..........................................................................102 3.5.1.1.2 Controlador .......................................................................104 3.5.1.2 Diagrama de Classes ..........................................................105 3.5.1.3 Diagramas de Seqüência ....................................................114 3.5.2 SOFTWARE SIMULADOR/CONTROLADOR DE ROBÔ HEXÁPODE..........120 3.5.2.1 Tecnologias Utilizadas .........................................................121 3.5.2.1.1 OPENGL (API)..................................................................121 3.5.2.1.2 COMPORT .......................................................................122 3.5.3 SOFTWARE TEMPO REAL .......................................................122 4 GESTÃO.........................................................................................................125 4.1 ANÁLISE INICIAL...................................................................................125 4.2 SISTEMAS E SUB-SISTEMAS ..............................................................128 4.3 CRONOGRAMA .....................................................................................129 4.4 RESPONSABILIDADE DAS AÇÕES E CUSTOS ..................................132 4.5 ANÁLISE DE RISCOS............................................................................134 4.6 CUSTOS FINANCEIROS .......................................................................134 5 PLANO DE NEGÓCIOS .................................................................................136 iv 5.1 RESUMO EXECUTIVO ..........................................................................136 5.2 DEFINIÇÃO DO NEGÓCIO: VISÃO, VALORES E DIFERENCIAIS ESTRATÉGICOS............................................................................................137 5.2.1 MISSÃO ........................................................................................137 5.2.2 VISÃO ..........................................................................................137 5.2.3 VALORES ......................................................................................138 5.2.4 DIFERENCIAIS ESTRATÉGICOS ........................................................138 5.3 OBJETIVO..............................................................................................138 5.3.1 OBJETIVO INTERMEDIÁRIO ..............................................................139 5.4 PRODUTOS E SERVIÇOS ....................................................................139 5.4.1 DESCRIÇÃO DO PRODUTO ..............................................................139 5.4.1.1 Análise do Usuário...............................................................140 5.4.2 ANÁLISE COMPARATIVA .................................................................141 5.4.3 TECNOLOGIA .................................................................................142 5.4.4 PRODUTOS E SERVIÇOS FUTUROS ..................................................144 5.5 ANÁLISE DE MERCADO .......................................................................145 5.5.1 SEGMENTAÇÃO DE MERCADO.........................................................145 5.5.1.1 Empresas da Área de Exploração Petrolífera......................145 5.5.1.2 Empresas Frotistas de Navios .............................................146 5.5.1.3 Empresas Especializadas em Inspeção ..............................146 5.5.2 SEGMENTO ALVO ..........................................................................147 5.5.3 NECESSIDADES DO MERCADO ........................................................147 5.5.4 TENDÊNCIAS DO MERCADO ............................................................147 5.5.5 CRESCIMENTO DO MERCADO .........................................................148 5.5.6 ANÁLISE DA INDÚSTRIA ..................................................................148 5.5.6.1 Players.................................................................................148 5.5.6.2 Grupos de Pesquisa ............................................................148 5.5.6.3 Empresas de Inspeção ........................................................149 5.5.7 FORNECEDORES ...........................................................................150 5.6 ESTRATÉGIA E IMPLEMENTAÇÃO .....................................................151 5.6.1 DEFINIÇÃO DA OFERTA E DA PROPOSTA DE VALOR ............................151 5.6.2 ESTRATÉGIA DE MARKETING ..........................................................152 5.6.2.1 Estratégia de Preços ...........................................................152 5.6.2.2 Estratégia de Promoção ......................................................152 5.6.2.3 Estratégia de Vendas ..........................................................153 5.6.3 PLANO DE VENDAS ........................................................................153 5.6.4 ALIANÇAS ESTRATÉGICAS ..............................................................153 5.7 GESTÃO ................................................................................................154 5.7.1 ESTRUTURA ORGANIZACIONAL .......................................................154 5.7.2 EQUIPE .........................................................................................155 5.8 PLANO FINANCEIRO ............................................................................155 5.8.1 5.8.2 5.8.3 5.8.4 6 PROGRAMA DE VENDAS .................................................................155 CUSTOS OPERACIONAIS ................................................................157 PROJEÇÃO DE RESULTADOS ..........................................................158 RETORNO DO INVESTIMENTO ..........................................................158 CONCLUSÃO.................................................................................................160 v REFERÊNCIAS BIBIOGRAFICAS .........................................................................164 ANEXOS .................................................................................................................165 vi LISTA DE FIGURAS FIGURA 1 - Casco de navio: grande área para ser inspecionada...............................2 FIGURA 2 - Teste do Robô Rest1...............................................................................9 FIGURA 3 - Robô escalador com rodas de ímã permanente, desenvolvido pelo CENPES ............................................................................................................10 FIGURA 4 - Robô Lamp Ray da Imetrix Inc. .............................................................11 FIGURA 5 - Robô MeasureMate da Red Band. ........................................................12 FIGURA 6 - Robô Resonance Thickness Measurement - da DnV/Oceaneering.......12 FIGURA 7 - Robô Octopus da Cybernetix.................................................................13 FIGURA 8 - Robô Crawler da COPPE ......................................................................13 FIGURA 9 - Veículo à Cabo da Petrobrás.................................................................14 FIGURA 10 - Robô Underwater P-Scan 4 do Force Institute ....................................14 FIGURA 11 - ROV da Consub...................................................................................15 FIGURA 12 - Modelo proposto pela patente EP1193724..........................................16 FIGURA 13 - Modelo proposto pela patente GB1469463 .........................................17 FIGURA 14 - Corte AB do modelo proposto pela patente GB1469463.....................17 FIGURA 15 - Diagrama de casos de uso do projeto .................................................21 FIGURA 16 - Diagrama de seqüência para o modo simulador .................................24 FIGURA 17 - Diagrama de seqüência para o modo controlador sem simulação ......25 FIGURA 18 - Diagrama de seqüência para o modo controlador com simulação ......26 FIGURA 19 - Sentidos de movimentos do robô ........................................................27 FIGURA 20 - Sentidos dos movimentos e índice de cada pata.................................29 FIGURA 21 - Legenda para os gráficos das marchas em relação ao tempo ............29 FIGURA 22 - Ordem de levantamento das patas para a marcha wave ....................30 FIGURA 23 - Gráfico da marcha wave em relação ao tempo ...................................30 FIGURA 24 - Ordem de levantamento das patas para a marcha ripple ....................31 FIGURA 25 - Gráfico da marcha ripple em relação ao tempo ...................................31 FIGURA 26 - Ordem de levantamento das patas para a marcha tripod....................32 FIGURA 27 - Gráfico da marcha tripod em relação ao tempo...................................33 FIGURA 28 - Ordem de levantamento das patas para a marcha climb ....................34 FIGURA 29 - Gráfico da marcha climb em relação ao tempo ...................................34 FIGURA 30 - Movimento das patas e seus limites no eixo xy ...................................35 FIGURA 31 - Movimento das patas e seus limites no eixo zy ...................................36 FIGURA 32 - Efeito de arraste ..................................................................................37 FIGURA 33 - Solução para o efeito de arraste 1.......................................................37 FIGURA 34 - Solução para o efeito de arraste 2.......................................................39 FIGURA 35 - Caminho entre a cinemática direta e inversa.......................................40 FIGURA 36 - Pata do robô hexápode ......................................................................41 FIGURA 37 - Vetores posição da perna do robô.......................................................44 FIGURA 38 - Trajeto das patas .................................................................................48 FIGURA 39 - Diagrama de atividades para montar trajeto ........................................49 FIGURA 40 - Vantagem do robô de patas em relação ao de rodas ou esteira .........57 FIGURA 41 - Robô com chassi redondo ...................................................................58 FIGURA 42 - Foto do chassi redondo .......................................................................58 FIGURA 43 - Robô com chassi retangular ................................................................59 FIGURA 44 - Foto do chassi retangular ....................................................................59 FIGURA 45 - Foto de uma das pernas do robô.........................................................59 FIGURA 46 - Espaçadores de nylon .........................................................................60 FIGURA 47 - Vista frontal da perna instalada ao corpo ............................................60 vii FIGURA 48 - Vista superior da perna instalada ao corpo .........................................60 FIGURA 49 - Teste com material de policarbonato...................................................62 FIGURA 50 - Robô com um grau de liberdade por pata ...........................................62 FIGURA 51 - Robô com dois graus de liberdade por pata ........................................63 FIGURA 52 - Robô com três graus de liberdade por pata.........................................64 FIGURA 53 - Forças de agem no robô escalando uma parede vertical ....................65 FIGURA 54 - Braço de alavanca da pata do robô .....................................................66 FIGURA 55 - Servos motores....................................................................................67 FIGURA 56 - Modelo HexCrawler .............................................................................69 FIGURA 57 - Modelo Lynxmotion..............................................................................69 FIGURA 58 - Robô Lynxmotion sobre uma lata de refrigerante ................................69 FIGURA 59 - Protótipo de robô escalador usando ventosas.....................................70 FIGURA 60 - Robô escalador com esteira de ímãs permanentes.............................71 FIGURA 61 - Eletroímãs confeccionados com carretel de ferro doce .......................73 FIGURA 62 - Equação do campo magnético de um eletroímã..................................74 FIGURA 63 - Carretel para enrolar a bobina do eletroímã com ímã na extremidade 79 FIGURA 64 - Carretel para enrolar a bobina do eletroímã com ímã embutido no núcleo.................................................................................................................79 FIGURA 65 - Carretel de nylon com núcleo composto de ferro doce-ímã permanente ...........................................................................................................................81 FIGURA 66 - Sistema ímã-eletroímã responsável pela fixação do robô à superfície 83 FIGURA 67 - Articulação que permite a maior área de contato do ímã com a superfície............................................................................................................84 FIGURA 68 - Articulação que permite a rotação da pata em relação ao carretel......84 FIGURA 69 - Foto da parte interna na fonte de alimentação ....................................86 FIGURA 70 - Foto da fonte de alimentação com a tampa colocada .........................87 FIGURA 71 - TMS320C6711 DSK ............................................................................89 FIGURA 72 - Diagrama em blocos da MotherBoard .................................................91 FIGURA 73 - MotherBoard DSP lado superior ..........................................................92 FIGURA 74 - MotherBoard DSP lado inferior ............................................................93 FIGURA 75 - Diagrama em blocos da DaughterBoard..............................................94 FIGURA 76 - DaughterBoard lado superior...............................................................96 FIGURA 77 - DaughterBoard lado inferior.................................................................96 FIGURA 78 - Diagrama em blocos da placa de acionamento dos eletroímãs ..........97 FIGURA 79 - Placa de acionamento lado superior....................................................97 FIGURA 80 - Placa de acionamento lado inferior......................................................98 FIGURA 81 - Diagrama em blocos do conversor RS-232/RS-422 ............................99 FIGURA 82 - Conversor RS-232/RS-422 ................................................................100 FIGURA 83 - Diagrama de casos de uso – Simulador ............................................102 FIGURA 84 - Diagrama de casos de uso – Controlador .........................................103 FIGURA 85 - Diagrama de classes: Menu Principal................................................105 FIGURA 86 - Diagrama de classes: Controlar Robô ...............................................105 FIGURA 87 - Diagrama de classes: Simular Robô..................................................106 FIGURA 88 - Diagrama de classes: Interpretar Ordem...........................................106 FIGURA 89 - Diagrama de classes: Configurar Ordem...........................................107 FIGURA 90 - Diagrama de classes: Verificar Espaço de Trabalho .........................108 FIGURA 91 - Diagrama de classes: Calcular Trajeto das Patas .............................109 FIGURA 92 - Diagrama de classes: Parametrizar Robô .........................................110 FIGURA 93 - Diagrama de classes: Simular Movimentação ...................................111 FIGURA 94 - Diagrama de classes: Calcular Trajetória do Robô............................112 FIGURA 95 - Diagrama de classes: Visualizar Simulação ......................................113 viii FIGURA 96 - Diagrama de classes: Comandar Robô .............................................113 FIGURA 97 - Diagrama de classes: Comunicar Serial............................................114 FIGURA 98 - Diagrama de seqüência: Configurar Ordem ......................................115 FIGURA 99 - Diagrama de seqüência: Parametrizar Robô .....................................116 FIGURA 100 - Diagrama de seqüência: Verificar Espaço de Trabalho...................116 FIGURA 101 - Diagrama de seqüência: Simular Movimentação.............................117 FIGURA 102 - Diagrama de seqüência: Calcular Trajeto das Patas.......................118 FIGURA 103 - Diagrama de seqüência: Calcular Trajetória do Robô .....................119 FIGURA 104 - Diagrama de seqüência: Comunicar Serial .....................................119 FIGURA 105 - Diagrama de seqüência: Visualizar Simulação................................120 FIGURA 106 - Parte gráfica desenvolvida em OpenGL ..........................................121 FIGURA 107 - Diagrama de timming dos PWM’s....................................................124 FIGURA 108 - Exemplo genérico de ciclo de vida de um projeto............................125 FIGURA 109 - Várias etapas de cada processo......................................................126 FIGURA 110 - Gráfico da projeção de vendas ........................................................156 FIGURA 111 - Projeção de resultados ....................................................................158 FIGURA 112 - Análise do retorno do investimento..................................................159 ix LISTA DE TABELAS TABELA 1 - Robôs andantes e escaladores desenvolvido pelo IAI-CSIC ..................8 TABELA 2 - Parâmetros dos segmentos para cálculo das cinemáticas....................41 TABELA 3 - Tabela comparativa de ímãs permanentes ...........................................78 TABELA 4 - Sub-sistemas do projeto desenvolvido ................................................129 TABELA 5 - Cronograma inicial...............................................................................130 TABELA 6 - Cronograma final .................................................................................131 TABELA 7 - Previsão inicial de ações e custos.......................................................132 TABELA 8 - Ações e Custos do período de atividades ...........................................133 TABELA 9 - Análise de Riscos ................................................................................134 TABELA 10 - Gastos no desenvolvimento ..............................................................135 TABELA 11 - Perfil do usuário.................................................................................141 TABELA 12 - Clientes potenciais ............................................................................145 TABELA 13 - Plano de vendas................................................................................153 TABELA 14 - Programa de vendas .........................................................................155 TABELA 15 - Custos operacionais ..........................................................................157 TABELA 16 - Demonstrativo de resultados .............................................................158 TABELA 17- Investimento inicial .............................................................................159 x RESUMO O trabalho apresenta o desenvolvimento realizado sobre o projeto de um robô com patas escalador de superfícies ferromagnéticas. Primeiramente é definido o escopo do projeto, descrevendo as principais características atendidas pelo robô desenvolvido. Os principais tópicos estudados são os que se referem à parte mecânica do robô, ao mercado que abrange tal projeto, às patentes relacionadas, à modelagem dos modos de caminhar e à forma de fixação à superfície. Disserta-se ainda sobre a parte de controle desenvolvida e hardwares que foram desenvolvidos e confeccionados ao longo do desenvolvimento. Finalmente, apresenta-se a gestão realizada pelo projeto, com uma comparação entre o que foi previsto até a conclusão da disciplina de Projeto Final I e o que realmente se desenvolveu, além de uma previsão para o futuro do projeto contemplada do Plano de Negócios. ABSTRACT This paper presents the development done so far on a ferromagnetic surfaces climbing legged robot project. First, the project’s goal is defined, which defines the main characteristics already built into the robot. The main studied subjects are those related to the robot’s mechanics, to the project’s overall market, to the related patents, to the gait’s modeling and to the surface fastening means. It is also disserted about the control system developed and all the hardware with it. At last, it is presented the projects management, and a comparison between what was intended to be done and what was really developed, and also a project’s future. 1 1 INTRODUÇÃO Neste relatório está descrito o desenvolvimento do projeto de um robô de seis pernas capaz de escalar superfícies ferromagnéticas, inclinadas e verticais, através de um sistema eletromagnético fixado sob as patas. Os comandos de locomoção podem ser de duas formas: gravados na memória ou então passados em tempo real. Na primeira forma os passos são armazenados na memória da placa de controle de forma que o robô seja parcialmente autônomo, realizando os passos determinados sem qualquer tipo de inteligência. A outra maneira seria através de um cabo serial ligado a um computador externo do qual se pode enviar comandos e receber informações para atualizar a tela do simulador. O sistema de posicionamento de cada perna permite três graus de liberdade e utiliza servomotores de precisão e alto torque, permitindo se movimentar para frente e para trás, para os lados e mudar de direção executando rotações sobre o eixo normal à base. Toda a alimentação do robô, incluindo o sistema de controle, os motores e o sistema de fixação, é feita através de um cabo em forma de cordão umbilical. 1.1 ESCOPO o O robô se locomove em qualquer tipo de superfície horizontal e em superfícies verticais ou inclinadas desde que sejam ferromagnéticas; o Tem a capacidade de se movimentar para frente e para trás, para os lados assim como realizar rotações sobre o eixo normal à base; o A alimentação do robô é feita por um “cordão umbilical”; o Os comandos de controle para a movimentação do robô são oriundos de um computador remoto. 2 1.2 JUSTIFICATIVA E MOTIVAÇÃO Nos últimos anos, atividades de pesquisas na área de robôs móveis têm crescido significativamente a fim de se atender uma demanda em potencial, principalmente em aplicações onde há um forte incentivo para se usar máquinas. São os casos de aplicações em ambientes hostis aos seres humanos, serviços de longa duração ou que demandem grande esforço físico. Robôs móveis e escaladores são soluções muito promissoras em ambientes complexos e/ou perigosos. Em certas tarefas estes robôs operam com baixa taxa de erro, com precisão e em grande velocidade. Para casos de grandes áreas como é o casco de um navio, a melhor opção é automatizar o sistema de inspeção. FIGURA 1 - Casco de navio: grande área para ser inspecionada. Em relação aos modelos de rodas, robôs com “patas” têm a vantagem pela sua capacidade de superar obstáculos, cantos, projeções, etc. No Brasil, os projetos na área de robótica são mais voltados aos manipuladores fixos, tornando os robôs móveis com “patas” uma área de estudo ainda pouco explorada e, portanto, muito promissora. Há também um grande potencial para a utilização desse tipo de robô na indústria. Verifica-se a aplicabilidade deste tipo de tecnologia em tarefas de limpeza, inspeção e manutenção em construções e estruturas tais como cascos de navios e plataformas marítimas de exploração de petróleo. 3 1.3 OBJETIVOS Quatro objetivos principais foram considerados no projeto e desenvolvimento do robô. São eles: a) Selecionar uma estrutura mecânica, dentre as disponíveis comercialmente, e adquiri-la desde que atenda as especificações necessárias, ou então projetar e mandar confeccionar sob medida; b) Estudar e desenvolver um sistema de locomoção ideal para a aplicação final do robô de forma a conseguir o melhor desempenho possível, minimizando as dificuldades no deslocamento; c) Desenvolver um sistema de controle micro-processado que se comunicará com um PC a fim de receber os comandos do operador e providenciar as ações necessárias para efetuar o movimento solicitado; d) Desenvolver dois módulos de software: um embarcado e outro remoto para realizar a interpretação da ação solicitada pelo operador em comandos para os atuadores. 1.4 APRESENTAÇÃO DA ESTRUTURA DO RELATÓRIO Este relatório está dividido em quatro partes principais, da seguinte maneira. A primeira refere-se ao estudo do domínio do problema. Esta contempla um breve histórico da robótica, citando o surgimento dos robôs, os sistemas autômatos usados nas indústrias atualmente, o avanço constante e muito rápido nessa área com robôs de última geração como os enviados pela NASA a Marte. Após esse histórico são descritos todos os robôs que foram pesquisados e que possuem alguma referência com o projeto descrito nesse relatório. Seja pela função ou pela concepção utilizada todos foram estudados antes de se iniciar o robô escalador. Ainda nesta primeira parte está descrita a pesquisa de propriedade industrial que foi realizada no início do desenvolvimento para procurar possíveis soluções semelhantes para serem estudadas ou até mesmo para gerar patente de algum módulo do robô caso nada semelhante fosse encontrado. A segunda parte contém o desenvolvimento do projeto. São as atividades que foram realizadas no robô desde a disciplina de Projeto Final I até a conclusão do 4 projeto para a apresentação na disciplina de Projeto Final II. Este desenvolvimento está dividido em cinco grandes blocos: Modelagem do Sistema, Modelagem do Robô, Módulo Mecânico, Módulo de Hardware e Módulo de Software Na terceira parte, serão abordados os aspectos relevantes na área de gestão de projetos. É feita uma análise do projeto, mostrando as atividades envolvidas, os cronogramas, ações, custos e riscos, fazendo uma comparação com o levantado em Projeto Final I. Além disso, são levantados os custos finais do projeto e um plano de negócios prevendo uma futura colocação do projeto desenvolvido no mercado. A última parte trará o Plano de Negócios. Nele foi proposta a criação de uma empresa em cima do produto oriundo do desenvolvimento deste projeto. Nos anexos serão apresentados: uma pesquisa sobre ensaios nãodestrutivos, um manual de funcionamento do software desenvolvido, Controlador/Simulador, e, por fim, o pré-projeto apresentado no Projeto Final I. o 5 2 2.1 ESTUDO DO DOMÍNIO DO PROBLEMA HISTÓRICO DA ROBÓTICA O primeiro robô industrial surgiu na década de 60, construído pela empresa Unimation, e embora o número de robôs já beire o milhão de unidades, ainda se prevê um rápido crescimento desse número, principalmente devido ao aumento do custo da mão-de-obra, à necessidade cada vez maior do aumento de produtividade, de melhoria da qualidade final de um produto, de realização de tarefas perigosas, que o homem não pode realizar, e à queda do custo dos robôs. Esses robôs manipuladores vêm sendo bastante utilizados na indústria, em tarefas como soldagem, pintura, montagem de peças e inspeção de defeitos. As novidades que têm aparecido na área de robótica são todas de um outro tipo de robô: os robôs móveis. Diferentemente dos robôs manipuladores industriais, que possuem uma base fixa, um robô móvel autônomo é livre para mover-se em todas as direções. Os robôs móveis começaram a aparecer na década de 70, mas somente na década de 80 começaram a surgir os primeiros robôs móveis autônomos. Além das aplicações comentadas, eles podem ser empregados em outras tarefas, que vão do transporte de peças em uma indústria, até para substituir o homem na exploração de locais perigosos, como águas profundas, áreas radioativas, crateras de vulcões, ambientes espaciais e mesmo outros planetas. Exemplos mais recentes de aplicações desses tipos de robôs em outros planetas foram os robôs Sojourner, Spirit e Opportunity que a NASA enviou à Marte em 1997 e 2004. Quando o tema é referente a robôs de pequenas dimensões, são vários os grupos de pesquisa no mundo que vêm desenvolvendo micro e nano robôs. Os micro-robôs são utilizados para a exploração de ambientes de dimensões reduzidas, como, por exemplo, a exploração interna do corpo humano. Um desses projetos é desenvolvido pelo MIT, nos Estados Unidos, onde está sendo construído um robô com menos de 4 cm para a detecção de doenças do cólon. Um outro projeto é o Darpa, onde está sendo construído um micro robô de 8 cm de comprimento; este contém um sistema de sucção nas patas, que o torna apto a explorar ambientes reduzidos, sendo capaz, inclusive, de subir paredes e passar por cima de 6 obstáculos. Já a tecnologia de nano-robótica (robôs da ordem de milésimo de milímetro) visa principalmente aplicações na medicina, como a eliminação de acúmulos de substâncias orgânicas indesejadas (tumores, placas de gordura nas paredes das artérias e coágulos sangüíneos). Robôs também são utilizados dentro d’água e no ar. Para ambientes subaquáticos, existem os robôs submarinos que são de dois tipos: o ROV, que pode ser controlado remotamente, e o AUV, que opera autonomamente. Esses robôs têm sido aprimorados para operar em grandes profundidades (até quatro mil metros) e áreas de risco, onde os mergulhadores não podem operar. Os ROVs podem realizar diversas tarefas, utilizando para isso braços mecânicos e ferramentas especializadas. Entre as aplicações realizadas por esses robôs estão a investigação visual das partes submersas de navios, pontes e plataformas, monitoramento de colônias de peixes, controle de poluição subaquática, controle de devastação da vida marinha, localização de depósitos de combustíveis nucleares, execução de operações tecnológicas em plataformas marítimas, inspeção visual de estruturas subaquáticas de oleodutos e gasodutos, inspeção de barragens e explorações marítimas para fins de pesquisa. Só para se ter uma idéia de valores, uma expedição de inspeção de um navio naufragado usando o ROV Hercules custa, por dia, 40.000 dólares. Com relação ao robô aéreo, o Centro de Pesquisa Renato Archer (CenPRA) de Campinas está construindo um deles na forma de um dirigível (Projeto Aurora) para a realização de sobrevôos de inspeção em florestas, estradas, fazendas, cidades, cursos de rios, etc. Outro centro de pesquisa envolvido com esse tipo de pesquisa é o Spawar Systems Center San Diego (Estados Unidos), que desenvolve robôs aéreos para várias aplicações: controle de incêndios, detecção de áreas minadas e com armadilhas militares, proteção de tropas militares, exploração de áreas contaminadas (químicas, biológicas e nucleares), etc. Há ainda robôs saltadores, escaladores, tosadores de ovelha, localizador de bombas, robô explorador de vulcões, robô limpador de casco de navios, robô agrícola e até robô hospitalar. Um exemplo de sucesso no uso de robôs em mais de cem hospitais de todo o mundo é o robô HelpMate. Este robô realiza uma tarefa corriqueira em um hospital: transportar documentos e medicamentos entre as salas do hospital. É um trabalho simples, mas que toma muito tempo de auxiliares de enfermagem, enfermeiras e trabalhadores de um hospital. 7 O Japão domina o mercado de robôs no mundo: tanto no mercado de aplicações não usuais, como é o caso de robôs domésticos quanto em robôs utilizados na indústria: é quase a metade dos mais de oitocentos mil robôs existentes no mundo todo. O Brasil participa desse bolo com cerca de 0,6% dos robôs do mundo (em torno de 5.000 robôs, instalados principalmente na indústria automobilística), mas revela um crescimento enorme no número de robôs nos últimos cinco anos. 2.2 ROBÔS EXISTENTES A seguir estão citados alguns robôs desenvolvidos que possuem uma correlação com o projeto do robô hexápode descrito nesse relatório. Esses projetos estão detalhados ao nível de características que permitem comparar e analisar as vantagens e desvantagens de cada modelo. Essa pesquisa foi feita com o intuito de evitar um imprevisto de chegar a um produto final que possua alguma deficiência semelhante a produtos que já estão no mercado. Dessa forma ganhou-se tempo e reduziu-se o custo do desenvolvimento. o Conselho Superior de Pesquisas Científicas (IAI-CSIC, ES) Esse é considerado o principal grupo de pesquisa concorrente no mercado, pois esse Departamento de Controle Automático do Instituto de Automação Industrial do CSIC localizado na Espanha tem como objetivo principal fazer pesquisas sobre análises e desempenho de sistemas de controle voltado para o desenvolvimento de robôs escaladores. A TABELA 1 demonstra todos os robôs andantes e escaladores desenvolvidos e que estão em desenvolvimentos pelo IAI-CSIC. 8 TABELA 1 - Robôs andantes e escaladores desenvolvido pelo IAI-CSIC Número Graus de de Patas Liberdade Tipo de Robô Instituição Financiadora / Data Aplicação Brincadeira IAI-CSIC, 1989 Research 2 3 Rimho CICYT, 1991-93 Research 4 12 Tracminer Brite/EuRam, 1994-96 Agriculture/Mining/Civil Eng 4 16 Palaiomation Brite/EuRam, 1995-97 Natural Science Museums 4 24 Rest 1 Eprit-CDTI-MINER, 1994-97 Shipbuilding 6 18+3 Rower 1 Brite/EuRam, 1994-98 Shipbuilding 4 16+4 Silo -1 CICYT, 1995-97 Research 1 3 Silo - 2 CICYT, 1995-97 Research 1 3 Silo - 3* IAI-CSIC, 1997-98 Research 4 12 Rest 2* IAI+AESA+SAIND, 1998 Shipbuilding 4 12+2 Rower 2* Brite/EuRam, 1998-01 Shipbuilding TBD TBD * Silo 3 está começando a ser montado; Rest 2 sob manifatura; Rower 2 sob definição. Dentre os diversos robôs desenvolvidos ao longo desses anos como mostrado na TABELA 1, nota-se a grande evolução desse grupo de pesquisa na construção de robôs móveis. O REST1 desenvolvido de 94 a 97 é um robô bem similar ao que está descrito nesse relatório, possuindo características semelhantes como: o Escalador de superfícies ferromagnéticas; o Robô hexápode (6 patas); o Possuir um cordão umbilical. As principais especificações técnicas do robô escaladoras REST1 são: o Graus de Liberdade: 18; o Comprimento: 1100 mm; o Largura: 600 mm; o Peso: 220 Kg; o Carga suportável: 100 Kg. A FIGURA 2 ilustra um teste experimental do robô escalador de seis patas o REST1 no próprio IAI_CSIC. Esse teste consiste de uma superfície ferromagnética de seis metros de comprimento. Nela foram realizados vários experimentos, como: diferentes formas de andar e vários algoritmos de controle. 9 FIGURA 2 - Teste do Robô Rest1 o Universidade da Catania (UoC, IT) Nessa universidade, mais precisamente no departamento de elétrica eletrônica e sistemas, existem vários projetos em desenvolvimento na área de robótica. Dentre os projetos em realização verificou que dois estavam relacionados ao desenvolvimento de robôs escaladores, que ainda estão em fase de pesquisa e implementação sendo chamados de Surfy e Spiderbot. Esses dois robôs utilizam sistemas de fixação diferentes ao que vai ser implementado no projeto, fato que os torna diferentes. Além disso, suas aplicações são voltadas a outras áreas não relacionando ao petróleo. o Centro de Pesquisa da Petrobrás (Rio de Janeiro) - CENPES Esse é o principal concorrente do segmento no desenvolvimento desse projeto já que tem como cliente final também a Petrobrás. Além disso, é o centro de pesquisa e desenvolvimento da própria empresa e, portanto tem muitas informações e contatos preciosos para desenvolver esse tipo de robô. Na FIGURA 3 pode ser vista uma foto esse robô durante um teste em campo. 10 FIGURA 3 - Robô escalador com rodas de ímã permanente, desenvolvido pelo CENPES Esse robô foi desenvolvido pelo CENPES, juntamente com outros dois laboratórios, LABOEND e LAMCE, ambos do Rio de Janeiro. As principais características desse robô são: o Fixação e locomoção por rodas de ímãs permanentes; o Comprimento: 1700 mm; o Largura: 1000 mm; o Altura: 400mm; o Peso: 17 Kg; o Profundidade máxima: 40m; o 4 sensores de ultra-som. Ainda hoje as inspeções de cascos de navios são realizadas por mergulhadores ou pelo menos com o auxílio deles. Não há no mercado nenhum equipamento capaz de inspecionar um casco de navio sem ser auxiliado por humanos na sua fixação ou movimentação. Pode-se citar alguns equipamentos disponíveis no mercado, divididos pelo tipo de inspeção que podem realizar, tais como: o Inspeção Total (350 m x 40 m = 14.000 m2) Lamp Ray da Imetrix Inc. 11 Veículo de controle remoto com dispositivos de inspeção (visual, potencial eletroquímico, medição de espessura de revestimento e de chapa); Sistema de posicionamento e navegação; Sistema de lançamento e recolhimento do veículo; Estação de controle. Principal Limitação: pouca potência da versão atual do veículo que dificulta a sua utilização offshore. Pontos para melhoria: adaptação do veículo para uso offshore, visualização dos resultados parciais em tempo real e tornar o sistema de lançamento/ /recolhimento mais robusto, para uso offshore. FIGURA 4 - Robô Lamp Ray da Imetrix Inc. MeasureMate da Red Band Medições realizadas com o navio ancorado nas condições carregado ou lastreado. Inspeção completa de um navio de 150.000 DWT é realizada em 20 horas e o número de medições realizadas é 1.500 vezes maior que o requerido pelas sociedades classificadoras. Resultados são apresentados em gráficos com padrão de cores e em tabelas. Possui apenas sensores de ultra-som e sua eficiência continua uma incógnita enquanto não se consegue fazer uma avaliação em condições reais na inspeção de um petroleiro. 12 FIGURA 5 - Robô MeasureMate da Red Band. Resonance Thickness Measurement - RTM da DnV/Oceaneering Não há necessidade de remoção de produtos de corrosão ou de incrustações marinhas para realizar a inspeção; Determina a espessura média na área coberta pelo cabeçote; Trabalha com uma nova metodologia de inspeção conhecida como medida de espessura por ressonância; Sistema de posicionamento do veículo é acústico e conhecido como SWAPS (shallow water acoustic positioning system); Possui o inconveniente de medição da espessura média (na área de atuação do cabeçote) ao invés da espessura mínima (mais correlacionada com a possibilidade de furos no casco). FIGURA 6 - Robô Resonance Thickness Measurement - da DnV/Oceaneering 13 o Inspeção Parcial (Amostragem: 500 a 1000 m²) Octopus da Cybernetix FIGURA 7 - Robô Octopus da Cybernetix Snoopy da EM&I Crawler CTPETRO da COPPE FIGURA 8 - Robô Crawler da COPPE Veículo à Cabo desenvolvido pela própria Petrobrás É o veículo que mais vem sendo utilizado na Petrobrás em inspeções apesar de ser extremamente simples. É tracionado por dois cabos que passam por baixo do casco e vão até a borda do navio, onde um operador de cada lado puxa ou solta a corda, fazendo com que o robô deslize no fundo do casco. 14 FIGURA 9 - Veículo à Cabo da Petrobrás o Inspeção Localizada ou Pontual (Indícios: 1 a 50 m²) Underwater P-Scan 4 do Force Institute FIGURA 10 - Robô Underwater P-Scan 4 do Force Institute Consub Usado na medição de espessura do casco. 15 FIGURA 11 - ROV da Consub 2.3 PROPRIEDADES INDUSTRIAIS Dentro da área de projetos de engenharia, um tópico muito importante a ser avaliado é pesquisa de propriedades industriais. Ao se desenvolver um projeto, é preciso saber se já não existe uma idéia semelhante patenteada, de modo a inviabilizar o estudo. Ou mesmo no caso de projetos mais abrangentes, os quais dificilmente são patenteáveis, podem surgir desenvolvimentos paralelos, que poderiam gerar uma patente. Uma patente, nos dias de hoje, pode gerar muita riqueza para um projetista, ou uma empresa. Mas mesmo que não seja do interesse do dono do projeto gerar patentes, a pesquisa de propriedades industriais pode vir a poupar um estudo de algo que já foi desenvolvido por outros. Deste modo, economiza-se tempo e dinheiro no projeto. Finalmente, este tipo de busca pode ajudar os envolvidos a encontrar outros institutos ou pesquisadores trabalhando no mesmo ramo de estudo, viabilizando um canal para troca de informações úteis, ou mesmo possibilitando aos interessados conhecer seus concorrentes. Dentro deste trabalho, foram observados dois itens considerados importantes na pesquisa de propriedades industriais. Os fixadores eletromagnéticos e o contexto de robôs escaladores em geral. 16 2.3.1 FIXADORES ELETROMAGNÉTICOS No item 3.3.4, será discutida a forma de fixação utilizada no robô, permitindo que o mesmo possa escalar superfícies ferromagnéticas. Trata-se de um sistema eletromagnético. Durante os estudos, vários modelos de fixadores foram testados, sendo um deles considerado o mais interessante. Surgiu então a idéia de uma busca de patentes sobre o assunto, no intuito de verificar a viabilidade de se gerar uma patente própria. Após uma extensa busca nas bases de propriedades industriais gratuitas que existem na internet, foram achadas algumas patentes que se relacionam com o assunto. Uma delas, de número EP1193724 e intitulada “Magnet consisting of an electromagnet and a permanent magnet, and eddy current retarder”, apresenta um modelo de ímã-eletroímã composto, cujo esquema aparece na FIGURA 12. FIGURA 12 - Modelo proposto pela patente EP1193724 Na FIGURA 12, (20) representa os enrolamentos de um eletroímã, (30) um ímã permanente, (10) um núcleo de ferro, (22) representa uma bobina feita de material não magnético e (24) são placas feitas de material magnético, formando os pólos do ímã composto. Como se poderá perceber, o modelo é basicamente o mesmo desenvolvido neste projeto, descrito no item 3.3.4 deste relatório. A diferença encontrada está na 17 aplicação do conceito. Nesta patente, o ímã é utilizado em freios eletromagnéticos baseados em correntes de indução, já no projeto em questão, ele é usado como um fixador para superfícies ferromagnéticas. A outra patente encontrada, de número GB1469463 e intitulada “Permanent Magnet Holding System for Ferromagnetic Materials”, trata da mesma idéia que surgiu neste projeto, um sistema de fixação eletromagnético para superfícies ferromagnéticas. Mas apesar de ter a mesma idéia que o desenvolvimento realizado pela equipe, o princípio de funcionamento é diferente. A FIGURA 13 e a FIGURA 14 apresentam um dos modelos descritos na patente. FIGURA 13 - Modelo proposto pela patente GB1469463 FIGURA 14 - Corte AB do modelo proposto pela patente GB1469463 18 Nessas figuras observa-se que a montagem do sistema difere do proposto adiante neste relatório. O (1) representa um ímã permanente de baixa coercividade, (2) representa um ímã permanente de alta coercividade, (3) e (4) são placas feitas de material ferromagnético unidas por (5), feito de material não magnetizável. Finalmente, (6) representa os enrolamentos do eletroímã. Neste modelo, os ímãs permanentes estão dispostos de forma a somarem seus fluxos magnéticos, tornando o ímã ativo. Através dos terminais em (7) aplica-se um pulso de corrente de modo a reverter a polaridade do ímã de baixa coercividade (1), de modo que seu fluxo magnético anulará o fluxo do outro ímã permanente, desativando o ímã como um todo. Para reativar o sistema, deve-se aplicar um novo pulso de corrente nos terminais, agora de modo a reverter a polaridade do ímã permanente (1) ao seu estado original. Como se pode observar, este campo de pesquisa é bastante estudado, mostrando o trabalho já realizado como sendo bem fundamentado, e incentivando a continuidade dos estudos. 2.3.2 ROBÔS ESCALADORES Um estudo de patentes sobre robôs escaladores mostrou-se bem amplo, uma vez que o projeto estudado apresenta apenas um caso específico da classe. Deste modo, esta busca torna-se útil para se verificar os tipos de robôs que já existem no mercado, ou então para procurar soluções já desenvolvidas e que podem ser utilizadas no projeto em andamento, poupando esforços da equipe. Após pesquisar extensivamente as bases de patentes grátis existentes na internet, utilizando palavras-chave como “robot”, “climbing” e “legged”, observou-se que existem muito poucos registros relativos a robôs escaladores com pernas, especificamente hexápodes. A maior parte dos registros sobre robôs escaladores envolve robôs com rodas, e os que tratam de robôs com pernas falam sobre robôs bípedes. A partir destes resultados, concluiu-se que o campo de pesquisa referente a robôs escaladores, e que se locomovem com pernas, era muito promissor, podendo propiciar um conhecimento ainda pouco explorado e, portanto promissor aos integrantes da equipe. 19 Por outro lado, a falta de patentes sobre este assunto mostra a dificuldade do desenvolvimento do projeto. Muito pouco do projeto pode ser extraído de produtos já comerciais. A maior parte foi desenvolvida, utilizando como base, no máximo, artigos científicos, os quais não costumam chegar ao desenvolvimento da parte prática do assunto. 20 3 3.1 DESENVOLVIMENTO MODELAGEM DO SISTEMA O projeto Robô Hexápode Escalador de Superfícies Ferromagnéticos tem duas funcionalidades principais: o Simular o comportamento cinemático de um Robô Hexápode; o Controlar o Robô Hexápode (Interfacear o robô com o operador - IHM). Para os dois sistemas há blocos funcionais que são comuns, como: o Comandar o robô; o Configurar modos de caminhar; o Calcular e visualizar o movimento e a trajetória (opcional na função controlador); É no “comandar o robô” que está a principal distinção entre os dois. No primeiro os comandos enviados vão apenas para um ambiente de simulação, onde a partir de cálculos matemáticos determina-se como o robô vai reagir, visualizando o efeito graficamente. No segundo o mesmo pode ocorrer para efeito da visualização, porém os comandos também são refletidos, através de uma comunicação serial, no robô e são processados na sua placa de controle. Este tópico abordará a descrição do projeto quanto aos seus aspectos funcionais e comportamentais utilizando a linguagem de modelagem UML. Foram gerados o diagrama estrutural do sistema (Casos de Uso) e o dinâmico (seqüência). A seguir serão apresentados estes diagramas. 3.1.1 DIAGRAMA DE CASOS DE USO Os casos de uso foram levantados procurando descrever de forma clara e consistente as responsabilidades que devem ser cumpridas pelo sistema. A FIGURA 83 apresenta o Diagrama de Casos de Uso gerado. 21 Comunicar Serial S.O. (from Atores) Comandar Robô <<include>> <<include>> Controlar Robô rob ô (from Atores) Visualizar Simulação <<include>> <<extend>> Configurar Ordem <<include>> <<include>> <<include>> operador Simular Movimentação (from Atores) S.O. Interpretar Ordem Verificar Espaço de Trabalho ( from Atores) <<all extend>> <<i nclude>> <<include>> Tripod <<include>> <<extend>> Ca lcular Trajetória Robô <<all extend>> No rmal Ripple Calcular Trajeto Patas Simular Robô Cra b Wave <<include>> Rotação Pa rame tri za r Rob ô Neutro FIGURA 15 - Diagrama de casos de uso do projeto 3.1.1.1 Descrição dos Casos e Atores o Atores Pode-se observar no diagrama a presença de três atores principais. Operador: Nada mais é do que o próprio operador do sistema, aquele que se encontra ao computador simulando ou controlando o robô. É este ator que ativa os casos de usos principais do sistema; Robô: Como o próprio nome já diz é o robô hexápode. No serviço “Controlar Robô” é o ator a ser controlado. Nele encontra-se a placa de Climb 22 controle com o microprocessador e seu software embarcado, além da comunicação serial; S.O.: É o ator Sistema Operacional. É um ator importante ao caso de uso simular, pois é ele que sincroniza o movimento do robô simulado através do timer. o Casos de Usos No diagrama observa-se a presença de dois casos de usos principais. São eles: Simular robô – Caso de uso que contém o serviço de simulação do robô hexápode. Através dele o operador pode parametrizar o robô e configurar os modos de caminhar (ordem) a seu critério. Com a solicitação de movimentação ocorre a simulação e a visualização gráfica da reação do robô. Controlar robô – Através deste serviço, o operador pode atuar diretamente ao robô enviando comandos. Também pode configurar os modos de caminhar e visualizar na tela a simulação resultante do comando. 3.1.2 LEVANTAMENTO DAS CLASSES Foi realizado um levantamento das classes, procurando distingui-las entre classes de controle, fronteira e entidade. o Classes de Fronteira CintOperador: Classe de interface com o operador; CintRobô: Classe de interface com o robô; CintSO: Classe de interface com o Sistema Operacional. o Classes de Controle CCtrlSimularRobo: Classe responsável por controlar a simulação do robô; 23 CCtrlParametrizarRobo: Classe responsável pela parametrização(dados estruturais) do robô a ser simulado; CCtrlInterpretarOrdem: Classe responsável por controlar a interpretação da Ordem de Movimento; CCtrlConfigurarOrdem: Classe responsável pela configuração da forma e parâmetros do caminhar. CCtrlVerificarEspaçoDeTrabalho: Classe responsável por verificar os parâmetros configurados no “Configurar Ordem” se estão de acordo com o espaço de trabalho do robô; CCtrlCalcularTrajetoPatas: Classe responsável por calcular o trajeto que cada pata deve realizar para atender a ordem especificada; CCtrlSimularMovimentação: Classe responsável por simular a movimentação do robô, a partir de um comando que o operador realiza. Esta classe só pode ser ativa após ter uma Ordem interpretada; CCtrlCalcularTrajetóriaRobô: Classe responsável por calcular a trajetória que o robô esta percorrendo dado a movimentação que esta sofrendo. CCtrlVisualizarSimulação: Classe responsável por mostrar graficamente a simulação da movimentação do robô; CCtrlControlarRobô: Classe responsável pelo controle do robô; CCtrlComandarRobô: Classe responsável por receber os comandos do operador e enviar ao robô; CCtrlComunicarSerial: Classe responsável pelo controle da comunicação serial. Comanda a conexão, desconexão e uma funcionalidade extremamente importante, a verificação da conexão (watchdog), que é realizada periodicamente. o Entidade CRobô: Classe que contém os parâmetros do robô; COrdem: Classe que contém os parâmetros da ordem; 24 CTrajetoPatas: Classe que contém os parâmetros do trajeto das patas. CTrajetóriaRobô: Classe que contém as informações da trajetória percorrida pelo robô. 3.1.3 DIAGRAMAS DE SEQUÊNCIA O Sistema tem dois modos de operação: Simulador e Controlador. A seguir estão os diagramas de seqüência para cada modo de operação o Modo Simulador : operador : CIntOperador Si mul ado r : CCtrlSimularRobo : CCtrlParametrizarRobo : CRobo : CCtrlInterpretarOrdem : COrdem : CTrajetoPatas : CCtrlSimularMov imentação : CIntSO Mo do Simula dor ParametrizarRobo() MostrarJanelaParametrizar() Janela Parametrizar Robô Dados Robô RegistrarRobo(DadosRobô) In ter pr eta rOr dem() MostrarJanelaConf igurarOrdem() Ja nela Co nf igur ar Ordem Dados Ordem Re gist rarOrdem(DadosOrdem) EspTrab:=Verif icarEspaçoDeTrabalho(Ordem) Janela de Erro [EspTrab=NOK] Mostrar Janela de Erro [EspTrab=OK] CalcularTrajetoPatas(Ordem) RegistarTrajeto(Trajeto) MostrarJanelaComandos() Janela de Comandos Comando de Mov imentação SimularMov imentação(Comando,Trajeto,Robô) Timer Movi men tar () CalcularTrajetoria() VisualizarSimulaçãoETrajetoria() Mo strarJanelaVisuali zador() Simulação gr áf ica FIGURA 16 - Diagrama de seqüência para o modo simulador : S.O. 25 o Modo Controlador Sem Simulação : operador : CIntOperador : CCtrlControlarRobo : CCtrlInterpretarOrdem : COrdem : CTrajetoPatas : CCtrlSimularMovimentação : CIntSO : S.O. : CIntRobô Controlador SEM Simul... Modo Controlador com:=ComunicarSerial() [com=NOK] MostrarJanelaErro() Janela de Erro [com=OK] InterpretarOrdem( ) MostrarJanelaConfigurarOrdem() Janela Configurar Ordem D ados Or dem RegistrarOrdem(DadosOrdem) EspTrab:=VerificarEspaçoDeTrabalho(Ordem) [EspTrab=NOK] Mostrar Janela de Erro Janela de Erro [EspTrab=OK] EnviarOrdem(Ordem) Ordem [EspTrab=OK] MostrarJanelaComandos Janel a de Comandos Comando de Movimentação EnviarComando(Comando) Comando FIGURA 17 - Diagrama de seqüência para o modo controlador sem simulação : robô 26 Com Simulação : operador : CIntOperador : CCtrlControlarRobo : CCtrlInterpretarOrdem : COrdem : CTrajetoPatas : CCtrlSimularMovimentação : CIntSO : S.O. : CIntRobô : robô Controlador COM Simul... Modo Controlador com:=ComunicarSerial() [com=NOK] MostrarJanelaErro() Janela de Erro [com=OK] InterpretarOrdem( ) MostrarJanelaConfigurarOrdem() Janela Configurar Ordem D ados Or dem RegistrarOrdem(DadosOrdem) EspTrab:=VerificarEspaçoDeTrabalho(Ordem) [EspTrab=NOK] Mostrar Janela de Erro Janela de Erro [EspTrab=OK] EnviarOrdem(Ordem) Ordem [EspTrab=OK & Com Simulação] CalcularTrajetoPatas(Or... RegistarTr ajeto(Trajeto) [EspTrab=OK] MostrarJanelaComandos Janel a de Comandos Comando de Movimentação EnviarComando(Comando) Comando [Com Simulação] SimularMovimentação(Comando, Trajeto, R... Timer Movimentar() CalcularTrajetória() VisualizarSimulaçãoETrajetória() MostrarJanelaVisualizador() Simulação gráfica FIGURA 18 - Diagrama de seqüência para o modo controlador com simulação 3.1.4 ESPECIFICAÇÕES NÃO FUNCIONAIS Integração com o Sistema de Inspeção: o sistema deve ser modular e bem estruturado de forma a possibilitar a contínua evolução do sistema, como a implementação e integração de um módulo de inspeção. 27 3.2 MODELAGEM DO MOVIMENTO DO ROBÔ Os movimentos do robô foram modelados em três modos e quatros tipos de marchas. Os modos são responsáveis por orientar o sentido do movimento e as marchas pela cadência com que o robô realiza a caminhada. Os modos implementados foram: o Normal o Crab o Rotacionar E para os dois primeiros modos foram implementadas as seguintes marchas: o Wave o Ripple o Tripod o Climb 3.2.1 MODOS Os modos de caminhar se diferem um do outro basicamente pela direção de deslocamento em relação ao eixo principal do robô. A seguir na FIGURA 19 é ilustrada a figura do robô e seu eixo cartesiano de referência. FIGURA 19 - Sentidos de movimentos do robô 28 3.2.1.1 Modo Normal Representa o movimento natural de vários animais, que é andar para frente e para trás. Esse modo então permite que o Robô execute movimentos em relação ao eixo principal de deslocamento. Conforme a FIGURA 19, o robô se deslocará no eixo y. 3.2.1.2 Modo Crab É o modo responsável por definir um movimento lateral do Robô, para a esquerda e para a direita. Esse modo permite que o robô realize deslocamentos perpendiculares em relação ao eixo principal de deslocamento. Conforme a FIGURA 19, o robô se deslocará no eixo x. 3.2.1.3 Modo Rotacionar Neste modo o robô realiza um movimento angular em relação ao eixo z sobre o plano xy, conforme indicado na FIGURA 19. O robô poderá executar rotações em torno do eixo z no sentido horário e anti-horário. 3.2.2 MARCHAS As marchas estão relacionadas diretamente com o número de patas em contato com a superfície e com a seqüência em que essas são movimentadas, sendo assim determinante no desempenho do robô quanto à velocidade de deslocamento, estabilidade do movimento e capacidade de carga do robô seja ela proporcionada pela variação de massa do robô ou pela variação de ângulo do robô em relação à direção de ação da força de gravidade. A FIGURA 20 ilustra o robô com os índices que serão utilizados para indicar cada uma das patas. 29 FIGURA 20 - Sentidos dos movimentos e índice de cada pata Para cada um dos tipos de marcha implementado, será mostrada uma figura parecida com a anterior só que em vez de indicar o índice da pata, será indicado à ordem com que as patas executam o movimento. Além disso, também será mostrado um gráfico ilustrando o movimento das patas do robô em relação ao tempo, possuindo a seguinte legenda: Legenda: Retorno Propulsão FIGURA 21 - Legenda para os gráficos das marchas em relação ao tempo 3.2.2.1 Marcha Wave Essa marcha é realizada sempre mantendo cinco patas em contato com a superfície que proporcionam a propulsão do robô e apenas uma pata retornando ao ponto origem do movimento de tração. O movimento das patas é realizado na seqüência do índice de cada pata, conforme a FIGURA 20. Deste modo, a primeira pata a ser suspensa é a pata P1, passando para a pata P2 e assim sucessivamente 30 até completar o ciclo das seis patas. O movimento das patas acaba representando o movimento de uma onda por isso o nome wave. A velocidade dessa marcha é relativamente baixa, possuindo uma estabilidade intermediária, mas em compensação possui uma grande capacidade de carga. FIGURA 22 - Ordem de levantamento das patas para a marcha wave A FIGURA 23 representa dois ciclos de movimento das patas do robô para a marcha wave, nela pode-se verificar o movimento das patas em função do tempo. Marcha Wave Clock 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 P1 P2 P3 P4 P5 P6 FIGURA 23 - Gráfico da marcha wave em relação ao tempo 31 3.2.2.2 Marcha Ripple Semelhante à anterior, mas com a diferença de executar o movimento de retorno das patas numa ordem diferente, sendo realizada na seguinte ordem: P1, P5, P3, P4, P2 e P6 conforme indicadas na FIGURA 20. Essa marcha possui uma velocidade baixa com uma capacidade de carga e estabilidade intermediárias. O que a torna pouco atrativa, pois não possui nenhuma característica em especial. FIGURA 24 - Ordem de levantamento das patas para a marcha ripple Na FIGURA 25, pode-se verificar o movimentos das patas do robô em função do tempo, durante dois ciclos, para a marcha ripple. Marcha Ripple Clock 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 P1 P2 P3 P4 P5 P6 FIGURA 25 - Gráfico da marcha ripple em relação ao tempo 32 3.2.2.3 Marcha Tripod Diferente das anteriores, essa marcha possui sempre três patas em contato com a superfície que proporcionam a propulsão do robô e três patas retornando ao ponto origem do movimento de tração, que estão sempre elevadas. Durante o movimento são suspensas três patas de cada vez na seguinte ordem: primeiramente as patas P1, P5 e P3 e depois as patas P4, P2 e P6 conforme indicadas na FIGURA 20. As características dessa marcha são: possuir a maior velocidade dentre todas as marchas implementadas, uma estabilidade boa e, em contrapartida, uma baixa capacidade de carga. Assim, pode-se verificar que esta marcha é praticamente três vezes mais rápida, que as outras marchas implementadas. FIGURA 26 - Ordem de levantamento das patas para a marcha tripod A FIGURA 27 representa seis ciclos de movimento das patas do robô para a marcha tripod, nela pode-se verificar o movimento das patas em função do tempo. 33 Marcha Tripod Clock 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 P1 P2 P3 P4 P5 P6 FIGURA 27 - Gráfico da marcha tripod em relação ao tempo 3.2.2.4 Marcha Climb Semelhante a marcha wave, apenas diferindo na ordem em que as patas são levantadas durante o retorno ao ponto origem do movimente de tração, fato que ocasionou em um ganho na estabilidade do robô durante o movimento. Essa marcha foi implementada levando em consideração todas as marchas anteriores, pensando em obter a marcha ideal para escalar superfícies ferromagnéticas. Essa marcha possui uma pequena velocidade, mas em compensação a maior estabilidade e capacidade de carga. Fatos que proporcionaram a melhor solução de compromisso para o movimento em superfícies ferromagnéticas. A ordem com que essas patas são suspensas durante o movimento no momento de retorno é a seguinte: P1, P4, P3, P6, P2 e P5 conforme indicadas na FIGURA 20. 34 FIGURA 28 - Ordem de levantamento das patas para a marcha climb A FIGURA 29 representa dois ciclos de movimento das patas do robô para a marcha climb, nela pode-se verificar o movimento das patas em função do tempo para essa marcha. Marcha Climb Clock 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 P1 P2 P3 P4 P5 P6 FIGURA 29 - Gráfico da marcha climb em relação ao tempo 3.2.3 LIMITES Para compreender a matemática e os algoritmos associados ao modo de caminhar é necessário, primeiro, observar os limites de ação de cada um dos graus de liberdade da pata. 35 As linhas representadas na FIGURA 30 são as linhas relevantes na análise do movimento das patas no plano xy. Neste caso o robô está se deslocando no sentido do versor y. FIGURA 30 - Movimento das patas e seus limites no eixo xy Posição Extrema Anterior (PEA): no modo de caminhar em frente, esta linha denota o alvo que a pata deve alcançar para iniciar o movimento de propulsão. Esta linha será tratada como origem e, portanto o ângulo θ1 associado a ela é zero. Posição Extrema Posterior (PEP): no modo de caminhar em frente, esta linha denota o alvo que a pata deve alcançar no final do movimento de propulsão. O ângulo associado a esta linha é θ1MAX . Linha de posição: representa a linha onde o conjunto da pata se encontra em um determinado instante e seu ângulo em relação à linha de origem é θ1 . As linhas representadas FIGURA 31 são pertinentes à análise do movimento da pata no plano zy. 36 FIGURA 31 - Movimento das patas e seus limites no eixo zy 3.2.4 EFEITO DE ARRASTE O projeto do robô hexápode escalador de superfícies ferromagnéticas tem o requisito de não permitir que as patas se arrastem sobre a superfície de contato, pois uma vez que ela esteja magnetizada somada com o atrito gerado pela borracha não haverá arraste, garantindo a perfeita fixação do robô à superfície. O modelo leva em consideração este efeito. Assim, primeiramente será realizada uma descrição mais detalhada deste efeito para numa segunda etapa propor uma solução. Supondo que a pata esteja fixa à superfície e está ocorrendo um movimento de rotação da pata sobre o eixo z. Desta forma o robô se deslocará na direção do eixo y. A trajetória desejada é retilínea sobre o eixo y. Mas, como é possível observar na FIGURA 32, se a pata está fixa à superfície o robô não terá uma trajetória retilínea como o desejado, ele terá uma trajetória semicircular como mostra a linha tracejada na figura. Ou pior que isto: haverá a impossibilidade de executar o movimento, pois no lado esquerdo do robô há patas que estão proporcionando o mesmo movimento, mas no sentido contrário. 37 Pata em posição fixa y Trajetória não retilínea que ocorre x z FIGURA 32 - Efeito de arraste A solução adotada para a eliminação do efeito de arraste descrito no tópico anterior será realizada com a utilização dos dois graus de liberdade ainda não modelados. Observando a FIGURA 33 se observa que os dois graus de liberdade 2 e 3 são capazes de alcançar qualquer ponto do plano z dentro dos limites de alcance. FIGURA 33 - Solução para o efeito de arraste 1 Portanto é possível corrigir o efeito de arraste através de uma correta modelagem destes dois graus de liberdade. A parte superior da FIGURA 34 é a representação do que aconteceria se na houvesse correção; a parte inferior o resultado da correção vista do plano adequado. 38 Nota-se que em 1 a correção nos ângulos θ 2 e θ 3 é feita de forma a proporcionar um maior comprimento da pata e, desta forma, dado um ângulo θ1 maior, corrigir a projeção como mostrado na FIGURA 34. Em 3 a correção é feita de forma a encurtar a pata já que a sua projeção no plano xy é igual ao seu próprio comprimento. A matemática associada a estes movimentos é chamada cinemática de manipuladores. Aplicações onde se têm os pontos nos quais se deseja fixar o manipulador e se deseja, a partir de cálculos, determinar os ângulos que os motores devem rotacionar denomina-se cinemática inversa. Essa será tratada no tópico seguinte. 39 FIGURA 34 - Solução para o efeito de arraste 2 3.2.5 CINEMÁTICA Cinemática no âmbito da robótica é o estudo do movimento de robôs em relação a um sistema de referência, com o interesse pela descrição analítica do 40 movimento espacial dos robôs em função do tempo, em particular pela posição e orientação do extremo de um membro em relação às suas coordenadas articulares. Existem duas abordagens dentro da cinemática: a direta e a inversa. A primeia consiste em determinar a posição e orientação do extremo de um membro, em relação a um sistema de coordenadas de referência, se conhecidos os valores das suas coordenadas articulares. Já a segunda representa o inverso da primeira, ou seja, procura-se determinar os valores das coordenadas articulares se conhecida a localização do extremo do membro. A FIGURA 35 ilustra a mudança que ocorre no espaço de trabalho utilizando a cinemática direta, realizando o caminho da esquerda para a direita, e utilizando a cinemática inversa, seguindo o caminho da direita para esquerda. Cinemática Inversa Espaço dos Atuadores Espaço Articular Espaço Cartesiano Cinemática Direta FIGURA 35 - Caminho entre a cinemática direta e inversa Conforme já descrito este projeto consiste em um robô hexápode sendo que cada pata possui três graus de liberdade, todas com mesma estrutura e dimensões. Isso facilitou os cálculos da cinemática direta e inversa, pois foi necessário fazê-los para uma única perna e generalizar para as demais. A FIGURA 36 mostra uma das pernas do robô que foi utilizada para realizar o cálculo das cinemáticas. Nessa figura pode-se notar as referências do sistema de coordenadas cartesianas para cada uma das juntas e as notações adotadas para cada um dos segmentos da perna: a1, a2 e a3. 41 FIGURA 36 - Pata do robô hexápode O cálculo da cinemática direta e inversa foi realizado baseado no livro “Introduction to robotics – John J. Craig”. Assim, foram adotadas algumas convenções e definições utilizadas no livro para obter a tabela de parâmetros dos segmentos, as quais estão apresentadas a seguir: a i = a distância do eixo Ẑ i para o eixo Zˆ i +1 ao longo do eixo X̂ i ; α i = o ângulo entre o eixo Ẑ i e o eixo Zˆ i +1 ao redor do eixo X̂ i ; d i = a distância do eixo Xˆ i −1 para o eixo X̂ i ao longo do eixo Ẑ i ; θ i = o ângulo entre o eixo Xˆ i −1 e eixo X̂ i ao redor do eixo Ẑ i . Com base na FIGURA 36 e seguindo as regras expostas anteriormente obteve-se a TABELA 2 que corresponde aos parâmetros dos segmentos, os quais são fundamentais dentro do processo do cálculo, por ser a base para os cálculos das cinemáticas direta e inversa. TABELA 2 - Parâmetros dos segmentos para cálculo das cinemáticas i 1 2 3 4 α i-1 0 90° 0 0 a i-1 0 a1 a2 a3 di 0 0 0 0 θi θ1 θ2 θ3 0 42 Durante estes cálculos foram utilizadas notações simplificadas para as funções seno e cosseno, de acordo com o padrão adotado pelo autor do livro citado e usado por alguns autores da área da robótica, devido à vasta utilização dessas funções no decorrer do cálculo, principalmente nas matrizes de transformação. cos θ i = cθ i sen θ i = sθ i Outro item importante para o cálculo das cinemáticas é a Matriz Transformação Genérica de um Segmento, que é composta da matriz de rotação e do vetor de posição. cθ i sθ cα i −1 i i −1 T = i sθ i sα i −1 0 − sθ i cθ i cα i −1 cθ i sα i −1 0 − sα i −1 cα i −1 0 0 ai −1 − sα i −1 d i matriz (1) cα i −1 d i 1 A matriz de rotação é representada pelos elementos a11, a12, a13, a21, a22, a23, a31, a32 e a33, e o vetor de posição é composto pelos elementos a14, a24, a34 da matriz transformação. Com essa matriz genérica e com a tabela de parâmetros dos segmentos devidamente preenchida, pode-se iniciar o cálculo das cinemáticas. 3.2.5.1 Cálculo da Cinemática Direta Após as etapas preliminares concluídas, o cálculo da cinemática direta é inicializado realizando o preenchimento das matrizes de transformação para cada uma das linhas da TABELA 2. Note que cada linha da tabela é composta por parâmetros dos segmentos, os quais são necessários para obter a matriz transformação. Portanto as matrizes transformação encontradas são: a. Substituindo os parâmetros encontrados na linha i=1 da TABELA 2, na matriz (1), tem-se: cθ1 sθ 0 1 T = 1 0 0 − sθ 1 cθ1 0 0 0 0 1 0 0 0 0 1 b. Realizando a mesma tarefa que anterior só que para i = 2, tem-se: 43 cθ 2 0 1 2T = sθ 2 0 − sθ 2 0 cθ 2 0 0 a1 − 1 0 0 0 0 1 c. Realizando a mesma tarefa que anterior só que para i = 3, tem-se: cθ 3 sθ 2 3 3T = 0 0 − sθ 3 cθ 3 0 0 0 a2 0 0 1 0 0 1 Com a obtenção das matrizes transformação indicadas de a até c, pode-se iniciar uma nova etapa no cálculo, que é a multiplicação entre as mesmas para obter a matriz transformação desejada. Essa multiplicação segue a seguinte ordem: i −1 i T = i −R1T QRT QPT PiT Como o interesse é achar as transformação de 01T , 02T e 03T , pois essas possuem as matrizes rotação e os vetores posição para cada umas das três juntas existentes na perna do robô e para o ponto extremo da pata. Para obter a matriz transformação de 0 2 T , foi realizado a seguinte multiplicação: T = 01T 21T 0 2 Obtendo: cθ 1cθ 2 sθ cθ 0 1 2 = T 2 sθ 2 0 − cθ1 sθ 2 − s θ 1 sθ 2 cθ 2 0 sθ 1 − cθ1 0 0 Para obter a matriz transformação de cθ1 a1 sθ1 a1 0 1 0 3 T , foi realizado a seguinte multiplicação: T = 02T 23T 0 3 Obtendo: cθ 1c(θ 2 + θ 3 ) − cθ 1 s (θ 2 + θ 3 ) sθ1 sθ c(θ + θ ) − sθ s (θ + θ ) − cθ 3 1 2 3 1 0 1 2 T = 3 s (θ 2 + θ 3 ) 0 − c(θ 2 + θ 3 ) 0 0 0 cθ1 a1 + cθ 1cθ 2 a 2 sθ1 a1 + sθ1cθ 2 a 2 sθ 2 a 2 1 44 Com o cálculo das matrizes transformação de segmentos para cada um dos três graus de liberdade da perna, pôde-se obter os vetores posições representados na FIGURA 37 em função das coordenadas articulares: θ1 , θ 2 e θ 3 . FIGURA 37 - Vetores posição da perna do robô Os pontos representados na FIGURA 37 podem ser obtidos multiplicando as matrizes rotação pelo vetor posição original da perna, conforme a fórmula a seguir: i −1 P = i −R1T QRT QPT PiT iP Assim, têm-se os seguintes vetores de pontos: o Vetor posição para a primeira articulação, Porigem: POrigem 0 = 0 0 o Vetor posição para a segunda articulação, P[0], calculado na matriz de transformação 01T multiplicado pelo vetor 0 P = 01T 1P : cθ1 P[0] = sθ1 0 − sθ 1 cθ1 0 a1cθ1 P[0] = a1 sθ1 0 0 a1 0 0 1 0 45 o Vetor posição para a terceira articulação, P[1], calculado na matriz de transformação 03T : cθ1cθ 2 P[1] = sθ1cθ 2 sθ 2 − cθ1 sθ 2 − sθ 1 sθ 2 cθ 2 sθ 1 a 2 − cθ1 0 + P[0] 0 0 a1cθ1 + a 2 cθ1cθ 2 P[1] = a1 sθ1 + a 2 sθ1cθ 2 a 2 sθ 2 o Vetor posição para o ponto extremo da perna, P[2], calculado na matriz de transformação 04T : cθ1c(θ 2 + θ 3 ) − cθ1 s (θ 2 + θ 3 ) sθ1 a3 P[2] = sθ1c(θ 2 + θ 3 ) − sθ1 s (θ 2 + θ 3 ) − cθ1 0 + P[1] s (θ 2 + θ 3 ) − c(θ 2 + θ 3 ) 0 0 Então: a1cθ 1 + a 2 cθ 1cθ 2 + a3 cθ1c(θ 2 + θ 3 ) P[2] = a1 sθ 1 + a 2 sθ1cθ 2 + a3 sθ1c(θ 2 + θ 3 ) a 2 sθ 2 + a3 s (θ 2 + θ 3 ) Para que a posição inicial da perna fosse equivalente a representada na FIGURA 37, foi alterado o valor de θ 3 para: θ 3 = θ 3 − 90° , obtendo: a1cθ 1 + a 2 cθ1cθ 2 + a3 cθ 1c(θ 2 + θ 3 − 90°) P[2] = a1 sθ 1 + a 2 sθ1cθ 2 + a3 sθ 1c(θ 2 + θ 3 − 90°) a 2 sθ 2 + a3 s (θ 2 + θ 3 − 90°) 3.2.5.2 Cálculo da Cinemática Inversa Feito todo o cálculo da cinemática direta, no qual se calculam todas as matrizes transformação, é possível iniciar o cálculo da cinemática inversa. Essa consiste em realizar o inverso da cinemática direta, ou seja, sair das coordenadas cartesianas para as coordenadas articulares. Então a matriz transformação genérica para a cinemática inversa é: 46 r11 r 0 21 3T = r31 0 r12 r22 r13 r23 r32 r33 0 0 Px P y Pz 1 A qual pode ser encontrada através da seguinte multiplicação de matrizes transformação. T = 01T (θ1 )21T (θ 2 )23T (θ 3 ) 0 3 Para encontrar a coordenada articular θ1 é realizada a seguinte operação: [ T (θ )] −1 0 0 1 1 T = 21T (θ 2 )23T (θ 3 ) 3 Assim, utilizando as matrizes transformação calculadas para o cálculo da cinemática direta, tem-se: cθ 1 − sθ 1 0 0 sθ 1 cθ 1 0 0 0 0 1 0 0 r11 0 r21 . 0 r31 1 0 r12 r22 r32 0 r13 r23 r33 0 Px c(θ 2 + θ 3 ) − s(θ 2 + θ 3 ) 0 cθ 2 a 2 + a1 Py 0 0 0 −1 = Pz s (θ 2 + θ 3 ) − c(θ 2 + θ 3 ) 0 sθ 2 a 2 1 0 0 0 1 a. Multiplicando a linha 2 da matriz 1 pela coluna 4 da matriz 2 obtém-se a primeira equação: − sθ1 Px + cθ1 Py = 0 (1) Manipulando a equação chega-se a θ1 : Py sθ 1 Py = ∴ θ1 = A tan 2 cθ1 Px Px Caso Px e Py sejam iguais a zero: θ1 = 0 b. Note que θ 2 depende de θ1 , então pode-se montar mais duas equações: cθ1 Px + sθ1 Py = cθ 2 a 2 + a1 (2 ) e Pz = sθ 2 a 2 (3) Manipulando a equação (2) chega-se: Px + Py = (cθ 2 a 2 + a1 ) 2 2 2 2 2 Px + Py − a1 = cθ 2 a 2 (4 ) Dividindo a equação (3) pela (4), obtém-se θ 2 : 47 sθ 2 = cθ 2 Pz 2 Px + Py 2 Pz ∴ θ 2 = A tan 2 2 2 Px + Py − a1 − a1 Como θ 2 foi obtido da mesma operação utilizada para obter θ1 , podese saltar uma etapa e passar para o cálculo de θ 3 . s3 c3 θ 3 = A tan 2 Onde: c3 = r11c1 c 2 + r21 s 1 c 2 + r31 s 2 s3 = − r11c1 c 2 − r21 s 1 s 2 + r31c 2 3.2.6 TRAJETO DAS PATAS O trajeto das patas foi definido baseando-se em um retângulo, o qual foi discretizado em função dos parâmetros de movimento e dos parâmetros da ordem do robô. O robô possui os seguintes parâmetros da ordem: altura do robô, altura de retorno, abertura, passo da tração, ângulo crab, PEA e PEP. Estes são responsáveis principalmente por determinar a dimensão do trajeto, sua base e altura. Existem os seguintes parâmetros de movimento: modo e marcha de caminhar. O primeiro é responsável por determinar a forma com que o trajeto ficará em relação ao robô: paralelo, perpendicular ou curvilíneo. Já o segundo é responsável principalmente por determinar a quantidade de pontos de retorno. A FIGURA 38 ilustra um trajeto genérico das patas mostrando seus parâmetros de entrada, saída e informações sobre alguns elementos do mesmo. 48 numeroDeSegmentosDaBaseSuperior passoDaBaseSuperior passoDaLateral numeroDeSegmentosDaLateral alturaDeRetorno PontoDeT rajeto base passoResidualDaT racao passoDaT racao Segmento Resto (desprezado) numeroDeSegmentosDaBase FIGURA 38 - Trajeto das patas Legenda Informação – facilita a compreensão dos parâmetros que definem a trajetória Parâmetro de entrada – originados da classe Ordem Parâmetro de saída – define a trajetória Já o número de pontos do trajeto está relacionado tanto aos parâmetros de movimentos como aos parâmetros da ordem, influenciando diretamente a velocidade de movimento do robô. Dependendo da configuração desses parâmetros o trajeto terá mais ou menos pontos, o que fará com que o robô caminhe mais lentamente ou mais rapidamente, uma vez que o intervalo de tempo durante o qual cada pata do robô permanecerá no mesmo estado é constante. Note que a velocidade com que o robô executa o movimento de caminhar é inversamente proporcional ao número de pontos do trajeto. O algoritmo desenvolvido para montar o trajeto possui a seqüência representada na FIGURA 39 pelo diagrama de atividades: 49 Calcula a base do trajeto Calcula o passo da base superior Calcula o número de segmentos da base do trajeto Calcula o passo da lateral Calcula o passo residual da tração Calcula o número de segmentos da lateral e da base superior Calcula o tamanho do retorno Calcula o numero de segmentos de retorno FIGURA 39 - Diagrama de atividades para montar trajeto A seguir é apresentado novamente o algoritmo só que mostrando o que é realizado em cad um dos passos do diagrama de atividade. 1. Calcula a base do trajeto em função da abertura do robô, da PEP e da PEA; 2. Calcula o número de segmentos da base dividindo a base pelo passo da tração; 3. Calcula o passo residual da tração pegando o resto da divisão da base pelo passo da tração; 4. Calcula o tamanho do retorno em função da base e da altura do robô; 5. Calcula o número de segmentos de retorno em função do numero de segmentos da base e da marcha; 6. Calcula o número de segmentos da lateral dividindo a altura de retorno do robô pelo tamanho do retorno; 7. Calcula o número de segmentos da base superior dividindo a base pelo tamanho do retorno; 8. Calcula o passo da lateral dividindo a altura de retorno do robô pelo numero de segmentos a lateral; 50 9. Calcula o passo da base superior dividindo a base pelo numero de segmentos da base superior. Cada ponto do trajeto tem armazenado um vetor de coordenada cartesiana, um de coordenada articular e um de tempo do PWM que são justamente calculados pela cinemática direta, cinemática inversa e por uma função que converte ângulo em tempo para o PWM, este dado pelas características do servomotor. O trajeto das patas é montado toda vez que é inserida uma nova ordem, a lista com os pontos do trajeto, caso exista, é apagada e forma-se uma nova lista contendo os novos pontos do trajeto. 3.3 MÓDULO MECÂNICO Neste tópico do relatório estão descritos todos os aspectos que envolvem partes mecânicas do robô. Desde um estudo da escalabilidade para se justificar o modelo mecânico do robô adotado, forma de fixação escolhida e as características do motores, materiais utilizados e do chassi. Esta parte é de fundamental importância, visto que as limitações do projeto estão diretamente relacionadas a esta especificação. Esta foi a estratégia adotada pela equipe: definir a estrutura de forma a atender o escopo do projeto para depois estudar e avaliar a parte eletrônica (de controle) que atenda a modelagem proposta. 3.3.1 ESTUDO DA ESCALABILIDADE Uma decisão precisava ser tomada: qual a melhor solução para o tipo de mecanismo de locomoção? As mais empregadas e conhecidas são três: rodas (será sempre analisado para o caso de um robô de quatro rodas, pois é um modelo que já existe para a aplicação em questão desse projeto), esteira e patas. Muitos são os aspectos que devem ser levados em consideração, pois cada forma de locomoção tem vantagens e desvantagens e todos eles precisam ser estudados para que se possa decidir qual utilizar. o Velocidade Dependendo da aplicação, esse pode ser um aspecto fundamental na hora de decidir o modelo de locomoção mais eficiente para um robô 51 como, por exemplo, os que levam e trazem peça para alimentar as linhas de produção de uma fábrica. A velocidade é diretamente proporcional a eficiência do robô. Já em outros de nada adianta ser ágil se a função que executada é lenta e demorada. Nesse caso a precisão dos movimentos seria muito mais importante que a velocidade. No caso de robôs para inspeção, como a varredura deve ser feita em toda a área, que pode ser muito grande dependendo do objeto a ser analisado, a velocidade poderia ser fundamental, porém os sensores normalmente exigem certo tempo para fazer os testes e o passo entre uma medição e outra é pequeno, tornando a agilidade um fator secundário. Das formas citadas, sem dúvida a mais rápida é o modelo com rodas, até porque necessita apenas de um motor para movimentar o eixo que traciona o robô. No sistema de esteira isso também acontece, porém o movimento normalmente é mais lento, pois esse modelo é mais utilizado em aplicações em que o atrito com a superfície é crítico ou então quando a área de contato precisa ser grande. Por isso robôs de esteira se movem lentamente. O sistema de patas é mais complexo para definir se é rápido ou não, pois depende de inúmeros fatores, tais como velocidade dos motores, tipos de junta e mecanismo móvel (correias, correntes, engrenagens), estabilidade e linearidade desejada para o movimento e o atrito com a superfície. Todos esses aspectos serão avaliados ainda nesse item. Mas de forma geral pode ser considerado de velocidade mediana. o Superfície A superfície é o principal fator a ser analisado para que se possa toma a decisão de qual o modelo ideal para ser empregado, pois toda a locomoção depende das dificuldades de se fixar, percorrer toda a superfície e contornar obstáculos pertencentes à mesma. Inclinação A forma de fixação está diretamente ligada à inclinação da superfície que o robô deve percorrer. Isso porque superfícies planas e com inclinação positiva (inferiores a 90º) em relação ao solo, permitem que esteiras, rodas subam e patas consigam subir, 52 obviamente que com problemas de atrito no caso de inclinação muito elevada, o que pode ser perfeitamente resolvido com materiais antiderrapantes. Mas a partir do momento que a inclinação passa a ser vertical (90º) ou superior (inclinação negativa) até 180º do solo, ou seja, de ponta cabeça, torna-se necessário um sistema de fixação muito mais eficiente que sustente o peso do robô. Esse é o problema a ser a analisado quanto á inclinação. Regularidade A regularidade da superfície está relacionada às imperfeições de tamanho consideráveis, tais como buracos, amassados ou baixo relevo em um trecho da superfície. Também pode ser considerada a planicidade da mesma, para que se possa optar pelo sistema de locomoção mais adequado. Esse aspecto pode ser descrito para cada modelo separadamente. No caso de rodas, um buraco na superfície pode ser um problema relativamente grande se a roda cair dentro no mesmo, o que pode ser considerado um obstáculo para esse modelo. Nesse caso a varredura teria que ser feita em vários sentidos, de forma que em nenhuma trajetória a roda tenha que passar sobre o buraco. Com amassados ocorreria uma instabilidade na locomoção, pois sem uma das rodas apoiada, fatalmente o robô iria balançar, já que o peso normalmente está distribuído sobre as quatro rodas, ou seja, o centro de massa fica próximo ao centro geométrico do robô. Já o sistema de esteira é mais eficiente quando o buraco ou o amassado é menor que as dimensões da mesma. Nesse caso o robô pode passar por cima da irregularidade sem problemas, pois não afetará em nada a locomoção. Ele passará como se não houvesse nenhum problema na superfície. Mas no caso da irregularidade ser maior, ou o robô contorna, da mesma forma que a descrita para o robô de rodas, ou então passa por dentro do buraco, já que com esteira é perfeitamente possível entrar e sair de um buraco sem o risco de ficar preso. 53 O sistema de patas é muito flexível às irregularidades, quando possui um certo número de graus de liberdade, pois com sensores de contato nas patas pode-se facilmente detectar o problema e reposicionar as patas de forma a poder superar o problema com naturalidade, assim como permite que o robô se abaixe, ficando mais próximo da superfície interna do amassado, de forma que possa ser inspecionada com a mesma distância e conseqüente precisão, em relação a superfície normal. Rugosidade Essa característica parece não ter influência direta para o tipo de sistema de locomoção a ser utilizado, mas se for analisar mais a fundo, no sentido que o robô deve andar até mesmo de ponta cabeça, a rugosidade implica direto sobre a forma de fixação. Uma superfície muito rugosa tem como conseqüência uma menor área de contato entre robô e também um atrito menor. No caso de um sistema de fixação por ventosas, a rugosidade seria crítica, pois pode ser o diferencial entre o sucesso e o fracasso da sustentação do robô. Para superfícies rugosas, não existe muita diferença entre cada tipo de sistema de locomoção, pois patas, rodas e esteira terão a mesma dificuldade caso o nível de rugosidade seja muito elevado e não apresentarão problemas caso a rugosidade seja pequena. Portanto esse aspecto deve ser levado em consideração para decidir o mecanismo de fixação, mas para a forma de locomoção não é um fator de suma importância. Obstáculos O problema dos obstáculos na superfície a ser percorrida é outra característica que influi consideravelmente na hora de decidir o melhor modelo a ser adotado para a locomoção. Este sem dúvida nenhuma é o item que mais diferencia entre as três técnicas. Obstáculos podem ser divididos em duas situações distintas: obstáculos superáveis e os que precisam ser contornados. 54 Superáveis são aqueles pelo qual o robô pode passar por cima, tais como parafusos ou alguma espécie de ponta sobressalente. Nesse caso os robôs de roda e esteira apresentam uma certa complexidade, pois normalmente são baixos (principalmente o de esteira) e também pode ocorrer a colisão da roda com o obstáculo. Nesse caso, estes terão que buscar uma nova trajetória, busca uma melhor posição para passar sobre ele. Quando o sistema de locomoção utilizado é o de patas, assim como para superar irregularidades, esse modelo é o mais indicado pelos mesmos motivos, ou seja, flexibilidade de movimentos, permitindo que reposicione as patas de forma a facilitar a transposição da barreira em questão e também é normalmente mais alto que os dois outros modelos. Além disso, permite que o robô consiga de forma mais eficiente fazer a análise das redondezas do obstáculo, já que pode se abaixar ou até se aproximar de forma inclinada em relação à superfície, permitindo que o sensor fique mais próximo. Mas no que se refere a obstáculos de grandes proporções que empeçam o robô de passar sobre o mesmo, todos os métodos apresentam as mesmas dificuldades e inevitavelmente devem alterar a trajetória para conseguir contornar o problema. A vantagem ainda que pequena é para o modelo de patas, pois consegue andar em todos os sentidos, permitindo que o corpo do robô passe mais próximo do obstáculo. Magnetismo Existem basicamente duas formas de fixação utilizadas em robôs escaladores: por ventosas e por sistemas magnéticos. Isso será discutido mais a fundo no item 3.3.4, tópico esse relacionado aos tipos de patas. Como a idéia do projeto é escalar superfícies ferromagnéticas, os princípios de fixação mais indicados são os que utilizam os princípios magnéticos e, portanto o magnetismo é um aspecto que deve ser levado em conta também para decidir o sistema de locomoção a ser empregado. No quesito magnetismo um fator que é considerado como positivo é a área de contato que o robô tem com a superfície, já que com uma 55 área menor as formas de desenvolver o sistema magnético se tornam mais fáceis e conseqüentemente mais baratas. Nesse sentido a esteira leva muita vantagem sobre os outros dois métodos, porém com patas, no caso de superfícies irregulares ele consegue se moldar à ela, de forma a conseguir sempre a mesma área de contato, o que não é possível com rodas e esteira. o Trajetória Esse critério deve pode ser dividido em dois aspectos principais que se referem aos problemas que podem surgir no que se refere ao deslocamento propriamente dito: granularidade e omnidirecionalidade. Granularidade A granularidade de um movimento de trajetória pode também ser definido como a precisão ou até mesmo o passo entre uma posição e outra que o robô pode alcançar. Esse é um item muito relevante quando o intuito é fazer inspeção de uma superfície, pois nesse caso nenhum trecho pode ficar sem ser analisado e como os sensores têm uma certa área de cobertura, o passo entre uma posição e outra tem que ser a maior possível a fim de se ganhar velocidade na inspeção, mas por outro lado deve ser o menor possível para evitar pontos não verificados. Quanto aos tipos de locomoção, o sistema de rodas e o de esteira são muito semelhantes para esse critério. Têm uma grande vantagem de permitir movimentos de avanço para frente muito lento, já que basta controlar a velocidade dos motores de tração. Mas um problema inerente a esse sistema de locomoção é o arraste durante uma mudança de trajetória, que apesar de parecer suave, é sabido que sempre há um pequeno escorregamento, principalmente na esteira. Portanto deve-se tomar cuidado quando elaborado o programa de controle para que os movimentos de mudança de trajetória não possam comprometer a área de cobertura do movimento. O sistema de patas pode ser considerado o oposto em relação ao que acabou de ser dito dos outros dois sistemas. O robô com patas 56 apresentado e escolhido para o projeto, hexápode, retangular e com três graus de liberdade permitem que ele se locomova em praticamente todas as direções com a mesma precisão já que permite andar para frente, para os lados e em diagonal. Portanto resolve o problema de mudança de trajetória, porém deve-se tomar o devido cuidado com o arraste, já que nesse caso o atrito deve ser considerado para todos os movimentos, para que a pata não escorregue ao invés de tracionar o robô para qualquer direção. Mas isso já passa a ser problema do sistema de fixação, que também será analisado nesse relatório. Omnidirecionalidade Esse item tem um pouco a ver com a questão que acabou de ser abordada da granularidade. Omnidirecionalidade é a capacidade do robô poder andar em todas as direções. O robô por patas, conforme acabou de ser descrito, tem a liberdade para andar em muitas direções diferentes, sendo limitado somente à estrutura mecânica, tal como curso das juntas e ângulo de rotação dos motores. Portanto é o melhor sistema quando necessário uma fácil flexibilidade para trajetórias variadas, porém torna mais complexo o projeto das trajetórias a serem realizadas, pois sempre são infinitas as formas de percorrer uma determinada área. Para sistemas de rodas e patas, a direção normal de deslocamento é para frente ou para trás, ou seja, em apenas um eixo. No caso da necessidade de ir parra uma posição ao lado da que o robô se encontra é preciso fazer uma manobra muito grande quando comparada ao robô de patas. o Paralelismo com a superfície A princípio parece óbvio afirmar que um robô de esteira ou com rodas é o mais indicado para percorrer superfícies de forma a manter um paralelismo entre o corpo do robô e o chão. Isso porque a primeira situação que se imagina é a de uma superfície plana. Mas vale lembrar que o robô tem como escopo vencer superfícies com diferentes graus de inclinação e inevitavelmente vão ocorrer situações como a apresentada na FIGURA 40 57 C orpo do R obô S en s o r R oda P ata s R o bô de rodas R o b ô d e p ata s FIGURA 40 - Vantagem do robô de patas em relação ao de rodas ou esteira Fica muito evidente que quando existe a necessidade de se fazer inspeção ou qualquer tipo de análise da região de transição entre duas superfícies, o robô de patas é extremamente flexível para se moldar de forma que o sensor fique sempre perpendicular à superfície e com a mesma distância também. Isso de forma algum é possível no caso de robôs de rodas ou esteira. Para esses tipos de robôs, seria necessário um mecanismo para movimentar e alinhar o sensor, tornando o projeto mais complexo. Depois de analisar todos os tópicos que foram tratados nesse item do relatório, fica evidente que, para a aplicação desejada, em poucos o sistema de locomoção utilizando patas tem desvantagem sobre os dois outros dois. E quando isso ocorre a desvantagem é muito ínfima se comparada com a vantagem que tem nos demais aspectos e, portanto foi isso que levou a equipe a adotar esse modelo para ser utilizado no projeto. 3.3.2 ESTRUTURA MECÂNICA DO ROBÔ Com a decisão de se utilizar robô com pernas, buscou-se robôs existentes no mercado, com foco nas estruturas mecânicas (chassis) e demais composições (pernas, servos...), levando em consideração as dimensões e principalmente os graus de liberdade de cada pata. Os robôs de pernas são classificados em bípedes, quadrúpedes, hexápodes, etc. Pela especificação do projeto o robô bípede foi descartado de imediato. Com relação a quatro e seis pernas um estudo mais detalhado foi realizado. Como o 58 escopo do projeto exige que o robô seja escalador e a fixação será feita por meios eletromagnéticos, a utilização de seis patas se mostra muito melhor que a de quatro, já que serão mais pernas em contato com a superfície para sustentá-lo. Além disso, um robô com seis patas permite maior flexibilidade nas formas de locomoção aumentando, portanto a mobilidade. Considerando também a tendência mundial e que mais de seis patas se tornaria inviável pelo aumento do custo e da complexidade, já que seriam mais servos, mais controles, optou-se pela utilização de um robô hexápode. Além disso, decidiu-se por utilizar três graus de liberdade por pata, já que é um número bastante utilizado em projetos mais sofisticados. Isso permite que o robô possa andar de lado (caminhada tipo caranguejo) e de diversas formas. Nesses modelos são necessários dezoito servos. Com isso alguns formatos de chassis foram encontrados. 3.3.2.1 Chassis Encontrou-se no mercado dois modelos de chassis hexápodes, o redondo e o retangular. Na FIGURA 41 e na FIGURA 42 tem-se o robô cuja forma geométrica do corpo é circular, com 6 patas igualmente espaçadas entre si, ou seja, a 60º uma da outra. Isso permite ao robô andar em todos os sentidos sem necessidade de rotacionar o corpo. FIGURA 41 - Robô com chassi redondo FIGURA 42 - Foto do chassi redondo 59 Já na FIGURA 43 e na FIGURA 44, tem-se o robô com a simetria do corpo retangular que permite ao robô andar para frente, para trás, para os lados e em diagonal, porém esse último movimento é mais limitado que para o robô circular. FIGURA 43 - Robô com chassi retangular 3.3.2.2 FIGURA 44 - Foto do chassi retangular Pernas Na FIGURA 45 é mostrada uma perna com três graus de liberdade. Nela pode-se notar as articulações e as posições dos servos. FIGURA 45 - Foto de uma das pernas do robô 60 3.3.2.3 Peças Para unir as partes do corpo utilizam-se parafusos de aço e espaçadores de nylon. Para prender os motores às pernas utilizam-se rebites de nylon. FIGURA 46 - Espaçadores de nylon As vistas frontal e superior são apresentadas na FIGURA 47 e na FIGURA 48, respectivamente. FIGURA 47 - Vista frontal da perna instalada FIGURA 48 - Vista superior da perna instalada ao corpo ao corpo 3.3.2.4 Composição do Material Quanto ao material do robô optou-se por um material que fosse leve e resistente. Com isso a busca convergiu aos robôs de policarbonatos. Esse material relativamente novo é, na verdade, um dos mais avançados polímeros no campo dos plásticos, sendo considerado um plástico de engenharia, 61 ou seja, um material que reúne características de resistência que o qualifica para aplicações de alta exigência. Na especificação do fabricante do robô encontra-se o termo Lexan. Lexan é uma chapa de policarbonato, que é atingida a partir de um sistema de polimerização patenteado pela General Eletric. Principais características das chapas de policarbonato: o Resistência ao impacto: as chapas de policarbonato oferecem uma excelente resistência ao impacto, sendo 250 vezes superior à do vidro, e 30 vezes superior à resistência do acrílico. o Curvatura a frio: as chapas de policarbonato podem ser curvadas a frio, ou seja, as chapas são sempre planas, e quando da necessidade de utilizar em uma estrutura curva basta depositá-la sobre a estrutura e fixá-la adequadamente que ela se curvará sem quebrar. o Leveza: as chapas de policarbonato são muito mais leves que o vidro. As compactas pesam a metade, e as alveolares 12 vezes menos. o Resistência aos raios ultravioleta: enquanto outros materiais plásticos como o acrílico, o PVC, o polipropileno, o polietileno e a fibra de vidro são atacados pelos raios ultravioletas, as chapas de policarbonato possuem uma proteção contra este ataque, com uma garantia de 10 anos. o Atendimento a códigos de flamabilidade: as chapas Lexan têm as melhores características de resistência à chama exigida para materiais plásticos transparentes. As chapas atendem a classe um dos conceituados Underwriter's Laboratories. Na FIGURA 49 visualiza-se um teste, onde o chassi do robô hexápode recebe uma torção para provar a flexibilidade e a resistência do material. 62 FIGURA 49 - Teste com material de policarbonato 3.3.2.5 Graus de Liberdade o Um Grau de Liberdade por Pata z x y FIGURA 50 - Robô com um grau de liberdade por pata Este tipo de robô realiza o movimento de caminhar através do movimento de translação da extremidade da pata sobre o eixo y, este movimento é semelhante ao movimento proporcionado pelos robôs com rodas. Vantagens: Sistema de controle simples; implementação do robô com poucos motores. Possibilidade de 63 Desvantagens: Incapacidade de controlar a trajetória; Modo de caminhar instável. As desvantagens desqualificam este tipo de robô para a aplicação. o Dois graus de liberdade por pata: Este tipo de robô realiza o movimento de caminhar através da composição do movimento de translação do conjunto da pata em torno do eixo z e o movimento vertical da pata sobre o eixo z. Vantagem: Algoritmo de caminhar simples. Desvantagens: Arraste das patas; Trajetória pouco controlável. As desvantagens desqualificam este tipo de robô para a aplicação z x y FIGURA 51 - Robô com dois graus de liberdade por pata 64 o Três graus de liberdade por pata: z x y FIGURA 52 - Robô com três graus de liberdade por pata Este tipo de robô realiza o movimento de caminhar através da composição de translação do conjunto da pata sobre o eixo z que proporciona o movimento de deslocamento do robô como um todo e a composição dos dois movimentos sobre o eixo x de forma a compensar o arco gerado pela translação (este assunto será aprofundado no capítulo: Modelagem). Vantagens: Trajetória muito controlável; Desvantagens: Algoritmo de controle complexo; As vantagens qualificam este tipo de robô para a aplicação. 3.3.2.6 Servos O robô adquirido utilizado no desenvolvimento do projeto foi desenvolvido para caminhar sobre superfícies sem inclinação em relação ao plano horizontal. Os servo-motores do grau de liberdade que proporciona a propulsão do robô adquirido são, portanto, dimensionados de forma a desconsiderar a componente normal do robô que aparece quando ele está escalando superfícies inclinadas. Então foi analisada a influência desta componente para o pior caso, ou seja, o robô se deslocando numa superfície vertical para cima. Não se tem uma estimativa razoável para a aceleração, mas é comum na modelagem de robôs escaladores atribuir à componente dinâmica um valor igual ao 65 peso. Deste modo, a força total que age no sentido vertical e que deve ser superada pelo somatório das forças dos servos é igual a 80N, já que a massa total do robô é de 4kg. Cinco patas fazem força ao mesmo tempo, portanto cada uma dessas patas deve ser capaz de carregar 1/5 desta carga, ou seja, 16N. FIGURA 53 - Forças de agem no robô escalando uma parede vertical A especificação de um servo útil para determinar a capacidade de carga é o torque. O tamanho do braço de alavanca influencia na capacidade de carga. Na expressão abaixo: o vetor torque τ é o produto vetorial entre o vetor do braço r de alavanca e o vetor força F. ρ ρ ρ τ = r ×F O braço de alavanca da pata é 11cm conforme a FIGURA 54 abaixo: 66 11cm FIGURA 54 - Braço de alavanca da pata do robô De posse da especificação de carregamento e do braço de alavanca é possível calcular o torque necessário para um único servo-motor. τ = 0,11 ⋅ 16 ⋅ sen(90°) = 1,760 N ⋅ m Existem três motores disponíveis que atendem as especificações dimensionais do robô, já que os recortes nas partes mecânicas são exatos e não permitem qualquer tamanho de motor. São eles: 67 Servos Características HS-475HB Torque: 0,55N.m Peso: 40g HS-645MG Torque: 0,96N.m Peso: 55g HSR-5995TG Torque: 3N.m Peso: 62g FIGURA 55 - Servos motores O único servo-motor cuja especificação de torque atende aos requisitos é o HSR-5995TG com um coeficiente de segurança de 70%. Apesar de só esse modelo ser aceitável para aplicação, no momento da aquisição do robô apenas o modelo HS-645MG estava disponível para venda no site da Lynxmotion. Levando-se em consideração a elevada diferença de preço dos dois modelos e o tempo que poderia levar até serem disponibilizados o modelo desejado, foi optado por adquirir o 68 segundo modelo, mesmo tendo consciência de que não atenderia perfeitamente às necessidades do projeto. Para efeito de comparação, o motor adquirido custa cerca de 45 dólares a unidade e o outro 280 dólares, já considerando todas as despesas de importação. Isso representava uma diferença muito significativa no custo de desenvolvimento, já que a idéia era usar o robô adquirido apenas como protótipo para estudo e análise para então reprojetar e mandar refazer a parte mecânica com as dimensões apuradas após essa etapa. Por isso nem foram procurados outros representantes para adquirir logo de início o motor correto. Depois que o robô foi recebido, montado, exaustivamente testado pôde-se concluir que o motor necessário para uma perfeita escalabilidade em superfícies verticais realmente seria o HSR-5995TG. Com o motor atual o robô conseguiu escalar superfícies com aproximadamente 25° de inclinação. Como ainda não estava disponível para a venda pela Lynxmotion foram pesquisados representantes do fabricante do motor para que fosse realizada a compra diretamente. A compra foi efetuada em novembro de 2005, mas até a presente data não chegaram 3.3.3 DECISÃO DO ROBÔ A SER COMPRADO Alguns sites de empresas que fornecem robôs hexápodes foram pesquisados, principalmente nos Estados Unidos. Chegou-se a encontrar modelos extremamente simples, que chegavam a funcionar apenas com dois motores, sendo que apenas um motor era utilizado para coordenar o movimento de três patas. Duas empresas americanas de robôs apresentaram modelos de robôs mais completos, robustos e adequados para as especificações. A primeira foi a Robotic Crust Crawler Design & Development, sediada no Arizona – EUA. A segunda foi a Lynxmotion, Inc, sediada em Pekin,IL – EUA. A Robotic Crust Crawler oferece o modelo HexCrawler HDATS (Heavy Duty All Terrain System). É um robô de alumínio, com três graus de liberdade. A Lynxmotion, possui o modelo Extreme Hexpod 3. Também é um robô com três graus de liberdade, porém de policarbonato. Pode-se ver os dois modelos na FIGURA 56 e na FIGURA 57. 69 FIGURA 56 - Modelo HexCrawler FIGURA 57 - Modelo Lynxmotion São modelos bastante parecidos, que possuem características muito semelhantes. Os servo-motores são os mesmos para os dois modelos. Em relação ao peso, o HexCrawler pesa 2,608 Kg, o Lynxmotion 3,234 Kg. Quanto ao tamanho, para o HexCrawler e o Lynxmotion as medidas do robô são 50,6x30,48x15,24 cm e 43,18 x 40,64 x 17,78 cm, respectivamente. Considerando estes levantamentos, decidiu-se pela compra do modelo Extreme Hexpod 3 da Lynxmotion. Este foi o que apresentou o material mais apropriado, já que o alumínio em ambientes salinos sofre oxidação e corrosão, além de ter melhores especificações técnicas. Na FIGURA 58, pode-se observar o tamanho do robô em comparação a uma latinha de refrigerante. Nota-se que o robô passa pela lata, já que a sua altura varia de 5 a 18 cm conforme se varia o ângulo das patas. FIGURA 58 - Robô Lynxmotion sobre uma lata de refrigerante 70 3.3.4 PATAS MAGNÉTICAS Existem algumas formas possíveis de se fixar um corpo em superfícies ferromagnéticas, porém estudando as características de cada uma e também as possibilidades viáveis e funcionais para o fim desejado, escalar cascos de navios e plataformas de exploração petrolífera, algumas soluções são descartáveis pela complexidade de implementação ou então pela ineficiência. Entre os sistemas utilizados atualmente em robôs escaladores, um dos mais empregados em máquinas para inspeção de dutos de ar condicionado, por exemplo, são ventosas de borrachas com acionamento por eletroímãs. Um protótipo utilizando esse sistema de fixação pode ser observado na FIGURA 59, que foi estudado e desenvolvido pela Universidade de Hong Kong. Essa técnica não é viável para a aplicação proposta, pois para isso as superfícies devem ser perfeitamente lisas e sem nenhum tipo de sujeira que possa interferir na vedação da ventosa fazendo com que a mesma fique solta sobre a superfície. FIGURA 59 - Protótipo de robô escalador usando ventosas Uma outra forma já empregada inclusive em um protótipo de robô para inspeção de superfícies ferromagnéticas é um carro provido de rodas de ímãs permanentes. É o caso do robô desenvolvido pelo CENPES que foi apresentado anteriormente (FIGURA 3), de forma que ficasse sempre fixo ao casco. Dessa forma a área de contato do ímã é sempre a tangente da roda com a superfície, o que torna 71 necessário o uso de um ímã extremamente forte e robusto para sustentar todo o peso do robô somado com as forças envolvidas. Além desses dois modelos, um terceiro que foi estudado é o apresentado na FIGURA 60, que consiste em um robô escalador que como sistema de movimentação utiliza uma esteira dotada de ímãs permanentes. Esse sistema é muito eficiente, mas apresenta dois pontos negativos já citados no capítulo referente à escalabilidade (3.2): a dificuldade de superar obstáculos e o arraste durante uma manobra. Além disso, as esteiras magnéticas que existem comercialmente, utilizadas em robôs são muito caras por causa da complexidade de fabricação. Esse robô de esteira foi desenvolvido por um grupo de pesquisa da Universidade Jiao Tong de Shanghai, China. FIGURA 60 - Robô escalador com esteira de ímãs permanentes Analisando os pontos positivos e negativos desses três modelos de fixação, e levantando os requisitos necessários do projeto em si, pôde-se decidir qual a melhor forma de fixação para ele. A fixação será tratada no item 3.3.4.2. 3.3.4.1 Requisitos Os requisitos básicos determinantes para a escolha da forma de fixação eram: o Atender aos diversos formatos de superfícies desejadas, pois podem apresentar ângulos entre as chapas que não sejam de 180°, aclives, 72 declives e até mesmo nas situações em que o robô deva andar de ponta cabeça; o Sustentar o peso do robô, considerando toda sua massa com motores, placa de controle e também os cabos dependurados do cordão umbilical responsável pela alimentação e controle da parte eletroeletrônica; o Possuir uma margem de segurança para o caso de algumas patas não conseguirem fazer a devida fixação, com força inferior à plena. Isso pode ocorrer por uma irregularidade na superfície, como uma solda, parafusos ou porosidade, o que reduz a área de contato da pata com a superfície e conseqüentemente a força de fixação; o Ser suficientemente forte para evitar escorregamento quando o robô estiver em posições que não a horizontal. Como a superfície escalada tende a ser lisa e a superfície de contato da pata com a mesma também o é, esse requisito deve ser atendido para que evite erros na trajetória de locomoção. 3.3.4.2 Soluções Apontadas Depois de analisar as soluções já empregadas em aplicações semelhantes às desse projeto, considerando dificuldades de implementação, eficiência e também viabilidade, o sistema de ventosas pode ser desconsiderado de imediato, pois qualquer imperfeição na superfície ou sujeira o torna ineficiente. Então restou como alternativa o uso das patas magnéticas. Mesmo assim ainda eram muitas as opções que podiam e deviam ser analisadas antes que pudesse determinar a melhor delas. A primeira delas e que parecia mais simples era o uso de eletroímãs, inteiro de ferro doce, com enrolamento de cobre, que é o modelo mais comum e extremamente empregado em diversas aplicações industriais, como guinchos para içar sucata em ferros velhos e fundições de ferro e aço. E a outra seria o uso de ímãs permanentes, baseado na idéia do modelo desenvolvido pelo CENPES (FIGURA 3). Essa também é uma forma bastante eficiente, considerando-se os ímãs que existem no mercado, pois suportam muito peso, tendo um volume e peso muito pequenos. 73 Então se partiu para o desenvolvimento do primeiro protótipo que consistiu em um núcleo maciço de ferro doce com um enrolamento de cobre. Seguem as descrições de todas as etapas do desenvolvimento, testes e conclusões tiradas para cada protótipo. o Eletroímã em forma de carretel de ferro doce: Essa foi a primeira experiência realizada, pois é um modelo muito utilizado, já que é o mais simples e bastante eficiente. E pela facilidade de confecção dos carretéis, utilizando ferro doce, os primeiros protótipos ensaiados foram feitos com o material disponível só para efeitos de estudo, com o intuito de verificar as dificuldades que podem ocorrem na prática e que através de equações teóricas acabam sendo desconsiderados. Na FIGURA 61 podem ser vistos os dois eletroímãs de carretel de ferro doce confeccionados. As dimensões são as seguintes: À esquerda: núcleo de 9mm, ø de 23mm, comprimento de 27mm e fio 0,3mm; À direita: núcleo de 7mm, ø de 20mm, comprimento de 20mm e fio 0,3mm; FIGURA 61 - Eletroímãs confeccionados com carretel de ferro doce É sabido que o campo magnético ( B ), é dado por: 74 FIGURA 62 - Equação do campo magnético de um eletroímã e a força do imã será proporcional à energia armazenada no campo magnético: Portanto, W depende diretamente do quadrado do número de espiras (N), assim como diretamente proporcional ao quadrado do raio da bobina (r), do quadrado da corrente aplicada à bobina (I), ao material do núcleo (que apresenta uma permeabilidade magnética µ) e é inversamente proporcional ao comprimento da mesma (l). Para o material do núcleo existem algumas ligas com uma permeabilidade alta, mas o material mais acessível e muito utilizado para esse fim, que foi usado nos estudos, é o ferro doce. A corrente a ser aplicada é um problema fundamental para esse modelo, pois durante a locomoção, supondo que cinco patas estejam sempre fixas enquanto a sexta se movimenta, representa o consumo de muita potência simplesmente para mantê-lo fixo à superfície. Basicamente a variável que pode ser alterada é o número de espiras (N), e para isso há duas possibilidades reduzir o diâmetro do fio, o que implica em uma corrente nominal aplicável menor, porém uma força maior com um núcleo de mesmo tamanho ou então modificar as dimensões da bobina, aumentando o comprimento da bobina ou diminuindo o diâmetro do núcleo. O carretel que está do lado esquerdo na FIGURA 61 era capaz de sustentar um corpo de aço de 1,1Kg aproximadamente, o que atenderia aos 75 requisitos para sustentar o robô com 5 patas em contato com a superfície e a outra movimentando. Para esses testes foi utilizada uma fonte de tensão comercial de 30+30V/5A. Um problema constatado foi o aquecimento do carretel já que a corrente nominal aplicada estava acima da recomendada em tabelas de fio esmaltado. Isso se resolveria dimensionando o carretel para comportar mais espiras e poder trabalhar na corrente nominal do fio, mas dois grandes problemas surgiram: o alto consumo de potência, já que pode ser necessário que o robô fique horas na mesma posição ou andando; e no caso de falta de energia ele se soltaria da superfície, escorregando se estiver num plano inclinado ou cairia em queda livre se estivesse em ângulos superiores a 90°. Para isso seria necessário um sistema de segurança que o impedisse se chocar com o solo ou água e para não ficar pendurado cordão umbilical. Ficar preso por uma corda, por exemplo, afastaria o risco de perdê-lo, mas conseqüentemente sairia da posição em que estava e então se tornaria necessária à recolocação do mesmo no local em que estava assim que fosse resolvido o problema da alimentação elétrica. Também no caso dele precisar ficar parado em algum ponto iria consumir potência durante todo o tempo, já que pelo menos o número mínimo de patas necessárias para mantê-lo fixo deveriam ficar energizadas. o Eletroímã em forma de carretel de nylon com núcleo de ferrite: Mesmo com o modelo anterior tendo funcionado de forma a atender os requisitos de funcionamento, foram testados mais dois modelos com o carretel confeccionado em nylon, para verificar quais seriam as diferenças com relação à força do eletroímã, já que se funcionasse da mesma forma, o peso seria reduzido, contribuindo de forma positiva para a estrutura mecânica. Esse primeiro modelo consistia em um carretel com um núcleo de ferrite. Mas já no primeiro teste, observou-se que a força de atração era muito pequena. Então, estudando as características do ferrite e lendo artigos sobre o assunto pode-se concluir que esse material não é apropriado para operar em corrente contínua (CC), já que não é possível criar uma orientação atômica que gere um campo magnético intenso. Por 76 isso o ferrite é mais utilizado para corrente alternada (CA) já que não fica com magnetismo residual elevado, ou seja, tem uma baixa histerese. o Eletroímã em forma de carretel de nylon com núcleo de ferro doce: Já o segundo modelo utilizando carretel de nylon foi semelhante ao que acabou de ser descrito, porém com um núcleo de ferro doce, depois de descartada a possibilidade de empregar ferrite em CC. Apenas substituindo o núcleo, mantidas as mesmas características e dimensões, já se pôde observar uma variação no comportamento do eletroímã causada por essa alteração. O eletroímã teve sua força aumentada, mas ainda longe dos resultados obtidos com o carretel inteiro de ferro. 3.3.4.3 Estudo de ímãs permanentes Apesar desse último protótipo ter funcionado bem, o risco de queda por falta de energia e alto consumo continuava existindo. Com isso surgiu uma nova idéia para desenvolver algum mecanismo usando ímãs permanentes que garantissem a sustentação do robô. Para tal, foram estudados os tipos de ímã permanente que existem no mercado de forma comercial. Segue um descritivo dos principais e a TABELA 3 comparativa. o Liga de NdFeB: Alta intensidade de campo magnético; Alto fator de remanência e coercividade (11500 Oersted); Custo relativamente baixo; Mecanicamente mais resistente que a liga SmCo; Pode ser usado até 200 graus Celsius; Não recomendado para uso em atmosfera de hidrogênio líquido; O tipo colado pode ser cortado por máquina, mas não suporta choques mecânicos. o Liga de SmCo: Alta intensidade de campo magnético; 77 Ideal para aplicações de alto desempenho; Alta resistência à desmagnetização (18000 Oersted); Excelente estabilidade térmica; Alta resistência à corrosão; Imã de custo elevado; Pode ser usado até 300 graus Celsius; Quebradiço (produz lascas facilmente) - não é recomendado para uso como componente estrutural. o AlNiCo Mais barato que os imãs de ligas de terras raras (NdFeB e SmCo); Temperatura de funcionamento tão alta como 550 graus Celsius; Coeficiente de temperatura bastante baixo; Baixa coercividade quando comparado a outros grupos de ímãs; Altos níveis de campos de indução magnética. o Ferrites Frágeis; Pobre estabilidade térmica; Mais barato dentre todos os grupos; Pode ser usado até 300 graus Celsius; Necessita moagem para atingir tolerância à compressão; Deve ser usado como pó em situações que exigem compressão; Alta resistência à corrosão. 78 TABELA 3 - Tabela comparativa de ímãs permanentes Comparações Baixo Alto Custo Ferrite AlNiCo NdFeB SmCo Intensidade de campo Ferrite AlNiCo SmCo NdFeB Temperatura de operação NdFeB Ferrite SmCo AlNiCo Resistência à corrosão NdFeB SmCo AlNiCo Ferrite Resistência à desmagnetização AlNiCo Ferrite NdFeB SmCo Resistência estrutural Ferrite SmCo NdFeB AlNiCo Coeficiente de temperatura AlNiCo SmCo NdFeB Ferrite Com essa tabela e analisando as características de cada ímã, apenas dois tipos são viáveis para a aplicação em questão. São as ligas de NdFeB (Neodímio Ferro Boro) e SmCo (Samário Cobalto). Mas comercialmente, o ímã de NdFeB é mais barato e mais fácil de ser encontrado que o segundo, e além disso o primeiro tem mais intensidade de campo, que é a principal característica requisitada nessa aplicação. Esses ímãs não são fabricados no Brasil e isso dificulta bastante encontrar na literatura ou em sites informações sobre as especificações de força de atração, coercividade e outras características importantes para o dimensionamento correto. Por isso foram comprados alguns modelos de tamanhos variados desse ímã e muitos testes foram feitos a fim de verificar quais as dimensões ideais para que se consiga a sustentação do robô. Verificou-se que a força necessária para sustentar o robô na vertical era obtida com dois ímãs em forma de barra redonda, conhecida como retma. Podem ser considerados pequenos, pelas dimensões de 8mm de diâmetro por 8mm de comprimento. Juntos sustentam aproximadamente quatro quilos, peso total do robô, garantindo uma excelente margem de segurança, já que com apenas duas patas o robô ficaria fixo. Mas então surgiu outro problema: como soltar a pata da superfície? Como o robô tem uma estrutura mecânica que não foi projetada para ser usada dessa forma, os motores não conseguiriam soltar a pata sem fazer um esforço acima do previsto, assim como seria exigido mais da estrutura mecânica propriamente dita. Surgiu a necessidade de desenvolver uma forma simples e de pequenas proporções para resolver tal problema. Todas as possibilidades de solução mecânica exigiriam mais um motor ou algum sistema hidráulico/pneumático que pudesse gerar uma força para soltar o 79 ímã, o que seria muito complicado de adaptar à pata. Então a solução para soltar deveria ser de mesma origem que a força de fixação, ou seja, magnética. A idéia foi a seguinte: para soltar o ímã permanente, bastaria anular seu campo e para isso a solução adotada foi utilizar um eletroímã. 3.3.4.4 Sistema de fixação empregado Iniciou-se uma nova frente de pesquisa da melhor forma a ser feito esse sistema ímã-eletroímã e analisando as formas possíveis e viáveis para adaptar à pata, a melhor seria uma bobina envolta do ímã. Um primeiro protótipo montado foi baseado no carretel de núcleo de ferro. Apenas foi feito um furo na extremidade, que fica em contato com a superfície, do núcleo e colocado um ímã com as dimensões já citadas (8mmx8mm), conforme pode ser visto na FIGURA 63. Núcleo de Ferro Doce Ímã Permanente FIGURA 63 - Carretel para enrolar a bobina do eletroímã com ímã na extremidade Mas constatou-se que dessa forma não funciona pelo seguinte motivo. O campo magnético gerado pelo eletroímã no núcleo só é capaz de anular o campo na região de contato ímã núcleo. Visto isso, partiu-se para um novo modelo. Usando o mesmo núcleo ainda, foi aprofundado o furo, de forma que o ímã ficasse embutido no núcleo e uma “tampa” do mesmo material do núcleo fosse colocada no furo, como mostrado na FIGURA 64. Núcleo de Ferro Doce Ímã Permanente Doce Núcleo de Ferro Doce FIGURA 64 - Carretel para enrolar a bobina do eletroímã com ímã embutido no núcleo 80 Realizando testes descobriu-se o seguinte: o campo magnético no núcleo foi anulado, mas por outro lado, surge um campo magnético devido ao carretel, ou seja, no momento em que a corrente aplicada ao enrolamento é suficiente para anular o campo do ímã (núcleo do carretel), a peça presa ao carretel não se solta, pois fica presa pelo campo magnético do eletroímã gerado no restante da superfície da tampa do carretel. Para isso o carretel de ferro foi abandonado e um novo, com as mesmas dimensões, foi construído em nylon. Esse protótipo funcionou bem no sentido que se conseguiu anular a força do ímã, e como o nylon isola de forma eficiente o campo magnético, devido a sua permeabilidade, a peça se soltava. Mas por outro lado, com o ímã entre dois pedaços de ferro doce, a força resultante na extremidade do núcleo torna-se muito inferior se comparada quando do contato direto ímã-superfície. Para quantificar essa perda, como exemplo, o ímã em contato direto consegue sustentar um corpo aço de 1,5kg e com 5mm de núcleo isolando o ímã este passa a sustentar apenas 400g. Mesmo com a “tampa” do núcleo de ferro doce abaixo do ímã, a corrente necessária para conseguir anular o campo magnético precisava ser alta, algo próximo de três ampères de pico, e para reduzi-la só podia ser adotada uma solução, aumentar o tamanho dessa “tampa”, fazendo com que o ímã ficasse exatamente no meio da bobina, já que quanto maior o pedaço do núcleo, maior o campo magnético gerado sobre ele. Mas por outro lado, a força resultante na extremidade da bobina reduziu-se mais ainda. Como a margem de segurança desejada para o projeto é para que apenas duas patas conseguissem suportar o peso do robô inteiro, foi necessário confeccionar outro protótipo, agora utilizando um ímã de dimensões maiores. Foram comprados ímãs de 6,35mm de espessura, por 12,7mm de diâmetro. E então foi confeccionado um carretel de nylon de 25mm de diâmetro por 25mm de comprimento. A FIGURA 65 é uma foto do carretel de nylon com núcleo composto de ferro doce e ímã permanente que acabou de ser citado. 81 FIGURA 65 - Carretel de nylon com núcleo composto de ferro doce-ímã permanente Depois que esse modelo já estava pronto e funcionando, encontrou-se a patente que utiliza exatamente esse princípio, ou seja, um eletroímã envolto em um ímã permanente com o objetivo de anular o campo desse. Essa patente é para aplicação em freios, que ao invés de utilizar um sistema hidráulico, tem o princípio do tambor acionado por meios magnéticos que foi citada no item 2.3.1. Todos esses protótipos foram estudados, feitos, e testados antes que o robô que fora adquirido chegasse. Com o robô em mãos pôde-se fazer testes mais reais, pois analisando a locomoção apareceria a componente do atrito na hora de tracionar o corpo para frente, força de escorregamento das patas já que o movimento dos motores apresenta uma certa folga além de outros fatores que não eram possíveis de se estimar antes. Após esse último modelo aprovado foi apenas uma questão de dimensionar corretamente para chegar no modelo final. Para isso foi confeccionado no mesmo estilo, em nylon um carretel com 35mm de diâmetro e com um ímã de 16mm de diâmetro e 5mm de espessura foi usado. Conforme citado, o entreferro abaixo do ímã reduz de forma considerável a força de atração do mesmo e para evitar isso o ímã ficava isolado da chapa por um tarugo de 16mm de diâmetro por 6mm de espessura de ferro doce e acima do ímã havia um núcleo de 13mm de ferro doce, já que o carretel inteiro tinha 24mm de altura. Essas espessuras de núcleo foram totalmente empíricas porque não há na literatura descrição de como calcular um sistema em sanduíche da maneira como foi 82 feito. Portanto alguns tamanhos foram testados e tomaram-se esses como ideais para o modelo final. Como uma das importantes características no sistema de fixação eram as dimensões e principalmente o peso, o fio estava sub-dimensionado. Assim tinha-se o maior número de espiras possível no carretel, mesmo que a corrente de pico aplicada no momento da anulação do campo ser muito maior (cerca de 10 vezes) à corrente nominal recomendada em tabelas de fios esmaltados. Isso não foi considerado preocupante de início porque eram aplicados apenas picos e muito rápidos de forma que não haveria o risco de ruptura do fio por sobre corrente. Mas com testes de longa duração percebeu-se um aquecimento acima do tolerável, comprometendo o funcionamento do sistema por dois motivos: o ímã não pode ser submetido a temperaturas superiores a 70ºC para não perder o magnetismo e o fio quando se aquece altera a resistência e conseqüentemente o campo produzido diminuía. Para melhorar esse problema sem alterar as dimensões, foram confeccionados carretéis em alumínio, selados de forma que as superfícies de alumínio funcionassem como dissipadores de calor com o ambiente, já que esse material é muito melhor condutor de calor que o nylon. Com esse protótipo pronto, mais uma medida foi adotada para amenizar ainda mais esse problema: otimizar o pulso do eletroímã. Já que é acionada uma bobina de cada vez e se o pulso fosse muito rápido durante um ciclo completo de caminhar o eletroímã estaria ligado por pouco tempo, compensando o sub dimensionamento do fio. Isso funcionou muito bem e então esse ficou sendo o modelo final do sistema de fixação do robô à superfície. A FIGURA 66 mostra a aparência externa do sistema ímã-eletroímã que está fixado na pata do robô. Também pode se ver uma película de borracha de PVC expandido que foi colada embaixo do carretel. Isso foi necessário para aumentar o coeficiente de atrito entre o mesmo e a superfície e conseqüentemente diminuir o escorregamento quando ele anda em superfícies lisas. 83 FIGURA 66 - Sistema ímã-eletroímã responsável pela fixação do robô à superfície Assim melhorou a linearidade do caminhar já que ao tocar o solo, a pata não escorrega mais, compensando a folga que os servos motores têm chamada de dead band. Essa borracha também ajuda no movimento em superfícies inclinadas já que aumentando o atrito reduz-se a força de atração necessária dos ímãs para sustentar o peso do robô. 3.3.5 FIXAÇÃO DO CARRETEL À PATA Mais uma peça mecânica que precisava ser desenvolvida era o sistema de fixação dos carretéis às patas. Já de início sabia-se que não poderia ser um sistema fixo de acoplamento, já que era necessário compensar duas situações que acontecem durante o movimento. Para que se tenha uma maior força de fixação dos ímãs, é necessária a maior área de contato possível. Para isso a base do carretel deve estar completamente apoiada na superfície. Como o ângulo entre a superfície em que o robô está se locomovendo e o último segmento da pata depende de inúmeros fatores, dificilmente resultando em um ângulo reto, uma articulação se fez necessária para a pata se apoiar corretamente. Essa articulação está indicada na FIGURA 67. 84 FIGURA 67 - Articulação que permite a maior área de contato do ímã com a superfície Outra situação que necessita articulação é no momento que o corpo está sendo tracionado para frente ou para trás pelos motores fixos no corpo do robô. Isso gera uma rotação da pata em relação ao solo em torno do eixo Z. Como as patas estão fixas pelo ímã e a película de borracha de PVC aumenta o coeficiente de atrito, forçar essa rotação não seria desejável e por isso há uma articulação mecânica conforme indicada na FIGURA 68. FIGURA 68 - Articulação que permite a rotação da pata em relação ao carretel Como esses graus de liberdade são simplesmente mecânicos e livres, sem qualquer tipo de trava, duas molas são usadas para restringir o movimento. Uma garante que, no momento em que o robô esteja escalando uma parede lateralmente, a bobina continue perpendicular à superfície e não inclinada. A outra garante que a 85 bobina sempre esteja com a mesma posição em relação à rotação possível ao longo do eixo Z cada vez que a pata se eleva. 3.4 MÓDULO DE HARDWARE 3.4.1 FONTE DE ALIMENTAÇÃO Para alimentar a placa de controle, os 18 motores e os 6 eletroímãs do robô foi necessário o desenvolvimento de uma fonte sob medida, já que o consumo é elevado demais e os valores de tensão necessários são específicos. Os testes iniciais foram realizados com fontes de alimentação comerciais, disponíveis no laboratório onde o projeto foi desenvolvido e quando era necessária mais corrente eram usadas baterias seladas de 12V ou 6V. Após diversos testes e análises pôdese determinar os valores de tensão e corrente necessários para projetar e montar uma fonte específica para o robô. O primeiro passo foi pesquisar fabricantes de transformadores sob medida e fazer a encomenda. Enquanto isso foram pesquisados componentes de potência para fazer a retificação do sinal, capacitores de grande porte e dissipadores. Essa etapa foi bem interessante já que durante o curso de eletrônica não ocorrem oportunidades para se estudar sistemas de potência relativamente alta para eletrônica, já que tudo fica em torno de miliampères ou microampères. Quando se começa a falar em correntes mais elevadas, da ordem de dezenas de ampères abrese um novo ponto de conhecimento. Apesar de terem sido adquiridos os motores mais fracos para testes e estudos, a fonte já foi projetada desde o início para os motores mais fortes, prevendo que durante o desenvolvimento seriam substituídos o que acarretaria numa necessidade de alteração no transformador (que será chamado de trafo daqui a diante), aumentando o custo e o tempo de desenvolvimento da fonte. Os motores fortes têm um consumo máximo de 4,2A cada um. Considerando que no máximo cinco patas estarão fazendo força máxima ao mesmo tempo e com três motores em cada uma a o enrolamento que supre os motores foi dimensionado para 60 ampères. É sabido que nunca haverá esse consumo, mas como há muita perda de potência já que o cordão umbilical no caso de utilização na prática do robô 86 terá cerca de 200m de comprimento, é bom ter uma fonte superdimensionada para evitar perdas por aquecimento. A tensão desse enrolamento é de 6,9+6,9V. Um pouco abaixo do máximo para o servo motor mais forte, que é de 7,4V, mas assim poderia ser usado esse trafo para o outro motor que suporta até esse valor. O enrolamento para alimentação dos eletroímãs é de 24+24V com uma corrente máxima de 6A. E o enrolamento que supre a placa de controle e placas secundárias é de 12,8+12,8V por 2A. Esse valor é para que após a retificação haja um valor superior a 14V para então ser regulado em 12V por um CI específico. Um ponto bastante crítico encontrado durante essa etapa foram as perdas por causa das cargas indutivas. No caso de motores com grande consumo e eletroímãs sob os quais são aplicados picos de tensão muito rápidos, as distorções na forma de onda são muito grandes no momento do acionamento. Para isso foram necessários capacitores retificadores de valores muito elevados: um capacitor de 15.000µF/100V para o enrolamento dos eletroímãs e outro de 180.000 µF/10V para a alimentação dos motores. No caso dos motores além desse capacitor na fonte foram necessários mais 2 capacitores de 47.000µF/10V ligados em paralelo fixos no próprio robô. Isso foi necessário para compensar as perdas no cabo de alimentação. Na FIGURA 69 e na FIGURA 70 pode ser vista como ficou a montagem da fonte de alimentação. FIGURA 69 - Foto da parte interna na fonte de alimentação 87 FIGURA 70 - Foto da fonte de alimentação com a tampa colocada 3.4.2 CONTROLE Dadas as funcionalidades desejadas para o sistema, descritas no item 3.1, pôde-se então especificar o sistema de controle necessário paraque estas pudessem ser implementadas. A principal característica do controlador é ter a capacidade de controlar os 18 servo motores. Esses motores necessitam de pulsos PWM (Pulse Width Modulation) e o controle deve ser simultâneo para todos, permitindo manter a coerência do movimento do robô. Além disso, o sistema deve ter a capacidade de alterar o modo como o robô se movimenta sempre que solicitado, ou seja, gerar tabelas que regem as posições de cada motor dinamicamente, sendo para isso necessária uma grande capacidade de processamento. Também é preciso poder acionar os 6 eletroímãs, os quais operam com aproximadamente 60Vcc. O hardware ainda deve possuir uma interface de comunicação com o microcomputador, para que possa receber as ordens de movimentação. Foi contemplada também a capacidade de interfacear 6 sensores de força, deste modo deve-se existir a possibilidade de ler informações de sensores analógicos e depois processá-los. Esta parte do projeto não chegou a ser 88 implementada, mas faz parte dos planos futuros da equipe, sendo por isso levada em consideração. Levantadas essas características mínimas que o hardware deveria possuir para a aplicação em questão, foram pesquisados e analisados diversos microcontroladores que atendessem a essas especificações, além de outros módulos periféricos para implementar outras funcionalidades. Essa pesquisa resultou em alguns componentes que poderiam satisfazer as necessidades do projeto. Analisando as opções de adquirir kits de desenvolvimento, que são de alto custo, ou então desenvolver o próprio hardware, o que demandaria a confecção de inúmeras placas de circuito impresso, as quais também possuem um custo elevado, percebeu-se um problema. Em ambos os casos, seria gasto um tempo muito elevado, seja esperando por importações ou pela confecção das placas, tempo este que não podia ser desperdiçado. Chegando nesse ponto crítico, o professor orientador foi consultado para decidir juntamente com a equipe qual opção seria melhor para o iniciar o projeto. Ele então sugeriu utilizar um kit de desenvolvimento com DSP, que já estava disponível no laboratório onde o projeto foi desenvolvido, já que era baseado em um microprocessador com as características desejadas.. O kit em questão é o TMS320C6711 DSP Starter Kit da Texas Instruments, apresentado na FIGURA 71, o qual possui as seguintes características: - Um DSP TMS320C6711 rodando a 150 MHz, capaz de executar 900 milhões de operações em ponto flutuante por segundo (MFLOPS); - 16 MB de memória SDRAM - 128 KB de memória flash para programas - Conectores para interface com outras placas - Interface paralela para comunicar com o ambiente de desenvolvimento Code Composer Studio (fornecido em conjunto com o kit), possibilitando efetuar o debug dos programas diretamente no hardware. 89 FIGURA 71 - TMS320C6711 DSK O kit possui outras funcionalidades, mas estas não são relevantes para este projeto. A princípio, esta configuração de hardware parece superdimensionada, mas considerando a economia de tempo obtida, bem como a possibilidade de se adicionar posteriormente mais funcionalidades ao sistema, como os equipamentos de inspeção sem necessitar um outro processador, tornam-no muito interessante para este projeto. Utilizando este kit de desenvolvimento, pôde-se implementar todos os hardwares específicos para o sistema, como as interfaces com os motores, eletroímãs, sensores e microcomputador. Esse kit de desenvolvimento foi utilizado na fase inicial do projeto até que fosse possível definir quais os recursos eram aproveitados e o que não estava sendo aproveitado. Após esta fase inicial de testes, iniciou-se o projeto da “placa-mãe” do sistema, a qual porta o DSP em si, bem como o hardware básico para o seu funcionamento, e apresenta as interfaces para interligar-se com os outros módulos. A seguir, será dada uma visão mais detalhada sobre todo o hardware desenvolvido para este projeto. 3.4.2.1 MotherBoard para o DSP TMS320C6711D Apesar desta placa ter sido a última projetada e confeccionada, será descrita por primeiro, uma vez que é a base de todo o sistema de hardware. 90 Para desenvolvê-la, foi tomado como base o kit de desenvolvimento da Texas Instruments, uma vez que este disponibilizava aos usuários toda a documentação da placa, inclusive os esquemáticos. Isso facilitou muito no projeto, pois a partir dele apenas foi necessário remover alguns itens que não eram úteis em geral, ou que encareciam muito a placa, e adicionar algumas funcionalidades extras. Considerando que a complexidade, o tempo gasto e o custo para desenvolver uma placa com essa finalidade não são pequenos, aproveitou-se o esforço para se criar uma placa genérica que pudesse ser utilizada em outros projetos do laboratório, deste modo, para este projeto o hardware projetado pode parecer exagerado, mas pode ser usado por muitos outros tipos de aplicações, como o projeto de sistemas que trabalham com o processamento de sinais de ultra-som, muito comum no laboratório onde a placa foi desenvolvida, além de ser um dos métodos de inspeção que podem ser implementado futuramente no projeto. As características da placa são: o Tensões de alimentação: 1.4 V para o núcleo do DSP; 3.3 V para as portas de I/O (input e output) do DSP e para os outros circuitos integrados na placa, disponível também nos conectores de interface com outras placas; 5 V para os reguladores de tensão e disponível também nos conectores de interface com outras placas. DSP: TMS320C6711D, com capacidade de rodar a 250 MHz e executar até 1500 MFLOPS; 64 MB de memória SDRAM podendo rodar com clock de até 100 MHz, fornecido pelo DSP; 1 MB de memória FLASH, utilizada para gravação do firmware do sistema que é carregado durante a inicialização. Esta memória pode ser gravada através da interface serial (COM) de qualquer computador, permitindo atualizações de software ou até alterar a função do sistema como um todo com facilidade; Microcontrolador MSP430F133, utilizado para gravar o firmware na memória FLASH através da interface serial; 91 Interface JTAG para debug prévio dos programas, útil na fase de desenvolvimento; Interface JTAG para gravar o firmware no microcontrolador MSP; Conectores devidamente bufferizados para comunicação com “placasfilhas” (DaughterBoards) utilizando o mesmo padrão do kit de desenvolvimento da Texas Instruments, possibilitando a reutilização de placas previamente desenvolvidas. A FIGURA 72 apresenta um diagrama em blocos referente à placa. Endereços Dados Controle ECLKOUT SDRAM 64MB Clock 25 MHz Endereços Dados Processador Entrada 5V Regulador 1.4V Regulador 3.3V MUX/ DEMUX TMS320C 6711D Controle FLASH 1MB Interface RS-232 Texas Instruments Endereços Dados Controle Microcontrolador MSP430F133 Supervisor De Tensão Transceivers Conectores De Expansão Outros Periféricos FIGURA 72 - Diagrama em blocos da MotherBoard Algumas características do desenvolvimento desta placa valem a pena serem destacados. Para gerar as tensões de alimentação foram utilizados módulos PTH04070 da Texas Instruments, pois, além de simplificarem muito o projeto, são garantidos pelo fabricante de fornecerem uma alimentação adequada ao DSP. Para fornecer o clock do DSP foi utilizado um oscilador a cristal, também recomendado pelo fabricante por apresentar as características ideais, de 25 MHz, sendo então multiplicado pela PLL interna do DSP e distribuído para os outros periféricos como a memória RAM externa e as DaughterBoards que venham a ser utilizadas. 92 A placa foi roteada utilizando-se 6 camadas, o que possibilitou uma maior densidade de componentes na mesma, tornando-a bem compacta. Primeiramente cogitou-se utilizar 8 camadas para o roteamento, mas optou-se por 6 camadas principalmente devido ao custo reduzido, bem como o menor prazo de entrega oferecido pelo fabricante. Após cada roteamento foram feitas diversas simulações para se verificar a integridade dos sinais mais importantes da placa, como aqueles que são utilizados para acessar a memória RAM externa, por serem os sinais de mais alta velocidade do circuito (chegando a 100 MHz), podendo impedir o correto funcionamento deste. Outra consideração importante é o fato do encapsulamento do DSP ser um BGA (Ball Grid Array) de 272 pinos, o que o torna impossível de ser soldado manualmente, de modo que foi necessário enviar a placa para ser montada por uma empresa especializada. Na FIGURA 73 e na FIGURA 74 pode-se observar imagens da MotherBoard já montada. FIGURA 73 - MotherBoard DSP lado superior 93 FIGURA 74 - MotherBoard DSP lado inferior 3.4.2.2 DaughterBoard Este módulo foi o primeiro a ter seu desenvolvimento iniciado, uma vez que ele era necessário para que se pudesse interfacear o kit de desenvolvimento com os motores. Só então seria possível iniciar os testes com o controle do robô propriamente dito. As principais características desta placa são: o Interface para os 18 motores; o Interface para o módulo que aciona os 6 eletroímãs; o Entrada paras os 6 sensores de força; o Interface serial para comunicação com o microcomputador; o Entrada para alimentação dos motores, dos eletroímãs e do resto dos circuitos, inclusive a alimentação da MotherBoard (5 V). Segue abaixo, na FIGURA 75, o diagrama em blocos da placa. 94 Endereços Dados Conectores De Expansão Controle UART_SEL TX UART RX Interface RS-422 Endereços Endereços Decodificador De Endereços Controle SENSOR_SEL Dados PWM_SEL Conversor A/D Buffer Dados Latch/ Isolação Servomotores Dados Latch/ Isolação Saída Eletroímãs Dados Latch Leds ÍMÃS_SEL Sensores LEDS_SEL FIGURA 75 - Diagrama em blocos da DaughterBoard O processador utilizado, o TMS320C6711D, não possui muitas saídas de I/O para uso geral, por ser dedicado mais especificamente para a área de processamento de sinais, e não para controle de movimento, deste modo foi necessário utilizar-se uma da interfaces de memória externa (External Memory Interface – EMIF) que ele possui. Assim, foi utilizado mapeamento de I/O em memória para se acessar os diversos periféricos incluídos na DaughterBoard. Para que se pudesse “travar” os sinais dos PWM’s que controlam os servomotores e os sinais que controlam o acionamento dos eletroímãs foram utilizados circuitos integrados Latch (SN74AHCT573) e nas saídas destes forma colocados isoladores para evitar que possíveis ruídos e flutuações de tensão indesejados viessem e influir no funcionamento do resto do sistema, inclusive o DSP. 95 Como o DSP utilizado também não possui uma interface UART, foi necessário adicionar na DaughterBoard um circuito integrado TL16C550, que constitui uma UART programável com FIFO de 16 Bytes e capaz de gerar interrupções a partir de diversos eventos. Para tratar as interrupções geradas pela UART foi utilizado um dos pinos do DSP capaz de gerar interrupções a partir de eventos externos. A interface de comunicação serial da placa utiliza o padrão RS-422, uma vez que um dos objetivos do projeto é que o robô se movimente em cascos de navios, necessitando de longos cabos de comunicação, e este padrão prevê a possibilidade de cabos com mais de 1 Km de comprimento mesmo com uma taxa de transmissão de 115200 Kbps, a qual foi adotada pelo projeto. Para gerar os sinais com este padrão, foi utilizado um CI Driver/Receiver SN65C1168 da Texas Instruments. Devido à necessidade de se adquirir os sinais dos sensores de força, a Daughter Board possui circuitos de aquisição com amplificadores operacionais OPA4130 e um conversor Analógico/Digital de 12 Bits e 8 canais ADS7852, ambos da Texas Instruments. A placa também possui reguladores de tensão de +5, +9, -5 e –9 V, para alimentar os circuitos de aquisição. Finalmente, neste módulo existem também conectores para a placa de acionamento dos eletroímãs, além de 8 leds que foram muito utilizados para testes e verificações durante a fase inicial do projeto. O conector utilizado para a entrada da alimentação foi cuidadosamente escolhido, uma vez que a alimentação para os servomotores previa uma corrente de até 60 A, assim o conector também deveria possuir esta capacidade. As trilhas que alimentam os motores também foram cuidadosamente projetadas, sendo muito mais largas do que o normal, e possuindo uma camada de cobre mais espessa que as placas comuns. Além disso, a área da placa na qual poderia ocorrer um sobreaquecimento, devido a alta corrente, foi deixada deslocada para que não se situasse acima da MotherBoard, impedindo assim qualquer tipo de influência indesejada. Todos os circuitos integrados utilizados foram escolhidos com encapsulamentos SMD, para que juntamente com uma placa desenvolvida com 4 camadas, se pudesse aumentar a densidade de componentes nesta, diminuindo o seu tamanho, fato desejado em circuitos que ficam embarcados. 96 A FIGURA 76 e a FIGURA 77 mostram duas fotos da versão final da Daughter Board. FIGURA 76 - DaughterBoard lado superior FIGURA 77 - DaughterBoard lado inferior 3.4.2.3 Placa de Acionamento dos Eletroímãs Este módulo foi desenvolvido separadamente tanto para evitar um aumento exagerado da placa DaughterBoard, quanto para evitar problemas que pudessem ser causados pela tensão de alimentação dos eletroímãs, que é de cerca de 60 V. 97 Esta placa possui 6 circuitos de acionamento para as patas eletromagnéticas criadas, compostos por MOSFET’s. Ela recebe os sinais de controle provenientes da DaughterBoard através de 2 conectores que também servem de base de sustentação, além da alimentação destinada aos eletroímãs. O diagrama em blocos deste módulo está representado na FIGURA 78. Entrada Eletroímãs Drivers/ MOSFET’s Eletroímãs FIGURA 78 - Diagrama em blocos da placa de acionamento dos eletroímãs As trilhas deste circuito foram deixadas expostas, como pode-se observar na FIGURA 80, para o caso de ser necessário aumentar a capacidade de corrente das mesmas, através de uma técnica comum, caracterizada pela adição de estanho às trilhas. Finalmente, este módulo possui 6 conectores de saída para os eletroímãs das patas eletromagnéticas, visíveis na FIGURA 79. FIGURA 79 - Placa de acionamento lado superior 98 FIGURA 80 - Placa de acionamento lado inferior 3.4.2.4 Módulo Conversor RS-232/RS-422 Essa foi a segunda placa desenvolvida pela equipe. Como havia a necessidade de se fazer a comunicação entre o robô e o computador, um cabo de dados teria que fazer essa conexão. O kit de DSP utilizado para é configurado através de uma interface paralela, interface essa que não permite comunicações com cabos longos, o que impediria que fosse usado o sistema de cordão umbilical. Uma outra idéia seria utilizar a interface serial do computador, com o padrão RS232. A interface RS-232 tem como principal atrativo a sua implementação simples e barata, estando disponível na maioria dos computadores novos e antigos. Mas a interface RS-232 apresenta uma grande desvantagem neste projeto. O fato da mesma operar por níveis de tensão, sendo extremamente suscetível a ruídos, inviabilizaria a comunicação de maneira confiável em distâncias superiores a 10 ou 15 metros. Como um navio tem cerca de 200 a 300 metros de comprimento, o uso dessa interface seria impraticável. Para contornar este problema optou-se por utilizar o padrão RS-422. A interface RS-422 é uma evolução do padrão RS-232 e tem como principal novidade a implementação da transmissão em modo diferencial, o que torna a comunicação muito menos suscetível a ruídos, permitindo o envio de informações a distâncias acima de 1000 metros de maneira confiável. Também não é possível a 99 utilização de um único par de fios para operar como "barramento" ou seja, os dados são transmitidos por uma linha e recebidos por outra. O principal uso do padrão RS-422 é estender a comunicação RS-232 a grandes distâncias, de maneira transparente ao usuário sem a necessidade de alterar programas e protocolos. Para que se pudesse utilizar este padrão de transmissão de dados, necessitava-se converter o padrão RS-232 da porta COM do computador para o novo padrão, e para isso foi desenvolvida uma nova placa. Este módulo do sistema é composto de apenas dois circuitos integrados, um MAX232, responsável por receber e enviar os dados no padrão RS-232, e um SN65C1168, responsável pela parte RS-422, ambos da Texas Instruments. Seu diagrama em blocos pode ser visualizado na FIGURA 81. Interface RS-232 TX RX Driver/ Receiver RS-232 SOUT/SIN SIN/SOUT Driver/ Receiver RS-422 TX RX Interface RS-422 FIGURA 81 - Diagrama em blocos do conversor RS-232/RS-422 Uma grande vantagem deste circuito é a ausência de uma fonte de alimentação externa, uma vez que o esquema projetado permite que a alimentação seja proveniente da porta COM do PC. A FIGURA 82 apresenta várias imagens do módulo conversor. 100 FIGURA 82 - Conversor RS-232/RS-422 101 3.5 MÓDULO DE SOFTWARE 3.5.1 PROJETO DO SOFTWARE SIMULADOR/CONTROLADOR(IHM) Para a descrição do projeto do software simulador/controlador também foi utilizada a linguagem UML. Foi escolhida a programação orientada a objetos para a modelagem, pelo fato, principalmente, de ela permitir a criação de bibliotecas que tornam efetivos o compartilhamento e a reutilização de código, reduzindo o tempo de desenvolvimento e simplificando o processo de manutenção da aplicação. Esta vantagem foi primordial na geração destes módulos e do software embarcado. Foram gerados os diagramas estruturais do sistema (casos de uso, classe) e dinâmico (seqüência). A seguir serão apresentados estes diagramas. 3.5.1.1 Diagrama de Casos de Uso Na FIGURA 15 pôde-se visualizar o diagrama de casos de uso geral. O projeto do software foi todo baseado no levantamento das funcionalidades deste diagrama Os dois módulos do sistema (Simulador e Controlador) possuem muitas funcionalidades em comum, porém há uma diferença essencial entre eles, o ator “Robô”. Para ficar bem clara esta distinção, será apresentado a seguir o diagrama de caso de uso de cada um dos módulos. 102 3.5.1.1.1 Simulador <<all extend>> Configurar Ordem Verificar Espaço de Trabalho <<include>> <<incl ude>> <<all extend>> Normal <<incl ude>> Interpretar Ordem Ripple Calcular Trajeto Patas Crab Rotação operador Tripod Paramet ri zar Robô Wave Climb Neutro (from Atores) Simular Movimentação <<include>> Calcular Trajetória Robô <<i nclude>> S.O. (from Atores) Visualizar Simulação FIGURA 83 - Diagrama de casos de uso – Simulador o Descrição dos Casos e Atores Atores Pode-se observar no diagrama a presença de dois atores principais. Operador: Nada mais é do que o próprio operador do sistema, aquele que se encontra ao computador simulando. É este ator que ativa os casos de usos do sistema; S.O.: É o ator Sistema Operacional. É um ator importante ao caso de uso simular, pois é ele que sincroniza o movimento do robô através do timer. 103 Casos de Usos No diagrama observa-se a presença de três casos de usos principais: Interpretar Ordem - Caso de uso que atua na configuração da ordem, na verificação dos parâmetros se estão de acordo com o espaço de trabalho do robô e no cálculo do movimento que cada pata deve realizar para atender a ordem especificada; Parametrizar Robô – Caso de uso que atua na parametrização(dados estruturais) do robô; SimularMovimentação: Caso de uso que atua na simulação do movimento e da trajetória do robô, a partir de um comando que o operador realiza. <<all extend>> Configurar Ordem Verificar Espaço de Trabalho <<include>> <<include>> <<all extend>> Normal Tripod Ripple <<extend>> Interpretar Ordem Calcular Trajeto Patas Crab Rotação Comandar Robô operador robô (from Atores) ( from Atores) Neutro Comunicar Serial Simular Movimentação <<i nclude>> Calcular Trajetória Robô <<include>> S.O. (from Atores) Visualizar Simulação FIGURA 84 - Diagrama de casos de uso – Controlador Wave Climb 104 3.5.1.1.2 Controlador o Descrição dos Casos e Atores Atores Pode-se observar no diagrama a presença de três atores principais. Operador: Nada mais é do que o próprio operador do sistema, aquele que se encontra ao computador simulando. É este ator que ativa os casos de usos do sistema; Robô: Como o próprio nome já diz é o robô hexápode. No serviço “Controlar Robô” é o ator a ser controlado. Nele encontra-se a placa de controle com o microprocessador e seu software embarcado. S.O.: É o ator Sistema Operacional. É um ator importante ao caso de uso simular, pois é ele que sincroniza o movimento do robô através do timer. Casos de Usos No diagrama observa-se a presença de quatro casos de usos principais: Interpretar Ordem - Caso de uso que atua na configuração da ordem, na verificação dos parâmetros se estão de acordo com o espaço de trabalho do robô e no cálculo do movimento que cada pata deve realizar para atender a ordem especificada; Simular Movimentação: Caso de uso que atua na simulação do movimento e da trajetória do robô, a partir de um comando que o operador realiza. Comandar Robô: Caso de uso responsável por receber os comandos do operador e enviar ao robô. Comunicar Serial: Caso de uso responsável pela comunicação do software com o robô, via serial. Abrange a conexão, desconexão e a verificação da conexão, que é realizada periodicamente. 105 3.5.1.2 Diagrama de Classes Com as classes levantadas no item 3.1.2 e com o acréscimo de outras classes entidades, agregadas e herdadas, foi possível gerar os diagramas de classes do software, apresentando assim os seus aspectos lógicos. o Menu Principal <<controle>> CCt rlGeral comanda (from Controles) CIntOperador (from Interfaces) comanda mostrarJanela() atualizarJanela() mostrarOpenGL() mostrarTrajetória() mostrarDistâncias() comanda <<controle>> CCtrlSimularRobo <<controle>> CCtrlControlarRobo (f rom Con trol es) (f rom Co ntrol es) Ativar() At ivar() FIGURA 85 - Diagrama de classes: Menu Principal o Controlar Robô <<controle>> CCtrlControlarRobo (f rom Controles) Ativar() comanda <<c ontrole>> CCtrlSim ularMovim entação (f rom Controles) comanda comanda comanda <<controle>> <<c ontrole>> CCtrlInterpretarOrdem CCtrlCom andarRobô <<controle>> CCtrlComunicarSerial (f rom Controles) (f rom Co ntro les ) (f rom Controles) ordem : CO rdem Ativar() IrProxPonto() Ativar() A tivar() interpret adorDeOrdem() restringirPosSu perficie() restringirPosModo() FIGURA 86 - Diagrama de classes: Controlar Robô Ativar() verificarConexão() 106 o Simular Robô <<controle> > CCtrlSimularRobo (from Controles) Ativar() comanda c omanda <<controle>> CCt rl Paramet ri zarRobo ( from Controles) comanda <<controle> > CCtrlInterpretarOrdem <<controle>> CCtrlSimularMovimentação (from Controles) (from Controles) ordem : COrdem Ativar() Ativar() interpretadorDeOrdem() restringirPosSuperficie() restringirPosModo() At ivar() I rProxPonto() FIGURA 87 - Diagrama de classes: Simular Robô o Interpretar Ordem <<controle>> CCtrlInterpretarOrdem (from Controles) ordem : COrdem Ativar() interpretadorDeOrdem() restringirPosSuperficie() restringirPosModo() comanda comanda <<controle>> CCtrlConfigurarOrdem <<controle>> CCtrlVerificarEspaçoDeTrabalho (from Controles) (from Controles) Ativar() restringePosSuperficie()() restringePosModo() Ativar() comand a <<controle >> CCtrlCalcularTrajetoPatas ( from C ontroles) ord em : COrdem mo do * : Modo ma rcha * : CMa rcha t raj eto : CTraje toPa tas rob o * : CRobo mo ntarTra jet o() FIGURA 88 - Diagrama de classes: Interpretar Ordem 107 o Configurar Ordem <<control e>> CCt rl Conf igurarO rdem <<entidade>> COrdem (from Contr ol es) <<typedef enum>> TM archa (from Entidades) superf ici e : TS uperf ici e m odo : TModo m archa : TMarcha al turaDoRobo : fl oat aberturaDoRobo : fl oat el evaçãoDaPata : float passoDaTracao : float angul oCrab : float pep : fl oat pea : fl oat Ativar() restringePosSuperficie()() restringePosModo() cria registra CIntOperador (from Interfaces) mostrarJanela() atuali zarJanela() mostrarOpenGL() mostrarTrajetória() m ostrarDi st âncias() Ordem() setAtribut os() setSuperf icie() get Superfici e() setM odo() get Modo() setM archa() get March a() setAbertu ra() get Abertura() setPassoDaTracao() get PassoDaT racao() get Alt uraDeRetorno() setAlturaDeRetorno() get Pep() setPE P() get Pea() setPE A() t est arEspaçoDeT rabal ho() WAVE RIPPLE TRIPOD CLIMB 1 1 1 <<typedef enum>> TModo NO RMAL CRA B 1 RO TACAO 1 FIGURA 89 - Diagrama de classes: Configurar Ordem 1 <<typedef enum>> TSuperficie FERROMAGNETICA NORMAL 108 o Verificar Espaço de Trabalho co man da <<controle>> CCtrlVerificarEspaçoDeTrabalho (f rom Controles) CIntOperador Ativar() (f rom Interf aces) mostrarJan el a() atualizarJanela() mostrarOpenGL() mostrarTrajetória() mo strarDistâncias () acessa <<entidade>> CRobo (f rom Entidades) larg ura : floa t comprimento : floa t esp essu ra : float ptoOrig emCo rpo : CCoo rden adas * p erna [6] : CPerna ptoEnd[6 ] : CC oordenadas ve torDel ta[6] : CCo orde nada s Robo() Robo() criaPern as() atualizarRobo() setaIndiceTrajeto() incrementaIndiceTrajeto () cinematicaInversa() cinematicaDireta() des enha rRobô() acessa <<entida de>> COrdem (f rom Entidades) superficie : TSuperficie modo : TModo marcha : TMarcha alturaDoRobo : float aberturaDoRobo : float elevaçãoDaPata : float passoDaTracao : float anguloCrab : float pep : float pea : float Ordem() setAtributos() setSuperficie() getSuperficie() setModo() getModo() setMarcha() getMarcha() setAbertura() getAbertura() setPassoDaTracao() getPassoDaTracao() getAlturaDeRetorno() setAlturaDeRetorno() getPep() setPEP() getPea() setPEA() testarEspaçoDeTrabalho() FIGURA 90 - Diagrama de classes: Verificar Espaço de Trabalho 109 o Calcular Trajeto das Patas <<entidade>> Tripod <<entidade>> COrdem superficie : TSuperficie modo : TModo marcha : TMarcha alturaDoRobo : float aberturaDoRobo : float elevaçãoDaPata : float passoDaTracao : float anguloCrab : float pep : float pea : float <<construtora>> Marcha() <<destrutora>> ~Marcha() parametrizarTrajeto() parametrizarApoio() parametrizarRetorno() <<virtual>> calcularNumeroDeSegmentosDeRetorno() gets comanda 1 1 <<typedef enum>> TModo NORMAL CRAB ROTACAO WAVE RIPPLE TRIPOD CLIMB <<construtora>> Ripple() <<destrutora>> ~Ripple() ordem * : COrdem trajeto * : CTrajetoPatas gets 1 1 <<typedef enum>> TMarcha <<entidade>> CRipple <<construtora>> Wave() <<destrutora>> ~Wave() <<entidade>> CM archa Ordem() setAtributos() setSuperficie() getSuperficie() setModo() getModo() setMarcha() getMarcha() setAbertura() getAbertura() setPassoDaTracao() getPassoDaTracao() getAlturaDeRetorno() setAlturaDeRetorno() getPep() setPEP() getPea() setPEA() testarEspaçoDeTrabalho() 1 <<entidade>> Wave <<construtora>> Tripod() <<destrutora>> ~Tripod() gets <<controle>> CCtrlCalcularTrajetoPatas ordem : COrdem modo * : Modo marcha * : CMarcha trajeto : CTrajetoPatas robo * : CRobo parametriza montarTrajeto() <<entidade>> CTrajetoPatas comanda base : float altura : float passoDaBas e : float ultimoPassoDaBase : float numeroD eSegmentosD aBase : i nt passoDaLater al : float numeroD eSegmentosD aLater al : int passoDaBas eSuperior : float numeroD eSegmentosD aBaseSuperi or : i nt *pontos : CPontoDoTraj etoPatas 1 <<typedef enum>> TSuperficie FERROMAGNETICA NORMAL <<enti dade>> Modo ordem * : COrdem robo * : CRobo trajeto * : CTrajetoPatas indiceGlobal : float <<construtora>> Modo() <<destrutora>> ~Modo() <<virtual>> preencherPontos() <<virtual>> determinarPontoZero() <<virtual>> preencherPontosDaBase() <<virtual>> preencherPontosDaLateral1() <<virtual>> preencherPontosDaLateral2() <<virtual>> preencherPontosDaBaseSuperior() cinematicaInversa() <<entidade>> Crab <<construtora>> Crab() <<destrutora>> ~Crab() <<enti dade>> Rotacionar <<construtora>> Rotacionar() <<destrutora>> ~Rotacionar() <<entidade>> Normal preenche <<construtora>> Traj eto() <<destrutora>> ~Traj eto() setBase() getBas e() setPassoDaBase( ) getPas soDaBase( ) setPassoResi dual DaBase() getPas soResidualDaBase() setNumer oDeSegmentosDaBase() getN umeroDeSegmentos DaBase() setPassoDaLateral() getPas soDaLateral () setNumer oDeSegmentosDaLateral () getN umeroDeSegmentos DaLater al() setPassoDaBaseSuperi or( ) getPas soDaBaseSuperior() setNumer oDeSegmentosDaBaseSuper ior() getN umeroDeSegmentos DaBaseSuper ior () constroi PontosDeTraj eto() 1 <<construtora>> Normal() <<destrutora>> ~Normal() n <<entidade>> CPontoDoTrajetoPatas ti poDeAresta : TAresta coordenadas : C Coordenadas angulos : CAngulos <<construtora>> PontoDeTraj eto() <<destrutora>> ~PontosDeTraj eto() setCoordenadas() setAngulos() getC oor denadas() getAngulos( ) setTipoD eAr esta() 1 <<entidade>> CCoordenadas x : float y : float z : float _ setCoordenadas() getCoordenadas() setX() getX() setY() getY() setZ() getZ() 1 1 1 <<enti dade>> CAngulos teta1 : float teta2 : float teta3 : float 1 1 <<typedef enum>> TAresta BASE_INFERIOR BASE_SUPERIOR LATERAL_1 LATERAL_2 setAngulos() getAngulos() setTeta1() getTeta1() setTeta2() getTeta2() setTeta3() getTeta3() FIGURA 91 - Diagrama de classes: Calcular Trajeto das Patas <<entidade>> Climb <<construtora>> Cli mb()() <<destrutora>> ~Climb()( ) 110 o Parametrizar Robô <<controle>> CCtrlParametrizarRobo (from Controles) Ativar() <<entidade>> CRobo cria (from Entidades) l argura : f loat comprimento : float espessura : f loat pt oOrigemCorpo : CCoordenadas * perna [ 6] : CPerna pt oEnd[6] : CCoordenadas vetorDel ta[ 6] : CCoordenadas registra Robo() Robo() criaPernas() at uali zarRobo() setaI ndiceTrajet o() i ncrementaIndiceTrajeto() cinematicaInversa() cinematicaDireta() desenharRobô() CIntOperador (from I nt er faces ) mostrarJanela() atualizarJanela() mostrarOpenGL() mostrarTrajetória() m ost rarDist âncias() <<entidade>> CPerna (from Entidades) * pto[3] : CCoordenadas posicaoECorpo : CCoordenadas dm : CDimensaoMembros angulos : Angulo Perna() Perna() criapontosDaPerna() setarAngulo() calculaCinematicaDireta() desenhaPerna() atualizarPerna() <<entidade>> CDi mensaoM embros (from Entidades) a1 : float a2 : float a3 : float DimensaoMembros() atualizarMembros() <<entidade>> CAngulos (from Entidades) <<entidade>> CCoordenadas (from Entidades) teta1 : float teta2 : float teta3 : float x : float y : float z : float setAngulos() getAngulos() setTeta1() getTeta1() setTeta2() getTeta2() setTeta3() getTeta3() setCoordenadas() getCoordenadas() setX() getX() setY() getY() setZ() getZ() FIGURA 92 - Diagrama de classes: Parametrizar Robô 111 o Simular Movimentação timer do p ass o CIntSO comanda (from Controles) CI ntO per ado r Ativ ar () IrP rox Po nto() (from Interfaces) comanda <<controle>> CCtrl SimularMov imentaçã o co ma nda (fr om Interfac es) acessa atualiza <<controle>> CCtrlVisualizarS imulaç ão (fr om C ontroles) Ativ ar() mostrarJanela() atualizarJanela() mostrarOpenGL() mostrarTrajetória() mostrarDistâncias() <<controle>> CCtrlCalcularTrajetóriaRobô <<ent idad e>> CTraje toP at as <<entidade>> CRobo (from Controles) (from Entidades) (from Entidades) Ativ ar() calcular Nov oPonto() base : f loat altura : f loat passoDaBase : f loat ultimoPassoDaBase : f loat numeroDeSegmentosDaBase : int passoDaLateral : f loat numeroDeSegmentosDaLateral : int passoDaBaseSuperior : f loat numeroDeSegmentosDaBaseSuperior : int *pontos : CPontoDoTrajetoPatas <<construtora>> Trajeto() <<destrutora>> ~Trajeto() setBase() getBase() setPassoDaBase() getPassoDaBase() setPassoResidualDaBase() getPassoResidualDaBase() setNumeroDeSegmentosDaBase() getNumeroDeSegmentosDaBase() setPassoDaLateral() getPassoDaLateral() setNumeroDeSegmentosDaLateral() getNumeroDeSegmentosDaLateral() setPassoDaBaseSuperior() getPassoDaBaseSuperior() setNumeroDeSegmentosDaBaseSuperior() getNumeroDeSegmentosDaBaseSuperior() constroiPontosDeTrajeto() largura : f loat comprimento : f loat espessura : f loat ptoOrigemCorpo : CCoordenadas * perna [6] : CPerna ptoEnd[6] : CCoordenadas v etorDelta[6] : CCoordenadas Robo() Robo() criaPernas() atualizarRobo() setaIndiceTrajeto() incrementaIndiceTrajeto() cinematicaInv ersa() cinematicaDireta() desenharRobô() FIGURA 93 - Diagrama de classes: Simular Movimentação 112 o Calcular Trajetória do Robô << contr ol e> > CCtrlCalcularTraj etóriaRobô (from Contro... Ativar() calcularNovoPonto() <<entidade>> CRegiãoDaTrajetória (from Entida .. Sentido : TSENTIDO Reta : CEquaçãoDeReta cria <<entidade>> CTraj etoriaRobô 1 (from Entida... angulo : float distanciaPerc : float distanciaOrigem : float distX : float distY : float name listaPonto : CListaPonto vetorPosição : CPontos regiãoDaTrajetória : CRegiãoDaTrajetória <<construtora>> CTrajetoriaRobô() <<destrutora>> ~CTrajetoriaRobô() desenharTrajetoria() apagaTrajetoria() calcAng() criaRegiaoDaTrajetoria() ajustaRegiaoDaTrajetoria() verificaRegiaoLimite() deslocarHorizontal() deslocarVertical() calcDistancias() limpar() <<construtora>> CRegiãoDaTrajetória() <<destrutora>> ~CRegiãoDaTrajetória() calculaCoefReta() verificaOrientação() verificaSentido() retorno() <<entidade>> CListaPonto 1 (from Entida... *inicio : CPonto 1 1 <<construtora>> CListaPonto() <<destrutora>> ~CListaPonto() inserirPonto(CPonto *)() excluirPonto(CPoint *)() qtdPontos() reset() otimizador() retornaUltimoPonto() 1 n <<entidade>> CPonto (from Entida... x : float y : float *prox : CPonto <<construtora>> CPonto() <<destrutora>> ~CPonto() FIGURA 94 - Diagrama de classes: Calcular Trajetória do Robô 113 o Visualizar Simulação <<controle>> CCtrlVisualizarSimulação comanda (from Controles) CIntOperado r Ativ ar() (from Interfac...) mostrarJanela() at ualiza rJa nela () mostrarOpenGL() mostrarTrajetória() mostrarDistâncias() acessa ac ess a <<entidade>> CRobo <<entidade>> CTrajetoriaRobô (from Entidades) angulo : f loat distanciaPerc : f loat distanciaOrigem : f loat distX : f loat distY : f loat name listaPonto : CListaPonto v etorPosição : CPontos regiãoDaTrajetória : CRegiãoDaTrajetória <<construtora>> CTrajetoriaRobô() <<destrutora>> ~CTrajetoriaRobô() desenharTrajetoria() apagaTrajetoria() calcAng() criaRegiaoDaTrajetoria() ajustaRegiaoDaTrajetoria() v erif icaRegiaoLimite() deslocarHorizontal() deslocarVertical() calcDistancias() limpar() (fr om Entidades ) largura : f loat comprimento : f loat espessura : f loat ptoOrigemCorpo : CCoordenadas * perna [6] : CPerna ptoEnd[6] : CCoordenadas v etorDelta[6] : CCoordenadas Robo() Robo() criaPernas() atualizarRobo() setaIndiceTrajeto() incrementaIndiceTrajeto() cinematicaInv ersa() cinematicaDireta() desenharRobô() FIGURA 95 - Diagrama de classes: Visualizar Simulação o Comandar Robô comanda <<controle>> CCtrlComandarRobô c oma nd a (from Controles) CIntOperado r Ativar() CIntRobô (from Interfaces) (from Interfaces) mostrarJa ne la() atualizarJanela() mo strarOp en GL() mostrarTrajetória() mostrarDistâncias() FIGURA 96 - Diagrama de classes: Comandar Robô 114 o Comunicar Serial <<controle>> CCtrlComunicarSerial comanda (f rom Controles) timer da verificação Ativar() verificarConexão() CIntSerial (f rom Interf aces) Timer (f rom Interf a...) recebe : byte recebendo : boolean tamanho : byte conectar() desconectar() verificarConexão() RxChar() RxFlag() write() read() comanda CIntOperador (f rom Interf aces) mo stra rJa nel a() atualizarJanela() mostrarOpenGL() mostrarTrajetória() mo stra rD istân cias () FIGURA 97 - Diagrama de classes: Comunicar Serial 3.5.1.3 Diagramas de Seqüência Neste tópico serão apresentados os diagramas de seqüência, buscando apresentar o comportamento dinâmico (ao longo do tempo) do sistema. Alguns diagramas foram omitidos, sendo mostrados apenas os diagramas de maior interesse e complexidade. 115 o Configurar Ordem : operador : CIntOperador : CCtrlConfigurarOrdem : COrdem mostrarJanela() Janela Superfície setSuperfície() rest ringePosSuperficie() getSuperficie () Janela atualizaJanela() Modo restringePosModo() Janela getModo () atualiz aJanela() Marcha getMarc ha () alturaDoRobo, abertura, discretizacaoDaTracao, anguloCrab setAt ributos() mostraFimOrdem() FimOrdem FIGURA 98 - Diagrama de seqüência: Configurar Ordem 116 o Parametrizar Robô : operador : CIntOperador : CCtrlParametrizarRobo : CRobo : CPerna : CDimensaoMembros : CAngulos : CPontos robo:=criar():void perna:=criar():void dimensao:=criar():void angulo:=criar():void pto: =c riar(): void mostrarJanela() Janela Parâmetros do Robô atualizarRobo(dados) atualizarPerna() atualizarMembros() setarAngulos() calcularCinematicaDireta() setarPonto() FIGURA 99 - Diagrama de seqüência: Parametrizar Robô o Verificar Espaço de Trabalho : o perad or : C IntOpe ra dor : CCtrlVerificarEspaçoDeTrabalho : C Ordem : CRobo es pTrab :=tes tarEsp açoDe Trab alh o( ) ge tDa dos() [espTrab=NOK] mostrarMensagemErro(Ansistring ) Me nsa gem FIGURA 100 - Diagrama de seqüência: Verificar Espaço de Trabalho 117 o Simular Movimentação : operador : CIntOperador : S.O. : CIntSO : CC trlSimularMovimentação : CTrajetoPata s : CR obo MostrarJanelaDeComandos() Janela de Comandos Comandos timer [Co mandos] IrProxPonto( ) incrementaIndiceTrajeto( ) R ealiza este procedi mento para as 6 pernas GetPto() FIGURA 101 - Diagrama de seqüência: Simular Movimentação AtualizaPtoEnd() 118 o Calcular Trajeto das Patas : CCtrlInterpretarOrdem : CCtrlCalcularTrajetoPatas : CMarcha : Modo : CTra je to Pa tas : COrdem : CPontos [espTrab=OK] calcularTrajetoPatas(Ordem) Polimorf ismo: [caso modo == CRAB] ref Modo=Crab() [caso modo == [NORMAL] ref Modo=Normal() getModo( ) modo=Modo( ) getMarcha( ) marc ha=Mar cha ( ) Polimorf ismo: [caso marcha == TRIPOD] ref Marcha=Tripod() [caso modo == RIPPLE] ref Marcha=Ripple() [caso modo == WAVE] ref Marcha=Wav e() trajeto=Trajeto( ) parametrizarTrajeto(Ordem *, Trajeto *) parametrizarApoio( ) getAbertura( ) getPassoDaTracao( ) getPea( ) getPep( ) se tBas e( ) setPassoDaBase( ) setNumeroDeSegmentosDaBase( ) getUltimoPa sso DaB ase( ) parametrizarRetorno( ) getNumeroDeSegmentosDaBase( ) calcularNumeroDeSegmentosDeRetorno(f loat nume roD eSegmento sDaBa se, f loa t base ) getAlturaDeRetorno( ) getBase( ) setNumeroDeSegmentosDaLateral( ) setNumeroDeSegmentosDaBaseSuperior( ) setPassoDaLateral( ) getPassoDaBaseSuperior( ) co nstroiPo nto s() cria() pr een che rP on tos (Or dem *, Traje to *) preencherPontosDaBase( int &) ge tAbertu ra( ) ge tAltu raD oRob o() getNumeroDeSegmentosDaBase() ge tPas soDa Base () setCoordenadas(f loat, f loat, f loat) setTipoDaAresta() preencherPontosDaLateral1( int &) getAbertura() getBase() getAlturaDoRobo() getNumeroDeSegmentosDaLateral1() getPassoDaLateral( ) setCoordenadas(f loat, f loat, f loat) setTipoDaAresta() preencherPontosDaBaseSuperior( int &) getAbertura() getBase() getAlturaDoRobo() getAlturaDeRetorno() getNumeroD eSegmentosDaBaseSuperior() getPassoDaBaseSuperior( ) se tCo ord ena das (f loa t, f loat , flo at) setTipoDaAresta() preencherPontosDaLateral2( int &) getAbertura() getBas e() getAlturaDoRobo() getNumeroDeSegmentosDaLateral2() getPassoDaLateral( ) setCoordenadas(f loat, f loat, f loat) setTipoDaAresta() FIGURA 102 - Diagrama de seqüência: Calcular Trajeto das Patas 119 o Calcular Trajetória do Robô : CCtrlCalcularTrajetóriaRobô : CTrajetoriaRobô : CListaPonto retornaUltimoPonto( ) ponto: =calc ularNovoPont o( ) inserirPonto(pont o) otimizador( ) calcDistancias( ) verificaRegiaoLimite( ) ajust aRegiaoDaTrajet oria( ) FIGURA 103 - Diagrama de seqüência: Calcular Trajetória do Robô o Comunicar Serial : S.O. : CIntSO : CCtrlComunicarSerial : CIntS erial : Serial : CIntOperador : operador [comando = conectar] conectar( ) conectar timer verificarConexão [ comando = verificar] con:=verificarConexão( ) RxFlag( ) read( ) [con=false] mostrarMsgDesconexão Mensagem Desconexão [comando=desconectar] desconectar() FIGURA 104 - Diagrama de seqüência: Comunicar Serial 120 o Visualizar Simulação : operador : CIntOperador janela : CCtrlVisualizarSimulação : CRobo : CTrajetoriaRobô mostrarJanela( ) desenharRobô() mostrarOpenGL() desenho robô desenharTrajetória() desenho trajetória mostrarTrajetória() mostrarDistâncias() distâncias FIGURA 105 - Diagrama de seqüência: Visualizar Simulação 3.5.2 SOFTWARE SIMULADOR/CONTROLADOR DE ROBÔ HEXÁPODE A partir do Projeto de Software apresentado no item 3.5.1, desenvolveu-se o software Simulador/Controlador na plataforma de desenvolvimento Borland Builder C++ 6.0, em sistema Windows, utilizando a arquitetura orientada a serviço. O Software Simulador/Controlador de Robô Hexápode é uma aplicação com ambiente interativo gráfico que, como diz seu nome, tem dois objetivos principais: o Simular o comportamento cinemático de um Robô Hexápode; o Controlar o Robô Hexápode (Interfacear o robô com o operador - IHM). A estratégia utilizada pela equipe foi a de primeiro gerar o software simulador, todo em ambiente PC, de forma a validar os modelos lógicos e cinemáticos implementados. Isto permite à BR-ROBOTiCS o domínio e a facilidade de implementar e testar novas funcionalidades, modos de caminhar,etc.. Dessa forma o trabalho de transpor para o software embarcado fica bastante reduzido, visto que na 121 parte lógica praticamente nada se altera. No Anexo B é apresentado o funcionamento do software, com suas telas e comandos. 3.5.2.1 Tecnologias Utilizadas 3.5.2.1.1 OPENGL (API) A parte gráfica do robô – vide FIGURA 106 - foi desenvolvida utilizando um programa de interface para hardware gráfico, o OpenGL. Não se trata de uma linguagem de programação e sim de uma API (Application Programm Interface). Ela possui um funcionamento semelhante ao de uma biblioteca C, uma vez que oferece uma série de funcionalidades. Além disso, é uma API extremamente portável e rápida, o que faz com que não possua funções para gerenciamento de janelas, interação com o usuário ou arquivos de entrada/saída. FIGURA 106 - Parte gráfica desenvolvida em OpenGL Esta tecnologia se caracteriza por possuir um grande número de recursos, fato que impulsionou o desenvolvimento de aplicações profissionais, programas de engenharia e outros aplicativos, como o 3D Studio Max. Ao invés de descrever a cena e como ela deve parecer, quando se está utilizando OpenGL é preciso apenas determinar os passos necessários para alcançar a aparência e o efeito desejado. 122 A seqüência de processos após as chamadas às funções API, que tornam a tecnologia eficiente, é a seguinte. 1- Os comandos são colocados em um buffer de comandos; 2- Este buffer também é preenchido com vértices, dados de textura, etc.; 3- São aplicadas as transformações geométricas e de iluminação; 4- É feita a rasterização (gerada a imagem a partir dos dados geométricos, de cor e textura); 5- A imagem final é colada no frame buffer (memória do dispositivo gráfico). Vale comentar ainda, que o OpenGL é uma máquina de estados, mantendo uma série de variáveis de estado que não são alteradas até que uma função seja chamada para isto. Estas variáveis podem ser um estilo de uma linha, posições, características de luzes, propriedades do material dos objetos que estão sendo desenhados, etc. Na representação do robô hexápode e da superfície foi utilizada a biblioteca GLU (que faz parte da implementação OpenGL). Ela fornece um conjunto de primitivas gráficas, tais como pontos, linhas e polígonos. Para a tecnologia ser incorporada a aplicação precisou ser instalado um pacote disponível na internet. Este pacote dispõe de componentes e bibliotecas do OpenGL. 3.5.2.1.2 COMPORT A comunicação do Software com o DSP é realizada via uma interface serial. Durante a programação da aplicação, para não ser necessário programar em nível de API, foi utilizado uma VCL(Biblioteca de Componente Visual) gratuita chamada TComPort. Este componente introduz diversas propriedades para configuração, métodos de escrita e leitura e eventos para monitorar a porta serial. Dessa forma, ficou bastante fácil a programação do envio dos dados via serial. 3.5.3 SOFTWARE TEMPO REAL O controle de um servo motor se dá através de seu pino de controle no qual se aplica um sinal PWM cujo ciclo de trabalho determina a posição do eixo do motor. 123 A freqüência desse sinal é 50Hz e o período 20ms, o tempo alto desse sinal varia entre 1,1ms e 1,9ms para um faixa de ângulo que varia entre –45 graus e +45graus. É possível notar que uma pequena variação no tempo alto do PWM implica numa variação significativa do ângulo do eixo. O sinal de controle não pode falhar e nem atrasar significativamente, pois implica em deslocamentos importantes do eixo e conseqüentemente a instabilidade do robô, este diagnóstico caracteriza um problema de tempo real severo, hard real time system (BURNS 2001) no qual o descumprimento dos prazos torná-se catastrófico e causa danos ao próprio sistema. Para contornar esta restrição de projeto algumas possíveis soluções foram levantadas: A primeira delas foi transferir a responsabilidade de geração dos sinais PWMs para o hardware com a utilização de lógica programável. Uma FPGA, por exemplo, teria como entrada um barramento de dados no qual seria escrito o tempo alto ou o ciclo de trabalho dos PWMs e um barramento de endereços no qual se selecionaria qual dos 18 motores se estaria programando. Esta solução não se mostrou inviável, mas o processador escolhido, com alta velocidade de processamento poderia realizar esta tarefa desonerando o trabalho de desenvolvimento de hardware. A segunda solução pensada foi implementar o controle por software. Nesta solução a geração dos sinais PWM seria mais uma carga computacional para o processador que teria que processar os pesados cálculos de geração de trajetos, controlar o recebimento de ordem de mudança de trajetos via serial e controlar a ativação das patas eletromagnéticas. Este cenário conduziu o projeto do software desde a fase de concepção. O objetivo, portanto, era tentar aliviar a carga computacional que concorresse com a geração dos sinais de PWM. A primeira decisão de projeto nesse sentido foi conceber a geração de trajetória de forma que ela fosse calculada completamente depois do recebimento da ordem via serial. Esta decisão eliminou a necessidade de rodar rotinas de cinemática inversa, normalmente lentas, em tempo de execução do movimento. Após a implementação do gerador de trajetos foi implementado sem muito critério um gerador dos sinais PWM. O algoritmo segmentava o tempo de 20ms em 256 sub-períodos gerados por interrupção nos quais se fazia a verificação de qual 124 sinal PWM estava na hora de baixar e levantava todos os sinais no primeiro subperíodo. O algoritmo funcionou parcialmente, pois apesar do movimento do robô estar coerente ele apresentava tremores devidos à discretização do período. Para resolver o problema foi bolado um algoritmo de geração dos sinais que teoricamente não apresenta jitter. O algoritmo se aproveitou das propriedades do sinal PWM especificado, são elas: 20ms de período, 18 sinais simultâneos, tempo alto máximo 1,9ms e tempo alto mínimo 1,1ms. O diagrama do timming está apresentado na FIGURA 107. Timming Gerador PWM 0 20 19 18 17 16 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ctrl 1ms PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 PWM8 PWM9 PWM10 PWM11 PWM12 PWM13 PWM14 PWM15 PWM16 PWM17 PWM18 FIGURA 107 - Diagrama de timming dos PWM’s A área hachurada representa a região temporal na qual potencialmente o sinal baixará. A implementação deste diagrama de timming se dá através de 2 timers: O timer número 1 é responsável por levantar um sinal PWM de cada vez a cada milisegundo e o segundo timer é programado dentro do timer número 1 com o tempo alto do PWM anterior menos 1ms. 125 4 GESTÃO 4.1 ANÁLISE INICIAL Por se defrontar com atividades geralmente não repetitivas, complexas e dinâmicas, as características de gestão de projetos diferem da administração tradicional de atividades de rotina. O projeto desenvolvido pode-se classificar, segundo o prisma da inovação, como um projeto misto, onde se tem relacionado o projeto de pesquisa e de desenvolvimento. A seguir tem-se a definição de cada modelo: o Projeto de pesquisa: consiste na busca sistemática de novos conhecimentos, podendo estar inserido no campo da ciência ou tecnologia; o Projeto de desenvolvimento: objetiva a materialização de um produto ou processo por meio de protótipo ou instalação piloto ou modelo; Em relação ao conjunto de fases de um projeto, conhecido como “O ciclo de vida do projeto”, o projeto vem se comportando de forma padrão, conforme FIGURA 108. FIGURA 108 - Exemplo genérico de ciclo de vida de um projeto 126 Um outro modelo de ciclo de vida mais completo é mostrado na FIGURA 109. Executando Processos Nível De Atividade Planejando Processos Iniciando Processos Fase Inicial Controlando Processos Tempo Fechando Processos Fase Final FIGURA 109 - Várias etapas de cada processo A fase inicial foi a de estudo do domínio do problema na qual, através de uma revisão bibliográfica acerca do problema, tomou-se noção da complexidade, determinou-se os pontos críticos e observaram-se as tendências de pesquisa na área. Para tanto foram considerados artigos publicados em congressos e revistas especializadas que serviram para um primeiro contato, além de teses e dissertações sobre robôs escaladores que trouxeram respostas às questões específicas. Nesta fase foram alocados três homens e o custo foi baixo. Terminada essa fase era necessário compilar os resultados e partir para a definição do modelo de robô a ser pesquisado para então ser adquirido. Essa etapa foi rápida já que todas as informações estavam bem definidas e as mesmas três pessoas definiram e pesquisaram com um custo baixo. Então duas pessoas ficaram responsáveis por iniciar a negociação da compra com a empresa escolhida (Lynxmotion) via setor de importação do CEFET. Esse procedimento apesar de ser de baixo custo foi muito demorado, conforme já descrito, pois para importações com fins educacionais a burocracia é muito maior, quando comparada com uma compra particular. Mas mesmo assim preferiu-se essa opção para reduzir os custos, já que nesse caso a compra fica isenta de taxa de importação. Durante o período de importação as atividades de estudo, pesquisa e desenvolvimento não pararam. Duas pessoas iniciaram a modelagem das patas e dos modos de caminhar que o robô executaria para que fosse possível desenvolver os módulos de software responsáveis pelo controle do robô assim como para o simulador também desenvolvido pela equipe. Outras duas pessoas passaram a 127 estudar e projetar as patas eletromagnéticas que foram descritas no item 3.3.4. Essa etapa teve custo de materiais adquiridos para confecção dos protótipos dos carretéis e também do fio esmaltado. Para alguns protótipos foi usado material próprio conseguido emprestado de outros departamentos da UTFPR e, conforme foi se definindo o modelo ideal, foi contratado o serviço da mesma empresa que confeccionou o transformador para que enrolasse as bobinas dos carretéis de forma a ficarem uniformes. Durante essa etapa o quinto integrante da equipe iniciou os estudos da CPU que seria utilizada para o projeto (DSP 6711 da Texas Instrument) já descrito no item 3.4.2.1. Após aproximadamente 1 mês nessa etapa de projeto e desenvolvimento, algumas implementações foram sendo feitas e analisadas, retornando para o ponto de projeto e formando um sistema realimentado, de forma que a etapa de projeto perdurou por bastante tempo, já que eram muitos os módulos do projeto completo e sempre que era necessária a integração de duas partes algum desenvolvimento extra se fazia necessário. Após a chegada do robô, o que ocorreu em maio de 2005, uma pessoa foi deslocada para a cuidar de toda a parte mecânica, que consistia em montar o robô, analisar e executar alterações para facilitar a implementação dos demais módulos e estudar e fazer a adaptação das patas magnéticas desenvolvidas. Nessa etapa três pessoas estavam trabalhando na documentação do software, desenvolvendo a parte de UML, implementando a modelagem levantada na etapa anterior e iniciando o desenvolvimento de alguns módulos do software. O quinto integrante já estava desenvolvendo programas básicos de teste, transferência de dados, acionamento e controle de um servo motor usando o kit didático. Seguiram-se de 3 a 4 meses nessa fase, com muitos testes realizados por todos os integrantes, cada qual no seu tópico do desenvolvimento. Algumas placas de hardware foram feitas para testes, incluindo circuitos montados em proto board, placas universais, placas de circuito impresso feitas à mão, placas confeccionas pelo setor de prototipagem do CPGEI com uma fresadora e também placas confeccionadas por empresas especializadas na área. A UML foi concluída e a implementação em linguagem C++ realizada, o desenvolvimento do software de simulação foi iniciado e a integração do módulo controlador com o robô foi feita, de forma que já era possível enviar via teclado 128 alguns comandos para os 18 servos motores do robô, fazendo com que ele andasse pela primeira vez. A partir de setembro todos os módulos começaram a ser integrados. Essa tarefa estava sendo desenvolvida em conjunto por quatro membros, enquanto o outro estava responsável por estudar, desenvolver e testar a parte de adaptação das patas magnéticas à pata do robô, que seria o próximo item a ser integrado para que fosse possível fazer o robô andar em superfícies ferromagnéticas inclinadas. Outro item desenvolvido nessa época por esse membro, com o auxílio de mais um integrante foi a fonte de alimentação que foi descrita no item 3.4.1. A partir de outubro os cinco membros trabalharam em conjunto praticamente o tempo todo, pois todos os módulos estavam sendo integrados e um precisava do apoio do outro para unir as partes. Assim seguiu-se até o fim do desenvolvimento do projeto. 4.2 SISTEMAS E SUB-SISTEMAS Para facilitar o entendimento da gestão de projetos utiliza-se o conceito de sistemas. Sistema pode ser definido como um conjunto de partes individuais (subsistemas) que interagem entre si formando um todo. Assim, um projeto pode ser visto como um sistema onde existem diversas atividades que se inter-relacionam e que têm como objetivo comum um resultado final. Em busca de uma gestão adequada ao projeto, buscou-se definir bem o conjunto de atividades necessárias para se chegar ao objetivo. Vale ressaltar que neste projeto existe uma dificuldade de se realizar a integração dos módulos que compõem o sistema. Devido a esse fato o estudo do problema, a engenharia de requisitos, o estudo das especificações não funcionais e o estudo das interfaces são de vital importância. Portanto antes de todas as demais atividades um estudo detalhado destes tópicos foi realizado. O sistema engloba toda a arquitetura do robô escalador de patas. Os subsistemas e as atividades desenvolvidas estão listados na TABELA 4. 129 TABELA 4 - Sub-sistemas do projeto desenvolvido Hardware - Atividades: Projeto da placa e especificação dos periféricos e demais componentes Confecção das placas de hardware incluindo a placa mãe (motherboard) e as placas filhas (Daughter Board). Montagem das placas com os componentes Realização dos testes funcionais de hardware Software - Atividades: Desenvolvimento do código Teste dos módulos Teste de integração com o hardware Mecânica - Atividades: Encomenda da estrutura mecânica em uma empresa especializada Projeto da pata eletromagnética Desenvolvimento do sistema de articulação para fixar o carretel à pata Teste da estrutura mecânica Teste de integração com o sistema (software e hardware) 4.3 CRONOGRAMA Todo projeto precisa ter um cronograma base para que se possa fazer um planejamento de tudo que precisa ser realizado e distribuir ao longo do prazo permitido. É de conhecimento geral que na maioria das vezes ele sofre alterações durante o desenvolvimento, mas pelo menos se tem uma boa idéia de como está o andamento do projeto e o tempo disponível para a cada etapa. Um cronograma havia sido feito para o pré-projeto quando foi desenvolvida a idéia do projeto e já na defesa de Projeto Final I algumas alterações tiveram de ser feitas, isso com apenas três meses de desenvolvimento e ainda restando mais de nove meses para a conclusão do projeto. Com isso era perfeitamente previsível que mais alterações aconteceriam ao longo do desenvolvimento até a defesa final. Ao longo do desenvolvimento muitos imprevistos foram aparecendo, alguns planos alterados, outros itens incorporados e isso acarretou em mudanças significativas de cronograma, e um atraso grande na conclusão, já que a idéia inicial era finalizar o projeto até dezembro de 2005 e isso só se dará no fim de janeiro de 2006, véspera da defesa, impedindo que testes práticos em campo fossem realizados.Na TABELA 5 tem-se o cronograma inicial proposto durante o pré-projeto, em dezembro de 2004. 130 TABELA 5 - Cronograma inicial Atividades N D J F M Período 2004-2005 A M J J A S O N 1. Engenharia de Requisitos: 1.1. Levantamento e estudo de robôs 1.2. Compra e espera de entrega do robô 1.3. Montagem do robô 1.4. Análise do robô adquirido 1.5. Modelagem (interfaceamento) e especificações não funcionais 2. Projeto: 2.1. Projeto do sistema (mecânico, hardware e software) 2.2. Especificação dos módulos 3. Implementação: 3.1. Hardware: 3.1.1. Confecção da placa HW 3.1.2. Montagem da placa com os componentes 3.1.3. Realização do teste funcional de hardware 3.2. Software: 3.2.1 Desenvolvimento do código 3.2.2 Teste dos módulos 3.2.3Teste de integração com o hardware 3.3. Parte Mecânica: 3.3.1. Teste da estrutura mecânica 3.3.2 Teste de integração com o sistema (software e hardware) 4. Testes: 4.1. Testes em campo 4.2. Aperfeiçoamento do robô 5. Finalização do projeto e confecção do relatório final O maior motivo pelo atraso nas atividades foi a ocorrência do atraso de importação do robô. Era um risco levantado e considerado o maior deles, mas mesmo assim o atraso foi maior que o esperado por problemas alfandegários e burocráticos. O processo que deveria acontecer em dois meses acabou demorando seis. O levantamento e o estudo de robôs ocorreu no tempo certo, mas o aguardo da compra se prolongou. Enquanto isso, a modelagem e algumas especificações foram sendo realizadas, com base nas informações do fabricante, para que o atraso na compra não significasse o mesmo tempo de atraso no desenvolvimento, mas obviamente prejudicou bastante o cronograma, já que todos os itens que dependiam da estrutura mecânica foram deslocados pelo menos três meses para frente. D 131 Um fator bastante crítico ao projeto que obteve excelente andamento neste período foi o estudo da escalabilidade, quando se projetou e testou a pata eletromagnética. Muitas alterações foram feitas nessa parte também depois da chegada do robô, mas a idéia estava fundamentada e alterações eram simples e rápidas de se fazer, não sendo fator crítico para a conclusão do projeto. Na TABELA 6 tem-se o cronograma das atividades executadas no período até janeiro de 2006. TABELA 6 - Cronograma final Atividades 1. Engenharia de Requisitos: 1.1. Levantamento e estudo de robôs 1.2. Compra e espera de entrega do robô 1.3. Montagem do robô 1.4. Análise do robô adquirido 1.5. Modelagem (interfaceamento) e especificações não funcionais 2. Projeto: 2.1. Projeto do sistema (mecânico, hardware e software) 2.2. Especificação dos módulos 3. Implementação: 3.1. Hardware: 3.1.1. Confecção da placa HW 3.1.2. Montagem da placa com os componentes 3.1.3. Realização do teste funcional de hardware 3.2. Software: 3.2.1 Desenvolvimento do código 3.2.2 Teste dos módulos 3.2.3Teste de integração com o hardware 3.3. Parte Mecânica: 3.3.1. Teste da estrutura mecânica 3.3.2 Teste de integração com o sistema (software e hardware) 4. Testes: 4.1. Testes em campo 4.2. Aperfeiçoamento do robô 5. Finalização do projeto e confecção do relatório final N D J F M Período 2004-2006 A M J J A S O N D J 132 4.4 RESPONSABILIDADE DAS AÇÕES E CUSTOS O projeto passou por uma fase em que as ações e quantidade de homens são reduzidos. Na TABELA 7 pode-se ver a estimativa inicial de ações e homens, elaborada em 22/12/04. O total de horas indica quantas horas eram necessárias para a execução da ação. A coluna homens indica quantos homens e quais deles seriam alocados para a tarefa. TABELA 7 - Previsão inicial de ações e custos Ação Custo Total horas 704h 50h 7h 50h 50h 1. Engenharia de Requisitos: 1.1. Levantamento e estudo de robôs 1.2. Compra do robô 1.3. Montagem do robô 1.4. Análise do robô adquirido 1.5. Modelagem (interfaceamento) e especificações não 80h funcionais 2. Projeto: 600h 2.1. Projeto do sistema (mecânico, hardware e software) 80h 2.2. Especificação dos módulos 40h 3. Implementação: 525h 3.1. Hardware: 3.1.1. Confecção da placa HW 25h 3.1.2. Montagem da placa com os componentes 20h 3.1.3. Realização do teste funcional de hardware 40h 3.2. Software: 3.2.1. Desenvolvimento do código 70h 3.2.2. Teste dos módulos 30h 3.2.3. Teste de integração com o hardware 20h 3.3. Parte Mecânica: 3.3.1. Teste da estrutura mecânica 25h 3.3.2. Teste de integração com o sistema (software e 20h hardware) 4. Testes: 1000h 4.1. Testes em campo 100h 4.2. Aperfeiçoamento do robô 100h 5. Finalização do projeto e confecção do relatório final 750h * Onde: C- Carlos, D- Rafael Daciuk, J– Jean, M- Marcos, R- Renato Homens* 3 - J,C,M 2 – J,M 3 – D,R,J 3 – C,R 3- C, M, D 5 5 2-D,R 2-D,R 2-D,R 3 – C, M, J 2 – C, M 2 – C, M 1–J 1–J 5 5 5 Somando todos os subtotais chega-se a 3579 horas, considerando o total de horas trabalhada em cada item por todos os integrantes. Assim como o cronograma das atividades sofreu alterações e um aumento considerável de duração de cada atividade, a tabela de ações e custos também sofreram alterações. A quantidade de horas e os homens alocados em cada atividade até o fim do projeto, durante o período de Novembro/2004 a Janeiro/2006 estão demonstradas na TABELA 8. 133 TABELA 8 - Ações e Custos do período de atividades Ação Custo Total horas 646h 50h 12h 20h 50h 1. Engenharia de Requisitos: 1.1. Levantamento e estudo de robôs 1.2. Compra do robô 1.3. Montagem do robô 1.4. Análise do robô adquirido 1.5. Modelagem (interfaceamento) e especificações não 80h funcionais 2. Projeto: 800h 2.1. Projeto do sistema (mecânico, hardware e software) 100h 2.2. Especificação dos módulos 60h 3. Implementação: 1270 3.1. Hardware: 3.1.1. Confecção da placa HW 100h 3.1.2. Montagem da placa com os componentes 50h 3.1.3. Realização do teste funcional de hardware 50h 3.2. Software: 3.2.1. Desenvolvimento do código 120h 3.2.2 Teste dos módulos 60h 3.2.3 Teste de integração com o hardware 40h 3.3. Parte Mecânica: 3.3.1. Teste da estrutura mecânica 30h 3.3.2. Teste de integração com o sistema (software e 100h hardware) 4. Testes: 1000h 4.1. Testes em campo 0h 4.2. Aperfeiçoamento do robô 200h 5. Finalização do projeto e confecção do relatório final 1000h * Onde: C- Carlos, D- Rafael Daciuk, J– Jean, M- Marcos, R- Renato Homens* 5 3 – C,J,M 1–J 2 – J,R 3 – C,M,D 5 5 1-D 2-D,J 2-D,R 3 – C,M,R 3 – C,M,R 5 1–J 2 – J,R 5 5 Portanto, considerando todas as atividades realizadas ao longo de 15 meses, obteve-se um total aproximado de 4716 horas com uma média de 940 horas por integrante da equipe dedicadas ao desenvolvimento do robô. Em relação ao planejado isso representa um aumento de 220 horas por pessoa, o que é bastante representativo. Isso ocorreu em decorrência da falta de experiência para planejar o desenvolvimento de um projeto de tamanha complexidade e com um número relativamente grande de pessoas. Pensar na forma de distribuir o projeto foi uma tarefa aparentemente simples, até que se começou a executá-lo. Foi então que começaram a surgir as primeiras complicações, necessidades de alterações, aquisição de componentes ou equipamentos que a princípio eram considerados desnecessários. 134 4.5 ANÁLISE DE RISCOS Inicialmente os seguintes riscos foram levantados: TABELA 9 - Análise de Riscos Grau Descrição Impacto Alto Atrasos de importação 3 Médio Médio Médio Médio Baixo Baixo Dificuldade na compra dos componentes Aumento exagerado na complexidade da modelagem Falhas de projeto e construção da parte mecânica Estouro orçamentário do projeto Perda dos recursos financeiros do projeto Perda de recursos humanos 4 Implicações Atraso de cronograma Componentes alternativos Prob. 0.3 0.15 Ação Efetuar compras com antecedência Trabalhar com componentes usuais 3 Diminuição da especificação 0.25 Revisar o escopo do projeto 6 Atraso de cronograma 0.4 Basear-se em modelo já estudados e testados 4 Diminuição da especificação 0.10 9 Plano B 0.1 2 Sobrecarga dos remanescentes 0.1 Diminuir o escopo do projeto Firmar um acordo previamente Definir uma equipe criteriosamente Conforme a análise inicial, o risco de maior grau e significativa probabilidade ocorreu. Apesar de previsto o atraso da importação foi maior que o esperado, mesmo efetuando a compra com antecedência. Como impacto, houve um remanejamento de atividades, e algumas atividades foram atrasadas ou antecipadas. Além da importação do robô houve problemas com importação e compra de componentes eletrônicos, mas esses atrasos não foram tão graves, apesar de também terem atrapalhado um pouco no cronograma planejado. Esse risco também fora previsto. Dos demais riscos previstos nenhum se concretizou ou foi solucionado a tempo sem prejudicar em muito o desenvolvimento do projeto. 4.6 CUSTOS FINANCEIROS Na TABELA 10 estão listados os principais itens adquiridos no desenvolvimento do projeto e seus respectivos custos em reais. Para a efeito de 135 análise futura pode-se considerar a cotação do dólar a R$ 2,40 apesar de ter flutuado durante o período de desenvolvimento. TABELA 10 - Gastos no desenvolvimento Descrição Preço (R$) Kit do Robô Lynxmotion 5.000,00 Motores HSR-5995TG (18 unidades) 12.000,00 Ímãs 400,00 Enrolar eletroímãs (fios + mão de obra) 300,00 Barras de Nylon 50,00 Barras de Alumínio 30,00 Chapas e parafusos 20,00 Transformador 480,00 Componentes para fonte de alimentação 80,00 Placas de circuito impresso 2.500,00 Componentes eletrônicos 2.000,00 Soldagem da placa 350,00 Cabos 30,00 Componentes adquiridos como amostra* 1.000,00 Total: 24.240,00 *Considerando o custo caso fossem comprados. 136 5 5.1 PLANO DE NEGÓCIOS RESUMO EXECUTIVO A empresa BR_ROBOTiCS tem por objetivo atingir um ramo de mercado nacional e internacional que tem crescido exponencialmente nos últimos anos: o mercado de inspeção. Este crescimento é decorrente da preocupação das empresas com o meio ambiente e segurança, além da busca constante por maiores rentabilidades. Principalmente em ambientes hostis ao ser humano, como os encontrados durante uma inspeção de cascos de navios, há uma tendência de se automatizar esta tarefa, utilizando para isso robôs. Considerando isto, a BR_ROBOTiCS entrará no mercado propondo soluções de robótica móvel inovadoras e de alto nível tecnológico. Seus produtos serão robôs, portadores de sensores, para inspeção de cascos de navios, plataformas de exploração petrolífera e outros equipamentos industriais. Além de fornecê-los, a empresa dará todo o apoio técnico para eventuais alterações em algum aspecto que facilite determinado serviço, e também criará novos modelos de acordo com a necessidade do mercado. Tudo visando garantir a satisfação do cliente. No seu produto chave, o Robô de Inspeção de Cascos de Navios, a empresa visa propiciar aos seus clientes uma solução que realize esta tarefa com maior agilidade, facilidade, precisão e principalmente menor custo. As soluções atuais não conseguem atingir estes objetivos, visto que utilizam mergulhadores especializados para realizar uma inspeção visual, ou utilizam equipamentos desenvolvidos para esse fim que necessitem da operação de pelo menos um mergulhador. Isso torna a tarefa cara, perigosa e dispendiosa. A principal estratégia de marketing da empresa será adentrar no segmento alvo e obter o seu reconhecimento quanto à eficiência do produto. Tendo uma empresa de porte assegurando a qualidade do equipamento, a sua inserção num mercado amplo será apenas questão de tempo. A proposta de valor é de R$ 400.000,00 (quatrocentos mil reais). Ela considera não só o nível tecnológico do produto, mas principalmente o custo benefício que ele irá apresentar ao cliente e o potencial da industria em que se esta trabalhando, a petrolífera, que normalmente tem seus patamares de preços 137 inflacionados. Com esse valor e considerando o que a indústria de petróleo gasta atualmente nesta tarefa, em duas inspeções de grande porte o cliente terá recuperado o valor investido no produto. Inicialmente, a empresa será composta por cinco sócios, sendo que dois atuarão em tarefas de marketing e administrativa, além das tarefas de pesquisa e desenvolvimento que será executada por todos. Conforme o investimento inicial da empresa, orçado em R$ 497.500,00 (quatrocentos e noventa e sete mil e quinhentos reais), e seu faturamento que deverá ser de R$ 75.130,00 (setenta e cinco mil cento e trinta reais) no primeiro semestre do primeiro ano, chegando à R$ 597.903,00 (quinhentos e noventa e sete mil e novecentos e três reais) no mesmo período do ano seguinte, a BR_ROBOTiCS trará retorno ao investidor no início do seu segundo ano de funcionamento. 5.2 DEFINIÇÃO DO NEGÓCIO: VISÃO, VALORES E DIFERENCIAIS ESTRATÉGICOS 5.2.1 MISSÃO Satisfazer o mercado de inspeção com soluções de robótica móvel inovadoras de alto nível tecnológico, maximizar o retorno para os acionistas, gerar oportunidades de desenvolvimento para os empregados, promover retorno à sociedade e respeitar sempre todas as partes envolvidas. 5.2.2 VISÃO A BR_ROBOTiCS será uma empresa com forte presença no mercado nacional, visando também o internacional, na produção de robôs, portadores de sensores, para inspeção de cascos de navios, plataformas de exploração petrolífera e demais equipamentos da indústria. Seus produtos serão fornecidos às empresas que possuem departamentos de inspeção próprios, ou às especializadas em prestação de serviço nessa área. A BR_ROBOTiCS dará todo o apoio técnico para eventuais alterações em algum aspecto que facilite determinado serviço, além de todo suporte necessário para garantir a satisfação do cliente. O negócio também 138 visa a criação de novos modelos de acordo com a necessidade do mercado e com a aprovação da viabilidade técnica e financeira. 5.2.3 VALORES Inovação, liderança, ética, comprometimento, trabalho em equipe e compromisso com o cliente. 5.2.4 DIFERENCIAIS ESTRATÉGICOS Competência associada à criatividade produzindo inovações no mercado de inspeção. 5.3 OBJETIVO Ao terceiro ano o objetivo da empresa é ter fornecido cerca de 20 (vinte) robôs de inspeção, principalmente ao segmento da indústria petrolífera, atingindo assim um amplo mercado neste segmento. Para esse produto despontar nesse mercado é necessário que tenha um custo beneficio favorável, visando oferecer maior segurança de serviço por um menor preço. Assim, possuindo os atributos necessários para ser mais vantajoso e eficiente que as empresas concorrentes, a penetração no mercado irá se tornar simples e em potencial, já que se trata de um segmento que movimenta muito dinheiro todos os dias. A partir do momento que o robô passar a ser uma ameaça para as empresas especializadas em inspeção que utilizam a mão de obra de mergulhadores, o objetivo é que elas abandonem a condição inicial de concorrente para migrar à condição de cliente, adquirindo os robôs para realizar as inspeções. 139 5.3.1 OBJETIVO INTERMEDIÁRIO No primeiro ano o objetivo é colocar pelo menos três unidades do robô no mercado, e com eles testar, aperfeiçoar o modelo e principalmente obter o reconhecimento da eficiência do produto, de forma a gerar um marketing positivo à empresa. As empresas que trabalham com tecnologia vêm evoluindo e desenvolvendo novos projetos e sistemas rapidamente, principalmente nos setores em que há muito recurso financeiro como é o caso do petrolífero. Por isso, fazer uma previsão de objetivo da empresa para três anos parece simples, mas torná-lo realidade nem tanto. Avaliações constantes abrangendo tarefas como verificação de metas, análise dos seus resultados, estudo das atitudes tomadas por empresas concorrentes, além de outros pontos importantes deverão ser feitas após um tempo razoável de introdução no mercado e também com tempo hábil para mudanças significativas, caso seja percebida essa necessidade. 5.4 PRODUTOS E SERVIÇOS 5.4.1 DESCRIÇÃO DO PRODUTO O produto inicial da empresa se trata de um robô para inspeção de cascos de navios. Devido a grande demanda desse serviço especializado, abre-se a possibilidade para que novas tecnologias sejam desenvolvidas e implementadas, gerando novos produtos. Esses produtos proporcionam grande segurança e precisão, quando comparados aos serviços de inspeção realizados por mergulhadores. O robô se locomove através de seis patas, sendo que cada uma tem três graus de liberdade. Esse modelo foi decidido após a análise dos problemas já enfrentados por outros centros de pesquisa e tomando por referência o tipo de superfície, as condições de locomoção e fixação e demais dificuldades inerentes ao tipo de aplicação. 140 Adaptando os tipos de sensores necessários para uma inspeção eficiente, rápida e segura o robô pode perfeitamente ser empregado no mercado como forte concorrente ao uso de mão de obra de mergulhadores. O robô está projetado e dimensionado para se locomover em superfícies ferromagnéticas com qualquer ângulo de inclinação inclusive de ponta cabeça. O que determina a aplicação do mesmo são os sensores, que nesse caso serão exclusivos para inspeção de cascos de navios, podendo estender-se a plataformas marítimas, tanques de armazenamento com superfícies de aço, etc. Os tipos de sensores que o robô irá portar são: sensor de corrosão por ACFM; por ultra-som, medição da espessura; e visualização com o auxílio de câmeras filmadoras. Com alguns robôs, cada qual com um tipo de sensor acoplado pode-se fazer a varredura no casco em busca de problemas. Dessa forma seria dispensável o uso da equipe de mergulhadores reduzindo consideravelmente o custo da operação. Seriam necessárias apenas pessoas para fazer o controle do robô e a análise das informações coletadas, o que seria possível com apenas dois funcionários. Com isso seria poupado o serviço da mão de obra humana mergulhando em águas perigosas, evitando assim riscos de acidente de trabalho e danos à saúde dos funcionários envolvidos. A empresa fornecerá seis meses de garantia nos seus produtos e proverá serviços de manutenção e adaptação a qualquer instante. 5.4.1.1 Análise do Usuário Uma tarefa de inspeção, para que seja bem executada, necessita de uma equipe de trabalho. Esta equipe é formada por engenheiros e operadores. Normalmente é um engenheiro de equipamentos com especialidade em inspeções quem comanda a equipe, ficando a cargo dos operadores de inspeção a operação dos robôs, colocando-os em posição, controlando-os e possibilitando o levantamento dos dados da superfície para uma análise em tempo real ou posterior, por um especialista em inspeção. Portanto, o operador de inspeção é considerado como sendo o usuário final do nosso produto. Pois se trata daquele que realmente vai operar e colocar em funcionamento o robô de inspeção. É esse usuário que foi analisado, para podermos 141 criar um produto que atenda suas expectativas e que seja amigável em sua operação. TABELA 11 - Perfil do usuário Perfil de um operador Sexo: Masculino Idade: 25-40 Escolaridade: Técnico(2° Grau completo) Profissão: Operador de Inspeção Objetivo Crítico Características: Metódico Desconfiado 5.4.2 ANÁLISE COMPARATIVA Para inspeções de casco de navios ainda é muito comum o uso de mergulhadores. Normalmente é formanda uma equipe composta por sete pessoas e custa cerca de R$ 10.000,00 (dez mil reais) por dia. Utilizando um pouco mais de soluções tecnológicas, existem no mercado alguns robôs e sistemas autômatos para realizar essa operação, mas nenhum consegue dispensar a mão de obra de mergulhadores especializados, pois não possuem um sistema que é capaz de contornar obstáculos maiores, e movimentarse pelo casco com facilidade permitindo que seja acoplado ao bordo superior e desça até a parte inferior do casco sozinho. Todos precisam, de alguma forma, ser posicionados por pessoas em baixo da água. Ainda, outros sistemas que utilizam hélices para se locomover só permitem a inspeção da porção submersa do casco. Além disso, ainda dividem-se em três grupos os robôs existentes no mercado: os que são utilizados para verificar o casco inteiro, que no caso de um petroleiro possui cerca de 14.000 m², um segundo grupo que é utilizado para porções menores de 500 a 1000 m² por amostragem e alguns sistemas muito precisos e detalhistas, mas que só são viáveis para pequenas inspeções bem localizadas com áreas de até 50m². O robô proposto é capaz de fazer a inspeção em toda a superfície assim como em pequenas porções, bastando o operador responsável pelo controle do mesmo determinar a velocidade, modo de caminhar e o passo de cada medição. O projeto é totalmente flexível nesse sentido e ainda permite inspecionar locais que outros robôs maiores e com estruturas menos “flexíveis” não alcançariam. 142 5.4.3 TECNOLOGIA O corpo do robô é constituído na maior parte de Lexan®. A resina Lexan® é uma resina de Policarbonato resultante da reação entre derivados do ácido carbônico e o bisfenol A. Este termoplástico de engenharia tem se tornado muito conhecido por ser transparente como o vidro e resistente como o aço. Seu surgimento se deu na Europa em 1959 e em 1960 já começava a ser produzido pela General Electric Co, que detém a patente sobre esse material. Este material é resistente a ácidos, álcoois e álcalis, geralmente não causa problemas em baixas concentrações e temperatura ambiente, é compatível com detergentes e agentes de limpeza assim como com óleos e graxas puras. Apenas o contato com solventes, aditivos e cetonas devem ser evitados para não comprometer a estrutura mecânica, mas como todo o corpo é blindado para sequer entrar em contato com a água, isso não representaria problema. As partes metálicas ou são de alumínio ou de aço carbono. Os 18 motores são todos servos do fabricante Hitec. O modelo utilizado é o HRS-5995TG que é o motor de maior torque e com tamanho reduzido, permitindo uma estrutura menor, mais leve e mesmo assim, muito resistente. Trata-se de um motor servo digital, programável, com engrenagens de titânio que garantem maior durabilidade mesmo sob grandes esforços. Para o controle está sendo utilizado o Processador Digital de Sinais (DSP – Digital Signal Processor) da Texas Instruments, modelo TMS320C6711D, com capacidade de rodar a 250 MHz, sendo capaz de executar 1500 milhões de operações em ponto flutuante por segundo. A placa do controlador foi desenvolvida baseada no kit didático da própria Texas Instruments modelo TMS320C6711. As características da placa desenvolvida são: o Tensões de alimentação: 1.4 V para o núcleo do DSP; 3.3 V para as portas de I/O (input e output) do DSP e para os outros circuitos integrados na placa, disponível também nos conectores de interface com outras placas; 143 5 V para os reguladores de tensão e disponível também nos conectores de interface com outras placas. o 64 MB de memória SDRAM podendo rodar com clock de até 100 MHz, fornecido pelo DSP; o 1 MB de memória FLASH, utilizada para gravação do firmware do sistema que é carregado durante a inicialização. Esta memória pode ser gravada através da interface serial (COM) de qualquer computador, permitindo atualizações de software ou até alterar a função do sistema como um todo com facilidade; o Microcontrolador MSP430F133, utilizado para gravar o firmware na memória FLASH através da interface serial; o Interface JTAG para debug prévio dos programas, útil na fase de desenvolvimento; o Interface JTAG para gravar o firmware no microcontrolador MSP; o Conectores devidamente bufferizados para comunicação com “placasfilhas” (DaughterBoards) utilizando o mesmo padrão do kit de desenvolvimento da Texas Instruments, possibilitando a reutilização de placas previamente desenvolvidas. O projeto também possui uma daughterboard. As principais características desta placa são: o Interface para os 18 motores; o Interface para o módulo que aciona os 6 eletroímãs; o Entrada paras os 6 sensores de força; o Interface serial para comunicação com o microcomputador; o Entrada para alimentação dos motores, dos eletroímãs e do resto dos circuitos, inclusive a alimentação da MotherBoard (5 V). Há também um software que funciona como controlador e ainda possui a função de simulador e visualizador da trajetória que o robô está descrevendo durante a inspeção. Através desse software é possível passar comandos do tipo direção e definir diversas formas de locomoção. O visualizador foi desenvolvido em 144 OpenGL, que é uma Interface de Programa para Aplicativos (API) voltado a simulação em 3D. As informações são passados ao processador do robô pela interface serial do computador. Essa comunicação é feita utilizando o protocolo RS-422 para que se tenha o alcance via par metálico necessário para esse tipo de serviço, já que cascos de navios petroleiros têm normalmente mais de 200m de comprimento. Para usar esse protocolo foi desenvolvida uma placa que é conectada à interface serial do computador e transforma RS-232 para RS-422 sendo alimentada pela própria porta do PC, sem necessidade de fonte externa de alimentação. Para a alimentação de toda a parte eletro-eletrônica foi desenvolvida uma fonte de alimentação de potência. Isso porque os motores consomem muita corrente (cerca de 50A com 7,4V quando todos estão na força máxima) e não seria possível fazer um robô desse tipo e com o tamanho que possui capaz de carregar baterias. A fonte alimenta os 18 motores, os seis eletroímãs das patas e a parte eletrônica das placas do microprocessador. Essa fonte é alimentada em 127V ou 220V e fica sobre o convés do navio. O sistema eletromagnético acoplado às patas que permite a fixação e sustentação do robô em superfícies metálicas foi inteiramente desenvolvido pela equipe. Não há no mercado algo parecido para essa aplicação. Por isso, foram necessários um amplo estudo, muitos protótipos e testes até se chegar no modelo final. Trata-se de um sistema que utiliza ímãs de terras raras (compostos de neodímio, ferro e boro), que são os mais fortes existentes no mercado, e eletroímãs que somente são utilizados no momento da locomoção. Isso traz duas grandes vantagens: baixo consumo durante o sistema de inspeção e, caso ocorra um problema no suprimento de energia, o robô se mantém fixo ao casco. 5.4.4 PRODUTOS E SERVIÇOS FUTUROS A partir da plataforma do robô de inspeção de cascos de navios, novos produtos poderão ser lançados, apenas modificando-os para cada situação específica. O know-how adquirido, também permitirá a criação de novos modelos a partir da necessidade do mercado. Em conjunto com o desenvolvimento de novos robôs serão estudados e testados outros tipos de sensores que auxiliarão na inspeção, tais como sistema de 145 análise por imagem, baseado em reconhecimento de padrões para verificar irregularidades e possíveis pontos críticos para uma manutenção preventiva. O aperfeiçoamento dos robôs e sensores, bem como a utilização de novas tecnologias deve ser um fato corrente dentro da empresa. Associado a uma ampla divulgação e o suporte do sucesso no lançamento do primeiro produto, a empresa visa ser uma marca de expressão no mercado e visa gerar retorno rápido e constante aos acionistas. 5.5 ANÁLISE DE MERCADO 5.5.1 SEGMENTAÇÃO DE MERCADO A tarefa de inspeção de cascos de navios abrange as mais diversas áreas da indústria. Os principais segmentos do mercado e as perspectivas de venda para cada segmento são: TABELA 12 - Clientes potenciais Clientes Potenciais Empresas Petrolíferas Empresas Frotistas de Navios Empresas Prestadoras de Serviço de Inspeção Outras Total 5.5.1.1 2006 2007 2008 2 4 3 1 2 3 0 1 1 0 3 0 7 1 8 Empresas da Área de Exploração Petrolífera Nessa área existem vários clientes no mercado mundial, porém dentre esses diversos clientes há um em especial: a PETROBRAS. Esse cliente é o responsável pelo desenvolvimento desse projeto, pois esse surgiu através de uma necessidade da PETROBRAS em obter novas soluções para os serviços de inspeção de cascos de navios. A necessidade dessa empresa foi observada através de um edital realizado pela CT-PETRO. Esse órgão tem como objetivo estimular a inovação na cadeia produtiva do setor de petróleo e gás natural, a formação e qualificação de recursos 146 humanos e o desenvolvimento de projetos em parceria entre empresas e universidades, instituições de ensino superior ou centros de pesquisa do país, visando o aumento da produção e da produtividade, a redução de custos e preços e a melhoria da qualidade dos produtos do setor. Nesse edital foram colocadas propostas de projetos de diversas áreas em que a PETROBRAS atua, mostrando o que precisa ser desenvolvimento em cada uma dessas áreas. Dentre as várias propostas se verificou na área exploração e produção a seguinte demanda: Sistema portador de sensores não-destrutivos e de corrosão para inspeção de cascos de navios. Essa demanda trata do desenvolvimento de células (potencial eletroquímico, sensor de ultra-som, sensor de correntes parasitas, sensor de ACFM, câmaras de fotografia e de filmagem mono e tridimensionais) que permitam o deslocamento no fundo do casco dos navios de produção com a finalidade de levantar dados de inspeção não-destrutiva e de integridade estrutural. 5.5.1.2 Empresas Frotistas de Navios Existem muitas companhias nacionais e outras internacionais com base no Brasil que possuem grandes frotas de navios e seriam potenciais compradores dos robôs de inspeção. Para uma frota grande de navios o custo do robô se torna insignificante quando comparado ao gasto anual na contratação de outras empresas para realizar a inspeção de manutenção preventiva. Adquirindo um robô e treinando alguns funcionários para operá-lo certamente traria um retorno do investimento em um curto prazo, pois geraria economia e a possibilidade de realizar inspeções com intervalos menores, garantindo uma maior vida útil da frota. 5.5.1.3 Empresas Especializadas em Inspeção Esses são os outros clientes importantes no mercado, pois são os responsáveis por suprir a demanda existente desses serviços. Como essas empresas detêm o mercado atual, é importante para as mesmas estarem sempre buscando e investindo em novas soluções. 147 5.5.2 SEGMENTO ALVO Em especial, há uma indústria que tem uma atenção redobrada, a petrolífera. Isso decorre pelos riscos ambientais, pelo nível de segurança e principalmente pela quantia de dinheiro que suas tarefas envolvem. 5.5.3 NECESSIDADES DO MERCADO Atualmente a inspeção de cascos é realizada principalmente por mergulhadores especializados que realizam a inspeção visualmente ou instalam manualmente os sensores nos pontos que precisam ser verificados. Também já existem vários equipamentos desenvolvidos para esse fim, mas todos ainda necessitam de auxílio humano. Esse serviço é de alta periculosidade, demorado (leva-se cerca de 10 dias para se inspecionar um casco completo) e caro (aproximadamente 180 mil dólares). Considerando isto, o mercado necessita de um produto que realize esta tarefa com maior agilidade, facilidade, precisão e principalmente menor custo. 5.5.4 TENDÊNCIAS DO MERCADO Há uma tendência atual na área de inspeção de se automatizar as tarefas, utilizando para isso, principalmente, soluções em robótica. Esta é uma solução promissora para os casos de aplicações em ambientes hostis aos seres humanos, serviços de longa duração ou que demandem grande esforço físico. Além disso, também se observa a tendência da substituição de robôs complexos, em atividades de risco para o homem, por dezenas de robôs mais simples. Assim, o impacto e o prejuízo do problema apresentado pelo robô que a Agência Espacial NorteAmericana (Nasa) enviou para fazer inspeções em Marte seria menor se a missão fosse formada por dez ou vinte robôs menos complexos. Outro exemplo de trabalho coletivo é a busca de vítimas soterradas em escombros: a chance de um conjunto de 50 pequenos robôs encontrarem sobreviventes é maior do que a de um único robô. Isso justifica o uso de robôs menores cada qual com um tipo de sensor para realizar a inspeção, ao invés de um robô de grande porte, pouco ágil com um conjunto 148 completo. Até porque dependendo da superfície a ser analisada, alguns tipos de sensores são dispensáveis e estariam somente aumentando o peso do robô. 5.5.5 CRESCIMENTO DO MERCADO Esse mercado tem um enorme potencial de crescimento visto a preocupação das empresas com o meio ambiente e segurança e também pela busca constante de maiores rentabilidades. 5.5.6 ANÁLISE DA INDÚSTRIA 5.5.6.1 Players Os competidores do mercado estão divididos basicamente em dois grupos: grupos de pesquisa e empresas especializadas em inspeção de cascos de navios. Entretanto, as empresas de inspeção têm a possibilidade de transgredir da condição de concorrente para cliente. 5.5.6.2 Grupos de Pesquisa Esses são os maiores concorrentes existentes no mercado, principalmente os grupos especializados em desenvolver robôs escaladores para aplicações relacionadas à inspeção de ambientes hostis ou de difícil acesso com mão-de-obra humana. Alguns são de renome, como: o Conselho Superior de Pesquisas Científicas (IAI-CSIC, ES) Esse é considerado o principal grupo de pesquisa concorrente no mercado, pois o Departamento de Controle Automático do Instituto de Automação Industrial do CSIC, localizado na Espanha, tem como objetivo principal fazer pesquisas sobre análises e desempenho de sistemas de controle voltado para o desenvolvimento de robôs escaladores. o Universidade da Catania (UoC, IT). 149 Nessa universidade, mais precisamente no departamento de elétrica eletrônica e sistemas, existem vários projetos em desenvolvimento na área de robótica. o Centro de Pesquisa da Petrobrás (Rio de Janeiro) - CENPES Esse é um grande concorrente do segmento já que tem como cliente final também a Petrobrás. Além disso, é o centro de pesquisa e desenvolvimento da própria empresa e, portanto tem muitas informações e contatos preciosos para desenvolver esse tipo de robô. 5.5.6.3 Empresas de Inspeção o Scubalab (sediada em São Paulo). Fornece os seguintes serviços: Inspeção e reparos em estruturas flutuantes; Serviços de busca e recuperação de objetos e salvatagem de estruturas e embarcações; Manutenção e instalação de poitas; Limpeza de cascos; Iluminação submarina de costeiras; Projetos elétricos e hidráulicos submarinos; Pesquisa de naufrágios p/ seguradoras; Limpeza de estruturas submarinas; Fotografia submarina; Filmagem submarina e monitoramento de projetos. o Hydratec Tecnologia Submarina Serviços Comércio e Indústria Ltda (sediada no Rio de Janeiro). Serviços de engenharia submarina em geral incluindo inspeção, montagens, reparos, e manutenção; Serviços de inspeção submarina com veículos ROV de pequeno porte; 150 Serviços de geo-posicionamento hidroacústico submarino com software de posicionamento, integração em tempo real DGPS tipo TRACKPOINT; Serviços de inspeção submarina ou terrestre com sistemas de vídeo remoto com micro-câmeras especializadas; Montagem, ajustes, reparos, e instalação e locação de sistemas de vídeo 2D e 3D submarinos ou terrestres, incluindo câmeras, lentes, objetivas e janelas ópticas, encapsulamentos e vasos de pressão, fontes, conectores, cabos umbilicais, projetores e luminárias, monitores, vídeo gravadores, posicionadores de pan & tilt, gravadores, unidades de controle, multiplexadores, amplificadores de distribuição; Montagem, ajustes e reparos de sistemas de intercomunicação submarina; Serviços de filmagem e edição e exibição de vídeos em 3D (estereoscópicos); Serviços de gravação, e edição profissional de vídeos em geral; Desenvolvimento e pesquisa de sistemas de tele-presença (realidade virtual); Desenvolvimento e pesquisa de sistemas de posicionamento dinâmico para ROV; 5.5.7 FORNECEDORES Para a confecção de um robô com a finalidade de inspecionar cascos de navio estão envolvidas diversas áreas e, portanto um número grande de fornecedores. Na parte mecânica existem as empresas que fazem corte a laser das placas de alumínio ou Lexan®, e empresas para adquirir parafusos, chapas, molas e outros componentes menores que compõe o sistema da pata. 151 Temos ainda a confecção do sistema eletromagnético da pata que exige um fornecedor de barras de alumínio para fazer os carretéis dos eletroímãs, o núcleo de aço e ainda a empresa que fornece os ímãs de terras raras. Na parte eletrônica temos as empresas que fazem as placas de circuito impresso, as que fazem a montagem e soldagem dos componentes e os fornecedores de componente, que são de modo geral a Texas Instruments (através de seus distribuidores), Farnell-Newark InOne e lojas de componentes eletrônicos locais para aquisição de componentes mais comuns quando é necessário construir um protótipo mais rapidamente sem depender da importação de todos os componentes eletrônicos. Para a inspeção são necessários os sensores e sistemas de leitura que devem ser adquiridos de fornecedores do ramo, já que o produto da empresa é o robô e não os sensores e, portanto essas tecnologias somente serão utilizadas e não desenvolvidas. Ainda podem ser citadas as plataformas para desenvolvimento de softwares, que abrangem o software simulador e o de análise das informações coletadas. Como o robô ficará conectado por um cordão umbilical, um fornecedor de cabos, tanto de energia quanto de dados, se faz necessário. 5.6 ESTRATÉGIA E IMPLEMENTAÇÃO 5.6.1 DEFINIÇÃO DA OFERTA E DA PROPOSTA DE VALOR Segundo informante do CENPES, para inspeção de cascos de navio, com os equipamentos existentes hoje no mercado, utiliza-se uma equipe de mergulhadores que custa R$ 10.000,00 (dez mil reais) por dia. Para um navio de grande proporção o valor de uma inspeção pode chegar a R$ 300.000,00 (trezentos mil reais). Há de se ressaltar que está se trabalhando com uma indústria que tem seus patamares de preços inflacionados. Além disso, esse mercado é restrito e não é todo dia que é fechado um contrato de inspeção já que se trata de um serviço caro, de grande porte e as inspeções são feitas com intervalos de no mínimo dois anos. São esses fatos, além do custo benefício que o produto apresenta, que forma a proposta de valor de R$ 400.000,00 (quatrocentos mil reais). 152 Portanto, com a economia gerada pelo produto, certamente em duas inspeções de grande porte o comprador terá recuperado o valor investido no produto. 5.6.2 ESTRATÉGIA DE MARKETING Toda criação de um produto exige uma boa estratégia de marketing antes de sua colocação no mercado. Lançamentos de produtos de marcas já conhecidas são facilmente inseridos no mercado pela tradição da empresa e não pela qualidade do novo produto propriamente dito. Quando se trata de um projeto novo, desenvolvido por uma equipe iniciante com pouco capital para marketing, esse ponto passa a ser fundamental. Alavancar rapidamente as vendas e a aceitação do mercado para uma nova marca são cruciais, já que pouco tempo no mercado sem vendas pode ser fator decisivo entre o sucesso e o fracasso de uma nova empresa. Com isso a principal estratégia inicial de marketing é adentrar no segmento alvo e obter o seu reconhecimento quanto à eficiência do produto. 5.6.2.1 Estratégia de Preços Como os primeiros três anos serão determinantes tanto para a colocação do produto no mercado quanto para o desenvolvimento de novos robôs, considerando a situação atual do mercado e da economia, os preços apenas sofrerão um reajuste de 10% (dez porcento) ao ano para compensar as perdas por inflação. 5.6.2.2 Estratégia de Promoção Esse tipo de produto não necessita de uma estratégia de promoção já que uma empresa com pretensão de comprá-lo sabe perfeitamente que se trata de um produto de alto custo e com alto valor de retorno. 153 5.6.2.3 Estratégia de Vendas A primeira estratégia de busca de mercado é conseguir uma venda com alguma empresa grande do setor de petróleo, PETROBRAS preferencialmente, com seu Centro de Pesquisa. Essa venda seria num formato de aliança, em que se utilizariam testes práticos para aperfeiçoar e com isso formar um produto de excelência, conseguindo através desta empresa tornar o produto conhecido no mercado. Tendo uma empresa deste porte assegurando a qualidade do equipamento e indicando-o a outras empresas do setor facilitaria muito as vendas já que não seria necessário provar para cada empresa qual a eficácia e vantagens de se adquirir o produto. 5.6.3 PLANO DE VENDAS TABELA 13 - Plano de vendas ANO 1 ANO 2 ANO 3 SEMESTRES 1º 2º 1º 2º 1º 2º Previsão de vendas de robôs inspecionadores 1 2 3 4 4 4 5.6.4 ALIANÇAS ESTRATÉGICAS Uma aliança estratégica é a com o Centro de Pesquisa da PETROBRAS – CENPES - durante o desenvolvimento inicial e testes práticos, já que se trata de um grupo que há algum tempo financia e testa equipamentos para essa finalidade, tendo amplo conhecimento das dificuldades enfrentadas em uma inspeção de qualidade. O projeto já foi desenvolvido com acompanhamento da pessoa responsável pelo setor de inspeção do CENPES que forneceu características e informações úteis para que a idéia inicial do projeto já se adequasse às condições mínimas necessárias para um bom produto. Inclusive muitas das informações relativas aos produtos já existentes no mercado e que não são completamente satisfatórios foram 154 passadas por ele para que fossem analisadas e resolvidas, tornando o robô melhor que o dos concorrentes. Outra aliança importante é com um grupo extremamente forte, a CLAWAR (Climbing and Walking Robots). A CLAWAR é uma rede temática que propõe englobar os grupos de pesquisas, industriais e fabricantes de robôs, que estão trabalhando em máquinas andantes e escaladoras, nas tecnologias de apoio (tais como controle da forma de caminhar, sensores, atuadores, inteligência artificial e nos aspectos relacionados com a viabilidade destes sistemas) e nas aplicações especificas destas máquinas (incluindo a construção, as indústrias de off-shore e a nuclear), de tal forma que a atividade global nessa área possa ser adequadamente coordenada e que se adotem as medidas adequadas para maximizar o uso de recursos em sua utilização futura. Os participantes da rede temática são atualmente cerca de 64, espalhados pelo mundo, tendo sua maior concentração na Europa com cerca de 51 membros, seguido pela América com sete membros, sendo que destes membros somente 1 está localizado na América do Sul. Este situado no Brasil representado pelo Dr. Luiz de Siqueira Martins Filho, o qual é Doutor em Robótica pela Universidade Paul Sabatier - UPS (Toulouse, França) com tese preparada no Grupo de Robótica e Inteligência Artificial - RIA do LAAS/CNRS (Toulouse, França), sendo Professor Adjunto do Departamento de Computação, na Universidade Federal de Ouro Preto DECOM / ICEB / UFOP (Ouro Preto/MG, Brasil), trabalhando em Robótica e Sistemas de Controle. Atualmente está desenvolvendo um projeto de pesquisa com o seguinte tema: Dynamics Modelling and Control of Walking Robots, que propõe a modelagem dinâmica e o controle de robôs móveis, o que não possui um relacionamento direto com o projeto que está sendo desenvolvido. 5.7 GESTÃO 5.7.1 ESTRUTURA ORGANIZACIONAL A empresa é composta por cinco sócios. Dois dos sócios serão responsável por diretorias (marketing e administrativa), cada um coordenando e verificando todas 155 as necessidades daquela área. Os cincos são responsáveis pelas decisões maiores da empresa e pelo desenvolvimento do produto. 5.7.2 EQUIPE A equipe inicial será composta pelos cinco membros que desenvolveram o projeto. São eles: o Carlos Augusto Luguesi; o Jean George Boss; o Marcos Vinícius Freitas; o Rafael José Daciuk; o Renato Leite Urzedo. Essa equipe será mantida até o término do primeiro produto. Adquirindo mercado, serão contratados mais funcionários (engenheiros e estagiários) para efetuar a montagem dos robôs, tanto da parte mecânica quanto da elétrica e eletrônica assim como realizar os testes padrões em bancada. Com o crescimento da empresa, profissionais para as áreas de administração e de marketing deverão ser contratados. Dessa forma, prevê-se um crescimento de 30% ao ano nas despesas com mão de obra somente nos primeiros anos. 5.8 PLANO FINANCEIRO 5.8.1 PROGRAMA DE VENDAS TABELA 14 - Programa de vendas DESCRIÇÃO/SEMESTRES Quantidade de robôs vendidos Preço de Venda Receita de Vendas(Sem IPI) IPI Receita Bruta ANO 1 1º 2º 1 2 400.000 400.000 400.000 800.000 40.000 80.000 440.000 880.000 ANO 2 1º 2º 3 4 440.000 440.000 1.320.000 1.760.000 132.000 176.000 1.452.000 1.936.000 ANO 3 1º 2º 4 4 484.000 484.000 1.936.000 1.936.000 193.600 193.600 2.129.600 2.129.600 156 Projeção de Vendas Faturamento Líquido (R$) 2.500.000 2.000.000 1.500.000 1.000.000 500.000 0 1-1 1-2 2-1 2-2 3-1 Ano-Semestre FIGURA 110 - Gráfico da projeção de vendas 3-2 157 5.8.2 CUSTOS OPERACIONAIS TABELA 15 - Custos operacionais DESCRIÇÃO\SEMESTRE 1. Custo Variável de Produção 1.1 Matéria Prima 1.2 Gastos Gerais (Luz, Água, Telefone,...) 1.3 Eventuais (2%) Total Parcial 2. Custo Fixo de Produção 2.1 Mão-de-Obra + Encargos 2.2 Seguro 2.3 Manutenção 2.4 Eventuais Total Parcial CUSTO DE PRODUÇÃO 3. Despesa Geral Variável 3.1 Comissão de Vendedores 3.2 Eventuais Total Parcial 4. Despesa Geral Fixa 4.1 Despesas Administrativas 4.2 Despesas de Desenvolvimento 4.3 Eventuais Total Parcial 5. Impostos Proporcionais 5.1 IPI 5.2 PIS / FINSOCIAL 5.3 ICMS 5.4 Eventuais Total Parcial CUSTO GLOBAL ANO 1 1º 2º ANO 2 1º ANO 3 2º 1º 2º 20.000 40.000 60.000 80.000 80.000 80.000 7.440 7.812 8.203 8.613 9.043 9.496 549 48.697 956 62.610 1.364 69.567 1.772 90.385 1.781 90.824 1.790 91.285 192.000 220.800 330.096 3.500 5.500 7.500 2.000 4.000 6.600 3.950 4.606 6.884 201.450 234.906 351.080 250.147 297.516 420.647 493.494 9.500 8.800 10.236 522.029 612.414 737.773 1.102.970 9.500 9.500 9.680 9.680 15.139 22.443 772.092 1.144.593 862.916 1.235.879 0 0 0 0 0 0 39.600 792 40.392 52.800 1.056 53.856 58.080 1.162 59.242 58.080 1.162 59.242 12.000 22.000 680 34.680 13.200 22.000 704 35.904 15.840 30.000 917 46.757 19.008 30.000 980 49.988 22.810 30.000 1.056 53.866 27.372 30.000 1.147 58.519 40.000 80.000 132.000 176.000 176.000 193.600 8.000 16.000 26.400 35.200 35.200 38.720 68.400 136.800 226.800 302.400 302.400 334.080 2.328 4.656 7.704 10.272 10.272 11.328 118.728 237.456 392.904 523.872 523.872 577.728 403.555 570.876 900.699 1.240.131 1.499.895 1.931.367 158 5.8.3 PROJEÇÃO DE RESULTADOS TABELA 16 - Demonstrativo de resultados ANO 1 DESCRIÇÃO/SEMESTRE Faturamento Bruto Impostos sobre Vendas Faturamento Líquido Custo de Produção Despesas Resultado Operacional Amortização Depreciação Resultado Bruto IR/CSSL Resultado Líquido 1º 440.000 40.000 400.000 250.147 34.680 115.173 15.000 100.173 25.043 75.130 ANO 2 2º 1º 880.000 1.452.000 80.000 132.000 800.000 1.320.000 297.516 420.647 35.904 87.149 466.580 812.205 15.000 15.000 451.580 797.205 112.895 199.301 338.685 597.903 ANO 3 2º 1.936.000 176.000 1.760.000 612.414 103.844 1.043.741 15.000 1.028.741 257.185 771.556 1º 2.129.600 193.600 1.936.000 862.916 113.107 959.977 15.000 944.977 236.244 708.732 2º 2.129.600 193.600 1.936.000 1.235.879 117.761 582.361 15.000 567.361 141.840 425.520 Projeção de Resultados 900.000 Resultado Líquido (R$) 800.000 700.000 600.000 500.000 400.000 300.000 200.000 100.000 0 1-1 1-2 2-1 2-2 3-1 3-2 Ano-Sem estre FIGURA 111 - Projeção de resultados 5.8.4 RETORNO DO INVESTIMENTO O investimento inicial da empresa está orçado principalmente no valor do desenvolvimento do produto. O componente mais significativo é a mão-de-obra, que corresponde à dos cinco engenheiros, durante 2000 horas cada um. 159 TABELA 17- Investimento inicial GASTOS Máquinas/ Equipamentos Valor(R$) 30.000,00 Parte Mecânica 2.500,00 Hardware Software Mão de Obra TOTAL 50.000,00 15.000,00 400.000,00 497.500,00 Dessa forma, o investimento inicial da empresa está orçado em R$ 497.500,00 (quatrocentos e noventa e sete mil e quinhentos reais). O gráfico com o resultado líquido acumulado é apresentado a seguir. Análise do Retorno do Invesimento Resultado Líquido Acumulado(R$) 3.500.000 3.000.000 2.500.000 2.000.000 1.500.000 1.000.000 500.000 0 1-1 1-2 2-1 2-2 3-1 3-2 Ano-Sem estre FIGURA 112 - Análise do retorno do investimento Portanto, o retorno do investimento, ou seja, o momento em que o resultado acumulado superará o investimento, corresponde ao 1º semestre do 2º ano de funcionamento da empresa. 160 6 CONCLUSÃO O sistema e o software foram modelados em linguagem UML. Com a modelagem do sistema foi possível visualizar com maior clareza as funcionalidades e a seqüência de operação do robô. A modelagem do software proporcionou uma padronização do código e uma grande velocidade de implementação do Simulador/Controlador e do software embarcado. No Simulador/Controlador importantes algoritmos foram implementados para a geração da trajetória do robô e da trajetória das patas. A interface gráfica apresentou-se amigável, com a utilização de botões padrão Windows XP. Além disso, através de uma poderosa API, a OpenGL, desenvolveu-se uma visualização da simulação do robô muito eficiente computacionalmente e com ótima aparência. A etapa inicial da modelagem dos movimentos do robô foi resolver a cinemática direta e a inversa das patas que neste escopo são tratadas como braços mecânicos amplamente discutidos na literatura. Essa modelagem foi tratada no item 3.2.5. Com a direta determinou-se a posição e orientação do extremo de uma pata, em relação a um sistema de coordenadas de referência, em função dos valores das suas coordenadas articulares. Já a inversa representa o inverso da primeira, ou seja, determina os valores das coordenadas articulares em função da localização extrema do membro. A modelagem dos movimentos do robô foi dividida em modos e marchas de caminhar, que mais do que uma divisão conceitual das características do movimento proporcionou uma facilidade na concepção do software o qual, neste ínterim, atingiu níveis elevados de re-utilização de código. Nos modos modelou-se a orientação e o sentido do movimento e nas marchas a cadência com que o robô executa a caminhada, levando em consideração o desempenho do robô quanto à velocidade de deslocamento, estabilidade do movimento e capacidade de carga do robô seja ela proporcionada pela variação de massa do robô ou pela variação de ângulo do robô em relação à direção de ação da força de gravidade. O trajeto das patas foi implementado baseado em um retângulo discretizado em função dos parâmetros de movimento e dos parâmetros da ordem do robô, assim obtém-se um trajeto com um número de pontos variável. Cada um dos pontos do trajeto possui três vetores, o primeiro armazena as coordenadas cartesianas, o segundo as coordenadas articulares e o terceiro os tempos dos PWM’s, esses sendo 161 encontrados através da cinemática direta e inversa, e de uma função que faz a conversão de ângulos em radianos para tempo de PWM, em ms. De posse dos n pontos do trajeto para cada pata e dois seus respectivos equivalentes em período alto do sinal PWM de controle dos motores o desafio foi fazer rodar, em software, o gerador desses sinais. A resolução deste problema através de um algoritmo específico, da forma como foi concebido, diminuiu a possibilidade de implementações futuras, mas obteve resultados excelentes e baixo jitter. Na concepção do robô propriamente dito, muitos artigos e materiais encontrados principalmente na internet foram pesquisados a respeito de robôs que se locomovem em superfícies ferromagnéticas. Alguns desses robôs tem até o mesmo propósito: inspeção de cascos de navios, como é o caso do robô apresentado na FIGURA 2 e o da FIGURA 3 desenvolvido pelo CENPES (Centro de Pesquisa da Petrobrás). Ambos foram profundamente estudados por se tratarem de concorrentes em potencial para o projeto desenvolvido, mas também por serem laboratórios de pesquisa especializados nesse tipo de aplicação. Isso garante que as soluções utilizadas por eles devem ser consideradas importantes por terem sido muito estudadas, desenvolvidas e testadas na prática. No item 3.3.1 que trata da escalabilidade foram tratadas todas as considerações necessárias para tomar a decisão da melhor forma de locomoção dentre as três possíveis para o escopo em questão. Eram elas: patas, rodas ou esteira sendo que combinando vantagens e desvantagens de cada uma e atribuindo um certo peso para cada aspecto, o modelo com patas foi considerado o mais interessante e, portanto foi o adotado nesse projeto. Para escolher o tipo de fixação a ser desenvolvida e implementada, por se tratar de superfícies ferromagnéticas, o princípio magnético foi considerado mais interessante que outro sistema como, por exemplo, o uso de ventosas. O estudo das propriedades industriais teve foco em dois pontos bem específicos: robôs escaladores e fixadores eletromagnéticos, ambos descritos no item 2.3. Em uma primeira pesquisa nada foi encontrado sobre fixadores eletromagnéticos com um princípio semelhante ao pensado para esse projeto. Com isso surgiu uma possibilidade de desenvolver esse módulo do projeto e patentear. Mas quando estava praticamente pronto o sistema de fixação utilizado no robô uma 162 patente alemã parecida foi encontrada. A aplicação é diferente, porém o princípio o mesmo: um eletroímã anulando o campo magnético de um ímã natural. Esse sistema desenvolvido foi descrito passo a passo no item 3.3.4, desde a idéia inicial de se usar um eletroímã simples, porém com um consumo de corrente elevado, considerando que o tempo de uma inspeção é bastante longo até o modelo final adotado que consiste em um sistema imã-eletroímã. O modelo final se mostrou eficiente já que consegue sustentar o peso do robô sem consumir nenhuma energia elétrica quando parado e no momento que está se locomovendo são aplicados pulsos de 100ms capazes de anular o efeito do campo magnético do imã permanente fazendo com que a pata se solte com um consumo baixo de potência. Para a implementação do sistema de controle proposto, vários módulos de hardware tiveram que ser projetados. Foi construída uma fonte específica para as necessidades de alimentação do robô, devido ao alto consumo dos motores. Também foram desenvolvidas placas de circuito impresso voltadas à aplicação em questão. Algumas das placas confeccionadas são de grande complexidade, exigindo um estudo prévio para seu desenvolvimento, como é o caso da MotherBoard, apresentada no item 3.4.2.1 deste relatório, além de terem sido feitas muitas conferências nos esquemáticos desta, uma vez que seu custo é elevado e não permitia erros de projeto. Tal desenvolvimento proporcionou aos membros da equipe uma nova experiência em desenvolvimento de hardware não contemplado no curso como um todo. Também foi necessária uma pesquisa de fornecedores e prestadores de serviço capacitados para confeccionar e montar as placas projetadas. Mesmo após a necessidade de alguns re-projetos e/ou alterações nos módulos de hardware, comprovou-se o seu funcionamento correto, inclusive quando feita a integração entre todos os subsistemas. No que diz respeito aos testes de escalabilidade, os resultados nem podem ser analisados como satisfatórios ou não visto que os motores necessários para uma locomoção na vertical não chegaram a tempo de serem montados e testados. Com os motores adquiridos juntamente com o robô foi conseguido andar para frente e para trás em superfícies com inclinação máxima de aproximadamente 25°. Fazendo alguns cálculos com os valores obtidos, certamente o motor mais forte seria suficiente para uma perfeita escalabilidade. 163 Na gestão do projeto inúmeras dificuldades foram encontradas. Não por não terem sido previstas, mas pelo fato de o cronograma inicial ter sido bastante alterado. O fator causador desse atraso foi a ocorrência do maior risco previsto que era o atraso na importação do robô e de alguns componentes eletrônicos. Apesar de previstos e como sendo de maior risco, o atraso foi maior que o imaginado e isso acarretou um atraso em todas as demais etapas do desenvolvimento. Além do atraso da importação mais alguns problemas surgiram e partes do projeto consideradas prontas em um determinado ponto tiveram que ser alteradas no momento de se juntar com outro módulo, aumentando o tempo de desenvolvimento. Mas de maneira geral, como o cronograma inicial foi planejado com dois meses de tolerância, já que o projeto terminaria em dezembro para ser entregue e apresentado em fevereiro, foi possível terminar todas as partes sem comprometer em nada o resultado final apresentado para a disciplina de Projeto Final do curso de Engenharia Industrial Elétrica da Universidade Tecnológica Federal do Paraná. No Plano de Negócios foi apresentada a empresa BR_ROBOTiCS!, provedora de soluções em robótica móvel para serviços de inspeção. O produto chave da empresa é o “Robô para Inspeção de Cascos de Navios”. Este produto é constituído por dois grandes módulos: O sistema portador dos instrumentos de inspeção (robô) – resolvido em grande parte pelo protótipo apresentado neste trabalho; e o sistema de inspeção propriamente dito objeto da próxima etapa do desenvolvimento. No plano também foi definido claramente o mercado que a empresa pretende atingir e os seus competidores. Ao final foi verificada a excelente velocidade de retorno que a empresa propiciará ao investidor: pouco mais de um ano. 164 REFERÊNCIAS BIBIOGRAFICAS 1. Armada, M. and Gonzalez de Santos, P. (2001), “Climbing and walking robots for the maritime industries”. 2. Gonzalez de Santos, P., Armada, M. and Jimenez, M.A. (1997), “A industrial walking machine for naval construction,” IEEE International Conference on Robotics and Automation, Albuquerque, pp. 28-33. 3. Cynthia Ferrel (1994), “Robust and Adaptive Locomotion of an Autonomous Hexapod”, IEEE International Conference on Robotics and Automation. 4. Armada, M. and Gonzalez de Santos, P. (1997), “Climbing, walking and intervention robots”, Insdustrial Robot, vol.24, n.2, pp.158-163. 5. Armada, M., Gonzalez de Santos, P.,Prieto,M., and Grieco, J.C. (1998), “RESET: A Six-legged Climbing Robot”, European Mechanics Colloquium, Euromech 375, Biology and Technology of walking, pp. 159-164. 6. Gonzalez de Santos, P., Armada, M., and Jiménez, M.A. (1997), “An Industrial Walking Machine for Naval Construction”, European Mechanics Colloquium, Euromech 375, Biology and Technology of walking, pp. 159-164. 7. Michael R. Fielding_‡, Christopher J. Damaren† and Reg Dunlop, “Hamlet: Force/Position Controlled Hexapod Walker Design and Systems” 8. Farlei José Heinen(2002), “Sistema de Controle Híbrido para Robôs Moveis Autônomos”, São Leopoldo, Mestrado em Computação Aplicada – PIPCA 9. Rede temática Clawar: http://www.clawar.com/home.htm 10. Scubalab: http://www.geocities.com/scubalab/portfolio.html 11. Hydratec: http://www.hydratec.com.br 12. Fonte: Revista Contramarco - ano II - No. 16 - Junho/2001, por Sérgio Freitas 13. Lynxmotion Inc.: http://www.lynxmotion.com 14. Robotic Crust Crawler Design & Development: http://www.crustcrawler.com 15. ComCiência: http://www.comciencia.br/reportagens/2005/10/08.shtml 16. Hellix, Componenstes Builder 5,6 para implementar o OpenGL: http://www.hellix.com/Products/TOpenGL.asp 17. UFSC, Tutorial de OpenGL: Como instalar as dlls e libs necessárias: http://www.inf.ufsc.br/~awangenh/CG/apostilas/openGL/cbuilder.html 18. CRAIG, John J. – Introduction to Robotics Mechanics and Control – Ed. AddisonWesley Publishing Company, Massachusetts EUA. 165 ANEXOS ANEXO A 1 ENSAIO NÃO DESTRUTIVO Ensaio não destrutivo (END) pode ser definido como o uso de métodos não- invasivos para definir a integridade de um material, componente ou estrutura ou quantitativamente medir alguma característica do objeto. Isto é inspecionar ou medir sem danificar.São muitos os tipos de ensaios não destrutivos e entre eles pode-se citar: ensaio visual, detecção de vazamento, emissão acústica, ultra-som, vazamento de fluxo magnético, micro ondas, raios x, medidas magnéticas, interferometria a laser, termografia, partículas magnéticas, microscopia acústica, líquidos penetrantes, réplicas metalográficas, correntes parasitas, etc. Esse tipos de ensaios são usados para diversas finalidades, entre elas: detecção e avaliação de descontinuidades, detecção de vazamento, determinação da localização da descontinuidade, realização de medidas na peça, caracterização estrutural ou microestrutural, estimativa das propriedades físicas e mecânicas, medidas de tensão (deformação) e de resposta dinâmica da peça ou estrutura, separação de materiais e determinação da composição química. Ao contrário do que se possa imaginar, esses ensaios não são usados somente para detectar problemas depois que a peça está pronta e com algum tempo de uso, na forma de manutenção preventiva ou até mesmo no momento de se fazer uma manutenção corretiva após a ocorrência de uma falha. Existem aplicações dos END em quase todos os estágios de fabricação ou ciclo de vida de um componente, ajudando no desenvolvimento de um produto, para determinar a especificação de um material em um grupo de materiais recebidos, para controlar, melhorar e monitorar um processo de fabricação, para atestar a execução adequada de uma etapa do processo de fabricação como o tratamento térmico, para verificar a montagem adequada de componentes de um conjunto e na inspeção para detecção de eventuais danos (desgaste) em serviço. No caso de inspeções de cascos de navio que é a aplicação de interesse desse projeto desenvolvido, os métodos mais usuais e relevantes são ensaio visual, ultra-som, correntes parasitas e radiografia. A seguir está uma breve descrição de cada método. 1.1 INSPEÇÃO VISUAL É o método mais comum e básico. São usadas ferramentas auxiliares que incluem: fibroscópios, boroscópios, câmeras filmadoras, lentes de aumento e espelhos. Robôs portadores de câmeras filmadoras (FIGURA ANEXA 1) permitem a observação em áreas perigosas e restritas como dutos de ar, reatores e tubulações regiões submersas e ambientes hostis. Baseado em inteligência artificial usando redes neurais já é possível que esse método seja controlado por computador baseado na comparação entre uma imagem padrão que deveria ser encontrada e a imagem captada pela câmera. Assim não é necessário que um operador fique acompanhando através de um monitor se a região que está sendo filmada está aceitável ou não. FIGURA ANEXA 1 - Robô portador de câmera filmadora para inspeção visual 1.2 RADIOGRAFIA A radiação (onda eletromagnética) usada na inspeção radiográfica possui alta energia (pequeno comprimento de onda) quando comparada com a luz visível. Essa radiação é produzida por um gerador de Raios-X ou por uma fonte radioativa. A peça é posicionada entre a fonte de radiação e o filme. A peça absorverá uma certa quantidade de radiação. Regiões mais espessas ou mais densas absorverão mais radiação. O grau de enegrecimento (densidade) variará com a quantidade de radiação que atinge a película de filme após ser absorvido pela peça. Um esquema desse sistema pode ser visto na FIGURA ANEXA 2. Filme de Raio-X Vista de Topo do Filme Revelado FIGURA ANEXA 2 - Esquema do sistema de inspeção por radiação de Raios-X 1.3 CORRENTES PARASITAS: O ensaio é particularmente aplicável para detecção de trincas superficiais, mas também pode ser aplicado na medida de condutividade e de revestimentos protetores. Na FIGURA ANEXA 3 aparece a varredura de uma pequena sonda na superfície de uma peça para detecção de trincas porventura existentes. FIGURA ANEXA 3 - Ensaio não destrutivo usando correntes parasitas 1.4 ULTRA-SOM: Ondas sonoras de alta freqüência são introduzidas no material e refletidas a partir das superfícies ou descontinuidades existentes na peça. A energia refletida pelas superfícies refletoras é apresentada em gráficos (energia sonora “versus” tempo), e o inspetor pode inferir a seção transversal da peça mostrando as profundidades das superfícies refletoras de som. Imagens de alta resolução podem ser produzidas pela “plotagem” da intensidade do sinal ultra-sônico ou do tempo de trânsito empregando sistema de inspeção controlado por computador. pulso inicial Eco da trinca Eco da Superficie oposta trinca 0 2 4 6 8 10 chapa FIGURA ANEXA 4 - Esquemático se inspeção por ultra som Robôs escaladores com sensores ultra-sônicos, tal como o mostrado na FIGURA ANEXA 5 são usados para inspecionar as paredes de grandes tanques (detecção de corrosão). FIGURA ANEXA 5 - Robô escalador portador de equipamento de ultra-som ANEXO B 2 ANEXO B – DESCRIÇÃO DO FUNCIONAMENTO DO SIMULADOR CONTROLADOR Ao executar o software, a primeira janela que aparece ao operador é a de opção pelo modo simulador ou controlador, conforme FIGURA ANEXA 6. Nessa janela o operador deve clicar em um dos dois botões correspondentes ao modo desejado. FIGURA ANEXA 6 - Janela de Abertura 2.1 SIMULADOR 2.1.1 PARAMETRIZAÇÃO DO ROBÔ Ao optar pelo modo simulador a próxima janela que se abre ao operador é a de parametrização do robô, FIGURA ANEXA 7. Alguns valores já são propostos ao operador. Caso ele deseje alterá-los, basta entrar com novos valores nas caixas correspondentes. FIGURA ANEXA 7 - Janela de parametrização do robô 2.1.2 JANELA PRINCIPAL Após ter parametrizado o robô a janela principal do programa é mostrada, conforme FIGURA ANEXA 8. FIGURA ANEXA 8 - Janela principal do software Nesta janela o operador vai poder configurar todos os parâmetros de uma ordem, solicitar comandos do robô, visualizar graficamente o seu movimento e de suas patas, a trajetória que esta percorrendo, além dos valores calculados da distância percorrida, da distância do ponto de origem e da sua posição (x,y), considerando a coordenada (0,0), o ponto de onde o robô partiu. 2.1.3 CONFIGURAÇÃO DA ORDEM Para a simulação, primeiramente o operador deve configurar uma ordem. Duas maneiras são possíveis: a primeira utilizando uma ordem pré-configurada, em que o operador acessa através do menu “Ordens pré-configuradas” (FIGURA ANEXA 9); a segunda configurando parâmetro por parâmetro, utilizando os botões logo abaixo do menu. Estes botões ao serem clicados abrem um pequeno painel que dispõem as possíveis configurações para os parâmetros em questão. Na é apresentada a tela com todos os painéis da janela abertos. FIGURA ANEXA 9 - Ordens pré-configuradas FIGURA ANEXA 10 - Janela principal do software com os painéis ativados A seguir serão apresentados os parâmetros e configurações, com seus respectivos botões. o Superfície Parâmetro responsável pela seleção da superfície. Superfície Normal: Indica uma superfície normal, com bom atrito, sem grandes inclinações. Superfície Ferro-magnética: Indica uma superfície com propriedades ferromagnéticas. FIGURA ANEXA 11 - Seleção da superfície o Modo Parâmetro responsável pela seleção do modo de caminhar. Modo Normal: Modo em que o robô pode se deslocar para frente ou para trás. Este modo pode ser utilizado para qualquer uma das superfícies selecionadas. Modo Crab: Modo em que o robô se desloca para os lados, como se fosse um caranguejo. Este modo também pode ser utilizado para qualquer uma das superfícies. Modo Rotação: Modo em que o robô gira, tanto no sentido horário como anti-horário, em torno do seu eixo normal. FIGURA ANEXA 12 - Seleção do modo o Marcha Parâmetro responsável pela seleção da marcha do robô. Marcha Wave: Marcha em que se é mantido, em qualquer instante de tempo, cinco patas em contato com a superfície. Marcha Ripple: Marcha em que se é mantido, em qualquer instante de tempo, quatro patas em contato com a superfície. Marcha Tripod: Marcha em que se é mantido, em qualquer instante de tempo, três patas em contato com a superfície. Marcha Climb: Marcha semelhante a marcha wave, apenas diferindo na ordem em que as patas são levantadas. FIGURA ANEXA 13 - Seleção da marcha o Parâmetros da Ordem Corresponde a todos os demais parâmetros de uma ordem. Altura do Robô: Configura a altura desejada entre o corpo do robô e a superfície. Altura de Retorno: Configura a altura de retorno das patas desejado. Abertura: Configura a abertura das patas, ou seja, a menor distância entre a parte da pata em contato com a superfície e o eixo normal que cruza sua extremidade mais próxima ao corpo, ou seja, entre o seu “ombro” e seu “pé”. Passos da Tração: Configura a distância dos passos das patas em contato com a superfície (sofrendo tração) . Ângulo Crab: Configura o ângulo, em graus, das patas no modo Crab. Considerando 0º a pata ortogonal ao plano vertical PEA: Configura a posição etrema anterior. No modo de caminhar em frente, esta linha denota o alvo que a pata deve alcançar para iniciar o movimento de propulsão PEP: Configura a posição extrema posterior (PEP). No modo de caminhar em frente, esta linha denota o alvo que a pata deve alcançar no final do movimento de propulsão FIGURA ANEXA 14 - Parâmetros da ordem Um painel ao lado direito da janela dispõe as informações da ordem configurada - FIGURA ANEXA 15 FIGURA ANEXA 15 - Painel de informações da ordem 2.1.4 COMANDOS Após a ordem ser inserida serão habilitados os comandos do robô (para frente, trás, esquerda, direita) conforme for o modo configurado - FIGURA ANEXA 16. Modo Normal Modo Crab Modo Rotação FIGURA ANEXA 16 - Painel de comandos 2.1.5 CONFIGURAÇÕES DA VISUALIZAÇÃO A visualização dos movimentos do robô é realizada através da janela gráfica FIGURA 106. O software também dispõe de uma configuração do ângulo de visão. Isso é realizado através do painel acessado através do botão Visualização - FIGURA ANEXA 17. FIGURA ANEXA 17 - Painel de rotação do ângulo de visão Na FIGURA ANEXA 18 é apresentado a visualização do robô de dois ângulos diferentes FIGURA ANEXA 18 - Ângulo de visualização Na parte inferior da janela é possível configurar a taxa de atualização do desenho, FIGURA ANEXA 19. Conforme a performance da máquina e da ordem configurada essa taxa deve ser modificada para uma melhor visualização da movimentação do robô. FIGURA ANEXA 19 - Painel de configuração da taxa de atualização do desenho 2.1.6 TRAJETÓRIA DO ROBÔ A trajetória do Robô, que é determinada a partir da sua movimentação, pode ser visualizada através de uma janela gráfica, conforme FIGURA ANEXA 20 FIGURA ANEXA 20 - Painel de visualização gráfica da trajetória do robô O software também dispõe dos cálculos da distância percorrida, da distância da origem e da sua posição (x,y), considerando o ponto (0,0) o ponto de partida. Eles são apresentados em um painel, conforme FIGURA ANEXA 21. Ao clicar no campo “limpar” a trajetória é reiniciada, limpando a tela gráfica de visualização e os valores do painel. FIGURA ANEXA 21 - Painel dos cálculos da trajetória 2.2 CONTROLADOR Como já foi dito, o módulo controlador é muito similar ao módulo simulador. O controlador é ativado quando o operador escolhe este modo na janela de abertura - FIGURA ANEXA 6. Após esta seleção uma nova janela será aberta, conforme a FIGURA ANEXA 22, questionando se o mesmo deseja ativar a simulação para visualização ou não. FIGURA ANEXA 22 - Janela de escolha da ativação da simulação O procedimento de inserir a ordem é o mesmo que o descrito no modo simulador, bem como a disponibilidade dos comandos. Caso a opção “com simulação” seja escolhida, as mesmas janelas do simulador, referentes a configuração e visualização da trajetória serão apresentadas. 2.2.1 COMUNICAÇÃO COM A SERIAL A diferença do modo simulador e controlador está na funcionalidade da comunicação com a serial. Este modo dispõe de um botão que permite a conexão e desconexão, bem como um status com a indicação da situação da comunicação FIGURA ANEXA 23. Este status é atualizado freqüentemente através de uma verificação que o software executa no sentido de confirmar se a comunicação serial continua ou não ativa. Isto é realizado através de um timer que de tempos em tempos envia um comando ao robô e aguarda a resposta. Caso esta resposta seja muito demorada é indicado que a conexão caiu. Neste meio tempo o próprio robô também percebe, o que faz com que ele vá para um estado neutro. Botão Comunicação/Desconexão Barra de Status FIGURA ANEXA 23 - Botão e status da comunicação serial