190 likes | 289 Vues
This article delves into the programming and application of autonomous mapping robots, exploring how they create maps without human intervention. The text covers the challenges faced in designing these robots, including inaccuracies with compass and ultrasonic sensors, and the complexities of accurate directional movements. The use of Lego Mindstorms in creating mapping robots is highlighted, along with the programming languages and environments available for such projects. Conclusions drawn from the experiments and challenges faced are also discussed, providing insights for future developments in this field.
E N D
Exploring the programming and application of autonomous mapping robots Computational Modeling Shaun Allison Andrea Gawkins Raleigh Charter High School Jack Britt High School 2010
What is an Autonomous Mapping Robot? • Without any human intervention it is able to create a map of the surrounding area on its own. • Programmers must give the robot the ability to decide where to move, and where it is safe to move. • Using Lego Mindstorms, we were able to make mapping robots that consisted of two different functions.
If current direction is at least 4 units away from the desired direction Start Sets Motor A’s power to 30 and Motor C’s power to -30 Sets Motor A’s power to 30 and Motor C’s power to 30 No Creates array map[], initializes sensors Yes Reset rotation sensor in Motor A Decides a place to move to on the map (adjacent square) Records starting direction from compass and starts a timer Sets Motor A’s power to 30 and Motor C’s power to -30 Displays the map on the screen If rotation sensor < desired distance Yes If timer < 1000 OR the current direction is at least 4 units away from the starting direction No Yes Sets Motor A’s power to 0 and Motor C’s power to 0 Plots a point on the map using the compass and ultrasonic sensor No
What is an Array? x[] distance[] x[0] = 3 x[3] = 9 x.length = 6 The mapped data in the current area is mapped in this format (polar coordinate system)… but the map is stored in a Cartesian coordinate system
Two Dimensional Arrays map[][] map[2][1] = true map[0][0] = false map[4][3] = false
How does it map? 110 110 degrees Robot 20 centimeters 0 30, 30 Obstacle x-offset: cos(110)*20 = -7 y-offset: sin(110)*20 = 19 23, 49 x: 30 - 7 y: 30 + 19
Challenges with Mapping Robot – 1 • Inaccurate compass • Inaccurate ultrasonic sensor • The whole robot had to spin, making readings even more inaccurate • Walls mapped were often curved when they shouldn’t be, because of the way the robot turned
Challenges with Mapping Robot – 2 • It was difficult to get the robot to turn accurately to the north, south, east, and west • Takes a long time with a lot of movements to generate a good map • Runs into walls often when not detected by simple mapping technique
Works Cited: Robots programmed with: NXT - http://mindstorms.lego.com/ NXC - http://bricxcc.sourceforge.net/nbc/ Physical Etoys - http://tecnodacta.com.ar/gira/projects/physical-etoys/ Physical Etoys is a modification of the program Squeak - http://www.squeak.org/