Вы находитесь на странице: 1из 51

Captulo

1
Robtica Mvel Inteligente: Da Simulao s Aplicaes no Mundo Real
Denis Fernando Wolf, Eduardo do Valle Simes, Fernando S. Osrio, Onofre Trindade Junior

Abstract This tutorial aims to present and organize the main concepts related to the design of intelligent and autonomous mobile robotic systems, as well as, to describe some important techniques from the state-of-the-art in this field. The design of some interesting robotic applications is presented, describing the main challenges of mobile robots development focused on real world applications. The use of modeling and virtual simulation tools will be also discussed in the tutorial, illustrating different methodologies and projects of intelligent robotic systems.

Resumo Este tutorial foi elaborado com a inteno de abordar e organizar os principais conceitos envolvidos no projeto de sistemas robticos mveis autnomos e inteligentes, bem como apresentar a aplicao das principais tcnicas do estado-da-arte no projeto de solues robticas para os principais desafios do mundo real. Sero abordadas as principais ferramentas de modelagem e simulao de robs e sero apresentados vrios exemplos de projetos desenvolvidos com a participao dos autores para ilustrar diferentes metodologias de implementao de sistemas robticos prticos.

1.1. Introduo
O estudo da robtica mvel um tema bastante relevante e atual, onde esta rea de estudos, pesquisas e desenvolvimento apresentou um grande salto em seu desenvolvimento nas ltimas duas dcadas. A aplicao prtica de robs mveis junto a diferentes atividades em nossa sociedade vem demonstrando o quo promissor o futuro desta rea. Por exemplo, seu uso em aplicaes domsticas (e.g. aspiradores de p e cortadores de grama robticos), industriais (e.g. transporte automatizado e veculos de carga autnomos), urbanas (e.g. transporte pblico, cadeiras de rodas robotizadas), militares (e.g. sistemas de monitoramento areo remoto - VANTs, transporte de suprimentos e de armamento em zonas de guerra, sistemas tticos e de combate) e de segurana e defesa civil e militar (e.g. controle e patrulhamento de ambientes, resgate e explorao em ambientes hostis), demonstra a grande gama de aplicaes atuais dos robs mveis e os interesses econmicos envolvidos em relao ao seu desenvolvimento e aplicao. Dentro deste contexto, constata-se a grande importncia do desenvolvimento desta rea de pesquisas em nosso pas, de modo a no ficarmos de fora desta revoluo que vai transformar nossas vidas em um futuro muito prximo. A pesquisa e desenvolvimento em robtica mvel requerem conhecimentos de diversas reas, da Engenharia Mecnica, Engenharia Eltrica, Engenharia da Computao e das diferentes reas da Computao. Em particular, a rea de computao possui um papel muito importante como rea que prov o suporte de conhecimentos e tcnicas que iro permitir dotar estes robs mveis de sistemas de controle mais robustos, seguros, autnomos e inteligentes. Faz-se, portanto, necessria a formao de profissionais capacitados para atuar nesta rea em grande expanso, e mais do que isto, de grande importncia que se possa desmistificar a robtica mvel e com isto incentivar a formao de pessoal capacitado a trabalhar nesta rea. Nosso objetivo com este curso justamente o de apresentar uma viso geral da rea para motivar e introduzir conceitos importantes e atuais relacionados robtica mvel, contribuindo assim para ampliar a literatura de obras nacionais desta rea [Aguirre 2007, Jung 2005, Pio 2003, Ribeiro 2001], e assim contribuir para disseminar conhecimentos e tcnicas da rea de computao que so atualmente empregadas no desenvolvimento dos robs mveis inteligentes. Este tutorial visa ento apresentar conceitos, tcnicas e aplicaes de robs mveis autnomos inteligentes. Sero abordados assuntos referentes ao projeto do sistema robtico, utilizando-se de ferramentas de modelagem e simulao de robs, implementao e ao uso desses sistemas em aplicaes no mundo real. Neste tutorial sero discutidos aspectos envolvendo: i) a apresentao de fundamentos e conceitos de robtica mvel: robs moveis e seus componentes (sensores e atuadores), exemplos de robs mveis e de aplicaes e tarefas; ii) arquiteturas de controle de robs: controle reativo, controle deliberativo, controle hierrquico e controle hbrido; iii) o desenvolvimento de modelos realsticos de simulao de robs (simulao de sensores, atuadores, comportamento fsico, incluindo rudo e impreciso nos dados); iv) a apresentao de ferramentas de simulao de robs mveis e sua aplicao prtica;

v) o projetos e a validao de sistemas robticos inteligentes, incluindo tcnicas de controle, localizao, mapeamento e navegao robtica; vi) a apresentao de exemplos de aplicaes de robtica autnoma e inteligente, incluindo sistemas robticos indoor (aplicaes na rea de segurana e auxlio a deficientes), veculos outdoor (carros inteligentes), esquadres robticos inteligentes e robs articulados (humanides); vii) apresentao dos novos desafios das pesquisas atuais na rea de robtica inteligente e as tendncias futuras nesta rea. De um modo geral, este texto visa prover ao leitor uma viso geral da rea, das tcnicas e dos conceitos computacionais relacionados a robtica mvel inteligente, complementando com referncias a importantes trabalhos que estendem este tutorial. tambm destacada a importncia da implementao de ferramentas computacionais (simuladores) para que se possa assim projetar, testar e aperfeioas os sistemas inteligentes de controle de robs mveis, e depois ento valid-los em ambientes reais.

1.2. Fundamentos de Robtica Mvel


A evoluo dos robs, e em especial dos robs mveis, tem recebido nos ltimos anos um amplo destaque junto mdia e sociedade de um modo geral. Onde no passado se falava muito em robs industriais e braos mecnicos robticos, atualmente as atenes se voltaram para robs mveis, capazes de se deslocar no ambiente em que se encontram, e principalmente nos Robs Mveis Autnomos RMAs e Veculos Autnomos Inteligentes [Jung 2005]. Os RMAs possuem, como caractersticas fundamentais, as capacidades de locomoo e de operao de modo semi ou completamente autnomo. Tambm deve ser considerado que maiores nveis de autonomia sero alcanados somente medida que o rob passe a integrar outros aspectos considerados da maior importncia, como: capacidade de percepo (sensores que conseguem ler o ambiente onde ele atua), capacidade de agir (atuadores e motores capazes de produzir aes, tais como o deslocamento do rob no ambiente), robustez e inteligncia (capacidade de lidar com as mais diversas situaes, de modo a resolver e executar tarefas por mais complexas que sejam). O uso de tcnicas de planejamento e controle robusto para a navegao e operao autnoma dos robs conhecido pelo termo Controle Robtico Inteligente, no qual este controle inteligente permite dotar os RMAs da capacidade de executar as mais diversas e complexas tarefas. Pode-se citar aqui alguns exemplos famosos de Robs Mveis (ver Fig. 1.1), resultantes da pesquisa e desenvolvimento que vem ocorrendo nesta rea: os robs de explorao espacial como o Mars Pathfinder's Sojourner, Spirit e Opportunity Rovers [Bajracharya 2008]; robs domsticos usados para limpar a casa como o Roomba e Scooba [iRobot 2009] (Fig. 1.1(a)), e para cortar grama como o AutoMower [Huskvarna 2009, Sahin 2007] (Fig. 1.1(b)); os robs com pernas capazes de caminhar como o cachorro Aibo [Sony 2009] (Fig 1.1(c)), o humanide Asimo [Honda 2009] (Fig. 1.1 (d))e o BigDog [Boston Dymanics 2009]; veculos terrestres no tripulados como o Stanley de Stanford [Thrun 2006, Gibbs 2006, Jung 2005], que competiu e venceu o Darpa Challenge em 2005; e veculos areos no tripulados (UAVs) como os VANTs brasileiros do Projeto Arara [Neris 2001] e AGplane [AGX 2009]. Estes exemplos

demonstram claramente os progressos e resultados da pesquisa e desenvolvimento em robtica mvel desta ltima dcada.

Figura 1.1. Exemplos de Robs Mveis: a) Roomba [iRobot 2009], b) Automower [Huskvarna 2009], c) Aibo [Sony 2009] e d) Asimo [Honda 2009] Tabela 1.1. Sensores para Robs Mveis

Os Robs Mveis Autnomos, como se pode constatar pelos exemplos acima, possuem diferentes configuraes de dispositivos de hardware embarcados, de acordo com a funo e as tarefas para as quais so projetados. Os principais dispositivos de Hardware de um rob so seus sensores e atuadores. A Tabela 1.1 apresenta uma lista dos sensores mais usados em robtica [Dudek 2000]. A Tabela 1.2 apresenta uma descrio dos principais sistemas atuadores adotados em robs mveis [Dudek 2000, Bekey 2005]. Uma descrio mais detalhada dos diferentes tipos de mecanismos de locomoo em robs mveis pode ser encontrada em [Siegwart 2004]. As Tabelas 1.1 e 1.2 demonstram o quo complexo pode ser o projeto de um sistema robtico, que envolve a especificao e seleo de diferentes componentes, sensores e atuadores (cada um com suas especificidades), e a combinao destes em um sistema autnomo. Este sistema deve ser projetado de modo a ser dotado de dispositivos capazes de prover os dados necessrios (obtidos atravs dos seus sensores), para que o sistema de controle robtico inteligente possa planejar e realizar o acionamento dos seus dispositivos de modo a executar a ao desejada.
Tabela 1.2. Atuadores para Robs Mveis

Um dos grandes desafios da robtica justamente como integrar as informaes vindas de todos estes sensores, de modo a gerar comandos e controlar os diferentes dispositivos de atuao do rob, garantindo que a tarefa seja executada de modo correto e sem colocar em risco tanto o rob quanto aqueles que o cercam. O rob deve preservar a sua integridade bem como dos elementos presentes no ambientes (e.g. seres humanos, objetos como utenslios e mobilirio, outros robs). Um rob s deve agir de modo ativo sobre um determinado objeto-alvo, se realmente for programada (prevista) a sua ao sobre este objeto. Esta questo sempre foi alvo de muitas discusses (em propostas como as 3 Leis da Robtica de Asimov [Asimov 1968]), pois um rob mvel pode causar danos tanto a pessoas como a objetos que o cercam, de modo deliberado ou no, constituindo-se assim de um Sistema Embarcado Crtico (executa misses crticas), onde seu desenvolvimento deve imperativamente envolver um cuidadoso projeto tanto de hardware como de Software.

Em funo desta execuo de tarefas crticas, que podem causar tanto danos em humanos como materiais, o projeto do sistema de controle de um rob mvel deve garantir um controle robusto, tolerante a falhas e a situaes imprevistas (que no esto exatamente de acordo com um plano previamente estabelecido), constituindo assim um sistema de controle que denominamos aqui de sistema de controle inteligente.

Figura 1.2. Rob Pioneer 3DX com sensores de sonar e laser rangefinder

importante destacar que o projeto do sistema de controle de um rob como o da Figura 1.2 deve levar em conta uma srie de quesitos e componentes, como por exemplo: Tipo de tarefa do rob: patrulhamento e vigilncia de uma instalao (indoor); Tipo e preciso dos sensores embarcados: Laser Sick LMS200 (Fig 1.3), com capacidade de detectar obstculos em um range mximo de 25m a 50m de distncia (fecho laser estreito e direcional) com preciso de at 10mm (erro estatstico de 5mm), ngulo de abertura de 100 a 180 graus e tempo de resposta de entre 10 e 50ms; Sonar (ultrasonic transducer - range-finding sonar) composto por um arranjo de 8 sensores dispostos de modo a ter uma cobertura frontal de 180 graus, com alcance variando de 15cm at aproximadamente 7m (detecta a reflexo do sinal do sonar propagado em forma de cone); cmera de vdeo com resoluo de 640x480 pixels e varredura de at 20fps; encoders com preciso de 500-ticks usado para medidas de deslocamento (odometria); Tipo e preciso dos atuadores: Acionamento diferencial (2 motores independentes), rob de caractersticas holonmicas (sem restries de graus de liberdade, podendo girar e se deslocar em qualquer direo), e podendo atingir velocidade de at 1.6 m/seg;

Os sensores individualmente fornecem apenas uma viso de mundo, parcial, incompleta e sujeita a erros, sendo papel do sistema de controle adquirir, unificar (realizar a fuso de sensores) e tratar estas informaes de forma robusta e inteligente. Alm disto, os comandos de atuao tambm no so precisos, sendo que muitas vezes uma instruo de avanar em linha reta ou de girar em certa direo tambm pode no

ser executada de forma correta e precisa, pois est sujeita a erros de posicionamento do rob, de acionamento dos motores, bem como est sujeita tambm a foras e componentes externos (e.g. frico, gravidade, acelerao, desacelerao, inrcia, coliso com obstculos e derrapagem das rodas). Cabe ao sistema de controle robusto prover tcnicas que permitam compensar e corrigir estes erros de modo que as tarefas do rob possam ser executadas corretamente e em segurana.

Figura 1.3. LIDAR Sensor (Light Detection and Ranging), Laser Sick [Lidar 2009]

O projeto do sistema de controle de um rob como o apresentado acima (Fig. 1.2) deve usualmente, atravs da adoo de uma arquitetura especfica de controle, ser capaz de realizar algumas (ou todas) das seguintes tarefas de: Fuso de Sensores: adquirir e integrar os diversos dados recebidos a partir dos sensores, compensando as limitaes de alcance e preciso de cada sensor, atravs da fuso dos dados; Desviar de obstculos: detectar obstculos e poder assim evitar a coliso com os mesmos, preservando a integridade do rob e dos elementos externos. O desvio de obstculos deve evitar tanto obstculos estticos (e.g. mobilirio), como obstculos dinmicos (e.g. elementos mveis como pessoas e outros robs); Auto-Localizao: determinar a localizao do rob no ambiente (posio e orientao), com ou sem o uso de um mapa do ambiente, de modo a poder planejar e executar o deslocamento seguindo uma determinada trajetria; Mapeamento do ambiente: explorao e construo de um mapa do ambiente, onde o rob capaz de realizar uma reconstruo digital do mapa do ambiente, identificando onde existem paredes e obstculos no ambiente gerando, por exemplo, um mapa de ocupao do ambiente. Uma tcnicas muito usada o SLAM (Simultaneous Localization And Mapping) [Thrun 2005], que realiza ao mesmo tempo a auto-localizao do rob, enquanto mapeia o ambiente.

Planejamento de trajetrias: atravs do uso de um mapa possvel planejar aes de alto-nvel, como definir previamente uma trajetria a ser executada pelo rob, especificando as aes elementares a serem realizadas de modo a se deslocar de uma posio-origem at uma posio-alvo; Planejamento de aes: uma vez definida a tarefa a ser realizada pelo rob mvel, possvel estabelecer um plano de aes, que pode ser composto da execuo de sub-tarefas mais elementares, como por exemplo: explorar o ambiente (wander); seguir uma parede ou corredor at o seu final, se deslocar em uma direo-alvo desviando de obstculos, recolher objetos, seguir um comboio, patrulhar uma rea, etc; avegao robtica: capacidade de executar as aes planejadas de modo robusto, como por exemplo, executar o deslocamento de uma posio-origem at uma posio-alvo, realizando os devidos ajustes durante o deslocamento para evitar a coliso com obstculos. A navegao robtica a execuo do plano de trajetrias e aes previamente definido;

