KISS Institute for Practical Robotics

ROBOTICS LABORATORY
Wheels and Navigation

ACTIVITIES

Built for Speed

Turn and Zig Zag Robot

Climbing Baby Bot

Bouncing Baby Bot

Movement and navigation can present problems in robotics. The question that you as a student engineer face is, "Which wheel will I use for a given surface?" Depending on the sophistication of the problem, engineers will test several types of wheels, treads, or legs on a robot. They will also test the wheels, treads, and legs on different surfaces so that they can understand how each performs. Scientists and engineers must know and understand the surface on which a robot will traverse. In this lab, we will test the performance of three different wheels and a tank tread on a couple of different surfaces. Our experiments will focus on speed, turning, and climbing. After you complete the following experiments, you will know which wheels work best on each surface; you'll know which wheels are best for turning, which gear ratios work best for a given situation, and which wheels help your robot excel at climbing, and who has the fastest design in class. Here's a structurally sound RCX robot designed for these activities. NOTE: These activities can be completed individually or as a group project.

WHEELS

Figure 1. Four LEGO wheels: (A) tank tread, (B) low rider, (C) large star, (D) NASCAR

ACTIVITY #1 BUILT FOR SPEED

Top

In this activity you will need the RCX robot, electric tape, the wheels in Figure 1, pencil, paper and a stop watch. The problem is that we need to design a robot that can perform several tasks at different speeds. However, we do not know which type of wheel makes the robot go very fast, or which type creates a slowpoke. Your mission is to find out which wheel(s) are built for speed and which are your grandma's tires. Which wheel will make your robot move the fastest using a 1:1 gear ratio?

HYPOTHESIS: Wheel ______ will move the robot the fastest because ________________

________________________________________________________________________

PROCEDURE

1. Mark off 10 feet using a measuring tape. Now place a 6 inch piece of masking tape at the starting line and a 6 inch piece of tape at the finish line.
2. Load the computer program below into the RCX brick. Once the program is loaded, press RUN and watch the robot roll. To control the time variable, you must multiply the number of seconds 15 x 100 = 1500 in NQC language or 15 seconds.

 task main() { /* Here's what you need to do */
 On(OUT_A + OUT_C); /* turn on motors A and C */
 Wait(1500); /* Keep them going for 15 seconds */
 Off(OUT_A + OUT_C);  /* turn off motors A and C */
 }  /* that's all */


3. Now you are ready to test each wheel type on your robot, over a distance of ten feet.

Wheel (A) performance on the robot: it took ________ seconds for the robot to roll 10 ft.

Wheel (B) performance on the robot: it took ________ seconds for the robot to roll 10 ft.

Wheel (C) performance on the robot: it took ________ seconds for the robot to roll 10 ft.

Wheel (D) performance on the robot: it took ________ seconds for the robot to roll 10 ft.

Rank them in the following order from fastest to slowest:

 

