Free Essay

Gs-1140 Pst Micromouse Report 3

In:

Submitted By marilyn11ga
Words 1568
Pages 7
Introduction
The evolution of autonomous robots has inspired competitions worldwide, including the most notorious Micromouse Competition. This competition has existed for over 30 years in the United States and hasn’t changed much since the beginning. The goal is simple: the robot must navigate from one corner to the center as fast as possible. The actual final score is comprised of the total time in the maze and the time of the fastest run. The various components include techniques to streamline the methodology and make a proficient automated robot.
Maze Solving Strategy
The maze solving strategy is comprised of an algorithm. An algorithm is a step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps. The implementation The Group chose was a revised version of the bellman flooding algorithm. The algorithm requires around 256 X 3 bytes of memory. The selected microcontroller for implementation had only 256 KB of memory. We need to use software that has exceptional amounts of RAM and ROM memories. To solve the whole maze you will need to set the starting cell to the first cell in the maze. If you want to reverse the path traveled by the robot then you would set the target to the first cell, and the starting cell would then be the center or your current location.
The problem statement has been simplified to three rules which we will follow to direct our robot to the center of the maze. As the cells are mapped with numbers, at each cell the robot is expected to make three resolutions: 1) Move to cell which it has gone to least.
2) Move to the cell that has minimum cell value.
3) If possible the robot must try to go straight.
Previous testing and documentation designates that if these three conditions are followed at each cell position the robot will achieve the goal of reaching the center of the maze. To solve the whole maze you will need to set the starting cell to the first cell in the maze. If you want to reverse the path traveled by the robot then you would set the target to the first cell, and the starting cell would then be the center or your current location.
Programming:
This is an example of an algorithm to generate cell values at run time:
• create and initialize a queue with 256 elements
• create a routing map as an array of 256 bytes
• fill the array with the value 255
• fill the target cells(s) with the value 0
• add the target cell locations to the queue
• while there are items in the queue
• get a location from the tail of the queue
• if the cell does not contains the value 255 then
• for each accessible, unfilled neighbor
• put in it a value one more than the current cell
• add it to the queue
• end for
• end if
• end while
You would run this algorithm as many times as you have processor time allocated for. Assigning different weights to the neighboring cells depending on whether you will need to turn to get to them etc. would be an example of an enhancement to the route for optimal speed. Diagrams depicting the programming required are shown below. Using the second method, first mark any cells that are adjacent to and reachable from the goal as frontier cells. Flag them and added to a queue of cells to be processed. While there are cells in the frontier queue, process each one. The content of each is replaced with the distance to the goal (either stored in the frontier queue or calculated from the neighbors as you go. The replaced cell then has its neighbors marked and placed in the frontier queue. The frontier moves toward the start and the visited cells fill with numbers.
The sequences below show the bellman flooding algorithm being applied to the remainder of the maze.

You can clearly see how dead ends are handled and what happens when there is more than one way through. You will need to be careful about not adding a cell twice to the frontier list.
Once the frontier reaches the start cell you are done. The shortest route that you know of is now traced by simply moving to the neighboring cell with the lowest value.
Robot
The design and hardware must allow for the manipulation of 90-degree turns as well as U-turns as smoothly as possible. The robot dimensions are 10cm X 10cm. The Group decided to evaluate the Micromouse hardware into two stages. First, we need to choose the type of motor and lastly, we need to build the chassis.
Our micromouse was made with a DC motor. This corresponds with our strategy of utilizing accurate sensors. The DC motor is advantageous because of its higher torque for a low cost. We then incorporated four 6F22 9v general batteries, which generated some issues with weight. This obstacle was overcome by the application of a superior gear system. The intended weight of the robot was to be less than 500gm. Achieving this target weight allows the facilitation of free motion for the micromouse, even on coarse terrain. We opted for a three wheeled robot with the ability to negotiate turns easily.
In order to execute the algorithm accurately and prevent the robot from crashing into obstacles the robot has to see the environment it is moving in. That is where sensors are necessary. The Sensing devices we chose to use are known as “under-the-wall” optical sensors. These sensors can measure the distance from inside the wall, and can be used in compact designs. The most accurate technique is to measure the intensity of the optical wave and finding the distances of the robot from the obstacles at short distances. Conversely, a simplified and less precise practice is to move at accurate distances per move and keep counting the cells and keep the robot aware of its current location in the maze. Short range sensors that can detect the presence of obstacles and not calculate the distance of the robot from the obstacle were the best solution.
The short range IR sensors were designed with a dynamic range of 1-8cm. The IR sensor designed was having one IR Led and one Photodiode. Measures were taken to ensure ambient light does not disturb the IR sensor. The required number of IR’s was five; three sensors to detect the presence of walls on three sides front, left and right, and then two more sensors on each side to detect the inclination of side walls as related to robot’s line of motion. In the designed inclination sensor the robot gets an inclination error signal when the robot is at an angle less than 72.5 degrees with the walls.
As long as the robot was 90-degrees with the side walls there is no error signal. If the robot deviates from its path and moves at an angle towards the wall then the inclination error sensors would be set high this can be detected and processed. The wheels selected for our design were plastic hard wheels for that offered less slip over smooth surfaces, than rubber wheels. Some amount of wheel slip is needed to exert the acceleration force. Selecting a simplified hardware approach required a more intricate programming system. The electronic design is centrally designed around the microchip processor. We selected the PIC16F877 which has 5 ports that make our interface with external hardware easier. PIC is then interfaced with external EEPROM memory to enable extensive programming. To keep the hardware small and compact, the inbuilt EEPROM code memory of 8k was used for programming and the data memory of 256 bytes were used for runtime memory map storage. All the other data storage requirements are implemented on the 256 byte RAM. The processor is the only onboard programmable chip. The other peripherals included a Shmitt trigger IC 74HC14N.the voltage levels from the sensors were a change from 1.45v to 0.25 volts when an obstacle was detected. The inverting Schmitt trigger was interfaced to bring the detecting signal to TTL logic.
The DC motor Design was used historically for the micromouse, where two individual motors were used to drive the wheels on either side. Reduction gears are used to optimize the speed. Circuitry was required to enable drive on either side of the signal controls for both forward and reverse options. The relay used to implement this is as follows: 2 unipolar 16v relays used to choose proper motors and 2 bipolar 5v relays used to determine the direction of the motors. However for the Group’s robot we chose the Stepper motor design, specifically the NEMA 14. This motor requires a special driving mechanism. We drove the NEMA 14 with a serial pulse of 16v, and a 500mA supply. The drivers used were IC ULN2003. The microcontroller port B was assigned for driving the motors and IC ULN2003 was interfaced with the microcontroller port.
Conclusion
MicroMouse is a principal model of an engineering experiment that most theory-based device solving techniques will not apply to. The Group’s robot was designed to tackle most practical probes encountered in real situations. The nature of the challenge enabled us to gain insight on the elements of mechanical, control, signal and computer engineering.

Similar Documents