Apesar de sua ampla utilização, processadores de finalidade geral não são ideais para a maioria das aplicações que executam. Para quase todas as aplicações, mudanças ou adições que melhorariam significantemente o desempenho podem ser sugeridas nas arquiteturas dos microprocessadores. Entretanto, as adições diferem de aplicação para aplicação.

Apesar de sua ampla utilização, processadores de finalidade geral não são ideais para a maioria das aplicações que executam. Para quase todas as aplicações, mudanças ou adições que melhorariam significantemente o desempenho podem ser sugeridas nas arquiteturas dos microprocessadores. Entretanto, as adições diferem de aplicação para aplicação.
O hardware reconfigurável apresenta-se como uma alternativa tecnológica que pode adaptar-se a aplicação com a facilidade de um processador de finalidade geral, enquanto mantém as vantagens de desempenho do hardware dedicado. Com essa inerente velocidade e adaptabilidade, a computação reconfigurável tem um grande potencial a ser explorado especialmente em aplicações que necessitam de alto desempenho como arquiteturas paralelas, processamento de imagens e aplicações de tempo real.
Neste artigo apresenta-se um overview desta tecnologia ainda nova, apontando algumas possibilidades de aplicação na área de robótica.

1 Introdução


A evolução das metodologias de projeto de hardware, apoiadas em poderosas ferramentas de software que aceleram o ciclo de desenvolvimento, e especialmente o surgimento de dispositivos reconfiguráveis como os FPGAs (Field-Programmable Gate Arrays) abriu um novo horizonte entre os extremos da computação de finalidade geral e o hardware dedicado. Os FPGAs combinam a flexibilidade de dispositivos programáveis (como PLDs e microprocessadores de finalidade geral) com o desempenho do hardware de finalidade específica (como ASIC). [Brown, 1997] .

Hoje, é possível desenvolver rapidamente um projeto de sistema digital empregando-se novas metodologias como linguagens de descrição de hardware (HDLs) [Harding, 1990), ferramentas de síntese lógica e simulação. Utilizando-se os circuitos reconfiguráveis pode-se implementar em campo, sem necessidade de processos de fabricação de chips, um protótipo ou a versão final do projeto desenvolvido [Chan, 1994].

Uma área promissora para aplicação de FPGAs, que ainda está começando a se desenvolver, é a implementação de máquinas computacionais dedicadas e reprogramáveis dinamicamente. Isto envolve o uso das partes programáveis para "executar" algoritmos, ao invés de compilá-los para a execução numa CPU. No simpósio FCCM (Field-Programmable Custom Computing Machines), há previsões que em 2003 90% dos sistemas embutidos irão utilizar dispositivos reconfiguráveis [FCCM, 1998].

Na área de robótica há grandes desafios no desenvolvimento de algoritmos para controle de robôs móveis, que geralmente demandam muitos recursos computaci-onais para execução em tempo real. A seguir apresenta-se um overview dessa nova e empolgante área de Computação Reconfigurável. Descreve-se também uma das linhas de pesquisa do Laboratório de Computação Reconfigurável do ICMC-USP, que em conjunto com o LABIC (Laboratório de Inteligência Computa-cional) e com a CMU (Carnegie Mellon University - USA), pretende implementar algoritmos de robótica em hardware reconfigurável e a longo prazo, construir um robô móvel com uma arquitetura reconfigurável e flexível, visando atender os requisitos deste tipo de aplicação.


2 Computação Reconfigurável


Em termos básicos, a computação reconfigurável combina a velocidade do hardware com a flexibilidade do software. A tecnologia da computação reconfigurável consiste na habilidade de se modificar o hardware da arquitetura do sistema em tempo real para se adequar à aplicação; e isto deve ser realizado com o chip energizado.

