1 / 26

Zigbot

This project aims to create a robot capable of autonomously solving mazes and wirelessly transmitting real-time data. Multiple robots can work together to solve the maze. The goal is to win the IEEE Micromouse Robot Competition.

skorhonen
Télécharger la présentation

Zigbot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Solving Mazes Autonomously and Reporting via Zigbee Communications Zigbot

  2. Overview of Project • Create a robot capable of solving mazes autonomously. • Have the ability to wirelessly transmit any data from the robot in real-time to anyone/anything listening. • Program the robot in such a way as to allow multiple robots to solve the maze at a time. • Win the IEEE Micromouse Robot Competition.

  3. In the Beginning … • EE101 Robot Base • Robot created by the ECE department at MSU to get incoming students excited about electrical and computer engineering. • We chose to use this robot as a base to allow for a fast start on the project by allowing us to not focus on the design and layout of the board but on software and other hardware issues.

  4. Modifications and Additions to Chassis • Fitting in the Maze • Lifted the PCB and brought in the motors. • Trimmed the rear corners to make turning easier. • Adding Zigbee Module • Added a second female header to make the board act similar to the SLK boards. • Pin assignments for the motors were moved to the outside of the robot to free up the pins that the additional module required. • Batteries were changed to AAA NiMH to facilitate better mounting location and higher current drain from the wireless module.

  5. More Modifications and Additions • Mounting the Front Sensors • Size constraint was major issue. • Mounting the Rear Sensors • Added late in project due to lack of sensor information. • Creating the Wheel Encoder circuit • Done experimentally

  6. The Ideal Work Environment • Having a Debugger • 30ft BDM • Independent Power Supply • A single work environment was instrumental in productivity because we could spread out and have a spaces set up for specific tasks. • Having a Whiteboard

  7. Creating the Computer Interface • To connect the robot to the computer, the base of a single kit was used to create a computer base station. • The modifications made were as follows • Addition of 2 headers to “plug in” the Zigbee and CSM modules • Power and Ground cables running to a single 5V voltage source

  8. Final Chassis and Work Environment

  9. Solving the Maze • Memory Usage • Initial Starting Conditions • Orientation and Position • Dead-End Checking • Exploring then finding the shortest path

  10. Keeping the Memory Usage Low • Define the maze as a matrix and leverage the indices as the coordinates of the actual robot. • Use only a single byte per cell for On2 memory usage based on the size of the maze, which is predefined before compilation. • Cell Data consists of 4 bits for the walls and 4 bits for the explored paths. • Shortest Path algorithm only requires stack size equal to the number of cells in a maze.

  11. Orientation and Position • To solve the maze it is very important that the robot knows where it is inside of the maze. • To do this, the maze was defined using the cardinal direction system of NWSE. • North is always the first direction taken by the robot. • East is based off of North and is independent of the first direction taken.

  12. Preferring to Explore First • When deciding the next path to take the robot firsts checks if there are any open paths that have not been explored. • If there are multiple unexplored paths the robot will take the left most path. • If all paths have been explored the robot will search for the nearest cell with no explored sections.

  13. Starting in Any Direction • Assumptions: • Zigbot will always start in a corner of the maze i.e. not somewhere in the middle • Zigbot will always start with its back to a wall i.e. there is no open wall behind starting position • To start in any direction the Y-Axis is defined by the robot based on the first open sidewall encountered.

  14. One Way Walls and Dead Ends • An example of a 1-Way Dead End removal is shown below:

  15. Shortest Path Algorithm • All cells explored are stored in a queue • If the current cell exists already in the queue at a closer path from the start point, queue index will reset to where the cell previously at (remove unwanted cells) • If an adjacent accessible cell from the current cell is in the queue, check if it shortens the path then make shorter path in the queue and set open to explored.

  16. Overview of Robot Maze Solving • Low Memory Ceiling so 1 byte/cell is good. • Robot will maintain correct orientation and position from all starting possibilities. • Robot removes Dead-Ends by creating One-Way walls. • Robot could easily prefer to explore towards the center of the maze. • Robot shares information with anyone listening.

  17. Error Detection and Correction (EDAC) • Error is continuously accumulated. • Correcting errors creates the strong possibility of causing more errors. • The maze is the only absolute error free point of reference.

  18. Keeping in Line • Side Wall Correction • Internal Wheel Encoder • Correcting in Corridors • Correcting with a Single Side Wall • Correction on Corners • Front Wall Correction • Keeps reading front sensor for a wall • Checks for edge detection to account for accrued errors

  19. Internal Wheel Encoders • Sensors on the wheel give a absolute encoder • Counts edges to allow for distance sensing. • Used to turn as “close” to 90/180 degrees as possible. • IR Sensor reads each edge

  20. Sidewall Correction • 2 Wall Correction • Compares sensors on opposite sides of the robot only when it detects walls on the front side sensors. • 1 Wall Correction • This happens only when we don’t have two walls. • Make sure that the robot is not too far or too close from the wall. • Compares the front and rear readings from the side of the robot that is detecting a wall.

  21. Correction around Corners • Robot turns as close to 90 degrees as possible using the internal wheel encoders. • Once turn is nearly complete it reads the front and back sensors from the side with a wall. • The robot keeps turning until the front and back sensors are equal, just like the one wall correction.

  22. Recap of Real-Time Correction • Robot must continuously fix itself due to errors always being added to current state. • Double Wall Correction • Single Wall Correction • 90 Degree Turn Correction for distance and angle of turn. • Wheel Encoder Distance Correction

  23. Transmitting Wirelessly • Uses the Freescale Zigbee Module • Same as used in the MSU Embedded Class • Low Power by design • Up to 1Mbit Bandwidth • Long Range Indoors • 61ft on 6th Floor of Cobleigh Hall

  24. Working with Multiple Robots • Must use the same data structure for each robot. • Must use a scheme that will allow the maze to include ‘n’ amount of robots solving the maze simultaneously from a single corner. • The maze is the absolute marker so that the robots can traverse through it using a single shared coordinate system that is free of errors.

  25. What do we send? • 5 packets of 4 bytes • Each packet contains X,Y,CellData,Orientation • Only the first packet contains the robot orientation, the other cells are stuffed with 0xF0 in the orientation byte.

  26. Conclusion • Very complex project has presented many challenges. • Proved the adage that most designs fail at the interface, this is where most of the problems were encountered.

More Related