Robotics: Teleoperation


Teleoperation describes controlling robots by remotely. This is commonly done when sending robots into environments that people don't want to go for safety reasons. For example, teleoperation has been used in conducting rescue missions at disaster sites, or in sending explorer robots into space or into the ocean. We'll simulate teleoperation with the LEGO robots.

Part 1: Control your robot remotely

Construct Tippy or a similar robot of your own design. (There are some more useful designs in the Mindstorms for Schools book that's included with your kit.) However, remove the bump sensor from the front of the robot. Instead, you want to use both bump sensors in your kit to make a remote control. Mount the two bump sensors to some other LEGO pieces so that you can hold this "remote control" in your hands somehow and be able to press the two bump sensors with your thumbs. Use the long wires in your kit to connect the bump sensor to the robot. You now have a remote controlled robot! Write leJOS code so that your robot will go forward by default, but the left button will turn the robot left while you're touching it. Likewise, the right button will turn the robot right while you're touching it. If you touch both buttons down simultaneously, the robot runs backwards.

Your goal is to successfully navigate your robot in a circle around CMC 301.

Part 2: Control your robot remotely without looking at it

When teleoperation is done for real, the operator of the robot cannot see the robot itself. Instead, the robot transmits video signals, radio signals, or some other sort of information to help the operator decide what to do next. Here, your goal is to create a robot that you can steer towards a light source, but without being able to see it directly.

In the robotics closet, there is a small table lamp that you will use for your light source. Steering your robot to get to the lamp while looking at the robot would be easy. Instead, however, we will simulate having imperfect information. You will have to steer your robot to the lamp while you are blindfolded. In order to know where the lamp is, you will use a light sensor on your robot to observe how intense the light is, and your brick will emit tones accordingly. How you choose to encode the tones is up to you: perhaps the pitch depends on the intensity of the light.

Pages 142-145 in Bagnall describe how the API for sensors works. For starters, write a simple program that displays the value from the light sensor to the LCD screen. Make sure that you use the light sensor in passive mode. This keeps it from emitting any light of its own. Once you have the light sensor working, then you can read the material on pages 147-148 to learn how to generate sounds.

Part 3: Have your robot find the lamp by itself

Teleoperation makes sense when the robot is needed to perform a task that is difficult to automate, and human decision-making capability is necessary. This assignment was designed to simulate this scenario. In this particular case, however, the process of getting the robot to the light could be automated. Remove the touch sensors from your robot, and write a program to have the robot find its own way to the lamp. This is similar to what explorer robots on Mars are designed to do: navigate to "interesting things."

Putting Your Demo Together

Prepare a demo where you have all three programs loaded onto the brick. Make sure that you can easily add or remove the bump sensors from the robot (the light sensor can stay on for all three parts of the demo, even though it isn't technically used for Part 1).

Good luck, and have fun!


Authored by Dave Musicant.