Os sistemas de computação reconfigurável são plataformas onde a arquitetura pode ser modificada em tempo real para melhor se adequar à aplicação que será executada, Deste modo, o processador reconfigurável passa a trabalhar com uma arquitetura desenvolvida exclusivamente para aquele determinado tipo de aplicação, permitindo uma eficiência muito maior do que a normalmente encontrada em processadores de uso geral. Isto ocorre porque o hardware é otimizado para executar os algoritmos necessários para aquela aplicação específica; ou seja, para se obter um melhor desempenho de um algoritmo, este deve ser executado num hardware específico para ele. Acentuados ganhos de desempenho podem ser obtidos com a utilização deste hardware específico.

Atualmente, a forma de utilização mais difundida dos chips reconfiguráveis é como parte de sistemas que utilizam processadores tradicionais. Os chips reconfiguráveis atuam como coprocessado-res trabalhando com algoritmos pesados e específicos e dessa forma aliviando a carga do processador principal permitindo que este possa executar outras tarefas mais genéricas. Nesses casos o chip reconfi-gurável pode ser comparado com um plug-in do sistema. Ele se adapta em tempo real para tarefas especificas e pesadas que certamente exigiriam grande tempo de processamento do microprocessador principal [Cardoso, 2000; Star Bridge, 2000].


2.1 Tendências


A computação reconfigurável é ainda um campo extremamente novo. Apesar dos conceitos básicos de computação reconfigurável terem sidos propostos na década de 1960, as primeiras demonstrações só vieram ocorrer poucos anos atrás e os FPGAS atuais ainda não estão preparados para explorar todas as possibilidades desta técnica [Villasenor, 1997].

Pesquisadores acadêmicos e fabricantes estão superando numerosas limitações que dificultam a adoção da computação reconfigurável. Nem todas as operações computacionais podem ser implementadas eficientemente nos FPGAs atuais: eles são bem adequados para algoritmos compostos por operações bit-level, como o reconhecimento de padrões e aritmética inteira, mas não são apropriados para operações numéricas como multiplicação de alta-precisão e cálculos com ponto flutuante. Além disso, os FPGAS possuem pouca memória no chip para armazenar resultados intermediários dos cálculos, assim, muitas aplicações de computação reconfigurável requerem grandes memórias externas. A transferência de dados do FPGA e para o FPGA aumenta o consumo de potência e pode diminuir muito o desempenho.

Felizmente, pesquisadores estão desenvolvendo arquiteturas de FPGAs mais avançadas que contém mais memória, unidades de processamento aritmético e outros blocos de circuito para finalidades especiais, como a linha Virtex da Xilinx, que já atinge a quantia de 4 milhões de portas lógicas.

FPGAs nunca irão substituir micropro-cessadores em tarefas computacionais de finalidade geral, mas o conceito de computação reconfigurável irá exercer um importante papel no desenvolvimento de sistemas de computação de alto desempenho. O poder computacional que os FPGAs oferecem os transformam nos dispositivos mais adequados para aplicações que envolvem algoritmos onde uma rápida adaptação aos dados de entrada é requerida.

Ainda mais, a fronteira entre processadores programáveis e FPGAs irá se tornar mais tênue: as futuras gerações de FPGA irão incluir funções como memória local e multiplicadores que são padrões em microprocessadores; as novas gerações de microprocessadores em desenvolvimento também irão dar suporte a algum grau de reconfiguração, de forma similar aos FPGAs. De fato, assim como computadores conectados à Internet podem automa-ticamente carregar componentes de software de finalidade especial para realizar determinadas tarefas, futuras máquinas deveram carregar novas configurações de hardware à medida que forem necessárias. Os equipamentos computacionais nos próximos anos irão incluir uma forte mistura de hardware programável via software e hardware reconfigurável.


3 Robótica


Robôs são dispositivos mecânicos versáteis (por exemplo, braços mecânicos articulados, veículos terrestres, áereos ou submarinos, etc) equipados com sensores e atuadores sob o controle de um sistema computacional. Eles realizam tarefas executando movimentos num espaço físico. Este espaço é povoado por vários objetos e está sujeito às leis da natureza [Salant, 1990].

