INTEGRAÇÃO ENTRE SOFTWARE DE PLANEJAMENTO DE TAREFAS DE MOVIMENTAÇÃO E O ROBÔ MÓVEL ROBOTINO. 2.1 Robotino



Documentos relacionados
Projeto de controle e Automação de Antena

5 Sistema Experimental

Procedimento para reinstalação dos aplicativos da mesa multi-toque através da imagem do sistema.

Comunicado à Imprensa

IW10. Rev.: 02. Especificações Técnicas

Fundamentos de Automação

MANUAL RASTREAMENTO 2013

USO DA ARQUITETURA AURA - AUTONOMOUS ROBOT ARCHITECTURE EM UM ROBÔ EXPLORADOR DE LABIRINTO CONTROLADO POR RASPBERRY PI.

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Arquitetura de Rede de Computadores

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Manual Equipamento ST10 Flasher Rev. 1

Manual de Instalação... 2 RECURSOS DESTE RELÓGIO REGISTRANDO O ACESSO Acesso através de cartão de código de barras:...

Funções de Posicionamento para Controle de Eixos

Table of Contents. PowerPoint XP

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Manual do Aplicativo - Rastreamento Veicular

VERSÃO 1 PRELIMINAR MÓDULO 3 - PRESENCIAL

Manual de instruções / Certificado de garantia Controlador CCL-PC

Um Driver NDIS Para Interceptação de Datagramas IP

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

UniRitter tecnológica: integrando Engenharias para desenvolvimento de um robô humanoide

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Symbian

TÍTULO: PROGRAMAÇÃO DE CLP PARA UMA MÁQUINA DE SECÇÃO SEGMENTOS ORGÂNICOS

Anexo III Funcionamento detalhado do Sistema Montador de Autoria

Manual de Operação Aplicativo ClickIt

INFORMATIVO DE PRODUTO

Registro e Acompanhamento de Chamados

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Microsoft Office PowerPoint 2007

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Título: Controle de um sistema Bola- Barra com realimentação através de imagem

Considerações a serem feitas antes da implantação.

Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b

1.3 Conectando a rede de alimentação das válvulas solenóides

Noções de. Microsoft SQL Server. Microsoft SQL Server

APLICAÇÃO PARA ANÁLISE GRÁFICA DE EXERCÍCIO FÍSICO A PARTIR DA PLATAFORMA ARDUINO

MANUAL DO USUÁRIO. para tv TV101

Manual do Usuário - Plataforma Simulados

Comunicação via interface SNMP

Trabalho Interdisciplinar. MS Project

Apresentando o Sistema GeoOffice GPS Profissional

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Visão computacional no reconhecimento de formas e objetos

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Placa Acessório Modem Impacta

ISO/IEC 12207: Gerência de Configuração

APOSTILA LINUX EDUCACIONAL

Procedimento para instalação do BLACKBERRY Software de Imagem via Celular

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Software de Imagem via Celular (SIC) baseado no sistema operacional Windows Mobile

Guia de qualidade de cores

COLETOR DE DADOS. 1. Verificar ou alterar o modo de interface para avançado COLETOR DE DADOS

Controle de Múltiplos Pivôs Centrais com um único Conjunto Motor-Bomba

Manual de utilização do módulo NSE METH-8RL/Exp

Tecnologia de controle para máquinas operatrizes móbil.

Engenharia de Requisitos Estudo de Caso

Implementação de um módulo simulador de robôs baseado em Unity3D para o SimBot - Simulador de Robôs para Lego NXT.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

BI Gerenciamento e Monitoramento de Informações Processuais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Henry Equipamentos Eletrônicos e Sistemas Ltda.

Conteúdo Store manager... 2

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Digifort Mobile Manual Version 1.0 Rev. A

atube Catcher versão 3.8 Manual de instalação do software atube Catcher

Monitor de Rede Elétrica Som Maior Pro. Manual do Usuário Versão 3.9f

CONSTRUÇÃO DE VEÍCULO MECATRÔNICO COMANDADO REMOTAMENTE

Cálculo utilizando variáveis do tipo DATA

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo com.br

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Centro de Controle e Comando

15 Computador, projeto e manufatura

ROTEIRO DE INSTALAÇÃO

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013.

CDE4000 MANUAL 1. INTRODUÇÃO 2. SOFTWARE DE CONFIGURAÇÃO 3. COMUNICAÇÃO

APLICAÇÃO DO SOFTWARE E3 PARA O CONTROLE DO PROCESSO DE PRODUÇÃO ENZIMÁTICA NA NOVOZYMES

Gestão inteligente de documentos eletrônicos

MANUAL DO PVP SUMÁRIO

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

INF 1771 Inteligência Artificial

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Cálculo de volume de objetos utilizando câmeras RGB-D

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Android

TRANSMITINDO CONHECIMENTO ON-LINE

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

DESCRIÇÃO DO FUNCIONAMENTO Basicamente o ANTRON II-s recebe sinais provenientes da atuação de contatos elétricos externos, associados a equipamentos

Tela de Login do Aplicativo

Nota de Aplicação. Utilizando os recursos de segurança dos controladores HI. HI Tecnologia. Documento de acesso público

Transcrição:

Anais do XIX Congresso Brasileiro de Automática, CBA 2012. INTEGRAÇÃO ENTRE SOFTWARE DE PLANEJAMENTO DE TAREFAS DE MOVIMENTAÇÃO E O ROBÔ MÓVEL ROBOTINO LARISSA LEME RESENDE, KLEBER R. S. SANTOS Centro de Referência em Tecnologias da Informação, Instituto de Engenharia de Sistemas e Tecnologias da Informação, Universidade Federal de Itajubá Av. BPS, 1303. Itajubá-MG E-mails: larissa.lresende@gmail.com, santoskr@unifei.edu.br Abstract - This paper presents the integration of software for route planning, as developed for locomotion and accomplishment of tasks of a mobile platform, until then simulated in a virtual environment with the development of routines to drive mobile robots. Using a mobile platform developed by FESTO, Robotino called for testing and investigation of targets. Keywords - Mobile Robots, Robotino, Planning, Integration. Resumo - Este artigo apresenta a integração de um software de planejamento de rotas, já desenvolvido, para a locomoção e realização de tarefas de uma plataforma móvel, até então simulada em ambiente virtual; com o desenvolvimento de rotinas de movimentação para robôs móveis. Utilizando-se a plataforma móvel desenvolvida pela FESTO, denominada Robotino, para realização de testes e averiguação de objetivos. Palavras-chave - Robôs móveis, Robotino, planejamento de tarefas, integração. 1 Introdução O desenvolvimento inicial dos robôs baseou-se no esforço de automatizar as operações industriais. Este esforço começou no século XVIII, na indústria têxtil, com o aparecimento dos primeiros teares mecânicos. Com o contínuo progresso da revolução industrial, as fábricas procuraram equipar-se com máquinas capazes de realizar e reproduzir, automaticamente, determinadas tarefas. Hoje a robótica faz parte de nosso dia a dia, seja na fabricação de bens de consumo ou no desenvolvimento da medicina. Com base neste avanço, surge a possibilidade de substituir o trabalho humano para torná-lo mais seguro ou simplesmente evitar o trabalho repetitivo (Odaguil e Piesco, 2010). Um exemplo é a substituição de tarefas de transporte, isso pode ser realizado atualmente através de robôs conhecidos como AVG s (Automated Guided Vehicle Systems), capazes de se locomover geralmente, por meio da orientação de uma linha (follow line). Uma evolução dos AGV s são os chamados AIV s (Automated Intelligent Vehicle Systems), veículos autônomos inteligentes. Robôs que utilizam técnicas de inteligência artificial para planejar e realizar sua movimentação, sem a utilização de guias. Utilizando-se de softwares de planejamento de ações com atribuição de valores, capacidade de busca e reconhecimento de obstáculos. Ao se integrar estes softwares junto ao controle de locomoção do robô é possível que ele realize tarefas de maneira inteligente e autônoma. Com base nestes conceitos este trabalho visa integrar o software de planejamento de tarefas, desenvolvido pelo professor Kleber Santos (Santos, 2009), ao software de movimentação. De maneira que a plataforma móvel Robotino, desenvolvida pela empresa FESTO Ltda, se movimente em um ambiente parcialmente conhecido, executando as tarefas planejadas. 2 Materiais e Métodos 2.1 Robotino O Robotino é um robô móvel desenvolvido pela empresa FESTO Ltda., (Figura 1), com o propósito didático de oferecer ao usuário um primeiro contato com uma tecnologia que pode ser aplicada principalmente na área de automação industrial. O Robotino é equipado com um sistema de direção omnidirecional e uma câmera com altura e inclinação ajustáveis. Com a câmera é possível exibir imagens em tempo real com a ajuda do software Robotino View. A câmera utiliza conexão USB e tem resolução máxima para vídeo de 640x480 pixels e de 1024x768 para captura de imagem, armazenadas em formato BMP ou JPG. Figura 1 Robotino 4076

2.2 Matlab MATLAB (MATrix LABoratory) é um software interativo de alta performance voltado para o cálculo numérico. Ele integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos, onde problemas e soluções são expressos somente como eles são escritos matematicamente. O Robotino possui uma versão de ferramentas (Toolbox) exclusiva para uso do MatLab, que permite a programação, simulação, verificação de erros e controle do robô pelo próprio programa. Por apresentar uma versatilidade e uma gama maior de opções que o programa básico oferecido pela Festo, o RobotinoView, como a possibilidade de integrar a supervisão de sensoriamento e de locomoção ao mesmo tempo, optou-se por utilizar o Matlab para a criação do programa base de locomoção para o Robotino, obtido em (Forum Robotino, 2011). 2.3 Software de planejamento de trajetórias: modelos, ricos em conhecimento, de diversos domínios de planejamento reais através de diagramas UML. A partir da modelagem em UML, o software é capaz de gerar o código em linguagem PDDL que represente o domínio e o problema de planejamento que se deseje desenvolver, podendo o programa em PDDL ser carregado em um software de planejamento (Planejador), para obtenção da solução do problema em questão. 2.3.C Criação de Mapas Um mapa do ambiente foi criado a partir de uma planta baixa das dependências do andar térreo do prédio da Engenharia Elétrica da UNIFEI Universidade Federal de Itajubá, com dimensões reais, utilizando o software Mapper3Basic. O mapa utilizado para este trabalho é representado na Figura 2, criado por (Santos, 2009). Para a determinação de tarefas, mapas e rotas neste trabalho, utilizou-se como base a dissertação de mestrado do professor da Unifei, Kleber Santos. Sua dissertação consiste na criação de um software capaz de planejar a execução de tarefas, para a movimentação de robôs. Porem, este software foi testado somente em robôs simulados, portanto não houve testes em plataformas reais. O software desenvolvido utilizava diversas ferramentas, que através de mapas compilados, consegue planejar tarefas de movimentação e a melhor rota a ser executada para a ação final. Para isto, o software utiliza um criador de domínio de problemas (em linguagem pddl). Uma vez com o domínio criado (mundo de planejamento criado), as informações são passadas para um planejador para gerar a sequência de tarefas a serem executadas. Mais detalhes podem ser encontrados em (Santos, 2009). 2.3.A Aria e AriaNetworking: ARIA (Advanced Robotics Interface for Applications) é uma base de desenvolvimento de fonte aberta, para uma variedade de sistemas integrados aos robôs. A interface de comunicação pode ser feita pela biblioteca ARNetworking, fornecendo o desenvolvimento da camada TCP/IP base para a comunicação com a plataforma através da rede. Embora tenha sido utilizado na tese de mestrado na qual se baseia este artigo, para testes de validação da metodologia, o objetivo deste trabalho é substituir esta biblioteca a fim de que as tarefas possam ser utilizadas em plataformas reais. 2.3.B Criador de Domínio e Problema de Planejamento (Itsimple) O software itsimple é um software de código aberto (Open Source) que possibilita a criação de Figura 2 Mapa utilizado, (Santos, 2009) 2.3.D Planejador de Ações (FF) Planejadores de tarefas são softwares que geram uma lista de tarefas a serem realizadas para se atingir um objetivo pré-estabelecido, utilizando-se para isso de um modelo do domínio e problema de planejamento desenvolvidos em uma linguagem de planejamento como a PDDL. O planejador utilizado neste trabalho foi o FF, a- crônimo para Fast Forward. Esta busca é orientada 4077

