Skip to content

An exploration of localization, tracking, and movement algorithms for an autonomous vehicle.

License

Notifications You must be signed in to change notification settings

mattskone/robot_maze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robot Maze

An exploration of localization, tracking, and movement algorithms for an autonomous vehicle.

Motivation

This project represents the optional "hardware" project portion of CS8803, Artificial Intelligence for Robotics, taught by Dr. Sebastian Thrun, part of Georgia Tech's outstanding Online Masters of Science in Computer Science program.

Goals

Using the course material, can I program an autonomous vehicle (robot) that will:

  1. Navigate a physical maze, the design of which is known to the robot in advance, from a known initial position to a known goal position?
  2. Navigate a physical maze, the design of which is known to the robot in advance, from an unknown initial position to a known goal position?
  3. Navigate a physical maze, the design of which is known to the robot in advance, from an unknown initial position to an unknown goal position (the goal being identified by sensing a desired set of conditions)?
  4. Navigate a physical maze, the design of which is unknown to the robot in advance, from an unknown initial position to an unknown goal position (the goal being identified by sensing a desired set of conditions) while mapping the maze as it searches?

Furthermore, can I meet the above objectives in a maze that consists of:

  1. A single, straight corridor?
  2. Right angle turns?
  3. Right angle intersections?
  4. Turns and intersections at angles of other than 90 degrees?

Hardware

For this project, I selected the GoPiGo robot kit from Dexter Industries. The GoPiGo is a simple, 2-wheeled vehicle with a forward-facing, servo-mounted ultrasonic range sensor, controlled by a Raspberry Pi.

I selected it for the following qualities:

  1. Programmable in Python.
  2. Complete kit - no need to identify and purchase compatible components.
  3. (Relatively) inexpensive at $199.
  4. Easy to assemble.

NOTE: I moved the range sensor from its position at the front of the robot (shown in the stock photo above) to directly over the axis of the drive wheels. This helped ensure consistent distance measurements before and after a turning or rotating motion.

Usage

  1. Begin a terminal session on the GoPiGo from another machine on the network. SSH works fine, but you may also use VNC to view the GoPiGo's desktop and begin a terminal session from there.
  2. Clone the contents of this repository to a directory on the GoPiGo.
  3. Start the robot with python ./run.py.

Note that the code requires the gopigo Python library which comes preinstalled on the GoPiGo. The unit tests use the gopigo_stub module so that you don't need the gopigo library on your development machine.

Release Notes

  • v1.0: The robot will navigate a straight corridor, with steering adjustments calculated using the PD controller algorithm.

License

The use of the contents of this repository is governed by the MIT License.

About

An exploration of localization, tracking, and movement algorithms for an autonomous vehicle.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages