A Robot mapping a series of hallways Isaac Rieksts Name I am working on making a maze in which to have a robot navigate.
Introduction Why this project? My Simulator Local Map Recognize Openings Making a turn Follow directions Mapping Adding some AI
Why this project? Summer internship Worked with Dr. Roppel Divided into 2 groups 3 person team for simulator
My Team Adam and steve
My simulator The program is only in simulators Player Stage Runs only on Linux
Summer programs Wall Avoid Following the leader Speed algorithm Turn algorithm
How to turn the range to points X = cos(q) * r Y = sin(q) * r
Turn sonar into X, Y points dist = sqrt((x2 - x1)2 + (y2 - y1)2). This allows us to use the Law of Cosines to get the angles a and g. a = cos-1(OB2 + AB2 – OA2 / (2 * OB * AB)) g = cos-1(OB2 + BC2 – OC2 / (2 * OB * BC))
How we get the angle dist = sqrt((x2 - x1)2 + (y2 - y1)2). This allows us to use the Law of Cosines to get the angles a and g. a = cos-1(OB2 + AB2 – OA2 / (2 * OB * AB)) g = cos-1(OB2 + BC2 – OC2 / (2 * OB * BC))
The Local Map
Recognize Openings
About to turn
Making a turn Had a lot of trouble with this First tried a turn algorithm that was generic To solve this calculate the distance to end of turn
Current Turning Starts with a non-sharp turn Increases the amount it turns as it goes At the half way point decreases the amount it is turn Thus finished the turn with a non-sharp turn
Turning
Possible ways to fix turn Use a constant speed Change algorithm from a linear one to an exponential algorithm Use the side sensors to avoid hitting the walls on the side
Follow directions This is useful for testing the algorithms I have just talked about Recognizing Openings Making a turn This is also used for testing the map
Mapping Drop a robot into a new environment It will go through all possible hallways and make a map of them I am using x, y points for each node
Final step (putting some AI behind it) Basic alg. Go Straight if can Else turn right Else turn left Backtracking If it comes to a node it has been to before. Then it will go back to last node missing an arc