1________ 2________ 3_________ 4__________ (your grandma's piece of junk)

How did your hypothesis turn out?___________________________________________

________________________________________________________________________

*ADDITIONAL ACTIVITY: Use different wheel combinations (A and B or C and A) and gear ratios to produce the fastest robot on Earth. At the conclusion, time your robot over a distance of 20 feet or have a drag race among the students.

ACTIVITY #2 TURN AND ZIG-ZAG ROBOT

Top

In this activity you will need the RCX robot, electric tape, pencil and paper. Problem: We need to develop a robot that has good turning abilities, but we do not know which wheel type works best on our robot. Unlike the last experiment, speed is not a factor. Which wheel is best for turning?

HYPOTHESIS: Wheel _____ will be the best for turning because ____________________

________________________________________________________________________

PROCEDURE

1. Use the same ten-foot track used in the last experiment. You will need a little extra width.
2. Now, load the computer program below into your RCX brick. Cut and paste.

 

// how much time to spend turning or forward
#define TURN_TIME 200
#define STRAIGHT_TIME 100

// speed to run a turned motor
#define TURN_POWER 3

task main() {

// start with both motors on
On(LEFT+RIGHT);

// repeat the following steps forever
while(true)
{
// turn right by slowing down the right tread
SetPower(RIGHT, TURN_POWER);
Wait(TURN_TIME);

// resume going straight
SetPower(RIGHT, OUT_FULL);
Wait(STRAIGHT_TIME);

// turn left
SetPower(LEFT, TURN_POWER);
Wait(TURN_TIME);

// resume going straight
SetPower(LEFT, OUT_FULL);
Wait(STRAIGHT_TIME);
}
}

 


3. You're ready to test the turning performance of each wheel.

 

 

Draw your robot's turning trajectory with wheel (A)

 

 

Draw your robot's turning trajectory with wheel (B)

 

 

Draw your robot's turning trajectory with wheel (C)

 

 

Draw your robot's turning trajectory with wheel (D)

 

 

4. Which wheel performed best?

 

 

5. How did your hypothesis turn out?

 

 

ACTIVITY #3 CLIMBING BABY BOT

Top

It's a little tricky to control autonomous robots and make them go were you want them to go. Remote control robots are fairly easy to control. When you move the control switch to the right, the robot moves to the right and so forth. Robots built around the RCX processor require programming. In our case, we will use the computer language NQC. Writing a computer program requires you to think critically about the task you want your robot to accomplish. You must determine how far, how fast, and in what direction you want the robot to move. In this activity we will put your analytical abilities to the test. Our first mission is relatively simple. We want to program our robot to move forward for a given distance, climb a ramp, and rest on top of a platform. Question: What are the best designs, motors speeds, and gearing ratios needed to climb a platform at different distances over given time intervals? Because designs and speed will vary from individual to individual let's narrow are experiment down to the problem of :What is the best overall gear ratio for this climbing activity?

HYPOTHESIS: We want to build a robot that can make it to the top of the platform and stop in the middle in 4 seconds or less. I hypothesize that the best overall robots for this mission will have a gear ratio of (circle your choice below) and a tire combination of (see activity #1):

1:1

5:1

1:5

Your Best Tire Combination_________________________________________________

SETTING UP THE TEST AREA

First, we will need to build a ramp and platform. You'll need a cardboard box (dimensions), some masking tape, a pencil and paper. We'll use the same robot as in the previous activities. You will need to place the ramp in a relatively open area, on a tile or carpeted floor. Tape the ramp of the platform to the floor for added stability. Next, tape the connection between the ramp and platform. Tape a large "X" right in the middle of the platform. This is were we want our robots to stop. Now, from the front of the ramp, measure off 3 feet. Place a strip of tape at the 3 foot mark. This will be the starting line for the activity.

THE COMPUTER PROGRAM

The computer program for this activity is relatively simple. When you turn your RCX processor ON and press RUN the motors will start and the robot will move forward. The statement that tells the robot to move forward is: On(OUT_A + OUT_C);. The motors will go for so many seconds. In NQC, you must multiply the number of seconds you want the robot's motors to turn x 100. If you want the robot's motors to turn for 5 seconds you must do some math (5 x 100) = 500 or 5 seconds to the computer. So the statement Wait(200); means that the computer will turn the motors for 2 seconds. To turn off the motors, you must write the statement Off(OUT_A + OUT_C);. If your program will not load make sure that you have capitalized or lower-cased the proper letters in each statement. Hopefully, you have already browsed through the simple computer programming tutorial and are already familiar with some of the basics. Cut, paste and convert the program below into NQC. Download and run.

task main() {

On(OUT_A + OUT_C);
Wait(200);
Off(OUT_A + OUT_C);

}

TEST YOUR DESIGN

Your first mission is to get your robot to rest on the platform near the big X. Use any gear ratio combination. Place your robot just behind the starting line. Press Run and see how far your robot gets. Did the robot make it up the platform? Change the number of seconds in the program to adjust the robot's forward progress. You can get pretty specific with the timing variables. For instance, if you want your robot to move forward for 3.35 seconds, you would write Wait(335); or 4.23 seconds would be Wait(423);. Be as specific as you need to be.

Now we want the robot to make it up the ramp in less than 4 seconds. Make changes in tires or gearing combination to meet your objective.

What was your best time?________________

What was your tire combination?________________

What was your gear ratio?________________

How did your hypothesis turn out_____________________________________________

ACTIVITY #4 BOUNCING BABY BOT

Top

In this activity, add a couple of ping pong balls. Now that you have your best robot design, here is a fun competition to test your design and programming skills. The game is called Bouncing Baby Bot. The objective of the game is to program and run your robot just like in the last activity. This time, your robot must climb the ramp and push one or two ping pong balls off of the platform. Place the ping pong balls in the middle of the platform. After your robot has successfully knocked the balls off, you must program it to return to the starting position. You will receive points for each successful task. Speed is not a factor in this competition. However, if you want to base the competition on speed, that would be a great too. Remember, you must change the time variables to meet the above objectives. See the diagram below for an example of how the game is played.

SCORING

If your robot makes it up the ramp and upon the platform without falling off, you get 5 points.
If your robot knocks one ball off the platform, you get 10 points, two gets you 20 points.
If your robot returns to the starting line, you get 5 points.

Good Luck!

Bouncing Baby Bot Computer Program

task main() {

On(OUT_A + OUT_C);
Wait(200);
Off(OUT_A + OUT_C);
OnRev(OUT_A + OUT_C);
Wait(200);
Off(OUT_A + OUT_C);

}

 



Back to the Main Activity Page

Please send any questions or comments to Here



 

 

 

 

 

 

 

 

 

 

 

 


Go to The Botball Home Page