Interao e Comunicao: capacidade de interagir e se comunicar com outros agentes presentes no ambiente. Por exemplo, um rob pode ter a capacidade de agir de modo colaborativo, interagindo e trocando informaes com outros robs de modo a executar uma tarefa de forma cooperativa e compor assim um sistema multirrobtico. Um exemplo clssico deste tipo de sistema o futebol de robs, no qual mltiplos robs devem coordenar suas aes a fim de atingir objetivos comuns.

Figura 1.4. Rob Mvel Autnomo: Percepo-Deciso-Ao

As arquiteturas computacionais de controle de robs mveis autnomos [Medeiros 1998] permitem que tarefas como as listadas acima sejam planejadas e executadas, atravs do gerenciamento dos diferentes dispositivos embarcados no rob. Os principais aspetos destas arquiteturas so relativos a: Percepo (incluindo a comunicao), Raciocnio/Deciso e Ao. A Figura 1.4 apresenta este esquema representando este modelo de percepo-deciso-ao, no qual o rob sente o

ambiente, decide e age sobre ele, sendo que suas aes iro afetar o ambiente e, por conseqncia, suas percepes no instante de tempo seguinte. As arquiteturas computacionais de controle de veculos autnomos so bastante diversas e mesmo na literatura so encontrados diferentes enfoques e abordagens [Dudek 2000, Medeiros 1998, Ribeiro 2001, Bekey 2005], entretanto, podem ser citadas algumas das arquiteturas de controle que se tornaram as mais conhecidas e reconhecidas pelas suas caractersticas e potencialidades: controle reativo, controle deliberativo, controle hierrquico e controle hbrido. Sero detalhadas a seguir estas principais arquiteturas de controle [Jung 2005]. 1.2.1. Controle Reativo O controle reativo consiste de um sistema de reao sensorial-motora. Este tipo de controle normalmente o mais simples de ser implementado (reativo puro), usualmente no necessitando de muitos recursos computacionais para sua implementao. No controle reativo existe um lao sensrio-motor de: (i) leitura dos sensores; (ii) processamento imediato destas informaes; (iii) gerao de um comando de resposta para os atuadores. Usualmente um esquema de controle reativo considera apenas as leituras sensoriais realizadas no presente para fins de tomada de deciso e gerao de comandos de ao. Um sistema reativo bastante til para implementar comportamentos elementares como: desviar de obstculos (avoid collision behaviour: reage a presena de um obstculo), seguir um objeto (wall-following behaviour: acompanhar um elemento guia) e seguir uma fonte luminosa (phototaxis behaviour: mover em direo a uma fonte de luz). As arquiteturas reativas implementam comportamentos baseados em controle reativo [Ribeiro 2001], como por exemplo, sistemas de controle baseados em Campos Potenciais [Dudek 2000]. 1.2.2. Controle Deliberativo O controle deliberativo (ou cognitivo) consiste na aplicao de um mecanismo de planejamento das aes, podendo ser estabelecido um plano prvio de execuo de uma seqncia de aes, baseado nos conhecimentos que o sistema possui sobre o problema a ser resolvido (e.g. mapa do ambiente, rotas disponveis). No controle deliberativo assumida a existncia de um processo de alto nvel de raciocnio e tomada de decises, usualmente mais complexo de ser implementado do que o controle reativo. Este processo permite que sejam planejadas aes de modo a tratar e executar tarefas que exigem um nvel de controle mais sofisticado, como por exemplo, definir (traar uma rota) e executar a tarefa de se deslocar de um ponto a outro do ambiente, considerando um mapa do mesmo. As arquiteturas baseadas em controle deliberativo [Ribeiro 2001], incorporam este tipo de estratgia para realizar o controle dos robs mveis. Entretanto, o controle deliberativo puro possui limitaes quando colocado frente a eventos imprevistos, como por exemplo, um obstculo que se moveu obstruindo a sua rota. Neste caso, o controle deliberativo puro ter dificuldades de reagir a uma nova configurao do ambiente, que no havia sido prevista em seu planejamento inicial. Pode-se dizer que o ideal em um sistema de controle seria que este tivesse a capacidade de reao de um sistema reativo, com a capacidade de planejamento e execuo de tarefas complexas de um sistema deliberativo. Desta combinao entre reativo e deliberativo surgem os sistemas hierrquicos e hbridos, abordados no prximo item.

1.2.3. Arquitetura de Controle Hierrquico O controle hierrquico consiste da combinao de mltiplos mdulos de controle reativo e/ou deliberativo em camadas (control layers) dispostas de modo que estes possam operar de modo hierrquico. A combinao dos diferentes mdulos de controle leva a adoo de um esquema de prioridades em relao s mltiplas camadas do sistema, onde comum encontrar estes sistemas de controle classificados como: sistemas hierrquicos com decomposio vertical e decomposio horizontal [Dudek 2000, Heinen 2002a]. A clssica Arquitetura Subsumption proposta por Brooks [Dudek2000, Ribeiro 2001] um exemplo tpico de uma arquitetura reativa em camadas com decomposio vertical, onde os diversos mdulos de controle reativo so dispostos em uma organizao de camadas vertical, estabelecendo maiores prioridades para as camadas mais baixas. Por exemplo: o comportamento de evitar um obstculo ter uma prioridade maior do que o comportamento de ir em direo ao alvo (e.g. seguir em direo a luz, ou seguir o direcionamento dado atravs de uma bssola ou GPS). A arquitetura hierrquica tambm pode ser adotada para a implementao de um controle baseado em mdulos deliberativos, como por exemplo, na arquitetura deliberativa com decomposio horizontal do tipo SMPA (Sense-Model-Plan-Act) [Dudek 2000]. Neste tipo de arquitetura implementado um pipeline que decompe as funes em camadas executadas uma aps as outras, decompostas em uma linha de ao horizontal. Existe um ciclo de execuo Sense-Model-Plan-Act que implementado a fim de controlar as aes do rob, onde esta arquitetura criticada por ter este longo ciclo de resposta, uma vez que o rob pode no ter a capacidade de reagir imediatamente a um estmulo de entrada em funo do longo ciclo de suas camadas horizontais. 1.2.4. Arquitetura de Controle Hibrido Os sistemas hbridos apresentam a vantagem de poderem combinar os comportamentos obtidos de seus diferentes mdulos (reativos e deliberativos), que podem inclusive ser executados em paralelo, a fim de obter um comportamento mais robusto e uma execuo de tarefas mais complexas. Por exemplo, possvel implementar um mdulo de controle deliberativo que realiza o planejamento e execuo de uma trajetria com o uso de um mapa, ao mesmo tempo em que um mdulo reativo de maior prioridade pode intervir para realizar o desvio no caso da presena de um obstculos, e finalmente ainda podemos ter um outro mdulo que realiza a auto-localizao, permitindo que sejam realizados ajustes no plano de trajetria atravs de um constante monitoramento da posio atual do rob [Jung 2005, Bekey 2005]. Este tipo de arquitetura uma das mais sofisticadas e adotadas na implementao dos sistemas de controle dos robs mveis autnomos modernos. Os mtodos do tipo SLAM (ver seo 1.5.3) podem ser includos nesta categoria de arquiteturas hbridas de controle e navegao robtica. Como exemplo de uma proposta e implementao de uma arquitetura de controle hbrido, podemos citar a Arquitetura COHBRA (Controle Hbrido de Robs Autnomos) [Heinen 2002,2002a], que implementa um controle com diversos mdulos, incluindo um mdulo de auto-localizao que executa em paralelo junto aos mdulos deliberativo de planejamento de trajetrias e reativo de desvio de obstculos.

1.2.5. Controle Robtico Robusto e Inteligente O sistema computacional de controle robusto e inteligente um sistema capaz de controlar um rob mvel autnomo, garantindo a execuo de suas tarefas de modo autnomo, correto e seguro. Um sistema de controle robusto de um rob mvel autnomo deve ser projetado de modo a permitir a correta execuo das tarefas que lhe so atribudas, mesmo na presena de imprecises, erros e eventos externos no planejados. Em algumas situaes, um sistema de controle reativo pode ser adotado, demonstrando ser robusto o suficiente para a execuo de uma determinada tarefa. Por exemplo, alguns sistemas simples de controle reativo permitem a um rob mvel executar tarefas como: seguir uma marcao no cho (e.g. AGVs Automated Guided Vehicles), seguir um comboio, se dirigir em direo a um foco de luz ou calor, realizar tarefas como a limpeza de um ambiente (alternando entre comportamentos de vagar livremente e se dirigir para uma base de recarga), e at mesmo apresentar comportamentos coletivos (Inteligncia de Enxames - SwarmBots) [Bonabeau 1999] ou implementar o controle de sistemas multirrobticos baseados em ACO (Ant Colony Algorithms) [Correia 2005, Bonabeua 1999]. Tambm possvel implementar com sucesso sistemas de controle deliberativo puro, que executam tarefas em ambientes bem estruturados e controlados, onde no h ocorrncia de imprevistos na execuo das tarefas e os erros/imprecises so bem conhecidos e modelados no processo (inclusive pela adio de dispositivos que permitem compensar/adequar o sistema a estes erros). Porm, o desenvolvimento de uma arquitetura de controle robtico robusto com diferentes mdulos, capazes de tratar questes como a fuso de sensores, a autolocalizao, o mapeamento do ambiente (construo de mapas), o desvio de obstculos estticos ou dinmicos, o planejamento de trajetrias (com ou sem uso de mapas), a navegao robtica autnoma em ambientes no estruturados, a execuo de tarefas de alto nvel e a comunicao e cooperao em sistemas multirrobticos, uma tarefa bastante complexa e que demanda um grande esforo em termos do projeto e desenvolvimento de um sistema computacional de controle robtico com estas funcionalidades. A fim de viabilizar o desenvolvimento de tais sistemas mais complexos, que buscam uma maior autonomia, robustez e adaptabilidade a diferentes situaes e ambientes, usualmente se faz necessrio o uso de tcnicas mais avanadas de Robtica e de Inteligncia Artificial. No desenvolvimento destes Sistemas de Controle Robtico Robusto e Inteligente, em um grande nmero de situaes, se faz necessrio o uso de sistemas simulados, para que se possa projetar e ajustar o sistema at o ponto que este possa ser implementado em robs reais e posto em funcionamento na prtica. Na seo seguinte ser discutida a importncia do uso da simulao no projeto e aperfeioamento dos sistemas inteligentes de controle robtico.

1.3. O Papel da Simulao Virtual


Nesta seo ser discutida a aplicao da simulao virtual como ferramenta de auxlio ao projeto dos robs mveis, partindo do projeto de sua configurao de hardware at o projeto do software atravs da implementao do sistema inteligente de controle dos robs.

O uso de um ambiente virtual de simulao de robs tem se demonstrado uma ferramenta poderosa, apresentando uma srie de vantagens: i) economia de recursos financeiros, pois diversos testes podem ser realizados antes de ser implementado fisicamente o rob; ii) economia de tempo, pois podemos realizar um maior nmero de experimentos atravs de simulao, nos quais a realizao de um experimento requer um menor tempo para configurar o experimento (no h necessidade de recarregar baterias e posicionar equipamentos e objetos), alm de se poder acelerar o tempo do relgio virtual na execuo das simulaes; iii) evitar danos ao rob, pois atravs das simulaes pode-se verificar previamente as situaes que podem provocar danos ao rob, devido por exemplo a fortes colises, acionamento indevido dos motores, ou exposio do rob ambientes perigosos para testes; iv) evitar acidentes e aumentar a segurana, pois atravs da simulao pode-se realizar diversos testes visando garantir uma maior segurana e robustez do sistema robtico, evitando assim a incidncia de acidentes com pessoas e com elementos presentes no ambiente de atuao do rob, permitindo inclusive uma melhor anlise de como adicionar novos dispositivos de salvaguarda em hardware e software que permitam aumentar a segurana e confiabilidade dos robs; v) aperfeioamento do hardware e software, uma vez que se pode, atravs de simulaes, testar diferentes configuraes de hardware, bem como testar e avaliar novas implementaes e ajustes nos parmetros do software de controle, permitindo assim uma melhoria do sistema como um todo e a otimizao do uso dos recursos disponveis a fim de obter uma maior eficincia do sistema robtico.

Figura 1.5. Rob Autnomo x Ambiente Fsico: VANT AGPlane2 com GPS embarcado e Robs Mveis construdos no ICMC-USP com sensores IR, rdiomodem de RF, Cmera e pra-choques com sensores de contato

O projeto fsico de um rob uma etapa bastante trabalhosa, que usualmente tem incio na definio do tipo de ambiente onde este rob ir atuar e na especificao do conjunto de tarefas que este rob dever executar. A partir destas informaes, tem incio uma etapa de configurao dos sensores, atuadores e hardware de controle que sero

embarcados no sistema robtico. O ambiente de trabalho do rob ir condicionar a sua forma de atuao (terrestre, area ou aqutica), bem como as dimenses que este rob dever ter, e por fim tambm condicionar a sensibilidade e preciso dos sensores embarcados no rob (ver Fig.1.5). Por exemplo, um rob de inspeo de dutos deve ter uma configurao adequada de atuadores e sensores, bem como de sua dimenso, de modo a poder melhor explorar os dutos e executar sua tarefa de identificao de rachaduras e danos nestes dutos. Os atuadores dependem diretamente do ambiente em que o rob ir atuar, no qual devero ser feitas escolhas primeiramente em relao ao meio: terrestre (indoor, outdoor estruturado ou no), aqutico (superfcie ou submarino) ou areo (avio, helicptero ou dirigvel). No caso de um rob terrestre, tambm importante definir melhor o tipo de ambiente para que se possa configurar o mtodo de locomoo adotado: usando rodas, esteiras ou pernas. Para cada tipo de mtodo de locomoo e de configurao dos atuadores do rob, tem-se um tipo de comportamento cinemtico diferenciado, sendo este um dos elementos muito importantes para que se possa depois implementar um modelo adequado de simulao. importante destacar tambm que tarefas de deteco e desvio de obstculos, de auto-localizao e navegao iro depender fortemente do ambiente em que o rob est inserido, condicionando inclusive a opo por diferentes tipos de sensores (e.g. uso de radar e GPS em dispositivos areos, de sensores laser em ambientes terrestres indoor e outdoor, de sonar e infravermelho em ambientes fechados). Os sensores devem ser definidos levando em considerao, alm do ambiente externo, questes como a capacidade sensorial embarcada necessria para a execuo da tarefa (tipo e quantidade de sensores) e a relao de custo x benefcio em funo da escolha dos diferentes tipos de dispositivos disponveis no mercado (avaliando a preciso, erro, qualidade da informao medida pelo sensor, faixa de atuao, consumo de energia, e inclusive o peso da carga adicional a ser carregada pelo rob). Por exemplo, um rob de segurana e vigilncia para prdios deve ter sensores que permitam se localizar e se deslocar em um ambiente indoor, detectar e desviar de obstculos estticos, mas tambm deve possuir cmeras para a deteco de movimentos e de intrusos, onde possivelmente um sensor de calor (e.g. cmera infra-vermelho) e capacidade de comunicao seriam requisitos necessrios. Alm dos sensores e atuadores o rob deve possuir um hardware com poder de processamento suficiente para poder coletar e processar todas as informaes dos sensores e realizar o envio de comandos aos atuadores. O projeto de Software, assim como o projeto fsico, tambm envolve decises sobre o tipo de mdulos que devem compor a arquitetura do sistema de controle robtico, e sobre quais componentes e tcnicas (algoritmos) devem ser implementados junto ao sistema de controle. Estas decises de projeto do software, assim como os ajustes dos parmetros de controle dos diferentes algoritmos, tero um impacto direto sobre a capacidade do sistema robtico em realizar suas tarefas de modo autnomo e com robustez. Como se pode ento projetar um sistema to complexo? Como projetar um sistema que envolve a seleo de dispositivos de hardware, sua integrao e posicionamento junto ao rob, a obteno e processamento das informaes provenientes dos sensores embarcados, a tomada de decises quanto s aes e o

controle dos atuadores de modo a executar as tarefas planejadas? A resposta simples, o projeto de um RMA deve comear pela elaborao de um modelo inicial, passvel de simulao, para que se possa testar e validar o funcionamento do rob, considerando seus diversos mdulos de hardware e software. 1.3.1. Modelo de Simulao Para se criar um modelo para simulao virtual necessrio criar um modelo simplificado da realidade, implementando este em um ambiente computacional [Osorio 2006]. O modelo simplificado deve desconsiderar o que no for necessrio e/ou relevante para efeitos da simulao dos componentes reais do rob. Entretanto, este modelo deve integrar os elementos e caractersticas que so mais relevantes para o funcionamento do sistema robtico, o que usualmente na rea de robtica significa modelar: Sensores: os diversos sensores apresentados na Tabela 1.1 devem ser passveis de simulao, onde, por exemplo, no caso dos sensores de medida de distncia, o modelo criado deve levar em considerao o alcance (menor/maior distncia medida), a preciso, e questes relativas ao direcionamento no processo de deteco de obstculos. Tambm deve ser modelado o erro/rudo tpico do sensor em questo, sendo que sabidamente no existem sensores perfeitos; Atuadores: os atuadores devem ser modelados, de forma a simularem as aes realizadas pelo rob. Os principais atuadores a serem modelados so os responsveis pela locomoo do rob mvel, nos quais tambm importante que o modelo implementado considere a preciso/erros associados s aes. Por exemplo, ao se comandar um giro do rob de N graus, muito provavelmente haver um erro associado a este comando, resultando em uma nova orientao prxima a desejada, na qual este no dever atingir exatamente o ngulo de orientao previsto. Comportamento Fsico do Rob: usualmente no necessria uma modelagem individual de cada atuador do rob, podendo ser integrado um modelo de comportamento fsico deste, atravs de um modelo cinemtico do mesmo. Deste modo ser possvel prever a trajetria que ser executada pelo dispositivo mvel a partir do modelo fsico/comportamental. Em alguns casos, como por exemplo, em robs dotados de pernas, necessria a implementao de um modelo mais completo, que deve levar em considerao questes referentes dinmica do rob: equilbrio, frico, gravidade, reao a colises, etc.

Existem na literatura diversos modelos j previamente estudados e testados de sensores e atuadores [Dudek 2000, Siegwart 2004]. Diferentes dispositivos sensores como pra-choques com sensores de contato (Bumbers), sensores Infra-Vermelho (IR), Sonares, Sensores Laser (Laser Rangefinder), acelermetros, bssolas (Electronic Compass), GPS, entre outros, possuem modelos de simulao bastante confiveis que podem ser usados para fins de testes em ferramentas de simulao virtual de robs. Alm destes modelos de sensores, diferentes modelos cinemticos tambm foram amplamente estudados, nos quais possvel simular robs com diferentes tipos de controle de locomoo: robs omni-direcionais com cinemtica diferencial de duas rodas (ou com uma terceira roda livre), robs com cinemtica Ackermann (simulam

veculos com trao e barra de direo), robs com cinemtica do tipo Slip/Skid (simulao de trao por esteiras), robs areos, robs aquticos, entre outros modelos. Estes modelos so bastante fiis ao comportamento real do rob, inclusive no que diz respeito ao erro de resposta aos comandos de atuao. A Figura 1.6 apresenta exemplos de modelos reais e virtuais de robs mveis, que foram desenvolvidos com o objetivo de aperfeioar os sistemas de controle autnomo primeiramente atravs da simulao, e depois atravs de sua implementao em sistemas reais. A Figura 1.6(a) apresenta um exemplo de implementao de um rob humanide implementado com o uso do simulador Webots e a verso real do rob produzido pela Fujitsu. A Figura 1.6(b) apresenta um exemplo de um Baja buggy que foi automatizado para ser controlado remotamente, onde os estudos da implementao de um controle automatizado para estacionamento autnomo do veculo foram realizados atravs de sua reproduo em um ambiente virtual 3D (usando OpenGL).

Figura 1.6. Modelos Reais e Modelos de Simulao Virtual de um a) Rob Humanide do tipo Fujitsu-Hoap2 - EPFL[Cominoli 2005] e de um b) Veculo Autnomo tipo Mini-Baja do GPVA [Jung 2005]

1.3.2 Ferramentas de Simulao Virtual A implementao de um simulador virtual de robs mveis autnomos envolve algumas decises quanto ao ambiente simulado: representao em 2D, 3D plano (indoor), 3D plano (outdoor), 3D com terrenos irregulares (outdoor off-road) ou 3D com movimentao espacial (avies e submarinos). Usualmente deve-se dar preferncia pelo uso de simuladores em ambientes virtuais 3D, pois estes reproduzem de forma mais adequada os ambientes em que estaro inseridos os robs. Simuladores 2D permitem avaliar uma srie de questes relativas ao projeto e controle robtico, mas no entanto possuem limitaes quanto a representar o retorno sensorial quando o ambiente possui elementos de diferentes formas e tamanhos. Por exemplo, a implementao de um sonar simulado deve levar em considerao a propagao do som no espao (propagao na forma de um cone), na qual a medida de distncia estimada pela reflexo do som que permite identificar a presena de um objeto localizado no espao tridimensional dentro de seu raio de ao.

A tarefa de implementao de um simulador virtual para robs autnomos tambm no pode ser considerada uma tarefa simples, por isso, na maioria dos casos feito o uso de ferramentas de simulao virtual que ajudam no projeto destes simuladores. As ferramentas bsicas usadas na criao de um simulador virtual so bibliotecas (APIs, dlls e Libs) e engines grficas, capazes de fornecer uma visualizao 2D ou 3D do ambiente e da simulao do rob, bem como outros componentes que permitem simular funes mais especficas. Estes componentes especficos incluem bibliotecas de: Simulao Fsica (cinemtica e dinmica dos corpos), Inteligncia Artificial e Aprendizado de Mquina, Simulao de Terrenos 3D e de Elementos Naturais, Simulao Dinmica de Eventos (industrias, incndios, inundaes), e Simulao Multiagentes (e.g. grupos, multides, enxames swarms, flocking). A Tabela 1.3 apresenta um resumo das principais ferramentas usadas na implementao de ambientes virtuais de simulao de robs.
Tabela 1.3. Ferramentas usadas para implementar Simulaes Virtuais

1.3.2.1 Exemplos de modelagem e simulao de robs e veculos autnomos O simulador SEVA3D Sistema de Estacionamento de Veculos Autnomos [Heinen 2006] foi desenvolvido de forma a ajudar no projeto, implementao e testes de um veculo capaz de estacionar de modo autnomo em uma vaga. A modelagem de um ambiente virtual de simulao 3D permitiu que fossem definidos e avaliados detalhes como o do posicionamento e direcionamento de cada um dos sensores (sonares), bem com foi feita a modelagem tridimensional dos demais objetos distribudos no espao de atuao do veculo (e.g. carros, meio-fio da calada). importante salientar que os sonares precisaram ser dispostos em posies chaves do carro, e no caso da deteco do meio-fio foi necessrio um ajuste adequado de direcionamento do sonar, ficando voltado para o cho de modo a detectar o meio-fio da calada (ver Fig. 1.7). Alm dos sensores, tambm foi simulado o comportamento cinemtico e dinmico do veculo (modelo cinemtico de Ackermann), permitindo assim que fosse desenvolvido um sistema de controle inteligente do veculo. O sistema de controle foi implementado com o uso de uma Rede Neural Artificial que recebe os dados dos sensores e gera os comandos para os atuadores do veculo (velocidade e giro da direo).

Figura 1.7. Simulador SEVA3D

Outro exemplo de simulao virtual de robs autnomos o sistema LEGGEN [Heinen 2006a] que foi desenvolvido para ajudar no projeto de robs dotados de pernas/patas. O simulador LEGGEN foi implementado fazendo uso da biblioteca de simulao fsica de corpos rgidos articulados ODE. Este simulador permitiu o estudo e aperfeioamento da morfologia dos robs articulados, assim como a validao e testes de diferentes sistemas de controle do caminhar dos mesmos. importante destacar que a biblioteca ODE foi fundamental para permitir a realizao dos experimentos, pois atravs de seu uso foi possvel simular a gravidade, frico, articulaes, colises com elementos do ambiente, equilbrio em p, e as conseqentes quedas e tropeos do rob. Esta ferramenta tornou possvel validar e avaliar os sistemas de controle inteligentes

adotados, onde foi implementado um sistema evolutivo, baseado em Algoritmos Genticos com o uso da biblioteca GALib, que aprendia a caminhar sozinho. As duas ferramentas de simulao virtual de sistemas autnomos descritas acima foram implementadas a partir do uso de bibliotecas genricas, como o OpenGL, ODE, GALib, e SNNS. importante destacar que tambm existem diversas ferramentas de simulao que foram desenvolvidas especificamente para o projeto, desenvolvimento e experimentao atravs de simulaes de sistemas robticos, tais como o Player/Stage, Cyberbotics Webots e o Microsoft Robotic Studio (MRS). Estas ferramentas sero abordadas na prxima seo.

1.4. Simuladores de Robtica Mvel


Existem diversos simuladores de robs mveis atualmente disponveis na Internet. Alguns desses simuladores exigem uma licena para sua utilizao, podendo ser inclusive comercializados juntamente com alguns modelos de robs comerciais, enquanto outros podem ser utilizados livremente. Outra caracterstica importante presente em alguns simuladores a integrao com programas que permitem controlar diretamente os robs reais. Dessa forma, os programas de controle testados no simulador podem ser facilmente portados para uso com robs reais. Nessa seo so apresentados alguns dos simuladores mais utilizados e bibliotecas de controle de robs mveis. 1.4.1 Player/Stage/Gazebo O Player um sistema para controle de robs mveis amplamente utilizado por universidades e institutos de pesquisa [Collett 2005]. Seu desenvolvimento foi iniciado em 2000 por pesquisadores da University of Southern Califrnia, e atualmente conta com a colaborao de pesquisadores das mais diversas instituies. Por ser um sistema de cdigo aberto e de livre distribuio (compatvel com o Linux), o Player est em constante desenvolvimento para se adequar e disponibilizar implementaes de um nmero cada vez maior de plataformas robticas e sensores comerciais. A estrutura do Player baseada no modelo cliente/servidor. O servidor faz a interface com o rob e com outros sensores, obtendo dados, enviando-os para o cliente e recebendo instrues do cliente para o controle do rob e dos sensores. O cliente o programa que controla efetivamente o rob (aplicao sistema de controle). O cliente responsvel por obter os dados do servidor, interpret-los e enviar instrues para o servidor (rob) para a execuo de determinada tarefa. A arquitetura cliente/servidor permite grande versatilidade no controle robs e sensores, de forma que um cliente (programa de controle) pode controlar diversos servidores e diferentes clientes podem controlar diferentes sensores de um mesmo rob. O cliente Player foi projetado para ser compatvel com diversas linguagens. Atualmente, existem bibliotecas disponveis para clientes em C, C++, Java, Python, Tcl, entre outras linguagens. Alm de prover funes para o controle de robs e sensores, o Player tambm disponibiliza algoritmos para navegao com desvio de obstculos, planejamento de trajetria, localizao e mapeamento de ambientes. Atualmente, o Player suporta mais de 10 plataformas robticas comerciais e diversos tipos de sensores como lasers, sonares, IMUs, cmeras de vdeo e GPS. O Player vem sendo desenvolvido juntamente com dois outros mdulos de simulao: o Stage e o Gazebo (ver Figura 1.8, com exemplos de simulaes no player/stage e gazebo).

1.4.1.1 Stage O Stage um simulador de mltiplos robs voltado para ambientes bidimensionais (sensores e visualizao 2D), sendo compatvel com o Player. Mltiplos robs e sensores podem ser simulados simultaneamente, controlados por um ou mais clientes. Devido a sua alta eficincia, o Stage capaz de simular dezenas de robs operando simultaneamente em um nico PC. Os robs simulados pelo Stage so baseados no Pioneer (rob fabricado pela empresa MobileRobots) [Pioneer 2009], uma vez que essa plataforma amplamente utilizada em laboratrios de pesquisa e ensino. O Stage simula o deslocamento dos robs e tambm os sensores, como odmetros, lasers, sonares, cmeras e garras. 1.4.1.2 Gazebo Alm do Stage, o Player tambm compatvel com o simulador Gazebo. O Gazebo um simulador de robs mveis em 3D que permite uma simulao e visualizao mais realista de ambientes complexos. Atravs do uso de bibliotecas grficas (OGRE) e de modelagem fsica (ODE), o Gazebo permite uma simulao fiel do comportamento e da interao fsica de robs e objetos do ambiente. Por ser computacionalmente mais complexo que o Stage, o Gazebo requer mais recursos computacionais, o que limita o nmero de robs que podem ser simulados simultaneamente. O Gazebo normalmente utilizado em situaes nas quais a simulao bidimensional do Stage no fiel o suficiente para a realizao dos experimentos virtuais. Por exemplo, a simulao em ambientes externos, onde o solo irregular, pode resultar em uma inclinao dos robs e de seus sensores durante a operao, ou tambm quando em situaes nas quais a altura dos objetos e sensores deve ser levada em considerao para a execuo de um experimento. Atualmente o Gazebo simula robs do tipo Pioneer DX, Pioneer AT e Segway, mas tambm possvel modelar outros tipos de robs. Quanto aos sensores, alm daqueles simulados pelo Stage, o Gazebo simula tambm GPS, unidades de medida inercial e cmeras estreo.

(a) Stage

(b) Gazebo

Figura 1.8. Simulador Player/Stage (2D) e Gazebo (3D)

1.4.2 CARME O Carnegie Mellon Robot avigation Toolkit (CARMEN - Figura 1.9), uma biblioteca modular e de cdigo aberto para o controle de plataformas robticas e sensores comerciais. Seu desenvolvimento teve inicio na Carnegie Mellon University, e hoje conta com a colaborao de pesquisadores de diversas instituies. Da mesma forma que o Player, o CARMEN disponibiliza funes de acesso ao hardware de robs e sensores, bem como algoritmos normalmente utilizados em aplicaes robticas como navegao, mapeamento e localizao. O CARMEN foi desenvolvido para plataformas Linux, utilizando-se a linguagem C. Atualmente o mesmo oferece tambm suporte a linguagem JAVA. A lista do hardware suportado pelo CARMEN inclui algumas plataformas robticas comerciais e alguns poucos sensores. O CARMEN tambm possui uma ferramenta grfica que permite a visualizao da simulao de robs mveis. Atravs dessa ferramenta possvel simular robs mveis e sensores lasers, alm de ler e utilizar mapas previamente criados por robs, bem como realizar tarefas simples de navegao.

Figura 1.9. Planejamento de trajetria do simulador CARMEN

1.4.3 ARIA/MobileSim O ARIA (Advanced Robotics Interface for Applications) um sistema desenvolvido para o controle dos robs fabricados pela empresa MobileRobots. Dentre os robs fabricados pela MobileRobots, destaca-se o Pioneer, que amplamente utilizado para testes experimentais em diversas universidades e institutos de pesquisa. Devido popularidade dessa plataforma, o ARIA, bem como seu antecessor Saphira, tambm vm sendo adotados como padro de controle de robs mveis em diversas instituies. O ARIA utiliza a linguagem C++ e compatvel com as plataformas Windows e Linux.

O MobileSim (Figura 1.10) um simulador de ambientes bidimensionais para robs mveis compatvel com o controlador ARIA. Esse simulador baseado no cdigo do Stage, com algumas modificaes feitas pela empresa MobileRobots, dentre elas o suporte para ambientes Windows.

Figura 1.10. Simulador MobileSim

1.4.4 Microsoft Robotics Studio O Microsoft Robotics Studio (MRS) uma ferramenta distribuda sob licenas professional, academic e express, podendo exigir o pagamento da licena ou sob certas condies podem ser obtidas gratuitamente, porm esta no uma ferramenta de cdigo aberto (a verso express gratuita mas de uso mais restrito). O controlador/simulador de robs desenvolvidos pela Microsoft compatvel o ambiente Windows e com suas ferramentas visuais de programao .NET. O hardware suportado atualmente incluiu alguns tipos de robs comerciais, entre eles o Lego Mindstorms e alguns sensores. O MRS suporta a simulao de futebol de robs, luta de robs, robs humanides, braos mecnicos, entre outros (Figura 1.11). O simulador MRS possibilita a simulao virtual em ambientes 3D e implementa simulao fsica baseada no PhysX (NVidia/AGEIA).

Figura 1.11. Simulaes realizadas no Microsoft MRS

1.4.5 Webots O Webots um controlador/simulador, desenvolvido pela empresa Cyberbotics em conjunto com pesquisadores do Swiss Federal Institute of Technology. O sistema vem sendo utilizado em mais de 450 universidades e institutos de pesquisa e compatvel com plataformas Linux, Windows e Macintosh e liguagens C, C++ e Java. Apesar da verso completa do software exigir o pagamento de licena, uma verso para teste pode ser obtida gratuitamente. O Webots suporta uma grande quantidade de plataformas robticas e sensores, dentre eles, os robs AIBO e Lego Mindstorms. O simulador do Webots permite que robs e ambientes sejam modelados em 3D, suportando a simulao fsica de sistemas complexos que incluem articulaes mecnicas, sistemas dinmicos e deteco de colises, baseado na biblioteca ODE. O Webots pode simular uma grande variedade de ambientes e sistemas como futebol de robs, veculos robticos, robs humanides, cachorros robticos e etc (Figura 1.12).

Figura 1.12. Simulaes realizadas no Webots da Cyberbotics

1.5. Projeto de Sistemas Robticos Mveis Inteligentes


O projeto de um Sistema Robtico Mvel Inteligente, conforme apresentado nas sees anteriores, envolve o projeto de hardware e o projeto de software. O hardware responsvel pela implementao fsica de sensores, atuadores, interfaces e do processamento dos dados atravs do uso de um processador embarcado: microprocessadores, microcontroladores, hardware dedicado, hardware reconfigurvel (FPGAs, Soft-Cores, SoPC, PSoC Programmable System-on-Chip). O software implementa o sistema de controle robtico, responsvel pela anlise dos sinais dos sensores, planejamento e tomada de decises, e controle dos atuadores responsveis pelo deslocamento e aes do rob. Esta seo comear com a apresentao dos componentes de software usualmente adotados em sistemas de controle robtico inteligente, concluindo com uma discusso sobre o co-projeto de hardware e software de sistemas robticos inteligentes. Grande parte da dificuldade em se programar robs mveis deve-se ao fato de que os elementos que compe o rob, como sensores e atuadores, apresentam um certo grau de incerteza nos dados obtidos ou nas aes desempenhadas. Alm disso, o ambiente em que esses robs operam, normalmente, dinmico e imprevisvel. A simples tarefa de se mover de uma extremidade de um corredor at a outra pode se

tornar consideravelmente mais difcil se existirem pessoas andando nos corredores, se objetos que possam bloquear a passagem do rob forem colocados em seu caminho ou se os sensores e atuadores do rob no funcionarem com preciso. Dentre os algoritmos usados na rea de robtica mvel, a maioria baseada em estimao estatstica. A teoria das probabilidades vem sendo usada com sucesso para acomodar a incerteza existente, tanto internamente no rob, como no ambiente em que ele opera. Hoje em dia, a maior parte dos algoritmos de localizao e mapeamento utilizam teoria probabilstica de alguma forma [Thrun 2005]. A seguir sero apresentadas tcnicas de localizao, mapeamento e navegao robtica, de grande importncia para a implementao de sistemas autnomos robustos e inteligentes, sendo que muitas dessas tcnicas fazem uso de algoritmos como os referidos acima. 1.5.1 Localizao Localizao consiste em estimar a posio de um rob no ambiente. Determinar sua prpria posio uma capacidade bsica para que qualquer tarefa de navegao seja executada. fundamental que um rob consiga determinar exatamente a posio em que se encontra dentro de um ambiente para que o mesmo possa planejar a uma trajetria at o seu destino e cumprir as tarefas que lhe forem alocadas [Fox 1999]. A grande maioria dos robs mveis possui um sistema de odometria que permite estimar o deslocamento dos mesmos e, conseqentemente, calcular a posio dos robs no ambiente. Normalmente, as informaes odomtricas so obtidas atravs de sensores acoplados s rodas dos robs, de forma a calcular o deslocamento dos mesmos a partir do movimento destas. Na prtica, existem diversos fatores que causam erros nesse tipo de dispositivo como a impreciso mecnica do sistema e irregularidades do terreno em que o rob atua. Outro fator que dificulta e pode at inviabilizar a localizao do rob a partir da odometria o fato de que os pequenos erros causados durante o clculo da posio do rob vo se acumulando ao longo do tempo. Uma pequena variao na presso dos pneus de um rob pode facilmente gerar um erro de muitos metros na estimativa de localizao aps algum tempo de navegao do rob. Devido sua grande importncia dentro da rea de robtica mvel, o problema da localizao vem sendo amplamente estudado pelos pesquisadores da rea e, atualmente, existem algoritmos bastante eficientes na soluo do mesmo. Normalmente, fornecido um mapa do ambiente e a localizao estimada com base nas informaes fornecidas pelos sensores. O grande desafio na soluo do problema de localizao est no fato de que tanto as informaes sobre o ambiente como os dados fornecidos pelos sensores so normalmente limitados e imprecisos. Nesse contexto, tcnicas probabilsticas tm sido amplamente utilizadas na soluo desse problema. O problema da localizao de robs mveis pode ser dividido nas categorias local e global [Thrun 2005]. No problema de localizao local, a posio inicial do rob conhecida. A soluo para esse problema consiste em lidar com a impreciso dos sensores e manter uma estimativa consistente da posio do rob no ambiente. No caso da localizao global, o rob no tem informaes prvias de sua posio no mapa, o que torna o processo de localizao consideravelmente mais complexo. Dentre os algoritmos de localizao para robs mveis, destaca-se o mtodo de Markov. O algoritmo de localizao de Markov baseado no filtro de Bayes, uma poderosa tcnica de estimao estatstica, aplicado ao contexto da localizao robtica [Thrun 2005].

Como se trata de uma formulao geral para a soluo do problema, existem diversas formas de implementar esse algoritmo e de representar os dados do ambiente e da posio dos robs. Dentre as quais destacam-se o filtro de Kalman, o mtodo de grid e o mtodo de Monte Carlo. 1.5.1.1 Localizao baseada no Filtro de Kalman O mtodo de localizao baseado no filtro de Kalman utiliza o algoritmo de mesmo nome para estimar a posio do rob. Este mtodo aplica uma tcnica de filtragem usando o filtro de Kalman para, uma vez conhecida a localizao corrente aproximada do rob, estimar a sua prxima localizao, considerando seu deslocamento e usando as informaes imprecisas obtidas pelos seus sensores. Esse algoritmo amplamente utilizado em diversas reas da engenharia eltrica em sistemas nos quais as informaes so imprecisas e nem sempre disponveis. Existe uma robusta formulao matemtica por trs do mesmo, provando sua convergncia quando determinados requisitos so atendidos. No caso da localizao de robs mveis, a formulao tradicional do filtro de Kalman utiliza determinados pontos no ambiente que servem como referncia para que a posio do rob seja estimada [Leonard 1991]. O filtro de Kalman utiliza funes Gaussianas para representar cada uma das coordenadas da posio do rob no ambiente. Uma vez que a funo Gaussiana unimodal, esse mtodo indicado apenas na soluo do problema de localizao local. 1.5.1.2 Localizao em Grid O algoritmo de localizao baseado em modelos de Markov consiste em dividir o ambiente em pequenas unidades de espao chamadas clulas. Para cada uma dessas clulas calculada a probabilidade de o rob estar ocupando a posio correspondente quela clula [Fox 1999]. Este mtodo, portanto, permite que mltiplas hipteses sobre a posio do rob sejam mantidas, sendo adequado para a soluo dos problemas de localizao local e global. Conforme o rob se desloca e processa os dados obtidos dos sensores, algumas hipteses de localizao so descartadas e outras reforadas at que a localizao correta do rob seja determinada. O ambiente tambm representado atravs das clulas, no qual cada uma delas marcada como ocupada ou livre As clulas ocupadas representam a presena de obstculos naquela posio do ambiente, como paredes, mesas e cadeiras. As clulas livres representam espaos onde no h presena de obstculos. A representao de ambientes atravs de grids de ocupao amplamente utilizada na rea da robtica e ser discutida com mais detalhes na seo 1.5.2. 1.5.1.3 Localizao baseada em tcnicas de Monte-Carlo O algoritmo de localizao baseado em tcnicas de Monte Carlo consiste em manter vrias hipteses de localizao no ambiente, mas cada hiptese representada por uma unidade chamada partcula (da esse algoritmo tambm ser conhecido como filtro de partculas) [Fox 1999b]. Ao ser iniciado, o algoritmo distribui partculas por todo o mapa do ambiente. Comparando os dados obtidos dos sensores com as informaes disponveis no mapa, associado um peso para cada partcula. Este peso representa a chance dessa partcula representar a real localizao do rob. Durante a execuo do algoritmo, o peso de cada partcula calculado. Partculas com peso baixo so eliminadas enquanto as partculas com peso alto so replicadas. Com o tempo todas as

partculas tendem a se concentrar no local do mapa que representa a localizao correta do rob. Essa tcnica tambm utiliza grids de ocupao para representar o ambiente.

Posio real do rob

(a)

(b) Figura 1.13. Localizao de Monte Carlo

(c)

A Figura 1.13 mostra o mapa de um ambiente com diversos corredores interligados e a evoluo da execuo do algoritmo de Monte Carlo. As reas brancas na Figura representam o espao livre, as reas pretas representam as regies ocupadas (paredes e portas) e as reas cinza representam regies com a ocupao desconhecida pelo rob. Os pontos cinzas (partculas) que aparecem na rea branca so possibilidades do rob ocupar local naquele momento. Na medida em que o rob se desloca e obtm mais informaes dos sensores, o algoritmo descarta mantm apenas as partculas com chance real de representar a posio correta do rob. No incio da execuo do algoritmo (Figura 1.13(a)), no existe nenhuma informao sobre a posio do rob, portanto praticamente todo espao branco ocupado por partculas. Na Figura 1.13(b) pode-se notar que diversas partculas foram eliminadas, porm a posio do rob ainda no pode ser identificada. Por fim, a Figura 1.13(c) mostra o resultado da localizao aps a convergncia do algoritmo.

1.5.2 Mapeamento O levantamento de dados sobre o ambiente e a conseqente construo de mapas (criao de uma representao do ambiente onde est inserido o rob) um problema de estimao que consiste em uma tarefa fundamental para o desenvolvimento de robs mveis autnomos. Normalmente, tarefas bsicas executadas por um rob necessitam de uma representao do ambiente para serem executadas. Supondo, por exemplo, que um rob deve planejar uma trajetria para se locomover de sua posio atual at uma posio de destino. Nesse caso, um mapa do ambiente fundamental para que o caminho mais eficiente seja encontrado. Atravs do mapa, o rob verifica os possveis caminhos que levam at a posio desejada e os obstculos que devem ser evitados [Thrun 2002]. Outra aplicao robtica que normalmente necessita de um mapa a localizao, que consiste em estimar a posio de um rob em um ambiente previamente conhecido. Dentro do contexto da navegao, necessrio que o rob saiba com preciso sua localizao dentro do ambiente para que o mesmo possa determinar uma trajetria at o ponto de destino. Uma vez que os sensores odomtricos dos robs comerciais normalmente apresentam algum grau de impreciso, so utilizadas informaes dos sensores, juntamente com um mapa do ambiente, para se estimar a posio do rob. Existem tambm tcnicas que permitem que o mapa seja criado ao mesmo tempo em que o rob se localiza no ambiente. Essas tcnicas so chamadas de localizao e mapeamento simultneos (SLAM), e so consideravelmente mais complexas do que tcnicas de mapeamento e localizao em separado. Existem basicamente dois tipos de mapas criados por robs mveis: topolgicos e mtricos. Os mapas topolgicos representam o ambiente por grafos, no qual os vrtices representam regies de interesse no ambiente e os arcos representam as vias que interligam essas regies [Mataric 1990][Kuipers 1991]. Os mapas topolgicos so bastante eficientes para se estimar trajetrias em um ambiente, mas apresentam uma representao muito pobre do ambiente fsico. Os mapas mtricos representam os ambientes fsicos em detalhes e tambm podem ser utilizados para se estimar trajetrias. Entre os mapas mtricos, destaca-se a representao do ambiente utilizando-se grids de ocupao (occupancy grids) [Elfes 1989]. O mtodo de malha de ocupao consiste em criar uma representao bidimensional, na qual o ambiente dividido em pequenas unidades de espao ou clulas (semelhantes s unidades usadas no mtodo de localizao de Markov), e para cada uma dessas clulas calculada a possibilidade daquele espao estar ocupado ou no. Este clculo realizado com base nas informaes obtidas dos sensores. Normalmente, so utilizados sensores que detectam a distncia entre o rob e os obstculos (sonares e lasers) para o mapeamento de ambientes. Como o rob inicialmente no tem informaes sobre o ambiente, todas as clulas so classificadas como desconhecidas. medida que novas informaes so obtidas pelos sensores, a classificao de cada clula atualizada. As clulas onde o sensor detecta algum tipo de obstculos tm sua probabilidade de estar ocupadas aumentadas medida que os sensores confirmam a presena de desses obstculos (Figura 1.14). As clulas que se encontram entre o rob e os obstculos so considerados livres e tm sua probabilidade de estarem ocupadas reduzidas.

Figura 1.14. Grid de ocupao

A Figura 1.15 mostra uma planta de um andar de um prdio e o respectivo mapa criado por um rob mvel utilizando sensor laser. reas brancas correspondem ao espao livre, reas pretas correspondem rea ocupada (paredes e portas) e a rea cinza representa as reas desconhecidas.

Figura 1.15. Mapa mtrico criado por um rob mvel

1.5.3 SLAM Como visto nas sees anteriores, a localizao e o mapeamento so fundamentais para que robs mveis possam executar a maioria das tarefas que envolvem navegao. A maioria dos algoritmos de localizao utilizam um mapa ou alguma informao do ambiente para estimar a posio do rob. Da mesma forma, a maior parte dos algoritmos de mapeamento precisa de boa localizao para construir mapas que representem fielmente o ambiente. Existem situaes nas quais no se tem nem informaes prvias sobre o ambiente nem uma boa localizao do rob. Para solucionar esse problema, existem algoritmos de mapeamento de localizao simultneos ou SLAM (simultaneous localization and mapping). Esses algoritmos so consideravelmente mais complexos do que os algoritmos de localizao e mapeamento vistos anteriormente. Dentre os algoritmos desenvolvidos para a soluo do problema de SLAM destacam-se os baseados no filtro de Kalman e o FastSLAM. Da mesma forma que o algoritmo que utiliza o filtro de Kalman para a localizao de robs mveis, a soluo para o problema de SLAM que utiliza a mesma tcnica tambm utiliza mapas formados por pontos de referncia no ambiente (landmarks) [Smith 1990] [Dissanayake 2001]. Como, nesse caso, o rob no tem nenhuma informao prvia do ambiente, tanto a posio do rob como a posio desses pontos de referncia devem ser estimados simultaneamente. Conseqentemente, o nmero de variveis que devem ser estimadas cresce proporcionalmente ao tamanho do mapa. O algoritmo armazena essas variveis em vetores e matrizes proporcionais quantidade de pontos de referencia no espao. Durante o processo de estimao so realizadas diversas operaes utilizando essas matrizes e vetores. Dessa forma, o tempo de execuo desse algoritmo depende do nmero de variveis que deve ser estimado, invibializando sua utilizao em situaes onde o nmero de pontos de referncia no ambiente muito grande. O algoritmo original capaz de processar mapas com algumas centenas de landmarks em tempo real, porm, existem tcnicas na literatura para tornar esse algoritmo mais eficiente [Montemerlo 2003]. O FastSLAM consiste em outra alternativa para a soluo do problema de localizao e mapeamento simultneos. Esse algoritmo combina um filtro de partculas para estimar a trajetria do rob e diversos filtros de Kalman, sendo que, cada um deles estima a posio de um landmark no mapa [Montemerlo 2002] [Montemerlo 2003]. O princpio do FastSLAM baseia-se no fato de que, supondo-se que a localizao do rob conhecida, a posio de cada landmark pode ser estimada de maneira independente. Essa estimativa da posio de cada landmark no mapa realizada com um filtro de Kalman. Como cada um desses filtros estima apenas as 2 coordenadas (x, y) de cada ponto de referncia no ambiente, a atualizao dos mesmos bastante eficiente, permitindo que centenas de milhares de landmarks possam ser estimados simultaneamente. No entanto, de acordo com a prpria definio do problema, a posio do rob no conhecida. Desse modo, o FastSLAM utiliza um filtro de partculas, sendo que cada partcula representa uma possvel trajetria para o rob. A propagao das partculas baseada nas informaes odomtricas com a adio de um erro aleatrio, que funciona como uma possvel compensao da impreciso do odmetro. Como o erro adicionado a cada uma das partculas aleatrio, existe uma pequena diferena no trajeto de cada uma das partculas. Quando essas partculas visitam regies previamente mapeadas, as informaes sobre o mapa obtido at ento so comparadas

com os dados dos landmarks detectados naquele momento. Quanto melhor a correspondncia entre a esses landmarks e aqueles que foram registrados previamente no mapa, maior a chance de que essa partcula represente a trajetria real do rob. Desse modo, partculas com boa correspondncia continuam ativas enquanto as partculas nas quais no houve correspondncia so substitudas. Quanto maior o nmero de partculas, maior a chance se conseguir uma estimativa fiel da trajetria do rob e do mapa do ambiente.
Landmarks

Trajetria das partculas (a) (b) (c)

Figura 1.16. Trajetria e mapa estimados utilizando-se o FastSLAM

A Figura 1.16 mostra o processo de localizao e mapeamento simultneos atravs do FastSLAM. Inicialmente, conforme mostra a Figura 1.15(a), as partculas se dispersam e criam diversas possveis trajetrias para o rob, juntamente com diversas estimativas de posio para os landmarks. Aps o rob visitar parte do ambiente mapeado, diversas partculas so eliminadas, juntamente com as respectivas estimativas de posio dos landmark (Figura 1.15(b)). Por fim, aps o rob passar diversas vezes pelo ambiente mapeado, o algoritmo converge para uma nica trajetria, que teoricamente, representa a melhor estimativa da trajetria real do rob e da posio correta dos landmarks no mapa, conforme mostra a Figura 1.15(c). O problema de SLAM consiste em uma rea de pesquisa bastante ativa da robtica mvel. Dessa forma, pesquisadores de diversas instituies continuam a procurar solues mais eficientes na soluo desse problema. Alm das tcnicas descritas nessa seo, existem outros algoritmos que estimam a posio do rob e o mapa do ambiente simultaneamente. Dentre eles, pode-se citar: [Thrun 1998], [Wolf 2005], [Eliazar 2004], [Haehnel 2003] e [Gutmann 1999]. 1.5.4 avegao Robtica O problema da navegao em robtica consiste em controlar o deslocamento do rob de uma posio inicial at uma posio de destino. Este tipo de tarefa envolve diferentes tcnicas como, por exemplo, o planejamento de uma trajetria e a execuo da navegao utilizando um mapa previamente disponibilizado do ambiente, ou at mesmo a navegao baseada em uma experincia prvia de navegao supervisionada, usando

tcnicas como a navegao visual. A tarefa de navegao usualmente implementada atravs do uso de uma arquitetura de controle do tipo reativo, deliberativo ou hierrquico/hbrido, devendo incluir mecanismos para evitar colises, incluindo o desvio de obstculos e o tratamento de situaes imprevistas. 1.5.4.1 Navegao baseada em Mapas Inicialmente o sistema de controle deve estabelecer uma rota, ou seja, planejar uma trajetria a ser executada, baseando-se no uso de um mapa do ambiente (mapa topolgico, mapa mtrico ou mapa de ocupao tipo grid). Alguns dos mtodos mais usados de navegao baseada em mapas so a busca de um caminho timo atravs do uso de algoritmos como o A* (AStar) ou o algoritmo de Djikstra [Osorio 2007, Jung 2005, Latombe 1991]. O algoritmo A* usualmente aplicado em mapas do tipo mapa de ocupao (grid), podendo tambm ser usado com mapas mtricos, nos quais este algoritmo se tornou muito conhecido tambm devido a sua aplicao na implementao de agentes autnomos para jogos [Osorio 2007]. O A* usa uma heurstica de busca de caminhos no espao de configuraes, sendo um algoritmo muito eficiente. A Figura 1.17 apresenta um exemplo de trajetria com o uso do A*. (a) (b)

Figura 1.17. Planejamento de Trajetria A* - Mapa de Ocupao [Lester 2005] (a) Incio da explorao de caminhos possveil: busca de uma trajetria do quadrado mais a esquerda at o quadrado mais a direita, (b) Caminho encontrado: o caminho est destacado pela seqncia de pontos vermelhos unindo os quadrados de origem e destino

O planejamento de trajetrias tambm pode ser feito baseado em um mapa mtrico, no qual usualmente feita a busca usando grafos que representam as possveis solues (caminhos), assim como a soluo tima (caminho mais curto). A busca em grafos baseada em um Grafo de Visibilidade, ou em Diagramas de Voronoi, sendo aplicado um mtodo de seleo do melhor caminho entre os diversos caminhos que podem ter sido encontrados [Heinen 2000, Dudek 2000]. O Algoritmo de Djikstra permite encontrar o menor caminho em um grafo, sendo muito usado no planejamento de trajetrias com grafos, apesar de ter um elevado custo computacional. A Figura 1.18 apresenta um exemplo de trajetria baseada no grafo de visibilidade e seleo do menor caminho.

Figura 1.18. Planejamento de Trajetria com Grafo de Visibilidade: caminho do rob circular at o seu destino marcado no mapa geomtrico [Heinen 2000]

importante destacar que a navegao baseada em mapas funciona bem somente quando existe um mecanismo confivel de localizao associado ao processo de deslocamento junto trajetria planejada. Por exemplo, tomando-se o exemplo da Figura 1.18, se o rob no estiver exatamente onde ele pensa estar (devido a erros de deslocamento e posicionamento acumulados durante a sua navegao), dificilmente ele ir conseguir passar por uma porta ou passagem estreita, pois as aes que foram planejadas previamente (comandos a serem enviados aos atuadores) no sero adequadas em funo deste possvel deslocamento do rob em relao trajetria inicialmente planejada. 1.5.4.1 Navegao sem o uso de mapas A navegao em um ambiente pode no requerer um conhecimento muito estruturado e completo como o de um mapa mtrico ou de ocupao, onde existem algumas tcnicas bastante adotadas de navegao baseada em campos potenciais, navegao visual (baseada em informaes visuais) e navegao por composio de comandos. A navegao por campos potenciais e campos vetoriais [Dudek 2000, Heinen 2002a, Pio 2003] utiliza conceitos de foras de atrao e repulso, nos quais o rob atrado pelo seu ponto de destino (podendo usar uma bssola ou GPS para saber a direo para onde deve se deslocar) e repelido pelos obstculos presentes em seu caminho, ajustando constantemente sua rota, para desviar dos obstculos que se encontram prximos a ele (detectados pelos seus sensores). Quanto mais prximo de um obstculo, maior dever ser a fora de repulso que este obstculo exerce sobre o rob, forando-o a se desviar um pouco de sua rota original, mas no entanto evitando a coliso. Este tipo de algoritmo pode ser usado em ambientes com uma concentrao no muito grande de obstculos, sendo que o rob pode em certas configuraes especficas do ambiente acabar ficando preso (bloqueado). possvel tambm integrar a tcnica de campos potenciais com o uso de mapas, o que permite resolver algumas de suas limitaes. A navegao visual [Jung 2005, Righes 2004] consiste em criar uma memria fotogrfica do caminho a ser percorrido pelo rob, ou seja, primeiramente o rob conduzido pelo caminho que ele dever percorrer, registrando uma memria visual do caminho por onde passou. Em um momento posterior, quando o rob tiver que refazer o

caminho ele ir usar os registros visuais do caminho como uma referncia que permite manter (e ajustar) sua rota em relao a uma trajetria que foi previamente aprendida. importante destacar que este tipo de algoritmo no necessita de uma descrio sob a forma de mapas do ambiente, sendo um mtodo bastante fcil e rpido de ser posto em funcionamento, pois basta mostrar ao rob o caminho que ele deve seguir. A Figura 1.19 apresenta um exemplo de navegao visual.
Base de Imagens: Seqncia de Deslocamentos

Imagem Atual

NCC (match)

Prxima Imagem Imagem capturada pelo rob

Figura 1.19. Navegao baseada em imagens [Jones 1997]

A navegao por composio de comandos permite que sejam compostos comandos para executar a navegao em determinados trechos da trajetria, de forma pr-determinada, como por exemplo: seguir uma parede, avanar por um corredor, passar por uma porta, deslocar 10 metros em frente e depois dobrar a esquerda, etc. Este tipo de navegao pode ser baseado em comandos reativos (acompanhar uma parede ou marcao no cho), ou tambm pode ser baseado em comandos deliberativos (avanar uma certa distncia, dobrar com um determinado ngulo). Este tipo de navegao tambm pode usar um mtodo similar ao anterior, no qual o rob registra previamente todos os comandos de navegao e depois volta a reproduz-los. O problema deste tipo de estratgia que o tratamento de erros de posicionamento e de desvio de obstculos no previstos pode se tornar bastante problemtico. Este tipo de tcnica normalmente combinada em sistemas hbridos de controle que realizam em paralelo tarefas de localizao e de ajuste de trajetrias (ou simplesmente param quando encontram um obstculo no previsto em sua trajetria). Portanto, o planejamento e navegao robtica so tarefas que devem ser projetadas de modo a realizar um controle robtico inteligente e robusto, muitas vezes atravs da implementao e integrao de diferentes tcnicas, como as citadas acima, que iro dotar o rob de uma maior capacidade de navegao autnoma e desvio de obstculos. 1.5.5 Co-Projeto de Hardware e Software de Sistemas Robticos O projeto de um sistema robtico, conforme apresentado nas sees anteriores, uma tarefa complexa, que envolve o projeto de hardware e de software, onde ambos esto diretamente relacionados: preciso projetar o hardware para com ele se poder posteriormente desenvolver um software adequado e que explore suas potencialidades.

Alm disto, durante o projeto e desenvolvimento do sistema de controle de um sistema robtico, so necessrios diversos ciclos de ajuste do hardware do rob, seja pela adio de mais sensores, ajuste e posicionamento destes sensores, adaptaes nos atuadores, e inclusive precisando realizar constantes aperfeioamentos no sistema de controle embarcado dos robs. Diante deste ciclo de projeto, com revises constantes de hardware e software, fica bastante clara a importncia de se adotar metodologias modernas de projeto de sistemas como o Co-Projeto de Hardware e Software baseado em ferramentas de simulao. Atravs do uso de ferramentas de simulao possvel realizar uma melhor avaliao do projeto de hardware e de software, sendo inclusive possvel realizar a implementao em paralelo do hardware, ao mesmo tempo em que se desenvolve o software usando ferramentas se simulao. Com o uso das ferramentas de simulao da plataforma robtica, possvel desenvolver, testar e validar o sistema de controle antes mesmo de se ter pronta e disponvel a plataforma de hardware. importante destacar tambm que atualmente os novos paradigmas do projeto de sistemas embarcados vm de aplicaes que exigem um grande paralelismo no processamento de informaes de diferentes fontes, com o caso de sistemas automotivos ou de sistemas robticos de controle e navegao. Para tanto, existem diversas alternativas de implementao disponveis, que vo desde a utilizao de processadores de propsito geral ou processadores com um conjunto de instrues dedicado a determinadas aplicaes (como os microcontroladores ou Digital Signal Processors DSPs) at a utilizao de hardware programvel (como os FPGAs Field-Programmable Gate Arrays) ou ASICs Application-Specific Integrated Circuits. Destas, as duas ltimas vem ganhando terreno principalmente devido s novas necessidades dos sistemas embarcados atuais, pois permitem o projeto concorrente de hardware e software em um nico chip. Para implementar sistemas de controle em robs reais uma soluo atraente a utilizao do processador (geralmente um microcontrolador) e memria, comumente encontrados nos robs comerciais (como os Khepera e os Pioneer), para acomodar verses em software dos controladores e algoritmos de navegao. Uma alternativa para isso a utilizao de FPGAs para implementar os mdulos de software e hardware do sistema de controle. Algumas das vantagens dos FPGAs sobre microcontroladores so a maior velocidade de trabalho, menor consumo de energia e paralelismo. Existem diversos exemplos de aplicaes de robtica com sistemas embarcados desenvolvidos usando hardware reconfigurvel (FPGAs), como por exemplo, sistemas de viso [Assuno 2007, Bonato 2006 e 2008] e sistemas de localizao e mapeamento baseados tambm em FPGAs [Wolf 2005, 20007][Bonato 2007]. Dentro deste contexto, as diversas alternativas de FPGAs do mercado apresentam recursos atraentes como os chamados SOPCs (System on a Programable Chip). SOPCs so sistemas que integram toda a funcionalidade de processadores, perifricos e memria, entre outras, num nico chip. Os FPGAs possuem grande capacidade e diversidade de elementos lgicos programveis e conseguem acessar dispositivos externos com grande velocidade. O uso de sistemas reconfigurveis (FPGAs) e a adoo de uma metodologia de co-projeto de hardware e software atravs do uso de ferramentas de simulao permitem assim dar uma maior flexibilidade, economia, rapidez, e obter melhores resultados no projeto de sistemas robticos.

1.6. Aplicaes prticas de Robtica Mvel


O desenvolvimento de pesquisas e aplicaes de robtica mvel autnoma e inteligente, seja no Brasil ou no exterior, tem crescido de forma muito ampla e consistente nos ltimos anos. Pode-se constar isto atravs do alto nvel das publicaes de trabalhos cientficos da rea em diversos eventos internacionais especializados (e.g. IEEE IROS, IEEE ICRA, IEEE ICAR, ACM SAC Robot, EPIA iRobot, entre outros mais gerais da rea de I.A. como o IJCAI, IJCNN, CEC, AAMAS) e nos eventos nacionais (e.g. JRI/EnRI/LARS, SBIA, SBRN, ENIA, CBRN, SBAI, CBA, entre outros), alm do crescimento do nmero de publicaes e edies especiais em peridicos nacionais e estrangeiros. Em particular, a SBC (Sociedade Brasileira de Computao), possui atualmente entre as suas comisses especiais, uma que atende especificamente os interesses da comunidade brasileira de robtica, a CER Comisso Especial de Robtica da SBC, sendo um importante rgo de incentivo e apoio a eventos, competies e ao desenvolvimento da robtica junto comunidade brasileira. Uma vez que no possvel apresentarmos aqui uma viso mais completa de todo este panorama nacional e internacional de aplicaes prticas da robtica mvel, optamos por focar em duas linhas principais: descrio dos trabalhos desenvolvidos pelo grupo de pesquisa dos autores deste texto, que apesar de limitado aos trabalhos deste grupo de pesquisa, demonstram uma boa abrangncia em relao a diferentes exemplos de aplicaes da robtica mvel inteligente; e depois discutiremos os trabalhos relacionados com um dos maiores projetos de pesquisa e desenvolvimento de veculos autnomos no mundo, o DARPA Challenge, que representa um dos maiores esforos internacionais ligados a pesquisa e desenvolvimento de veculos (robs) mveis autnomos e inteligentes. Nesta seo sero, portanto, apresentados diversos exemplos prticos de projetos de robtica mvel autnoma, desenvolvidos com a participao dos membros do LRM (Laboratrio de Robtica Mvel) do ICMC USP [LRM 2009]. Estes projetos permitem demonstrar de modo prtico a aplicao de diversos conceitos e tcnicas descritos neste artigo, relacionados com desenvolvimento de aplicaes de robtica mvel e de sistemas de controle robtico inteligente. Esta seo ser concluda com a apresentao de outro conjunto de aplicaes de sucesso da robtica mvel, destacando-se o caso do DARPA Grand Challenge e do DARPA Urban Challenge [Thrun 2006, Urmson 2008], competies focadas no desenvolvimento de veculos autnomos realizadas nos Estados Unidos entre 2004 e 2007. 1.6.1. avegao autnoma em ambientes externos A navegao um dos problemas fundamentais da robtica mvel, sendo um prrequisito para que outras tarefas possam ser executadas. A grande maioria dos algoritmos de navegao desenvolvida para atuar em ambientes internos estruturados, onde o grande desafio da navegao o desvio de obstculos. A navegao em ambientes externos consiste em um problema muito mais interessante e complexo. Alm do desvio de obstculos, necessrio que o rob identifique o terreno em que pode navegar. Uma aplicao direta dessa tecnologia o desenvolvimento de sistemas de direo autnoma para veculos. Neste caso, necessrio identificar os limites da rua (rea em que o carro pode navegar), e possveis obstculos e depresses em seu caminho.

Dentro desse contexto, foi desenvolvido um sistema de navegao em ambientes externos baseado em viso computacional. Baseado nas informaes obtidas por uma cmera, o sistema deve encontrar a via navegvel (rua ou calada). A soluo para esse problema proposta em [Wolf 2008] utiliza um conjunto de tcnicas de processamento de imagens descrito abaixo. A primeira tarefa para se identificar a regio navegvel na imagem a utilizao de algoritmos de segmentao de imagens. A segmentao classifica os pixels da imagem em classes distintas de acordo com sua cor. Desse modo, possvel isolar a regio de interesse na imagem. Aps a segmentao, necessrio identificar os limites da rea desejada (rea navegvel) para que os controles do rob sejam controlados com o objetivo de manter o mesmo dentro da rea de interesse. Essa tarefa realizada atravs de filtros de imagem que detectam as bordas entre as regies segmentadas e permitem que o rob se atenha regio delimitada e classificada como segura.

(a)

(b)

(c)

(d)

Figura 1.20. Identificao da via navegvel utilizando processamento de imagens

A Figura 1.20 (a) mostra um exemplo de ambiente utilizado durante os experimentos de classificao visual do terreno. As Figuras 1.20(b) e 1.20(c) mostram os resultados da segmentao e da seleo da regio de interesse, respectivamente. Por fim, a Figura 1.20(d) apresenta as linhas que delimitam a regio navegvel. 1.6.2. Mapeamento tridimensional de ambientes externos A construo de modelos do ambiente uma tarefa fundamental para o desenvolvimento de robs mveis autnomos. Dentre as aplicaes desses modelos (mapas) pode-se citar: planejamento de trajetria, localizao e monitoramento. Grande parte dos mapas criados por robs mveis so modelos bidimensionais, que so adequadas para representar ambientes razoavelmente estruturados, como interiores de prdios. No caso de ambientes externos, parcialmente estruturados, mapas 2D representam o ambiente de maneira pobre, uma vez que no possvel capturar detalhes de rvores, veculos e outros objetos utilizando esse tipo de representao. Nesse caso, a utilizao de tcnicas que permitam a criao de mapas tridimensionais mais adequada, permitindo que os detalhes dos objetos possam ser capturados com maior preciso. Uma das tcnicas utilizadas na criao de mapas 3D a nuvem de pontos. Basicamente, este mtodo consiste em representar as estruturas e objetos do ambiente atravs de conjuntos de pontos no espao cartesiano. Normalmente so utilizados sensores lasers na aquisio dos dados, devido a sua boa preciso e longo alcance.

Dentre as possibilidades de mapeamento 3D, o mapeamento do terreno em que o rob atua particularmente til para tarefas que envolvem navegao.

(a)

(b)

Figura 1.21. Rob mvel utilizando sensor laser para mapeamento de terreno

A Figura 1.21 mostra um rob mvel utilizando um sensor laser para o mapeamento de terreno. Pode-se notar que utilizado um suporte para que o laser seja direcionado para baixo, de forma a obter informaes sobre o terreno.

(a)

(b)

(c)

(d)

Figura 1.22. Rob mvel utilizando sensor laser para mapeamento de terreno.

As Figuras 1.22(a) e (c) mostram os ambientes reais que foram utilizados nos experimentos de mapeamento de terreno, enquanto as Figuras 1.22(b) e (d) apresentam os mapas 3D criados pelo rob. A mesma tcnica foi utilizada montando-se o sensor laser apontado para cima. Dessa forma, possvel obter informaes sobre prdios e outros objetos no ambiente, conforme mostra a Figura 1.23.

Figura 1.23. Mapa de um dos prdios do ICMC-USP construdo por um rob mvel

1.6.3. Veculos Inteligentes Os sistemas de auxlio conduo de veculos so uma importante aplicao de robtica mvel, seja de modo completamente autnomo ou de modo semi-autnomo atuando para aumentar a segurana do condutor e das vias em geral [Jung 2005, Kelber 2003]. Existem diversas aplicaes que vem sendo desenvolvidas neste sentido, nas quais pode-se citar alguns exemplos: deteco de pedestres, deteco de placas de sinalizao (com alerta ao motorista), estacionamento autnomo de veculos, conduo autnoma de veculos de passageiros e de carga, comboios automatizados, sistema de controle para evitar sada de pista, sistema de alerta e preveno contra colises, entre outras aplicaes. O projeto SEVA Sistema de Estacionamento de Veculos Autnomos um exemplo de uma aplicao que foi desenvolvida a partir da simulao virtual [Heinen 2007]. Este projeto consiste no desenvolvimento de um Sistema de Controle Inteligente baseado no uso de Redes Neurais Artificiais (RNA), capazes de aprender a controlar um veculo autnomo de forma a estacionar em uma vaga paralela. O sistema de controle permite que sejam adquiridos dados dos sensores (sonares) e atuadores (acelerador e barra da direo), quando um motorista realiza o estacionamento do veculo de forma manual, e, de posse destes dados, aplicado um algoritmo de aprendizado de mquina capaz de aprender a estacionar o veculo de forma autnoma. A Figura 1.24 apresenta o processo de estacionamento autnomo do veculo, controlado pela RNA.

Figura 1.24. SEVA Sistema de Estacionamento Autnomo de Veculos: Estados usados pelo Autmato Finito de Controle do Estacionamento

A Rede Neural, aps o aprendizado, implementa um autmato finito (FSA) que ir controlar o veculo, no qual em cada instante de tempo a RNA responsvel por ler o estado dos sensores (sendo robusta aos rudo e as imprecises dos sonares) e decidir qual ao deve efetuar (controle de direo e acelerao), quando ento se deve passar para o estado seguinte do autmato, de modo a ir executando a seqncia de aes referentes ao estacionamento do veculo. O simulador SEVA3D foi muito importante para que este projeto fosse desenvolvido, permitindo uma adequada configurao e ajustes do posicionamento dos sensores, assim como, tornou possvel o aperfeioamento do sistema de controle inteligente do veculo. Atualmente existe em andamento um projeto em parceria entre a EESC e o ICMC da USP de So Carlos, o projeto SENA Sistema Embarcado de Navegao Autnoma [SENA 2009], que visa trabalhar com um veculo em escala real, doado por uma montadora brasileira, realizando testes de controle e navegao autnoma. Este veculo est em fase de adaptao para o uso de sensores embarcados, baseado em sensor laser e sistemas de viso. Um dos focos desta pesquisa tambm envolve os aspectos de segurana, uma vez que a operao deste sistema crtica, oferecendo perigos tanto ao condutor quanto as pessoas prximas ao veculo, caso no seja adequadamente controlado. O uso de algoritmos de Navegao Visual [Heinen 2004, Righes 2004, Jung 2007, Bonato 2008] tambm tem sido pesquisado de modo a serem utilizados junto ao sistema de controle inteligente deste veculo autnomo (Figura 1.25). Existem diversas tarefas possveis de serem implementadas com o uso do veculo e sistemas de viso, como por exemplo a implementao de comboios de veculos autnomos (Follow-me ver figura 1.25(a)), e sistemas de controle para acompanhar uma trajetria baseado na marcao lateral da pista (Lane follow ver figura 1.25(b)), ou mesmo de alerta ao condutor em caso deste estar saindo da pista ou conduzindo de forma perigosa (e.g. motorista sonolento ou embriagado).

