Rover: A Rule-Based Expert

Project Image

Project: Rover: A Rule-Based Expert

Date: 02-25-2009

Implementation Language: Java

Description: A rule based expert system for a rover to move from its current position to a goal position while avoiding obstacles.

Files: Rover PDF175.48 KB


The program was built as an exercise while learning about rule based expert AI systems. The goal is to move the rover from its starting point to some destination, while avoiding obstacles.


The rover is placed somewhere on a rectangular grid. Each square in the grid represents a different position. When the rover is in a position, it can move to one of the three cells in front of it. That is, it can move forward, diagonally to the forward-left, or diagonally to the forward-right. The rover can also turn 45 degrees to the left or right in the same position. Each turn or move counts as a move. The goal of the rover is to move from the start cell to a specified destination cell without hitting any obstacle, and to make as few moves as possible. Terrains can be randomly generated, or loaded in via a file. I also wrote a GUI so that the user could watch the rover as it steps through the maze on its way to the goal position.