43
BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.

BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Embed Size (px)

Citation preview

Page 1: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

BLAKEDIDIER LESSAGE

GABRIEL

G.U.N.D.A.M.

Page 2: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

What is it?

A robot whose primary function is solving mazes of varying types while transmitting the layout of the maze back to a computer/laptop to display said maze to the user

Maze will be custom built with a layout capable of being changed to any type depending on the user’s specifications

Page 3: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Motivation

Page 4: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Features

Wall DetectionWireless CommunicationMaze SolvingDiscover entire maze layoutAccept path inputs from userForward and backward movementIsolated rotation

Page 5: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Parts Being Used

Two IR Sensors for the sidesTwo ultrasonic sensors for the front and backRFM12B-S2 Wireless TransceiverRobot ChassisJava GUI Interface

Page 6: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Wireless Subsystem

-ROBOT MODULE-COMPUTER MODULE

Page 7: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Robot Module

PCB layout MSP430 Microcontroller

Interface with Main µC through SPI or I2C RFM12B RF Transceiver Interface with MSP430 through SPI

Schematic

Page 8: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Computer Module

PCB layout MSP430 Microcontroller

RF µController RFM12B RF Transceiver

Interface RF µC through SPI CP2101 UART to USB

Interface RF µC through UART to PC USB

Schematic

Page 9: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Wireless Protocol

TX node (Robot Module) Initially Transmitting to Establish Connection

RX node (Computer Module) Initially Listening to Establish Connection

Collision Avoidance Algorithm Avoid TX or RX at the same time

Page 10: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Wireless Protocol

Employ AES-128 on both the Robot and Computer module Data encryption of TX packets on each node Data decryption of RX packets on each node

Page 11: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

RF Microcontroller (MSP430)

Encrypt data in AES-128 algorithmRead data from RF Module for RXSend data to RF Module for TXSpecifications:

SPI, I2C, and UART interface 16-bit Architecture

Page 12: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

RF Transceiver (RFM12B)

Low power: 2.8-3.8VHigh data rate: up to 115.2kbpsProgrammable TX and RX bandwidthAutomatic Frequency controlSPI interface16 bit RX FIFOTwo 8 bit TX data registers

Page 13: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

RF Transceiver (RFM12B)FSK Modulation SchemeRSSI Strength indicatorOperating Temp -40-85˚CAt 433MHz bandwidth

Max TX/RX current 24mA/13mA Range > 200m

Page 14: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

UART to USB Bridge (CP2101)

USB Bus powered powered: 4.0-5.25VBaud rate up to 921.6kbpsOn chip voltage regulatorVirtual COM port for GUI

Page 15: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Range Finder Subsystem

- INFRARED SENSORS-ULTRASONIC SENSORS

Page 16: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Infrared Range Finder (GP2D120)

Operating Voltage 4.5V to 5.5VOperating Current 33 to 50mAMeasures 4cm to 30cmAnalog output

Page 17: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

IR Range Finder Function

Page 18: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Output Voltage (V) vs. Reflected distance (cm)

Page 19: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Ultrasonic Range Finder

Measures 15cm to 510cmOperating Voltage 8-12VCurrent consumption 14mAUltrasonic Frequency 40kHzSPI/I2C interfaceOnboard ATtiny26 µController

Page 20: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Physical Maze

Plastic, Wood, Metal, Rubber, and Paper reflect ultrasonic waves.

Things to consider: Cost : Metal > Plastic > Wood Easy of Manufacturing: Metal > Plastic > Wood

Lap Joints

Page 21: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Lap Joint

Page 22: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Maze Layout

Page 23: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Nodes

Nodes will be “placed” at intersections and turns. These nodes will be stored in a list on the computer side. The node will have information on their location, the amount of neighbors they have if discovered, and the distance between the neighbors.

Information on how far the robot has traveled before reaching an intersection or turn will be stored and sent to the computer to allow for accurate representation of the maze and its dimensions

Page 24: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Walls

Using the information given to it by the robot itself, the location and length of the walls will be able to be determined as well as any turns and openings along these walls. This information is then used to draw out the actual maze.

Page 25: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

GUI

Maze will be presented in its own frame along with options for the user to request either a maze be solved (if not already), the maze be explored, or a particular path be traversed or destination reached.

Page 26: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Maze Solving (Path Finding) Algorithms

Wall Follower Simple maze solving solution that involves following

the left side of the maze, including any turns that may follow. Will be the default maze solving method

This solution is only valuable in certain maze situations. If the entrance of the maze happens to lie in the center and not on the outside edge, or if a wall happens to lie on its own with no connections, it will fail

Page 27: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Maze Solving (Path Finding) Algorithm

Tremaux This algorithm assigns values to paths according to

how many times it has been traversed. At a fork in the road, if there is a path valued at 0, it will take it. If not, and the current path is a 1, it will backtrack and take the next smallest path value. If the current path is a 2, the smallest valued fork will be taken. This method will be used if it is determined that the maze cannot be solved with the wall following method

Page 28: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Entrances and Exits

There will be a single entrance and exit for the maze

A check will be done to determine if the maze type can be discovered simply through the entrance’s characteristics. If surrounded by walls, it is safe to determine that the robot is inside of the maze rather than outside of it. This is a signal to use Tremaux, as emphasized previously.

Exits can be within or outside of the maze. A check will be done to determine the distances on all sides. If these sides exceed the pre-determined dimensions of maze, we have found our exit.

Page 29: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Format of Information

Upon reaching an intersection, along with placing a node, the robot will write to the port how far it has estimated its travel, the number of turns open to it (left, right, straight ahead)

The program will read this information and use it to construct the next set of walls. Each path drawn out will simply be two lines of a pre-determined width between them

Page 30: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Classes

Nodes Neighbors Location Dead ends Part of path Heuristic detDistDest() getLocation() getHeuristic() getDistCurr()

Page 31: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Classes

Path Nodes Distance Final (bool) getNextNode() removeNode() isDest() isSource()

Page 32: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Classes

Walls Location1 Location2 Length Width Stand Alone (Bool) getLoc1() getLoc2() getLength() getWidth()

Page 33: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Classes

Robot Location State

Solving Exploring UserPath

getState() getLoc()

Page 34: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Explore Maze

The robot will explore and discover any and all paths within the maze using a hacked version of the Tremaux algorithm. Instead of having the sole purpose of discovering an exit, a list of all nodes and paths along with their number of times visited will be stored. The robot will then work through this list and make its way to each node using a combination of Tremaux and A star.

Page 35: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

User Input Path

The user will be able to input a path for the robot to take inside of the maze.

The user can either input an exact path for the robot to take or….

…the user can simply select a destination and the robot will use A* path finding to find the shortest path to the destination.

Page 36: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

A*

Once a destination node is chosen, the algorithm takes into account only the destination and any neighboring nodes to the current position of the robot.

Cost (distance) of moving a node is calculated for each neighboring node not blocked off by a wall

Estimated cost of reaching destination is then calculated

The smallest calculated distance and the node that has achieved said distance is then chosen as the next node to travel to in the pre-path.

Once a path has been chosen, the robot then traverses the maze using the path

Page 37: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

A*

If user selects a location that is not a node, a new node will be placed at the user’s desired location

This is necessary to enable to algorithm to actually find a path to the destination

Page 38: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Specified Path

User can also highlight a path of nodes to traverse for robot

User will select nodes it wishes to be incorporated within the path itself or simply draw out a general line to follow

If general line made, the program will determine any and all nodes that are sufficiently close to path to incorporate within the list of nodes needed to traverse it

Page 39: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Path Completion

Once the path is completed, program will store the path (simply a list of nodes and the order they should be traversed)

The program will then write to a serial port to be read by the robot itself

Upon reaching a node specified by the program, the robot will request the next instruction on whether to turn or continue straight on its path. This check also involves determining if the node it is currently at is the destination

Page 40: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Progress

Testing

Software

Hardware

Design

Research

0 20 40 60 80 100 120

CompletedRemaining

Page 41: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Budget

Part Model Price

Page 42: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

Blake Didier Gabriel

Page 43: BLAKE DIDIER LESSAGE GABRIEL G.U.N.D.A.M.. What is it? A robot whose primary function is solving mazes of varying types while transmitting the layout

QUESTIONS?