por uma função heurística que estima a distância da solução em relação ao estado inicial. O FF ao encontrar um resultado para o problema gera uma lista de ações que pode ser impressa na tela do computador ou armazenada em um arquivo em formato texto. 3 Procedimento O desenvolvimento deste projeto pode ser dividido em duas partes, o controle de movimentação do Robotino e a integração com o software de planejamento, concluindo-se com a união e sincronismo destas duas etapas. O software de planejamento inicialmente, ao gerar o resultado, enviava as tarefas para que o ARIA o executasse. Neste trabalho os resultados são lidos pelo Matlab que por comunicação ao Robotino executa as tarefas. Portanto, do software criado na dissertação do professor Kleber Santos (Santos, 2009), foi separada a rotina de planejamento da rotina de execução. Sendo a rotina de execução realizada pelo Robotino e as rotinas de movimentação criadas no Matlab. 3.1 Software de planejamento e tratamento de trajetória Para o planejamento e criação de trajetória, utilizou-se o software desenvolvido na tese de mestrado do professor Kleber Santos. Através da modelagem e de um software planejador independente do domínio, é gerado uma lista de ações a serem executadas ( Gerador de Planos ), sendo esta armazenada e direcionada para a execução correta ( Decisão e Armazenagem da Lista de Tarefas ). Um esquemático sequencial de seu funcionamento é observado na Figura 3. Com o Gerador de Rotas os planos são detalhados para que o robô possa executá-los, este detalhamento utiliza o conhecimento que o robô tem do ambiente a qual está inserido. Os mapas do ambiente a ser explorado são fornecidos por meio de mapas compilados inseridos ao processamento. O domínio de planejamento foi criado a partir de uma ferramenta de modelagem chamada itsimple, esta ferramenta permite a geração do código em PDDL a partir de diagramas UML (Unified Modeling Language). Nestes diagramas são criadas classes de elementos que compõem o domínio de planejamento, suas relações, ações e efeitos podem ser aplicadas para gerar modificações no estado atual do sistema. Figura 3 Diagrama explicativo do funcionamento do Sistema de Navegação Autônomo, (Santos, 2009) Após a tradução dos diagramas é necessário escolher um programa planejador, neste caso o FF (Fast- Forward), para executar a busca por uma lista de ações, um plano, que realize o objetivo esperado mediante as condições iniciais. Para desenvolvimento do planejamento topológico da trajetória, o software se utiliza do algoritmo A* (A star, ou A estrela). Baseado em planejar a trajetória por meio de busca e expansão com pesos para as melhores opções. Para simplificar sua utilização, quando o robô ingressa em um novo ambiente, ou sala, o algoritmo é aplicado para achar a melhor trajetória para a próxima sala de acordo com o planejador de sequência a ser tomada. A partir destes processos, há então a geração de uma lista de ações a serem tomadas que seriam enviadas ao simulador da biblioteca Aria. Porém, a partir deste ponto, como mostrada na Figura 4, o projeto se diferencia. A lista de tarefas são convertida para um formato.txt contendo as coordenadas necessárias para a locomoção e realização das tarefas. Elas, então, são chamadas por uma função do Matlab, que fica responsável pela sequência de movimentação do Robotino. 4078