$%&'(%)0 10 123'4&526 0 7(%82921610

$%&'(%)0 10 12(052%&690&'%     !"  #  

Figura 1.25. Navegao baseada em Sistemas de Viso

1.6.4. Robs Articulados com Pernas A pesquisa e o desenvolvimento de robs com pernas (humanides) ou com patas (imitando animais) um tema que tem atrado a ateno de diversos grupos ao redor do mundo (ver Figura 1.26), uma vez que a locomoo atravs de dispositivos articulados permite que estes tipo de robs mveis sejam melhor adaptados a certos ambientes, podendo por exemplo, subir e descer escadas e desnveis, e se locomover em terrenos bastante irregulares. Entretanto o projeto de robs capazes de caminhar uma tarefa bastante complexa, uma vez que necessrio levar em conta o equilbrio do rob e a interao entre diversas foras que podem levar este a cair. O projeto de um rob articulado com patas deve levar em conta diferentes sensores, incluindo sensores para o feed-back ttil que indicam quando (e com que fora) uma pata encosta no cho, e sistemas capazes de estimar a posio e o deslocamento do rob no espao (e.g. acelermetros, inclinmetros), capazes de estimar se o rob ameaa tombar. Alm disto, o rob deve contar com um sistema de juntas e articulaes, controladas de forma coordenada, que lhe permitam fazer os movimentos de suas pernas/patas e assim caminhar.

Figura 1.26. Robs mveis articulados que caminham

Para que fosse possvel realizar um estudo referente ao projeto da configurao de hardware e software de um rob articulado com pernas, foi criado um sistema denominado de LEGGEN [Heinen 2006a]. Este sistema permite a simulao em um ambiente virtual 3D de robs, no qual suas juntas e atuadores so definidos e controlados atravs do uso da biblioteca de simulao fsica ODE. Com isto possvel simular os robs, considerando a sua coliso com outros objetos do ambiente, o contato das patas com o cho, o seu estado de equilbrio e desequilbrio, sendo sujeitos gravidade e a outras foras presentes no ambiente, gerando assim uma simulao adequada para os fins de validao do projeto destes robs mveis autnomos articulados. O sistema de controle inteligente foi implementado com o uso de Algoritmos Genticos AGs (uso da GALib), que possibilitam a otimizao do conjunto de parmetros usado no controle do caminhar. A Figura 1.27 apresenta exemplos de robs quadrpedes com diferentes graus de evoluo do sistema de controle de seu caminhar.

Figura 1.27. LEGGEN - Robs Articulados que aprendem a caminhar

1.6.5. Esquadres de Robs A realizao de experimentos com um rob mvel usualmente j requer um tempo considervel para preparar e realizar os experimentos, e quando se trata de realizar experimentos com sistemas multirrobticos, isto pode requerer uma complexidade ainda bem maior. Por isso, para economizar principalmente tempo, recursos humanos e recursos materiais, o uso de simulaes tem se mostrado uma soluo bastante vivel no estudo e desenvolvimento de sistemas de controle inteligentes para sistemas multirrobticos. Um sistema multirrobtico tem um grande apelo, seja em aplicaes de entretenimento, como o futebol de robs, ou em aplicaes crticas de segurana e interveno em situaes de emergncia (e.g. combate a incndios, busca e resgate, ou aplicaes militares). O sistema RoBombeiros [Pessin 2008] um exemplo de uma aplicao de um sistema multirrobtico para uso no combate a incndios florestais. Esta aplicao foi desenvolvida com a finalidade de criar um esquadro de robs autnomos capazes de definir e executar uma estratgia de ataque e extino de um incndio florestal. Os robs atuam atravs do deslocamento at a zona afetada pelo foco do incndio, realizando uma atuao coletiva a fim de criar um aceiro (retirada da vegetao criando um quebra-fogo) em torno da zona de propagao do incndio. O Projeto RoBombeiros envolveu a criao de um ambiente virtual 3D com simulao de terreno e vegetao, simulao da propagao do incndio, e simulao fsica de robs mveis autnomos. Para a criao do ambiente virtual foi desenvolvido um simulador usando as seguintes ferramentas: OSG (visualizao 3D), Demeter (simulao de terrenos), ODE (simulao fsica), RNA (aprendizado de mquina para navegao autnoma) e AGs (otimizao da estratgia de ao dos robs-bombeiros). A Figura 1.28 apresenta alguns elementos do simulador do projeto RoBombeiros.

Figura 1.28. Esquadro Inteligente de Robs de Combate a Incndios: a) Incndio Real, b) Simulao do Incndio em ambiente virtual 3D, c) Deslocamento dos Robs no ambiente 3D visando cercar o incndio

Figura 1.29. Robs-Formiga: Busca e Otimizao de Caminhos atravs da Inteligncia de Enxames

Um outro projeto de sistemas multirrobticos que explorou o comportamento coletivo dos robs foi desenvolvido atravs do uso de um simulador de robs-formiga [Costa 2007]. Este projeto demonstrou que possvel desenvolver comportamentos de inteligncia de enxames baseados em colnias de formigas (ACO), que apresentam propriedades interessantes de cooperao e otimizao na soluo de problemas (exemplo: achar um caminho otimizado at um alvo ou comida). A Figura 1.29 apresenta um exemplo de otimizao do caminho percorrido pelos robs-formiga. 1.6.6. VA T Veculo Areo o Tripulado O projeto ARARA (Aeronaves de Reconhecimento Assistidas por Rdio e Autnomas) [Neris 2001], est focado no desenvolvimento e uso de UAVs ou VANTs (Veculos Areos No Tripulados), de escala reduzida, para monitoramento areo. Seu principal objetivo o desenvolvimento de aeronaves a serem utilizadas na obteno de fotografias areas, para monitoramento de reas agrcolas e reas sujeitas a problemas ambientais, bem como para aplicaes de militares ou civis de segurana e defesa. O projeto ARARA foi criado a fim de desenvolver UAVs de pequeno porte que podem voar atravs de um controle manual remoto, ou tambm podem realizar misses prestabelecidas pelos usurios, atravs de um controle e navegao autnoma. O projeto ARARA est sendo desenvolvido junto ao Instituto de Cincias Matemticas e de Computao (ICMC) da USP So Carlos em cooperao com a EMBRAPA Instrumentao Agropecuria de So Carlos.

Figura 1.30. VANT AGPlane Decolagem e Estao de Controle

Atravs de parcerias com empresas, como a AGX, foi desenvolvido um VANT denominado de AGPlane [AGX 2009], capaz de navegar seguindo rotas prespecificadas de modo autnomo, com o uso de um GPS, e realizando misses de imageamento areo. O projeto ARARA e do VANT AGPlane envolveram um estudo que vem sendo desenvolvido h diversos anos, englobando o projeto: estrutural e aerodinmico da aeronave, do hardware de controle embarcado, do sistema de imageamento areo, do sistema de comunicao com a base de controle em solo, do sistema de navegao autnoma por GPS. Este projeto vem sendo aperfeioado com o apoio do INCT-SEC (Instituto de Sistemas Embarcado Crticos), sendo um projeto estratgico que envolve questes de navegao autnoma inteligente, sistemas embarcados, de comunicao e de aplicaes crticas (com riscos importantes a serem considerados em caso de acidentes e falhas). A Figura 1.30 apresenta o VANT AGPlane da AGX e na Figura 1.31 podemos ver exemplos de imagens capturadas pelo VANT e seu processamento a fim de extrair informaes relevantes das zonas de cultivo fotografadas.

Figura 1.31. Imageamento Areo e Contagem de rvores Plantadas

1.6.7. Cadeira de Rodas Robtica Projetos de cadeiras de rodas robotizadas para o auxlio a deficientes um tema que tem atrado a ateno de diversos grupos de pesquisa em todo o mundo, como por exemplo, em trabalhos descritos por Miller (1995) e mais recentemente por Parikh (2007). De um modo geral, o projeto de uma Cadeira de Rodas Robtica integra sensores de proximidade de obstculos e um controlador inteligente em um rob mvel autnomo, configurando uma cadeira de rodas motorizada capaz de conduzir o deficiente autonomamente pelas dependncias de um ambiente residencial. Isso realizado minimizando a necessidade de um controle por parte do mesmo ou de terceiros.

Este projeto em desenvolvimento junto ao LRM-USP busca viabilizar a independncia de locomoo de deficientes com pouca coordenao motora, pois o rob cadeira capaz de corrigir as manobras indicadas atravs de um joystick para desviar automaticamente de obstculos e centralizar o veculo em corredores e espaos estreitos. As rotas percorridas podero ser armazenadas em memria para serem refeitas posteriormente de maneira automtica pelo rob cadeira. Este projeto visa desenvolver um sistema de auxlio mobilidade para deficientes fsicos na forma de uma cadeira de rodas motorizada com capacidade de mapear rotas em um ambiente residencial para depois segui-las de maneira autnoma (ver Figura 1.32). O resultado pretendido visa atender s necessidades no somente dos portadores de deficincias fsica, mental e mltipla, mas tambm de pessoas idosas, atravs de uma interface amigvel que procura corrigir automaticamente dificuldades de controle em tempo real. Para isso, pretende-se integrar dispositivos ZigBee [Gislaso 2006], que so componentes de comunicao via rdio similares aos Bluetooth, para a auto-localizao da cadeira em um ambiente especfico via triangulao da energia recebida. Isso permite que o usurio defina uma rota ao conduzir sua cadeira a um local especfico, pois cada ponto do trajeto ser armazenado na memria, para que a cadeira possa repetir a rota de maneira autnoma sempre que o usurio precisar. No caso de deficientes que no possam conduzir a cadeira atravs do joystick, outra pessoa pode conduzi-lo pela residncia uma primeira vez, gerando uma rota que poder ser acionada posteriormente pelo deficiente, contribuindo para sua independncia. Com os sensores embarcados, possvel detectar o risco de coliso com obstculos e pessoas e a cadeira capaz de manobrar sozinha para evitar o choque.

Figura 1.32. Test-drive do Sistema de Mobilidade Autnomo Pessoal, constitudo de uma cadeira de rodas motorizada, controlador de navegao embarcado e bases fixas na residncia para auto-localizao.

No presente projeto, dispositivos dotados de ZigBee [Gislaso 2006] sero utilizados para a estimativa de sua posio relativa. A razo para utilizar uma rede ZigBee, tambm conhecida como IEEE 802.15.4, que a mesma foi especialmente desenvolvida para a transmisso de dados entre sensores em uma soluo simples e de baixo custo. ZigBee opera na faixa ISM, que no requer licena da Anatel, com capacidade de transmisso de 250 kbps. Para a implementao da rede ZigBee, utilizado o kit de desenvolvimento CC2431 da Chipcon-Texas Instruments [Texas

2006], que possui mdulos para a implementao de uma rede ZigBee e ainda hardware especial para a estimao da posio relativa do dispositivo, reduzindo o tempo e custos da implementao. O usurio pode interagir com o sistema atravs de um manete de controle (joystick). Um mdulo de mapeamento de rotas recebe informaes da posio da cadeira do dispositivo ZigBee e armazena os pontos com as coordenadas da trajetria em um banco de rotas, para que o mdulo de planejamento de trajetria possa repeti-la posteriormente a partir da informao de posio recebida do ZigBee. O usurio poder controlar o sistema proposto da seguinte maneira: Com o uso da manopla de controle ser possvel dirigir a cadeira atravs do ambiente e salvar a sua trajetria que poder ser utilizada posteriormente como rota; Atravs da utilizao de indicadores de posicionamento zigbee pode-se configurar a cadeira para seguir um conjunto de rotas previamente armazenado de forma automtica; O usurio pode executar um conjunto de movimentos que sero gravados para posterior execuo automtica; Seleo de Destino - o usurio identifica um destino e o sistema se encarrega de gerar uma rota para alcan-lo; Aps a configurao de um conjunto de movimentos, estes podero ser executados como instrues de alto nvel.

1.6.8. Outras Aplicaes de Sucesso de Robs Mveis Os robs mveis receberam uma grande ateno da mdia e do pblico em geral a partir de aplicaes de grande sucesso, como foi o caso dos Rovers enviados a Marte (Sojourner, Spirit e Opportunity rovers) [Bajracharya 2008] e dos desafios do DARPA, o Grand Challenge de 2005 e o Urban Challenge de 2007 [Thrun 2006, Urmson 2008, Gibbs 2006] (ver Figura 1.33). Estas aplicaes possuem em comum o fato de implementarem sistemas de controle robtico inteligente e robusto que permitiram o sucesso da operao destes. A misso dos robs Spirit e Opportunity completou cinco anos no solo de Marte em Janeiro de 2009, demonstrando o grande avano alcanado pela robtica mvel, que possibilitou esta sobrevivncia em um ambiente hostil por um perodo bastante longo.

Figura 1.33. Vencedores do DARPA Grand Challenge (Stanley / Stanford University) e Darpa Urban Challenge (Boss / CMU University)

No que diz respeito ao Darpa Grand Challenge de 2005, o desafio proposto era de realizar uma grande corrida pelo deserto americano, operando de modo completamente autnomo e atravessando grandes distncias (132 milhas) de um percurso pr-definido em menos de 10 horas. Cinco dos veculos autnomos que participaram da competio completaram o percurso, sendo quatro deles em menos de 10 horas. O vencedor deste rally de 2005 foi o Stanley da equipe de Stanford [Thrun 2006]. Em 2007 o desafio incluiu a interao entre mltiplos veculos em um ambiente urbano, sujeito a restries (regras de trnsito). A competio de 2007 exigiu um grande aperfeioamento dos sistemas de controle e navegao inteligente dos robs, na qual a equipe Boss do CMU se classificou em primeiro lugar, tendo alcanado com sucesso as principais metas da competio: navegao autnoma em um ambiente urbano bem estruturado com mltiplos veculos e regras de conduo.

1.7. Perspectivas de Robtica Mvel Inteligente


