Anda di halaman 1dari 8

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELTRICA CURSO DE ENGENHARIA ELTRICA

Projeto de Introduo a Robtica

Marcus Vinicius e Barros Silva 200721763 Evandro Abreu De Oliveira 200721607 Hommel Ferreira De Paiva 200722093 Thales Bruno Costa De Azevedo 200506662 Watson David De Oliveira Carvalho - 200506668

Professor: Pablo Javier Alsina Natal (RN), Dezembro de 2010

Resumo
A gerao de bons movimentos em tempo real para corpos com muitos graus de liberdade ainda um desafio. Uma quantidade elevada de graus de liberdade aumenta de forma exponencial a quantidade de posies diferentes que um determinado corpo pode obter. Fazer uso dessa quantidade de possibilidades para gerar movimentos complexos pode ser extremamente til para planejamento de movimento de robs ou personagens virtuais, porm incrivelmente caro em termos computacionais. Existem muitos algoritmos que se baseiam no uso de mapas de caminhos (chamados roadmaps) para trabalhar com corpos com muitos graus de liberdade. Um roadmap funciona como uma coletnea de poses de um corpo interligadas entre si, onde cada ligao representa uma possibilidade de transio livre de colises. Geralmente as tcnicas que utilizam roadmaps usam abordagens determinsticas ou aleatrias para atender um objetivo. Atravs dos mtodos determinsticos possvel explorar de forma mais uniforme o espao de configurao, garantindo uma melhor cobertura e qualidade do roadmap. J as abordagens aleatrias, geralmente permitem um melhor desempenho e, principalmente, tornam viveis as aplicaes de uma soluo para corpos com muitos graus de liberdade. Neste trabalho proposto um mtodo determinstico adaptvel para a gerao de roadmaps que prov uma cobertura adequada do espao de configurao em um tempo perfeitamente aceitvel em comparao a outros mtodos. Para fazer isso, usou-se a tcnica de busca em grafos, para tanto foi implementado o algoritmo A*, que ser explicado no desenvolvimento deste trabalho.

Introduo

Encontrar o melhor caminho ou simplesmente um caminho qualquer entre dois pontos tem sido tema de diversos estudos. A dimenso das abordagens cresce consideravelmente quando a ilustrao de um ponto pode representar um complexo esqueleto com diversas juntas, cada uma com n graus de liberdade, cada qual com um valor associado. Ou um veculo em um espao tri-dimensional onde suas momentneas foras de atuao representam um estado em um mapa de possibilidades. A necessidade de encontrar caminhos que conduzam um corpo de uma posio para outra freqente em diversas reas: na animao o ponto principal, onde um movimento deve atender a requisitos exigentes, procurando passar o mximo de naturalidade a quem assiste; quando usado na rea de jogos, o planejamento de movimentos no precisa sempre buscar o mximo realismo possvel, entretanto deve ser rpido, permitindo a interao em tempo real com o jogador; j na robtica, os movimentos devem ser precisos, minuciosos, j que erros podem vir a provocar acidentes graves, danos ao rob, ou at mesmo perda da produo de um bem caro.

Abordagens para Planejamento de Caminhos

Um mapa de caminhos (mais conhecido por roadmap) um conjunto de estados de configurao de um corpo ou alguns deles (ou todos) esto interconectados entre si. Cada conexo entre dois estados representa uma forma vlida, livre de coliso, de mudar de um Estado de Configurao (EC) ao outro (Figura 1)

Figura 1: Mapa de caminhos plano para resoluo de problemas de planejamento de movimentos translacionais 2D.

Desenvolvimento

O presente projeto foi desenvolvido usando a linguagem C++ e tambm contou com o auxlio da plataforma grfica QT, essa plataforma foi necessria para poder-se desenhar na tela do computador o ponto inicial do rob, o nmero de obstculos, o nmero de vrtices de cada obstculo e tambm o ponto final de onde se deseja que o rob chegue. O programa possui uma janela inicial, que mostra uma tela em branco, dois botes para a entrada de dados (nmero de obstculos e nmero de vrtices de cada obstculo) e cinco botes para iniciar, limpar, sair, mostrar o grafo, e resolver. O operador ao iniciar o programa dever primeiro selecionar o ponto de onde o rob partir, isso possvel dando-se um clique simples com o boto direito do mouse na rea delimitada pela linha vermelha. Aps isso, dever-se- escolher o nmero de obstculos e o nmero de vrtices deles. A funo que desenha os polgonos funciona da seguinte forma: a cada clique do mouse essa funo desenha uma linha do ponto do ultimo clique do mouse at o clique atual at acabar o nmero de vrtices de cada objeto. Abaixo na Figura 2 mostrado a tela inicial do programa, os botes de entrada de dados, um ponto de partida inicial genrico (em amarelo), outro ponto final genrico (em azul) e o obstculo, neste caso existe apenas um obstculo, que um polgono com 4 vrtices.