3.2.A Movimentação O Matlab por meio de uma chamada de funções, lê o.txt gerado pelo software de planejamento, contendo as coordenadas de movimentação. Ao captar as informações, faz a conversão das coordenadas para o referencial do Robotino. Pois o que o software de planejamento estipula como coordenadas (x,y) para o Robotino são (-y,x). Mostrado na Figura 5. Figura 4 Área alterada no diagrama explicativo do funcionamento do Sistema de Navegação Autônomo para a comunicação com o Robotino 3.2 Rotinas de Movimentação e sensoriamento do Robotino A movimentação do Robotino deve ser programada de modo que, não apenas ele se movimente em todas as direções com velocidade e coordenadas definidas, mas também seja capaz de realizar desvios de objetos encontrados no decorrer do percurso. As rotinas do Aria e AriaNet, são rotinas de movimentação ponto a ponto e de desvio de obstáculo. Para substituir estas rotinas foram feitas duas etapas no Matlab, a de movimentação e a de desvio de obstáculos. A etapa de movimentação se utiliza dos sensores de Odometria (encoders), que auxiliam na execução das ações deliberativas de movimentação, captando as posições da locomoção do robô. Enquanto os sensores infravermelhos são utilizados na execução das ações reativa do robô, detectando a aproximação de objetos não especificados no mapa de rotas e gerando uma rotina de desvio. As duas partes combinadas são responsáveis pela locomoção do robô. Inicialmente o robô recebe a informação, do software de planejamento, do ponto final para o qual ele deve se locomover. Ele calcula a distancia entre o ponto presente e o ponto final, traçando uma trajetória retilínea pela qual ele deve percorrer. Esta ação é considerada deliberativa. Ao iniciar a locomoção, caso ele se depare com um obstáculo, os sensores são ativados e o desvio de trajetória estipulado é realizado, caracterizando uma ação reativa. Após o desvio, novamente é calculado uma trajetória retilínea para se atingir o ponto final. Figura 5 eixo cartesiano do Robotino Uma vez convertidas as coordenadas, as variáveis são analisadas para gerar o movimento. Por exemplo, caso o Robotino deva mover-se apenas para frente, somente para a direita ou para um movimento vertical (frente e esquerda). O esquema de sentido e movimentação pode ser explicado pelo fluxograma da Figura 6. Figura 6 fluxograma de movimentação do Robotino 3.2.B Sensoriamento O sistema de desvio de obstáculos para que o Robotino locomova-se sem dificuldades entre o território planejado, ocorre devido aos 9 sensores infravermelhos dispostos a 40º de distancia entre si em torno do robô. Uma vez ativados os sensores, uma diferen- 4079

ça de potencial (ddp) ocorre ao se aproximar de objetos. Um esquemático de seu funcionamento é observado na Figura 7. display se acenderem. Após 30 segundos, será mostrado o canal de conexão em que o Robotino está gerando via wireless. Seus dados, no caso deste trabalho são: IP: 172.26.1.1, versão utilizada de configuração: 1.7 e os quadrados abaixo dos dados, como indicado a Figura 9 indicam a capacidade de autonomia que a bateria fornece. Figura 9 Display do Robotino Figura 7 fluxograma de sensores de distância infravermelhos do Robotino Para esta aplicação, dividiu-se os sensores em 4 grupos: direita, esquerda, frente e traz. Uma vez que um desses grupos seja ativado, a programação de locomoção do robô é interrompida e a tarefa de desvio ativada. O Robotino foi programado para, então, se direcionar tangenciando o objeto detectado até que seus sensores não o detectem mais e assim, retornar a função de movimentação padrão. Se nenhum botão é acionado por mais de 10 segundos, o display se apaga para economia de energia. Para reacendê-la basta acionar qualquer botão do teclado do Robotino. Concluída a iniciação, deve-se então conectar o computador a rede wireless do Robotino. Ao buscar as opções de rede, encontra-se a opção Robotino, porém apenas para acesso ao robô, sem conexão com a Internet, como mostra a Figura 10. Para verificar se a conexão está correta uma opção é rodar um arquivo de exemplo já oferecido pelo pacote do Robotino ou verificar via MS-DOS. 3.2.C Conexão com o Robotino O Robotino dispõem de um teclado de interação com display, como mostra a Figura 8. Figura 10 Opção de rede wireless do Robotino Figura 8 Teclado e Display na parte superior do Robotino. (1) Display; (2) Led; (3)on/off; (4)Subir de secão; (5) ir para baixo; (6) Enter; (7) ir para cima Para conectar o Robotino via wireless ao computador, primeiramente, deve-se liga-lo, apertando o botão on/off por cerca de 3 segundos até as luzes e o Para o reconhecimento e acionamento, seja dos sensores quanto dos motores e do acesso ao Robotino via wireless, deve-se, primeiramente, construir os Id s no Matlab, sendo estes destruídos ao final da rotina do programa. Foram utilizados os 9 sensores infravermelhos e o Bumper que detecta colisão. 4080