Nos últimos anos têm-se observado um vertiginoso crescimento do potencial de sistemas robóticos. Numa primeira etapa houve um grande desenvolvimento na área de robótica industrial. A implantação no chão de fábrica de robôs industriais trouxe benefícios como a melhoria da eficácia, da qualidade, redução da mão-de-obra, além de mais eficiência, confiabilidade e redução de custos. Vantagens adicionais incluem a capacidade de realizar tarefas para as quais os humanos teriam grande dificuldade, e a remoção de humanos de tarefas em ambientes perigosos.

Numa nova etapa de evolução, pesqui-sadores em robótica têm concentrado esforços na construção de Robôs Móveis, introduzindo as capacidades de mobilidade e autonomia para reagir adequadamente ao ambiente, o que abre um vasto campo de novas aplicações e conseqüentemente muitos desafios.


3.1 Robôs Móveis: Aplicações e Requisitos



Dentre algumas possibilidades de uso de robôs móveis pode-se citar o transporte de materiais, combate a incêndios, desativação de explosivos, vigilância de armazéns, viagens submarinas e aeroespaciais e prestação de serviços interagindo com pessoas para auxílio a tarefas rotineiras [Simmons, 1995].

Os problemas enfrentados no desenvolvimento de robôs móveis geralmente estão relacionados com a necessidade de interagir com os objetos físicos e entidades do ambiente. A plataforma deve ser capaz de navegar a partir de uma posição conhecida para uma nova localização desejada, evitando colisões com objetos fixos e móveis durante sua rota [Medeiros, 1998].

Para funcionar em um ambiente desestruturado, desconhecido ou dinâmico, um robô móvel deve ser capaz de perceber as circunstâncias e gerar ações que são apropriadas para o ambiente e para os objetivos do sistema robótico.

Robôs Móveis precisam combinar informações de várias fontes diferentes. Um bom sistema de sensoriamento é fundamental para adquirir dados que descrevem o ambiente, em tempo real e com alta resolução, e ainda com as limitações dos recursos computacionais e de consumo de energia do veículo móvel. Algumas considerações gerais sobre o sistema de sensoriamento estão sintetizadas a seguir [Everett, 1995]:

- Campo de visão ~V deve ser abrangente o suficiente e com bom alcance de profundidade.
- Alta precisão e resolução.
- Capacidade de detecção de todos os objetos do ambiente.
- Operação em tempo real
- Dados concisos e fáceis de interpretar ~V uma quantidade de dados excessiva ou insuficiente implicam em atrasos nas respostas ou respostas inadequadas. Algum grau de pré-processamento e análise é requerido para prover respostas somente quando uma ação for necessária.
- Redundância ~V o sistema não deve ficar incapacitado pela falha de algum dispositivo. Deve ter uma capacidade multimodal para assegurar a detecção de todos os objetos, assim como aumentar a confiabilidade da resposta.
- Simplicidade ~V o sistema deve ser de baixo custo e modular para permitir uma fácil manutenção e atualizações.
- Consumo de potência ~V os requisitos de potência devem ser mínimos devido aos limitados recursos de um veículo móvel.
- Tamanho ~V o tamanho e o peso do robô devem ser adequados para a realização prática de suas tarefas.

Alguns outros requisitos de robôs móveis são:
- Necessidade de tele-operação e controle autônomo.
- Execução de tarefas não repetitivas.
- Dinâmica e cinemática complexa.
- Novos mecanismos de locomoção.
- Capacidade de trabalhar em ambientes hostis com bruscas variações de temperatura, exposição a radiação, vácuo, iluminação variável.
- Necessidade de recuperação devido a eventos não planejados, incluindo falhas do sistema e erros.


