Home Contract Lab 1 Milestone 1 Lab 2 Milestone 2 Lab 3 Lab 4 Milestone 3 Milestone 4 Ethics Homework Final Design Photoshoot!

Milestone 3: Maze Exploration

ECE 3400 Fall 2018: Team 19

Milestone Description

The goal of this milestone was to get our robot to explore the maze using DFS, while correctly updating the GUI.

Algorithm

pseudocode:

StackArray<byte> frontier
if at an intersection{
 checkForWallsandIR()
 runDFS(current position, what it sees, its orientation)
}
else not at an intersection{
  lineFollow()
}
runDFS{
  n = frontier.pop() //(goal state)
  visit n- meaning move our robot to n
    if n is within one square of where currently are, then we just move to that square
    while n is farther away than one square{
       we move back to the parent of our current node
    }
  transmit the details of node n over radio
  figure out what places we can visit based on what the robot can see and its orientation
  add these places to the frontier stack
  return current position of robot and its orientation
}

actual code

Here is a video of our robot navigating a 4x5 maze!

Our robot is able to navigate different maze configurations!!

Our robot navigated the two mazes above as expected, using DFS for navigation and backtracking. We had difficultly transmitting to the GUI, so even when our robot navigated the maze properly, the incorrect walls or positions would show up on the GUI.

Our robot starts on a 660Hz tone and recognizes an IR hat, waits for the IR hat to move, then resumes exploring the maze: