SURF Proposal Carnegie Mellon BioRobotics Lab Mentor: Howie Choset Project : Simultaneous Localization and Mapping with Snake Monster Student Researcher: Angel Macias Abstract Snake Monster(SM) is a Hexapod/Quadruped robot developed in Howie Choset's Bio-Robotics Lab. The goal of this project is to have a group of Time of Flight cameras attached to the SM that take pictures of the ground and general surrounding area to create a depth map that it can store in memory. The map will serve to give SM boundaries of the room or area it's in along with landmarks and contours of the ground that tell SM where it's safe to step. The result will be a robot that's aware of its surroundings and of how to interact with it. Research Question and Significance Simultaneous Localization and Mapping or SLAM is the process of creating a map of the nearby world surrounding a robot that includes objects and obstacles while simultaneously tracking its own position within the environment [1]. The question for this project is: how can I design and implement a framework of SLAM for the Snake Monster robot? Keeping track of the movement of a robot solely off of its joint and leg movements (odometry) is usually rather inaccurate, especially over longer periods of time. Correcting this issue, which can be seen in Figure 1 (the difference between estimated and true position) is the main piece of the SLAM structure which is called the Extended Kalman Filter(EKF). The EKF gradually calculates an estimate of the error between the true and estimated position of the robot by scanning the area for landmarks. The EKF then updates the position the robot thinks it's at, with greater accuracy than odometry alone. Generating this information for a robot would allow it to become very interactive and eventually completely autonomous with its surroundings. Creating a framework that allows Snake Monster to use SLAM algorithms would greatly increase the uses of the robot such as by allowing it to traverse areas on its own in places that are inaccessible to humans or transporting objects across locations. Designing a good framework would make achieving SLAM in other robots, such as the SEASnake, USnake, and IWAMP(other Biorobotics Lab robots), which would allow the development of autonomous robots to be faster. Project Design and Feasibility The project starts with me reading more research papers about SLAM algorithms and code during the school year and implementing basic parts of the code to understand how parts of it work. When Summer starts and I begin working on creating the framework, I will start with using the Time of Flight(ToF) depth camera take pictures around the SM simultaneously and create code that allows the pictures it takes to be patched together. To increase efficiency I'll add functionality to the software that lets the SM have multiple cameras equipped and patch all of their data together to get a better picture faster. Once data gathering is figured out, I'll work on implementing the algorithms that are used in SLAM on the data that SM gathers. Initially I'll start with making the framework work on simpler cases such as identifying nearby landmarks and the robot's position around them (which is what mostly that SLAM is about). Once the robot can interpret that data, I'll work on having the SM work in a quadruped configuration instead of its hexapod configuration and have it manipulate nearby landmarks with its free limbs. This will end with creating a 3D map of the nearby environment for me to be able to see. Feedback and Evaluation The schedule in which I report my work will be the same as it is now, which it to create a progress report at the end of the work week and send it to Professor Choset. The day after sending the report I attend a meeting with the research lab workers (which includes Professor Choset) to explain what I had done and demonstrate my work if necessary. Along with Professor Choset, I report to a Robotics graduate student named Simon Kalouche who helps guide me in what research papers I need to read and what code bases I should learn. Background I've been working and studying in Professor Choset's lab the past couple of semesters. What I've done so far is read about and done work with computer/robotic vision by implementing some code from OpenCV, Point Cloud Library, and the Robotic Operating System. I've also learned how to use Time of Flight depth sensing cameras in order to take pictures of the ground to determine the topography of it. After which the SM decides where it's best to step based on calculated slopes of the ground [2]. This smart foot step planning is an extra feature that I would add to the SLAM framework that I create for SM. As for the hardware side, I've learned how to drive the Snake Monster and Unified Snake in the lab along with how to take them apart, diagnose for bad parts, and reassemble. Dissemination of Knowledge The main form of showing my work at the end of this research period would be with a demonstration with the Snake Monster itself. I will show it at the Meeting of the Minds symposium and record video of it along with the data it produces to show it online as well. I will also write a paper describing what algorithms and code I created to solve this problem along with a poster to more easily show diagrams. References [1] Durrant-Whyte, Hugh, and Tim Bailey. "Simultaneous Localization and Mapping: Part I." IEEE Robotics and Automation Magazine (2016): 1-3. IEEE Xplore. Web. 19 Mar. 2015. . [Figure 2] My program that shows the topography of an object, a bowl in this case.