Este tutorial apresentou diversos conceitos, tcnicas e exemplos de aplicaes em robtica mvel. Podemos constatar atravs dos diversos exemplos apresentados, que existe uma tendncia de se continuar a aperfeioar os sistemas de controle inteligente de robs mveis, onde o foco atual das pesquisas tem sido no aumento da autonomia e da robustez destes sistemas de modo a poderem atuar em uma gama cada vez maior de tarefas e aplicaes. O projeto integrado com a simulao virtual e a validao em robs reais uma tendncia atual nesta rea, na qual os sistemas de simulao vm sendo bastante aperfeioados de forma a se aproximar cada vez mais os modelos reais e simulados dos robs. As perspectivas futuras nesta rea so muito amplas, incluindo pesquisa sobre robs humanides, robs areos (UAVs Unmanned Aerial Vehicles), sistemas nanorobticos (ex. simulador do projeto Claytronics - http://www.cs.cmu.edu/~claytronics/) e sistemas de explorao espacial. Tambm preciso destacar a importncia que tem tomado o desenvolvimento de sistemas multirrobticos cooperativos, sendo esta tambm uma importante rea de pesquisas para o futuro, onde temos algumas palavraschave que devem ser destacadas: comunicao, interao, colaborao e inteligncia coletiva. Podemos prever que a robtica mvel autnoma ser responsvel por uma nova revoluo no mundo moderno, trazendo inmeros benefcios e grandes desafios para um futuro prximo.

Agradecimentos
Os autores gostariam de agradecer pelas contribuies para este trabalho por parte dos membros do GPVA Grupo de Pesquisa em Veculos Autnomos (Farlei Heinen, Milton Heinen, Christian Kelber, Gustavo Pessin e Cludio Jung) e do Projeto SENA Sistema Embarcado de Navegao Autnoma (Marcelo Becker, Glauco Caurin e Valdir Grassi Jr.). Tambm gostaramos de agradecer pelo apoio e suporte financeiro dos rgos de fomento a pesquisa, CNPq e FAPESP, e pelo seu financiamento ao INCTSEC, processos 573963/2008-8 e 08/57870-9 (Instituto Nacional de Cincia e Tecnologia em Sistemas Embarcados Crticos), e por fim ao LRM-ICMC-USP (Laboratrio de Robtica Mvel do ICMC USP) pelo apoio e recursos disponibilizados.

Referncias Bibliogrficas
Aguirre, L. A.; Da Silva, A.P.A.; Campos, M.F.M; Do Amaral, W.C. (2007). "Enciclopdia de Automtica: Controle e Automao". Editora Blucher: So Paulo, Vol.3 (Robtica). AGX (2009). AGX - AGplane. http://www.agx.com.br/ (Acesso em 08/09/2009). Asimov, I. (1968) I, Robot (a collection of short stories originally published between 1940 and 1950), Voyager - HarperCollinsPublishers, 249p. Assumpo Jr., Jecel; Wolf, Denis F.; Marques, Eduardo (2007). "Towards a Hardware Accelerated Obstacle Avoidance System for Mobile Robots using Monocular Vision", In Proceedings of IEEE International Symposium on Industrial Embedded Systems - SIES, 2007. Bajracharya, M.; Maimone, M.W.; Helmick, D.; (2008) Autonomy for Mars Rovers: Past, Present, and Future. IEEE Computer, Vol. 41, Issue 12, Dec. 2008 p.44-50. Bekey, George A. (2005) Autonomous Robots: From Biological Inspiration to Implementation and Control. The MIT Press: Cambrigde, London. 563p. Bonabeau, Eric; Dorigo, Marco; Theraulaz, Guy (1999). Swarm Intelligence: From Natural to Artificial Systems. New York, NY: Oxford University Press, Santa Fe Institute Studies in the Sciences of Complexity. ISBN 0-19-513159-2. Bonato, Vanderlei (2008) Proposta de uma arquitetura de hardware em FPGA implementada para SLAM com multicmeras aplicada robtica mvel. Tese de Doutorado USP ICMC. So Carlos. Disponvel on-line em http://www.teses.usp.br/ Bonato, Vanderlei ; Holanda, Jos Arnaldo de ; Marques, E. (2006). An Embedded Multi-Camera System for Simultaneous Localization and Mapping. In: International Workshop on Applied Reconfigurable Computing (ARC 2006), Delft. Bonato, Vanderlei; Peron, Rafael; Wolf, Denis F.; Holanda, Arnaldo M.; Marques, Eduardo; Cardoso, Joo M. P. (2007). "An FPGA implementation for a Kalman filter with application to mobile robotics". In Proceedings of IEEE International Symposium on Industrial Embedded Systems - SIES, 2007. Boston Dynamics (2009). Robotic Products (BigDog and RHex) Acesso: 08/02/2009. http://www.bostondynamics.com/content/sec.php?section=robotics Collett, Toby H.J.; MacDonald, Bruce A. and Gerkey, Brian P. (2005). "Player 2.0: Toward a Practical Robot Programming Framework". In Proceedings of the Australasian Conference on Robotics and Automation (ACRA 2005), Sydney, Australia, December 2005. Cominoli, Pascal (2005). Development of a physical simulation of a real humanoid robot. Diploma Work. BIRG, Logic Systems Laboratory (LSL) EPFL, Swiss Federal Institute of Technology, Lausanne. http://birg.epfl.ch/page54249.html Correia, Luis. (2005). Vida Artificial. Mini-Curso de I.A. (MCIA) V ENIA. Anais do ENIA / Congresso da SBC 2005. Sociedade Brasileira de Computao, So Leopoldo, RS.

Costa, Danilo. (2007) Implementao de uma Colnia Artificial de Robs-Formiga. Dissertao de Mestrado em Cincias da Computao ICMC. So Carlos, SP. [Disponvel on-line em http://www.teses.usp.br/ ]. Dissanayake, G., Newman, P. Durrant-Whyte, H. F., Clark, S. and Csobra, M. (2001) A solution to the simultaneous localisation and map building (SLAM) problem. IEEE Trans. on Robotics and Automation, vol.17(3), pp.229-241. Dudek, G.; Jenkin, M. (2000). Computational Principles of Mobile Robotics. Cambridge, London, UK: The MIT Press, 280 p. Elfes, A. (1989) Using occupancy grids for mobile robot perception and navigation, Computer, vol. 22(6), pp.46-57. Eliazar, A.I. and Parr, R. (2004), "DP-SLAM 2.0", In IEEE International Conference on Robotics and Automation, pp.1314- 1320. Fox, D., Burgard, W., and Thrun, S. (1999) Markov localization for reliable robot navigation and people detection, In Modeling and Planning for Sensor-Based Intelligent Robot Systems. Springer Verlag, Berlin. Fox, D., Burgard, W., and Thrun, S. (1999a) Markov localization for mobile robots in dynamic environments, Journal of Artificial Intelligence Research, vol.11, pp.391427. Fox, D., Burgard, W., Dellaert, F. and Thrun, S. (1999b) Monte carlo localization: Efficient position estimation for mobile robots, In Proceedings of the National Conference on Artificial Intelligence (AAAI), Orlando, FL, 1999. AAAI. Gibbs, W. (2006) Innovations from a robot rally, Scientific American. vol.294, January 2006, p.64-71. Gislaso, D. (2006). ZigBee Wireless Networking, CMP Books, 2006, 256 p. Gutmann, J. S. and Konolige, K (1999), "Incremental mapping of large cyclic environments", IEEE International Symposium on Computational Intelligence in Robotics and Automation, pp.318-325. Haehnel, D. and Burgard, W. and Fox, D. and Thrun, S. (2003), "A highly efficient FastSLAM algorithm for generating cyclic maps of large-scale environments from raw laser range measurements", IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.206-211. Heinen, F. J. (2000). Robtica Autnoma: Integrao entre Planificao e Comportamento Reativo. Srie Produo Discente, Editora Unisinos. So Leopoldo, RS. Web: http://ncg.unisinos.br/robotica/ (acesso: fev. de 2009) Heinen, F.; Kelber, C.; Jung, C.R.; Osrio, F.S. (2004). Navegao de Veculos de Carga Autnomos utilizando Viso Computacional com Algoritmo de Segmentao por Cores. In: IV Congresso Internacional de Automao, Sistemas e Instrumentao, 2004, So Paulo: ISA South America, 2004. v. 1. p. 1-10. Heinen, F.; Osrio, F. (2002). HyCAR - A Robust Hybrid Control Architecture for Autonomous Robots. In: HIS 2002 Proc. Of Hybrid Intelligent Systems, Santiago, Chile. Soft-Computing Systems - Amsterdam: IOS Press. V. 87, p. 830-840.

Heinen, Farlei (2002a). Sistema de Controle Hbrido para Robs Mveis Autnomos. Unisinos PIPCA Dissertao de Mestrado em Computao Aplicada. So Leopoldo, RS. Disponvel on-line em: http://bdtd.unisinos.br/ Acesso: 08/02/2009. Heinen, M. R.; Osrio, F. S. (2006a). Applying Genetic Algorithms to Control Gait of Physically Based Simulated Robots. In: IEEE Congress on Evolutionary Computation,. Proceedings of the WCCI - CEC. Vancouver: IEEE Press. v. 1. p. 6714-6721. Heinen, M. R.; Osrio, F. S.; Heinen, F.; Kelber, C. (2006) SEVA3D: Using Artificial Neural Networks to Autonomous Vehicle Parking Control. In: IJCNN - IEEE Intenational Joint Conference on Neural Networks, 2006, Vancouver. Proceeding of the WCCI - IJCNN. Vancouver, Canad : IEEE Press, v. 1. p. 9454-9461. Heinen, M.R.; Osrio, F.S.; Heinen, F.; Kelber, C. (2007). SEVA3D: Autonomous Vehicles Parking Simulator in a three-dimensional environment. INFOCOMP. Journal of Computer Science, Lavras: UFLA. v. 6, p. 63-70, 2007. Honda (2009). Humanoid robot ASIMO. http://world.honda.com/ASIMO/ ou http://world.honda.com/ASIMO/ (Acesso em 08/02/2009). Huskvarna (2009). Automower (Robotic lawn mower). http://www.automower.com/ (Acesso em 08/02/2009). iRobot (2009). Cleaning Robots (Roomba, Scooba, Dirt Dog, Verro) http://www.irobot.com/ ou http://en.wikipedia.org/wiki/Roomba (Acesso: 08/02/09). Jones, S. D., Andersen, C. S., and Crowley, J. L. (1997). Appearance based processes for visual navigation. In: IROS97 Proceedings of the IEEE Intelligent Robots and Systems Conference, Vol. 2, pp. 551-557. Jung, C. R.; Osrio, F. S.; Kelber, C.; Heinen, F. (2005) Computao embarcada: Projeto e implementao de veculos autnomos inteligentes, In: Anais do CSBC05 XXIV Jornada de Atualizao em Informtica (JAI). So Leopoldo, RS: SBC, v. 1, p. 13581406. http://osorio.wait4.org/palestras/jai2005.html (Acesso em 08/02/2009). Kelber, C.R.; Osrio, F.S.; Jung, C.R.; Heinen, F.J.; Dreger, R.S.; Gules, R.; Mello Jr., C.D.; Silveira, M.A.; Schumacher, W.; (2003) "Tecnologias para Automao Veicular - Solues em Mecatrnica e Sistemas de Apoio ao Motorista"; Revista Estudos Tecnolgicos; So Leopoldo: Unisinos. Vol. XXIII, No. 24, p.37-47. Kuipers, B and Byun, Y. T. (1991), A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations., Journal of Robotics and Autonomous Systems, vol.8 pp.4763. Latombe, J. (1991). Robot Motion Planning. Kluwer Academic Publisger, Boston, MA. Leonard, J. J. and Durrant-White, H. F. (1991), Mobile Robot Localization by tracking Geometric Beacons, In IEEE Transactions on robotics and Automation, vol.7, pp376-382. Lester, Patrick (2005). A* PathFinding for Beginners. [online]. GameDev WebSite. http://www.gamedev.net/reference/articles/article2003.asp (Acesso em 08/02/2009). Lidar Wikipedia (2009). LIDAR Sensor (Light Detection and Ranging) - Laser Sick http://en.wikipedia.org/wiki/LIDAR (Acesso em 08/02/2009).

LRM Laboratrio de Robtica Mvel do ICMC USP. http://www.icmc.usp.br/~lrm/ (Acesso em 08/02/2009). Mataric, M. J. (1990), A distributed model for mobile robot environment-learning and navigation Masters thesis, MIT, Cambridge, MA. Medeiros, Adelardo A.D. (1998). A Survey of Control Architectures for Autonomous Mobile Robots. JBCS - Journal of the Brazilian Computer Society, special issue on Robotics, vol. 4, n. 3. Miller, D.; Slack, M. (1995). Design & testing of a low-cost robotic wheelchair prototype. Autonomous Robots, 2(1):7788. Montemerlo, M., Thrun, S., Koller, D., and Wegbreit, B. (2002) FastSLAM: A factored solution to the simultaneous localization and mapping problem, In Proceedings of the AAAI National Conference on Artificial Intelligence. Montemerlo, M., Thrun, S., Koller, D., and Wegbreit, B. (2003), FastSLAM 2.0: An improved particle filtering algorithm for simultaneous localization and mapping that provably converges, In Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence (IJCAI). Neris, Luciano de Oliveira (2001). Um piloto automtico para as aeronaves do projeto ARARA, USP ICMC. Dissertao de Mestrado do PGCCMC. Orientador: Onofre Trindade Junior [disponvel on-line em http://www.teses.usp.br/ ]. Dez. 2001. Osrio, F. S.; Musse, S. R.; Vieira, R.; Heinen, M. R.; Paiva, D. C. (2006). Increasing Reality in Virtual Reality Applications through Physical and Behavioural Simulation. In: X. Fischer. (Org.). Proceedings of the Virtual Concept Conference 2006. 1 ed. Berlim: ESTIA - Virtual Concept - Springer Verlag, v. 1, p. 1-45. Osrio, F. S.; Pessin, G.; Ferreira, S.; Nonnenmacher, V. (2007). Inteligncia Artificial para Jogos: Agentes especiais com permisso para matar... e raciocinar. (Tutorial). SBGAMES 2007 - SBC. So Leopoldo, RS. Parikh, S.P.; Grassi Jr, V.; Kumar, V.; Okamoto Jr, J. (2007). "Integrating Human Inputs with Autonomous Behaviors on an Intelligent Wheelchair Platform". IEEE Intelligent Systems, v. 22, p. 33-41. Pessin, Gustavo (2008). Evoluo de Estratgias e Controle Inteligente em Sistemas Multi-Robticos Robustos. Dissertao de Mestrado PPG em Computao Aplicada da Unisinos: So Leopoldo, RS. Disponvel on-line: http://bdtd.unisinos.br/ ou http://pessin.googlepages.com/ (Acesso em 08/02/2009). Pio, J. L. de Souza e Campos, M. F. M. (2003). Navegao Robtica. XXII Congresso da SBC Anais JAI03. Campinas, SP. Pionneer (2009). MobileRobots Inc. http://www.mobilerobots.com/ (Acesso em 08/02/2009). Ribeiro, C.; Reali, A. e Romero, R., (2001) Robs MveisInteligentes: Princpios e Tcnicas, I Jornada de Atualizao em Inteligncia Artificial - JAIA2001, Anais do XXI Congresso da SBC, vol. 3, pp.257-306.

Righes, E.M.; (2004) "Processamento de Imagens para Navegao de Robs Autnomos"; Relatrio TCC - Informtica; UNISINOS, So Leopoldo, RS. http://osorio.wait4.org/oldsite/alunos/tcc/righes-tc.pdf (Acesso em 08/02/2009). Sahin, H.; Guvenc, L. (2007) Household robotics: autonomous devices for vacuuming and lawn mowing, IEEE Control Systems Magazine, Vol.27, N.2, Apr 2007 p.20-96 SENA (2009). Projeto Sistema Embarcado de Navegao Autnoma (SENA) Desenvolvido na USP de So Carlos pela EESC com colaborao do ICMC. http://www.eesc.usp.br/sena/ (Acesso em 08/02/2009). Siegwart, Roland and Nourbakhsh, Illah R. (2004). Introduction to Autonomous Mobile Robots. A Bradford Book, The MIT Press: Cambridge, London. 317p. Smith, R., Self, M., and Cheeseman, P. (1990), Estimating uncertain spatial relationships in robotics. In Autonomous Robot Vehicles, pp. 167-193. Sony (2009). AIBO Entertainment Robots. http://support.sony-europe.com/aibo/ (Acesso em 08/02/2009). Texas Instruments, CC2431DK Development Kit User Manual Revision 1.1, http://www.chipcon.com/files/CC2431DK%20Development%20Kit%20User%20Ma nual_1_11.pdf, acessado em 31/07/2006, 2006, 35 p. Thrun, S. et al. (2006) "Stanley: The Robot that Won the DARPA Grand Challenge," Journal of Field Robotics, Vol. 23, No. 9, June 2006, p.661-692. http://robots.stanford.edu/papers.html (Acesso em 08/02/2009). Thrun, S., Fox, D., and Burgard, W. (1998), A probabilistic approach to concurrent mapping and localization for mobile robots, Machine Learning, vol. 31, pp.29-53. Thrun, S.; Burgard, W.; Fox, D. (2005). Probabilistic Robotics. Cambridge: The MIT Press. 667p. Urmson, Chris et al. (2008). Autonomous driving in urban environments: Boss and the Urban Challenge. In: Journal of Field Robotics. Vol. 25 , Issue 8 (August 2008). Special Issue on the 2007 DARPA Urban Challenge, Part I. Pages 425-466. Wolf, D. F. and Sukhatme, G. S. (2005) "Mobile Robot Simultaneous Localization and Mapping in Dynamic Environments," In Autonomous Robots, v.19, n.1, pp. 53-65. Wolf, D. F.; Holanda, F. J. A.; Bonato, V.; Peron, R.; Marques, E., (2007). An FPGAbased mobile robot controller, In IEEE Southern Conference on Programmable Logic, Mar del Plata, p. 119-124. Wolf, D. F. ; Netto, C. N. (2008). Vision-based outdoor navigation using mobile robots. In: IEEE LARS - Latin American Robotics Symposium, Salvador-BA, p. 35-39.