Figura 2: Tela inicial do programa. Aps configurar os pontos iniciais, clicando no boto Grafos, pode-se ver o grafo correspondente aos pontos colocados. Nesse grafo mostrado a todas as ligaes possveis entre todos os vrtices dos obstculos e os pontos finais e iniciais. Esse grafo ter ainda que ser trabalhado, de forma a eliminar as conexes entre os vrtices ditas

impossveis, ou seja, no pode haver ligaes que se cruzem entre os vrtices de um polgono (ligaes que passem por dentro do obstculo), pois estas ligaes no podero ser utilizadas pelo algoritmo A*. Na Figura 3, mostrada abaixo mostrada um grafo qualquer, somente ilustrativo.

Figura 3: Grafo do planejador de caminhos. Depois de serem eliminadas as conexes que no so permitidas entre os vrtices dos obstculos e o ponto inicial e final, mostrado o grafo final. Ser a partir deste grafo que o algoritmo A* ir se basear, para cada distncia entre dois pontos ir atribuir-se um peso e a partir desses pesos, o algoritmo A* ir achar o menor caminho entre o ponto inicial e o ponto final. Na Figura 4, mostrada abaixo mostrada o grafo final, neste caso o nmero de obstculos escolhidos foram trs, e cada um com trs vrtices, ou seja, trs tringulos.

Figura 4: Grafo de caminhos possveis.

Concluso
Nesse trabalho projetamos e implementamos um algoritmo para mapear e planejar o menor caminho para um rob mvel, capaz de lev-lo de um ponto inicial at um ponto final qualquer, especificado pelo operador, atravs de obstculos dos mais diversos tipos e formatos, tambm especificado pelo operador do programa. Os dados de entrada do programa so a posio inicial do rob mvel, a posio final desejada, o numero de obstculos e suas respectivas formas, ou seja, triangulares, quadradas, dentre outras. possvel criar obstculos das mais diversas formas poligonais. O algoritmo foi implementado na linguagem C++, que uma linguagem de alto nvel e que est hoje amplamente difundida nos mais diversos meios de programao. Para poder realizar a interface grfica, ou seja, mostrar na tela do computador do operador, o rob, os obstculos e o caminho calculado at o ponto final desejado, foi utilizado o QT, que uma plataforma que possui inmeras bibliotecas grficas e que permite desenhar objetos, figuras, ou animaes na tela do computador. No presente trabalho foi descrito um mtodo relativamente simples de planejamento de trajetrias de robs mveis em ambientes desconhecidos. O mtodo usado baseado no mapeamento de rotas. Esse mtodo tem como princpio bsico capturar cada conectividade dos obstculos na forma de uma rede de curvas (Mapa de Rotas), que ser usada como possveis conjuntos de caminhos. O planejamento se reduz a buscar um caminho entre o ponto inicial e o ponto final atravs dessa rede. Para se buscar o menor caminho, usou-se a tcnica de busca em grafos, para tanto foi implementado o algoritmo A*. O algoritmo A*, usa um conjunto de seqncias baseados na distncia euclidiana ao alvo como funo heurstica para guiar a busca. Esse mtodo de busca aplicvel a grafos em que os arcos tm custos associados, como por exemplo, a distncia euclidiana entre os ns, assim o custo de um caminho definido como a soma dos custos dos seus arcos. Ao final da implementao foi possvel ver como poderoso o algoritmo A*, ele sempre ser capaz de encontrar um caminho entre um ponto inicial e um ponto final, desde que seja fisicamente possvel, mesmo se colocarmos as mais diversas configuraes. Ao contrrio de outros mtodos, como por exemplo, mtodos baseados em decomposio de clulas complexas, esse algoritmo de fcil implementao e compreenso, o que facilita e gera pouco esforo computacional e pouco esforo para program-lo.