Circumventing Obstacles for Visual Robot Navigation Using a Stack of Odometric Data Mateus Mendes †* , A. Paulo Coimbra † , and Manuel M. Cris´ ostomo † Abstract—Recent advances in understanding the source of intelligent behaviour show that it is strongly supported on the use of a large and sophisticated memory. Constant increase of processing power and constant cost decrease of computer memory have encouraged research in vision-based methods for robot navigation. The present approach uses images stored into a Sparse Distributed Memory, implemented in parallel in a Graphics Processing Unit, as a method for robot localization and navigation. Algorithms for following previously learnt paths using visual and odometric information are described. A stack- based method for avoiding random obstacles, using visual information, is proposed. The results show the algorithms are adequate for indoors robot localization and navigation. Index Terms—Autonomous Navigation, View-Based Naviga- tion, Obstacle Avoidance, View-based Localization, SDM. I. I NTRODUCTION D EVELOPMENT of intelligent robots is an area of intense and accelerating research. Different models for localization and navigation have been proposed. The present approach uses a parallel implementation of a Sparse Distributed Memory (SDM) as the support for vision and memory-based robot localization and navigation. The SDM is a type of associative memory suitable to work with high- dimensional Boolean vectors. It was proposed in the 1980s by P. Kanerva [1] and has successfully been used before for vision-based robot navigation [2], [3]. Simple vision- based methods, such as implemented by Matsumoto [4], although sufficient for many environments, in monotonous environments such as corridors may present a large number of errors. The robot learns new paths during a supervised learning stage. While learning, the robot captures views of the sur- rounding environment and stores them in the SDM, along with some odometric and additional information. During autonomous navigation, the robot captures updated views and uses the memory’s algorithms to search for the closest image, using the retrieved image’s additional information as basis for localization and navigation. Memory search is performed in parallel in a Graphics Processing Unit (GPU). Still during the autonomous navigation mode, the environment is scanned using sonar and infra-red sensors (IR). If obstacles are detected in the robot’s path, an obstacle-avoidance algorithm takes control of navigation until the obstacle is overcome. In straight paths, the algorithm creates a stack of odometric data that is used later to return to the original heading. Afterward, vision-based navigation is resumed. * ESTGOH, Polytechnic Institute of Coimbra, Portugal. E-mail: mmendes@estgoh.ipc.pt. † ISR - Institute of Systems and Robotics, Dept. of Electrical and Computer Engineering, University of Coimbra, Portugal. E-mail: acoim- bra@deec.uc.pt, mcris@isr.uc.pt. Section II briefly describes the SDM. Section III presents the key features of the experimental platform used. The prin- ciples for vision–based navigation are explained in Section IV. Section V describes two of the navigation algorithms implemented in the robot. It also presents the results of the tests performed with those algorithms. In Section VI, the obstacle avoidance algorithms are described, along with the validation tests and results. Conclusions and future work are presented in Section VII. II. SPARSE DISTRIBUTED MEMORY The properties of the SDM are inherited from the prop- erties of high-dimensional binary spaces, as originally de- scribed by P. Kanerva [1]. Kanerva proves that high- dimensional binary spaces exhibit properties in many aspects related to those of the human brain, such as naturally learning (one-short learning, reinforcement of an idea), naturally forgetting over time, ability to work with incomplete infor- mation and large tolerance to noisy data. A. Model of the original SDM Fig. 1 shows a minimalist example of the original SDM model. The main structures are an array of addresses and an array of data counters. The memory is sparse, in the sense that it contains only a fraction of the locations of the addressable space. The locations which physically exist are called hard locations. Each input address activates all the hard locations which are within a predefined access radius (3 bits in the example). The distance between the input address and each SDM location is computed using the Hamming distance, which is the number of bits in which two binary numbers are different. Data are stored in the bit counters. Each location contains one bit counter for each bit of the input datum. To write a datum in the memory, the bit counters of the selected locations will be decremented where the input datum is zero and incremented where the input datum is one. Reading is performed by sampling the active locations. The average of the values of the bit counters is computed column-wise for each bit, and if the value is above a given threshold, a one is retrieved. Otherwise, a zero is retrieved. Therefore, the retrieved vector may not be exactly equal to the stored vector, but Kanerva proves that most of the times it is. B. Simplified SDM model The original SDM model, using bit counters, has some disadvantages. One problem is that it has a low storage rate, of about 0.1 data bits per bit of physical memory. Another problem is that the counters slow down the system in real time. Yet another problem is that data encoded using the Proceedings of the World Congress on Engineering 2017 Vol I WCE 2017, July 5-7, 2017, London, U.K. ISBN: 978-988-14047-4-9 ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online) WCE 2017