Em resumo, a próxima geração de robôs móveis deve ser bem mais flexível para responder a eventos imprevistos que a geração atual. Especialmente para aplicações de operações espaciais é requerida a habilidade de trabalhar em um ambiente não bem definido e que não é controlável, ao contrário do ambiente industrial.


3.2 Desafios da Robótica

Mesmo atualmente, após décadas de pesquisas e desenvolvimento, a concretização dos "sonhos" dos pesquisadores, incluindo todas as capacidades e funcionalidades necessárias para as aplicações vislumbradas, esbarra em uma série de dificuldades tecnológicas.

Os principiais gargalos no desenvolvimento das aplicações são os recursos computacionais (algoritmos e arquiteturas), recursos de comunicação e sensores. Este é um campo de pesquisa multidisciplinar que envolve áreas de conhecimento como Inteligência Artificial, Redes Neurais, Computação Paralela, Física, Mecatrônica, dentre outras.


3.2.1 Algoritmos de Robótica

Algoritmos são abstrações que podem ser descritas e analisadas independentemente de qualquer tecnologia específica. A análise da complexidade de algoritmos contribuiu muito para o progresso da indústria de software e hardware.

Os algoritmos de robótica são descrições abstratas dos processos relativos às ações de navegação e percepção executadas no ambiente. Assim como os algoritmos computacionais, algoritmos de robôs podem ser desenvolvidos e analisados independentemente de sua implementação particular. [Latombe, 1995] Entretanto, também diferem de forma significativa dos algoritmos computacionais. Realmente, enquanto estes últimos têm total controle e completo acesso aos dados que utilizam, os algoritmos de robótica são aplicados a objetos físicos do mundo real, os quais os algoritmos tentam controlar, apesar do fato desses objetos estarem sujeitos às independentes e imperfeitamente modeladas leis da natureza. A aquisição de dados através de sensores também está sujeita a erros. Conseqüentemente, algoritmos de robótica possuem características clássicas da teoria de controle, normalmente ausentes em algoritmos computacionais. A complexidade do ambiente e suas possíveis variações para a realização da mesma tarefa também levantam questões combinatoriais como encontrar um caminho livre de colisões com obstáculos e confrontar dados de sensores com um modelo padrão. Esta mistura singular de questões relativas a controle e algoritmos de programação é o núcleo da "Ciência Robótica". O enten-dimento, desenvolvimento e análise de algoritmos de robótica devem causar um impacto na robótica similar em magnitude ao impacto do estudo de algoritmos em sistemas de computação.


Portanto, muitos pesquisadores em robótica enfocam prioritariamente o desenvolvi-mento de algoritmos, pois consideram que a principal limitação para construção de robôs está em como controlá-los, ou seja, como criar programas capazes de operar estas máquinas complexas [Brooks,1986]. Isto é um problema de software [Jones, 1993]. Um dos ramos da computação que se ocupa da pesquisa do desenvolvimento destes softwares para o controle de robôs é chamado de Inteligência Artificial (IA). Os principais tópicos estudados no desenvolvimento de algoritmos de robótica são: Planejamento do Movimento e Navegação [Mataric, 1990; Trhun, 1996], Manipulação de Objetos, Visão Computacional (reconhecimento de objetos, tratamento de imagens) e mais recentemente também têm sido abordada a área de Interface Homem-máquina, buscando facilitar a interação dos usuários com os sistemas robóticos, o que implica no desenvolvimento de algoritmos para reconhecimento de voz e gestos [Torrance, 1994; Waldherr, 1999].


3.3 Futuro e Perspectivas da Robótica

