Final Formal Proposal
Aims and Goals of the Project
The goal of this project is to design and build a very intelligent Micro-Mouse Maze Solver Robot that’ll be able to self-teach an unknown maze and find the path to it’s destination. The destination of the micro-mouse is a square enclosure with only one opening. Once completed, this robot can be entered into micro-mouse maze solver competition, and also be used as a platform for teaching introductory engineering students, how simple electronics when combined with machine learning can accomplish complex tasks (i.e. solving a complicated maze). Figure 1 is an example of a typical micro-mouse.
Figure 1
Relevant Prior Work
Zakaria has had some experience building robots. He was an active participant in Hamtramck High School’s FIRST (For Inspiration and Recognition of Science and Technology) Robotics Team for 3 consecutive years, where he focused largely on web-site development and building various competition robots each with different objectives. He is currently active with the University of Michigan-Dearborn’s Intelligent Systems Club (UM-D ISC), and competed in two competitions (2011 Autonomous Lawn Mower Competition, and 2010 Line Follower Competition at the Canadian National Robot Games).
Zakaria also completed 2 co-operative education tours at NASA’s Johnson Space Center (including a tour in Robotics Systems Technology Branch), where he learned to use embedded hardware and software (including programming in VHDL, FPGAs, interacting with external EEPROM using I2C and LabVIEW, and communicating with custom-built logic ICs).
Throughout high school and college, Ed has worked in graphical image and video editing, video game design, computer networking, website design, and building high performance computers. During his co-operative education experience at DTE Energy Michcon, Ed learned graphical programming and database programming that is a good foundation for tackling the challenges of completing this robot. Ed also has a hobby of reverse engineering toy RC cars.
Below is a list of relevant classes, which prepared Zakaria and Ed to accomplish this project.
ECE 4951 – Design of various applications (i.e. line follower robot, wheel encoders, A/D, PWM) using the Microchip’s PIC16 family micro-controllers.
ECE 372 – Introduced the overall architecture of a typical microprocessor and the various programming structures (i.e. Interrupts, Polling, Pulse Width Modulation, Watchdog Timer, etc.)
ECE 273/375 – Provided a solid understanding of digital electronics and computer architecture design
ECE 460 – Introduced the various applications (i.e. achieving high power from a small motor with the usage of gear ratios) of control systems.
ECE 210/311 – Taught the fundamentals of electronics circuit design, power management, and introduced the usage of various electronic components (i.e. Op-Amp, Transistors)
ECE 270/370 – Taught various programming techniques using the C++ programming language
ECE 319 – Strengthened the understanding of Electromagnetic Compatibility and how to better design efficient hardware
ECE 471 – Taught software technique in interfacing, and data transmission techniques and protocols between two computers.
Preliminary Ideas and Methods
The initial idea is to design and build a Micro-Mouse Maze Solver Robot that will be able to learn an unknown maze (used in typical Micro-Mouse Maze Solver Competitions, such as the one shown in figure 2) very quickly, small (physical dimension not to exceed ~90mm x 100mm x 80mm), and low powered without sacrificing performance (speed, accuracy, efficiency). A typical battery may be from 5V (to power integrated circuits) to 12V (to power motors). However, the goal is to accomplish the job with minimum power and thermal dissipation.
Figure 2
In order to accomplish the initial goal, the robot must know exactly where it is at any instance and decide what it must do to reach its destination. Once the robot has reached its destination, it must be able to identify it. To successfully reach it’s destination, the robot needs to avoid many obstacles (walls of the maze) and control it’s dynamic speed (wheel/motor).
This robot will consist of five major subsystems, (1) electromechanical design, (2) wireless communication, (3) range determination and path finding, (4) android application and communication, and (5) machine learning.
The goal of the electromechanical design subsystem of the robot is to design and implement optimum mobility. The robot must be able to move forward, reverse, right, and left, while maintaining desired speed. These tasks can be accomplished by using motors (stepper motors, DC motors, servo motors, etc.), motor controllers, and something (i.e. pulse width modulation (PWM), digital potentiometers, etc.) to control the speed of the motor.
The goal of the wireless communication subsystem is to establish wireless (i.e. Wi-Fi) communication between the robot and a computer. The robot will be programmed via the wireless system implemented and also be debugged using that very system.
The goal of the range determination and path finding subsystem is to avoid any obstacle (walls of the maze) and obtain information (approaching and side wall distances from the robot chassis) for the microprocessor to calculate possible routes and perform path analysis (i.e. which way to go?). This can be accomplished with dedicated sensors (i.e. Infrared (IR) sensors, ultrasonic range finder sensors, etc.).
The goal of the android application and communication subsystem is to establish wireless communication between the robot and an android smartphone. Once the communication has been established, the android application (that will be developed as part of this subsystem) will seek real-time data from the robot about its position and heading. As the robot travels through the maze, a virtual maze will be generated on the smartphone and displayed on the phone’s screen. Figure 3 depicts a possible GUI (Graphical User Interface) of the android application.
Figure 3
Once the hardware portion of the robot is completed, extensive programming (referred as machine learning) will need to be done. The goal of the machine learning subsystem is to establish the robot’s control systems based upon the gathered data from various sensors. This will be accomplished using a programming language (i.e. C, C++, Java, etc.) and a dedicated microcontroller (i.e. PIC, ARM, AVR, Arduino, etc.). This subsystem will be implemented in conjunction with the electromechanical design, and range determination and path finding subsystems.
Another vital goal of this project is to consider the power management options and the effects of electromagnetic interference (EMI). Aim of this part of the project is to utilize the minimum power consumptions without sacrificing performance, and also to make sure that all the electronics are functioning efficiently. This goal will be attained in conjunction with all of the above five subsystems.
Through the course of design and build of the robot, great thoughts will be given for neatness of the final product. The final packaging will consist transforming all the prototype circuitries into printed circuit boards (PCB). Once this part of the project is completed, the robot will be ready for demo.
Specifications and Engineering Standards
The completed robot must be able to achieve the following specifications without any difficulty, along with individual parameters of each subsystem (discussed later).
Qualitative Specifications
Ability to solve an unknown maze autonomously
Calculate and execute the available path(s) to reach destination
Reliable wireless communication between computer and the robot
Reliable wireless communication between Android smartphone and the robot
Android application to visualize the robot’s point-of-view
Least thermal dissipation, and minimum electromagnetic interference
Quantitative Specifications
Size of robot may not exceed 90mm x 100 mm x 80 mm
Weight of the robot may not exceed 0.5 kg
Low power (5V to 12V) consumption
The following engineering standards will have been implemented by the completion of this project.
Programming language (i.e. C, C++, Java, Arduino, etc.)
Android Software Development Kit (SDK)
Wireless communication (i.e. Wi-Fi)
Serial Peripheral Interface (SPI) Bus
Electromagnetic Interference (EMI)
Performance Analysis
Once the design has been implemented, the performance of the robot will be analyzed based upon the following highlighted specifications.
Various sensors (i.e. IR, ultrasonic range finders, etc.) provide accurate data (distance) in a reasonable amount of time (determined by the processing time required for smooth operation of the motors) to the micro-controller.
Microcontroller be able to control the desired speed (variable speed: slow down fast, speed-up fast, halt etc.) of the motors.
Final product is in compliance with the specifications of each subsystem.
Microcontroller calculates the path to the destination (solve a maze) based upon feedbacks from sensors, and implemented algorithm.
Project Cost Analysis
The following table shows a general cost analysis of components that maybe needed to accomplish the final product. Since all the components have not been finalized, the cost and quantity of each item is merely an estimate.
Time Schedule
The following table organizes the expected time allocation for each phase (subsystem) of the project over the span of 3 semesters (winter 2012, summer 2012, and fall 2012).
Attached
Final Formal Proposal (PDF) - Corrected
Initial Formal Proposal (PDF)
Initial Formal Proposal - Comments (TIF)