IMPLEMENTAÇÃO DO DP-SLAM EM TEMPO REAL PARA ROBÔS MÓVEIS USANDO SENSORES ESPARSOS VITOR CAMPANHOLO GUIZILINI, JUN OKAMOTO JR., FABIANO ROGÉRIO CORREA, VALDIR GRASSI JR. Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Av. Prof. Mello Moraes, 2231 05508-030 São Paulo, SP, Brasil E-mails: vitor.guizilini@poli.usp.br, jokamoto@usp.br, fabiano.correa@poli.usp.br, vgrassi@usp.br Abstract - The concept of Simultaneous Localization and Mapping (SLAM) has been extensively used for autonomous navigation, as a way to compensate for the errors that sensors used to gather information from the environment inherently have. The approaches used in SLAM probabilistically incorporate such errors and are able to remove them before they accumulate and invalidate the final results. This paper describes one solution to the problem of SLAM, known as DP-SLAM, which is based not only on multiple positions of the robot in one given moment, but also on multiple maps of the environment. Each map is incomplete and built- in dynamically through the use of efficient structures of data management. The comparison between the possible maps and the information given by the sensors allows the algorithm to elect the most probable map of the environment at each moment along with its instantaneous position. This solution has been implemented using a sparse sensor to obtain information of the environment and tested in both virtual and real situations. The results show that it is possible to conduct a real- time navigation while keeping substantial improvements in both localization and mapping. Keywords: SLAM, Localization and Mapping, Mobile Robot, DP-SLAM, Autonomous Navigation. Resumo - O conceito de localização e mapeamento simultâneos (SLAM) é extensivamente utilizado na navegação autônoma, como uma maneira de compensar os erros que os sensores utilizados para obter informações do ambiente possuem e que não podem ser totalmente eliminados. As abordagens utilizadas no SLAM incorporam probabilisticamente tais erros e são capazes de removê-los antes que acumulem e invalidem os resultados finais. Esse artigo descreve uma solução para o problema do SLAM, conhecida como DP-SLAM, que é baseada não apenas em múltiplas posições do robô em um dado instante, mas também em múltiplos mapas do ambiente. Cada mapa é incompleto e construído dinamicamente através do uso de estruturas eficientes de manutenção de dados. A comparação entre cada um dos possíveis mapas com a informação obtida pelos sensores permite que o algoritmo escolha o mapa mais provável a cada momento e com isso a sua posição instantânea. Essa solução foi implementada e testada em ambientes virtuais e reais, fazendo uso de sensores esparsos para a coleta de informação. Os resultados mostram que é possível nessas condições conseguir executar a navegação em tempo real com uma melhora substancial nos resultados tanto de localização como de mapeamento. Palavras-Chave: SLAM, DP-SLAM, Robô Móvel, Navegação Autônoma. 1 – Introdução A localização e o mapeamento são dois componentes fundamentais para o funcionamento de qualquer sistema autônomo de navegação, permitindo que o veículo seja capaz de obter informações do ambiente ao seu redor e saber onde se encontra dentro desse mesmo ambiente e com isso poder cumprir a sua missão. A solução para cada um desses problemas é relativamente simples como já foi mostrado em vários estudos que abordam a solução para o problema da localização dado o mapa (Fox et al., 1999) e vice-versa (Elfes, 1989). Contudo, a grande maioria das aplicações relacionadas à navegação autônoma implica no desconhecimento de ambos, tanto a localização precisa do robô quanto um mapa acurado do ambiente através do qual ele irá se movimentar. Um robô autônomo deve ser capaz de navegar através de um ambiente inicialmente desconhecido, mapeando seu conteúdo baseado somente nas informações coletadas pelos seus sensores e ao mesmo tempo se localizar dentro desse mesmo mapa, sem o auxílio de nenhum equipamento externo. Para fazer isso, o sistema precisa lidar com ambos os problemas de localização e mapeamento, resolvendo-os durante a navegação. É fácil perceber que ambos os problemas estão de alguma forma conectados, pois sem uma localização precisa o mapa resultante ficará comprometido, o que dificultará ainda mais uma localização posterior. Assim, pequenos erros gerados a cada etapa rapidamente se acumulam e afastam os resultados cada vez mais da realidade (Fig. 1). (a) (b) Fig 1. Mapeamento sem SLAM. (a) Ambiente percorrido. (b) Resultado do mapeamento. Esse é o problema do SLAM, cujo objetivo é lidar com ambos os problemas ao mesmo tempo, usando os resultados de um para melhorar a precisão do outro. Como não é possível remover completamente os erros inerentes aos sensores usados para coletar informação e nem incorporá-los aos modelos construídos para predição, pois eles são imprevisíveis, soluções para o problema do SLAM usualmente recorrem a abordagens probabilísticas,