As tecnologias para construção de sistemas robóticos robustos e com capacidade de mobilidade já amadureceram a ponto de não existir somente experimentos e demonstrações de laboratório. Já alcançaram um patamar onde aplicações viáveis comercialmente não são somente conceitos futuristas, mas são realidades baseadas nas capacidades já disponíveis. Como resultado, observa-se o surgimento de um novo mercado não mais confinado às plantas industriais. Em breve será possível comprar robôs que irão operar com pouco ou nenhum conhecimento prévio em plantações, minas de cobre e transporte de cargas . As expectativas de vendas dessas máquinas são projetadas para superar até quatro vezes as vendas de robôs industriais. Um estudo preliminar, patrocinado pelo NREC, identificou 14 segmentos industriais que podem se beneficiar significantemente do uso da robótica, em termos de aumento de produtividade, segurança e redução de custos de operação. Essas indústrias incluem os ramos de agricultura, silvicultura, armazenamento e transporte de cargas, construção civil, manipulação de materiais perigosos e mineração. Em cada uma dessas áreas, o estudo aponta que as vendas potenciais de sistemas de robótica para uso em campo pode exceder a US$ 2 bilhões na próxima década. [NASA, 2000]

4. Aplicando Computação Reconfigurável em Robótica

Uma das mais promissores aplicações para computação reconfigurável é a comparação de padrões (pattern matching). Esta técnica é usada em tarefas como reconhecimento de escrita, identificação de faces, recuperação em bases de dados e reconhecimento de alvos, sendo bastante útil e amplamente utilizada em algoritmos de robótica. Uma operação fundamental na comparação de padrões é a comparação de um conjunto de bits (representando uma imagem, uma string de caracteres ou outros dados) com um conjunto de modelos (templates) que correspondem aos possíveis padrões a serem reconhecidos. O sistema declara o reconhecimento quando o número de bits de entrada correspondentes ao modelo ultrapassa um certo limite. No caso de reconhecimento de alvos, o grande desafio é rápida comparação de uma imagem de entrada com milhares de modelos. O sistema precisa realizar as comparações a uma taxa de vários trilhões de operações por segundo, pois todos os pixels da imagem devem ser comparados com todos os pixels dos muitos modelos.

No Departamento de Engenharia Elétrica da UCLA, [Villasenor, 1997] foi construído o protótipo de um sistema de reconhecimento com hardware reconfigurável que obteve significante economia de hardware pelo auto-ajuste do circuito para cada modelo comparado. Muitos dos pixels de uma imagem típica não contribuem para os resultados da comparação, portando a máquina reconfigurável pode simplesmente omiti-los dos seus cálculos. Um sistema convencional não poderia facilmente operar da mesma maneira, pois os pixels a serem ignorados diferem muito de um modelo para outro.

Uma outra abordagem interessante de aplicação de computação reconfigurável à robótica é o sistema de computação, desenvolvido pela NASA [ ], chamado de Processador Matemático de Robôs (RMP). Este sistema contém um grande número de elementos de processamento (PEUs) conectados em várias combinações paralelas e seriais que são reconfiguráveis via software. O RMP é uma arquitetura de propósito especial projetada para resolver problemas computacionais diversos em controle de robô, simulação, geração de trajetória, análise de ambiente de trabalho, dentre outros. É uma arquitetura paralela especializada algoritmicamente capaz de explorar as propriedades comuns dos algoritmos paralelos desenvolvidos para esta classe de problemas. Pode explorar o paralelismo em diferentes formas e em vários níveis computacionais nestas aplicações pesadas e computacionalmente intensivas. Da perspectiva de interação com outro equipamento de computação, o sistema pode ser considerado como um processador que pode ser acoplado ao barramento da máquina host externa como uma parte do barramento de memória. O sistema interage com o processador externo controlado pelo usuário. O processador do host externo pode ser qualquer computador stand-alone ou um sistema com multiprocessadores. Os dados e instruções do host externo para o RMP e os resultados do RMP para o host externo são comunicados através de compartilhamento de memória de acesso dual que é parte do barramento de memória.


5. Proposta de Construção de um Robô Móvel aplicando a Tecnologia de Computação Reconfigurável

