Robotic Mapping: Pathfinding Using Dead Reckoning Techniques

School Name

South Carolina Governor's School for Science & Mathematics

Computer Science

Mentored

Abstract

The purpose of my research was to use dead reckoning to program a Roomba to navigate a given space. Dead reckoning is the process of only using an initial location and the measurements you can get from your environment to navigate to determine your current location. We accomplish this through controlling the Roomba a using a Raspberry Pi microcomputer. The Raspberry Pi communicates to the Roomba via a serial port which can send sensor information from the Roomba to the Pi. I discovered that the Roomba’s sensors for determining its velocity is inaccurate, so I made a series of computations using the wheel encoders to determine its position. The Roomba uses a point-based system to navigate the world and I programmed the Roomba to move from point to point using the A* algorithm, which is a pathfinding algorithm that determines the set of points that takes the Roomba to the goal in the shortest time. Right now, I have successfully written the program that can accurately move the Roomba from one point to any other point and detect obstacles in the world. Because the math for the bots is the same, this technology can be implemented to real needs, like search and rescue drones, self-driving cars, agricultural, and military automation.

Location

Founders Hall 140 A

Start Date

3-30-2019 11:45 AM

Oral Only

Group Project

No

COinS

Mar 30th, 11:45 AM

Robotic Mapping: Pathfinding Using Dead Reckoning Techniques

Founders Hall 140 A

The purpose of my research was to use dead reckoning to program a Roomba to navigate a given space. Dead reckoning is the process of only using an initial location and the measurements you can get from your environment to navigate to determine your current location. We accomplish this through controlling the Roomba a using a Raspberry Pi microcomputer. The Raspberry Pi communicates to the Roomba via a serial port which can send sensor information from the Roomba to the Pi. I discovered that the Roomba’s sensors for determining its velocity is inaccurate, so I made a series of computations using the wheel encoders to determine its position. The Roomba uses a point-based system to navigate the world and I programmed the Roomba to move from point to point using the A* algorithm, which is a pathfinding algorithm that determines the set of points that takes the Roomba to the goal in the shortest time. Right now, I have successfully written the program that can accurately move the Roomba from one point to any other point and detect obstacles in the world. Because the math for the bots is the same, this technology can be implemented to real needs, like search and rescue drones, self-driving cars, agricultural, and military automation.