University of Minnesota
Robot Rescue Responder: Learning Robot Programming through Playing Computer Games
index.php

Game Examples

Beginning Programming

The games are designed to cover a range of programming skill levels. For beginners, basic movement and coding practices are introduced in a simple environment.

lesson_1

The games come with libraries of functions designed to make the coding process easy to understand for beginning students. In the example above, the robot can be made to move by calling simple functions such as:

code_example

All coding is done in the Python programming language using the IDLE python IDE. Functions can be executed line by line through a command line interface or by creating an entire Python script, which gives students the flexibility needed to explore the programming process.

Advanced Programming

As the students advance in programming skill, more complicated tasks can be introduced. By combining the robots with various touch and distance sensors, the students must program the robot to automatically search for certain objects or to navigate a complex environment without running into obstacles.

lesson_2 lesson_6

Robotics Programming

In the games, the robots can be fully programmed to be autonomous or can be controlled by the user via a joystick or keyboard interface. This enables the students to explore combinations of autonomous and human-controlled behaviors. For instance, one robot can be controlled by a human while a second robot is controlled by a program.

lesson_7 lesson_7

In the pursuer-evader game above, for example, the user can manually control the robot pursuer or can design an algorithm to do the job automatically. Since the robot does not have a full view of the environment (its view is in the upper-right of the image), the user can be given this same view when manually controlling the robot. This provides a better understanding of the challenges faced by the robots when making autonomous decisions.

maze maze

The students are also given open-ended problems with multiple solutions, such as getting a robot to navigate a maze. By providing a second, human-controlled robot, the student is able to try various methods manually before implementing them in code. The student can also use the manually controlled robot to see how their algorithms compare to a human, which encourages the development of better solutions.

For more details, view the lesson plans here.