Também o acionamento dos motores por meio dos sensores de Odometria e pelo Omnidrive. Abaixo estão os códigos de construção dos Id dos sensores e parâmetros do motor: %Definindo variáveis e sensores: (construindo e chamando sensores) ComId = Com_construct; OmniDriveId = OmniDrive_construct; DistanceSensor0Id = DistanceSensor_construct(0);... DistanceSensor8Id = DistanceSensor_construct(8); BumperId = Bumper_construct; Criação e associação com o Ip do Robotino: % Definir IP com_setaddress(comid, '172.26.1.1:80'); Com_connect(ComId); Ao se encerrar a realização de tarefas, a conexão deve ser desfeita e a ligação entre o programa e os sensores e motores interrompida ( destruída ), para isto ao final do programa, utiliza-se de códigos para o cancelamento desta comunicação. Destruição da ligação via Ip do Robotino e dos sensores, utilizado ao final do programa: %desconecta do Robotino Com_disconnect(ComId); % Destrói chamada de sensores DistanceSensor_destroy(DistanceSensor0Id);... DistanceSensor_destroy(DistanceSensor8Id); Bumper_destroy(BumperId); OmniDrive_destroy(OmniDriveId); Com_destroy(ComId); Uma vez concluída a movimentação e retornado o resultado, o Matlab gera um resultado ok para que o gerenciador de tarefa processe a nova função de posição a ser tomada. Figura 11 Pontos para rota de teste, modificada de (Santos, 2009) Executando o programa desenvolvido para planejamento de rotas, obtem-se a rota otimizada a ser realizada, divida em etapas, geradas individualmente ao entrar em cada novo ambiente. Cada etapa é projetada pelo algoritmo A*, como mostrado na Figura 12. 4 Resultados: Concluída todas as etapas descritas acima, iniciou-se os testes aplicados ao Robotino, a fim de detectar erros intrínsecos e possíveis conflitos de programação. Dentre as rotas selecionadas para teste, uma utilizada para validação do sistema consiste na posição inicial do Robotino no Corredor 2, a existência de um pacote na Sala ELL, sendo o objetivo final de entrega no Carro Zafira que se encontra na Garagem. Este percurso pode ser observado no mapa da Figura 11. Figura 12 Exemplo de rota planejada entre o Corredor2 e a Sala ELL, no planejador de rotas Porém, ao se iniciar os testes, uma primeira observação a ser feita foi o erro causado na odometria 4081

