Implementing Map Based Navigation in Guido, the Robotic SmartWalker. * Diego Rodriguez-Losada, Fernando Matia, Agustin Jimenez and Ramon Galan Gerard Lacey DISAM Haptica Ltd. Universidad Politecnica de Madrid Trinity College Enterprise Center C/ Jose Gutierrez Abascal, 2. 28006, Madrid, Spain Pearse St., Dublin 2, Ireland diego.rlosada@upm.es Gerard.Lacey@haptica.com * This work is partially funded by Spanish Ministry of Education (FPUAP2000-1661) and Ministry of Science and Technology (DPI-2004-07907-C02) Abstract – Guido is a healthcare robot that serves as support and navigation aid for the frail and visually impaired. The previous assistive navigation software has been replaced by a full map based control, including real time feature based map building (SLAM) and pose tracking (both using an EKF), and path planning and collision avoidance. Real experiments have been carried out, both in the lab and in the hospital, with great success, showing a high improvement in the ease of use and convenience of the system. The map building and editing tools have proved to be extremely useful, enabling the system to be installed in a new environment in just minutes. Index Terms – SLAM-EKF, healthcare, service robot. I. INTRODUCTION The aim of Guido TM the smart walker of Haptica Ltd. [1] is to develop a mobility aid for people who are both frail and visually impaired. 75% of the visually impaired are elderly and they often have related mobility problems that limit severely their independence. Guido aims to provide a mobility aid with makes taking independent exercise a safer and more enjoyable experience. Figure 1. Guido, the SmartWalker Guido is a 4 wheel robust walking frame or rollator provided with two motors to steer the front wheels, but is has to be pushed by the user. It has a SICK laser to sense the environment, and a force sensor in the handle to sense the steer command. The on board processor is a PC104 300Mhz Geode system with 32Mb of flash memory (hard disk) and 32Mb of RAM, running Haptica-TinyDCLinux. One of its serials port is used for the laser, and the other one connect to the Haptica H8 board, equipped with a Hitachi motor controller, motor power driver, digital inputs-outputs and sonar boards. Voice recorded messages are played by the Geode DSP device. An Ethernet port is available for communicating with the Geode system. Four batteries provide power supply to the robot. The previous control software was reactive behavior based, using the CleanSweep [2] control, part of Haptica's Interaction Engine TM . This control was able to safely avoid obstacles, but the user had the control with the steering handle. Environment features are detected and reported to the user as “Opening left”, “T-junction”, etc. for assistance. The work reported in this paper uses the map building (see [3] for a survey) and map based navigation tools developed by the authors in previous work [4][5], to achieve a full guide system that knows where it is, and how to get to the desired place. It is proved with real experiments that the new software improves the navigation capabilities of Guido. II. MAP BUILDING TOOLS A Map building The map building algorithm uses an EKF [6] for estimating a feature based map, composed by the walls of the environment. A formulation based on the SPMap [7] has been used for dealing with the problem of partiality in uncertainty presented by the symmetries of the geometric entities used in the map representation: bounded and unbounded segments. It has been observed that the edges of the walls are very easy to detect and an extremely useful navigation reference, for example in large corridors. The naïve approach represents these limits as independent (stochastic) points, causing information redundancy with an increase in the computational cost. Integrating the edge information into the segment representation, as our formulation proposes, is a more efficient approach. A summarized formulation is described here for completeness, but the interested reader is referred to [4],[5] for the full description of the algorithm. Every feature ‘F’ state can be represented by its estimation and an error vector . The robot ‘R’ is modeled by the reference frame defined by its position and orientation. An oriented segment ‘S’ is modeled by the reference frame located at its midpoint, the segment length, and two flags that indicate whenever the left and right edges exist (Fig. 1): [ ] { } ( ), ( ) 0 (no edge) , 1 (edge) R R d S S l r S S S d S S x r d l left r right r x L α α α α = ∀ = = = = G G G G (1) The error vector is different for each kind of feature, depending on the stochastic information contained. The estimation and error vectors for a robot and a segment are: F e G ˆ F x G F x G