O Laboratório de Computação Reconfi-gurável do ICMC-USP está desenvolvendo, juntamente com o LABIC (Laboratório de Inteligência Computacional) e o com a CMU (Carnegie Mellon University - USA), um projeto que a longo prazo pretende construir um robô móvel com arquitetura totalmente baseada em computação reconfigurável [Romero, 2000]. Para este sistema, inicialmente, será construído uma biblioteca de algoritmos de robótica descritos na linguagem VHDL [ Ashenden, 1996]. A implementação de hardware dos algoritmos escolhidos usará a tecnologia de computação reconfigurável [Madisetti, 1996]. Num futuro próximo, pretende-se construir um kernel que controlará de forma inteligente a execução dos algoritmos desta biblioteca, para ser usado no robô móvel. O fato da implementação de hardware estar usando a tecnologia de computação reconfigurável permitirá a construção de um robô projetado com circuitos integrados que são reconfigurados em tempo de execução (sem que o hardware seja desligado), dando ao robô a possibilidade de trabalhar com diversos tipos de hardware numa mesma implementação. Esta possibilidade de reconfigurar o CI em tempo de execução, carregando-se um outro algoritmo mais adequado para aquela determinada tarefa só será possível a longo prazo com a construção de um hardware "camaleão"; e as FPGAs disponíveis no momento estão ainda bastante limitadas nesse aspecto [DeHon, 1999]. Mas, no futuro, isto viabilizará a obtenção de um sistema mais flexível e de mais fácil adaptação a diferentes ambientes, voltado a aplicações em tempo real, visando, posteriormente, a construção de um robô completo com uma arquitetura reconfigurável.
Para a implementação a nível de hardware, usando a tecnologia FPGA, alguns algoritmos deverão ser discretizados e todos deverão ser reescritos na linguagem de descrição de hardware VHDL. Os algoritmos implementados na versão de
hardware serão testados inicialmente no sistema de emulação de hardware "APTIX"
disponível no Laboratório de Computação Reconfigurável.



5.1 Ferramenta para o Auxílio na Construção do Hardware do Robô

O Laboratório de Computação Reconfi-gurável do ICMC-USP está trabalhando no desenvolvimento de um projeto denominado ARCHITECT [Gonçalves, 2000]. O ARCHITECT é um sistema de computação reconfigurável que atua no desenvol-vimento de pesquisas na área de compiladores, arquitetura de computadores e kernel de sistemas operacionais em tempo-real, visando a exploração máxima do paralelismo encontrado nas mais diversas aplicações .

Para isso serão utilizadas técnicas modernas de otimização de compiladores, exploração de paralelismo em nível de instruções - ILP - e computação reconfigurável.

A idéia é particionar o projeto ARCHITECT de forma a ficar modular, ou seja, o compilador, a arquitetura, e o kernel do sistema poderão ser criados independentemente, seguindo-se apenas algumas regras de interfaceamento entre eles. Este sistema dará suporte a construção do hardware dos algoritmos do robô móvel, pois muitos dos algoritmos que serão utilizados já estão escritos na linguagem C. Deste modo, o ARCHITECT ajudaria na conversão direta desses algoritmos para a linguagem VHDL, poupando muitas horas de trabalho do projetista de hardware, e ao mesmo tempo gerando uma arquitetura para o robô da maneira mais otimizada possível.

6 Conclusão

Como já foi apresentado, a área de Robótica é bastante complexa e há muito que se fazer ainda nesta área. A proposta de um robô móvel implementado com a tecnologia de computação reconfigurável é uma tarefa difícil e de muito longo prazo. Um dos principais motivos é o caráter multidisciplinar desse projeto, uma vez que abrangerá estudos nos seguintes tópicos: projeto de lógica digital, modelamento de sistemas digitais com VHDL, exploração de paralelismo em arquiteturas de computadores, técnicas de inteligência artificial e redes neurais aplicadas à robótica, teoria de controle, lógica fuzzy, kernel de sistemas operacionais de tempo real e, finalmente, a computação reconfigurável propriamente dita. Os resultados destas pesquisas darão muita versatilidade ao robô e isto é um requisito fundamental para a evolução da área da robótica.