devido à irregularidade do piso pelo qual ele se locomovia. Devido a relevos presentes no piso do Corredor 2, o robô, apesar de se deslocar corretamente na distancia planejada, sofria um desvio de até 8 cm a cada metro aproximadamente, no outro eixo, mostrado na Figura 13. Também observou-se o desvio de obstáculos do Robotino, para permitir que ele continuasse sua locomoção em um ambiente com obstáculos não especificados no mapa de trajetórias. Uma primeira observação foi que a posição dos sensores laterais prejudica um pouco o sensoriamento do robô, pois os sensores estão distribuídos com 40º de distância entre si, prejudicando um pouco o fato dos sensores laterais (eixo y do Robotino) não serem exatamente perpendiculares a estrutura, assim detectando algumas vezes objetos que não interfeririam na trajetória e realizando desvios desnecessários. Outro fator agravante é a altura dos sensores em relação a estrutura do robô, como estes são posicionados muito próximos ao chão a estrutura superior pode se deparar com um obstáculo que os sensores não detectaram. A locomoção auxiliada com o sensoriamento mostrou-se eficiente, principalmente no auxílio de desvio de objetos próximos às paredes, porém com certa dificuldade de correção de rota com relação a objetos encontrados no meio do percurso, pois o robô julga o obstáculo como um objeto único (formato cúbico), não realizando os desvios de acordo com seus contornos. Este desvio mais detalhado pode ser solucionado com o replanejamento envolvendo um algoritmo de controle mais elaborado e também uma melhoria nas distinções dos sensores. Figura 13 Exemplo de desvio devido à irregularidade do piso Além disto, ainda há um desvio de rota intrínseco do próprio Robotino, podendo ser observado pela leitura dos valores de odometria, quando testado em pisos mais regulares. Estes valores variam de 1cm a 2cm por metro, em ambos os eixos. Há também, o desvio em ângulo, causando erro de até 6º positivos ou negativos em relação ao eixo (x,y) do robô. Estes erros tornam-se acumulativos com o decorrer do percurso, pois é um erro intrínseco, com desvios demasiados pequenos para se consertarem. Como observado no gráfico da Figura 14. Figura 14 Gráfico de uma rota teórica x rota real, com os desvios médios observados. 5 Dificuldades encontradas Como precauções para a utilização do Robotino, recomenda-se, inicialmente, a realização em piso liso, sem irregularidades a fim de que o desvio previsto seja mínimo, dentro das tolerâncias de erro intrínseco. Uma solução possível é melhoria do replanejamento de rotas, a fim de diminuir este erro, por meio de um algoritmo de controle mais elaborado. 6 Conclusão Após a realização de testes separados de cada e- lemento do projeto e da integração dos softwares, provou-se ser possível a implementação de um software de planejamento juntamente com a função de movimentação com a plataforma móvel Robotino, para locomoção de ambiente parcialmente conhecido. Conclui-se também que a utilização apenas dos sensores de odometria para a captação das posições não é de total confiança, tanto pelo erro acumulativo na movimentação quanto para a correção de desvio de rotas. Para melhorias futuras em um projeto como este, recomenda-se o acoplamento de demais sensores para referencia inercial, tais como giroscópios e acelerômetros, a fim de melhorar a exatidão na movimentação do robô. Uma última observação importante é a relevância do piso para a realização da movimentação. Pois a presença de relevos no piso prejudica a locomoção precisa do robô, alterando o posicionamento. A re- 4082

comendação é que tanto testes quanto a realização de tarefas seja realizada em piso liso. A metodologia utilizada neste trabalho, além de seus fins didáticos, pode ser expandida ao uso em diversos tipos de robôs autônomos, podendo assim ser aplicado para realização de tarefas diversas, com supervisão via web, ou para buscas em armazéns complexos ou em terrenos de grande risco. Agradecimentos A FAPEMIG pelo apoio proporcionado através do projeto APQ-00744-08. Aos alunos de Engenharia de Controle e Automação, João Paulo Almeida Barbosa e Felipe Lira Santana e ao professor Guilherme Bastos pelo auxilio prestado. Referências Bibliográficas Fórum Robotino (2011)[online]. Disponível em: forum.openrobotino.org/. [Acesso em 10 de Julho de 2011]. Odaguil, F. I. K.; Piesco, M. M. (2010). Monitoramento de manufatura via internet com robô móvel. Trabalho de Conclusão de Curso Escola Politécnica da Universidade São Paulo, 2010. Santos, K. R. S. (2009). Sistema de navegação autônoma para robôs móveis baseado em arquitetura híbrida: teoria e aplicação. Dissertação de Mestrado - Universidade Federal de Itajubá, 2009. 4083