7 Referências

Ashenden, P. J., The Designer's Guide to VHDL, Emorgan Kaufmann Publishers, Inc., 1996.
Brooks, R.A., "A Robust Layered Control System for a Mobile Robot", IEEE Journal of Robotics and Automation, RA-2, pp. 14-23, 1986.
Brown, S.; Rose, J.; Francis, R.; Vranesic, Z. "Field Programmable Gate Arrays", Kluwer Academic Publisher, 1997.
Cardoso, J.M.P; Vestias, M.P., Architectures and Compilers to Support Reconfigurable Computing,www,acm.org/crossroads/xrds5-3/rcconcept.html, Janeiro de 2000.
Chan, P.; Mourad, S. "Digital Design using Field Programmable Gate Arrays", Prentice Hall, 1994.
DeHon, A., Wawrzynek, J., Reconfigurable Computing: What, Why, and Design Automation Requirements? In Proceedings of the 1999 Design Automation Conference, pp. 610--615, June 1999.
Everett, H. R., "Sensors for Mobile Robots Theory and Application", A K Peters, Ltd. , Wellesley, Massachusetts, 1995
FCCM '98 Top 10 Predictions for FCCMs in 2003, http://www.fccm.org/top10_98.html
Gonçalves, R.A, Wolf, D.F., Coelho, F.A.S., Teixeira, M.A., Ribeiro, A.A.L., Marques, E., ARCHITECT: Um Sistema de Computação Reconfigurável, trabalho submetido ao CORE~R2000.
Harding, B. ~V "HDLs: a high-powered way to look at complex design", Computer Design, p. 74-84, March 1990.
Jones, J.L., Flynn, A. M.,"Mobile Robots: Inspiration to Implementation", A.K.Peters Ltda, 1993.
Latombe, J.C, Robot Algorithms, Algorithmic Foundations of Robotics, edited by Ken Goldberb, p. 1-18, A K Peter, Wellesley Massachusetts, 1995.
Madisetti, V.K., Rapid Digital System Prototyping: Current Practice, Future Challenges, IEEE Design & Test of Computers, 1996.
Mataric, M.J., "A Distributed Model for Mobile Robot Environment-Learning and Navigation", MIT Technical Report 1228, 1990.
Medeiros, A.A D., "A Survey of Control Architectures for Autonomous Mobile Robots", Journal of the Brazilian Computer Society, No. 3, Vol. 4, April, 1998.
NASA Space TeleRobotics Program, http://ranier.hq.nasa.gov/telerobotics_page
Romero, R. A, Aprendizado em Robôs Móveis Via Software e Hardware ~V ARMOSH ~V Projeto de Pesquisa do ICMC-USP, março de 2000.
Salant, M.A ., "Introdução à Robótica", São Paulo, McGraw Hill, 1990.
Simmons, R., Goodwin, R., Haigh, K., Koenig, S., and O'Sullivan, J., "A Layered Architecture for Office Delivery Robots", 1995.
Star Bridge Systems, Overview of SBS´s Reconfigurable Computing Technology http://www.starbridgessystems.com/tech-over.html
Thrun, S., Bucker, A., "Learning Maps for Indoor Mobile Robot Navigation, CMU Technical Report CMU-XS-96-121, 1996.
Torrance, M.C., "Natural Communication with Robots", Master's thesis, MIT Department of Electrical Engineering and Computer Science, Cambridge, MA, 1994.
Villasenor, J.; Mangione-Smith, W.H.; Configurable Computing, Scientific American, Junho de 1997.
Waldherr, S., Romero, R. A, Thrun, S., "Gesture-Based Interface for Human-Robot Interaction", Journal Autonomous Robots, 1999 (in print).

Powered by Web Agency

.
.

Copyright © MedTec do Brasil. Todos os Direitos Reservados.