Tuesday, December 22, 2015

On Monday night, sixteen teams of excited middle school students gathered in "The Pit" at Morse High School, robots in hand, ready to go head-to-head in the Sumo ring. Each team spent two months designing, building, programming, testing, troubleshooting and debugging these robots.

The robots were all made from LEGO Mindstorms kits, and had to fit within a nine inch square space and weigh no more than 32 ounces.

The objective of the Sumo Robot competition is simple: be the first robot to push your competitor out of the ring without falling out yourself. Each successful ejection of an opponent's robot earns the winner 3 points, each tie (robots are tangled and not moving, both fall out at the same time, etc.) earns each team 1 point, and a loss earns 0 points. The first team with 5 points wins the bout.

Each of the robots uses an ultrasonic sensor to locate its opponent. These are the glowing red circles that look like eyes. They send out a high frequency sound signal and listen for it to bounce off an object. Once a threshold is set, the cpu will go towards the object once it is sensed.

The sumo rings, built by me and a couple of my skilled neighbors out of salvaged plywood, are designed very specifically. The rings have a diameter of 39.5 inches. The center of the playing surface is black and non-reflective, and the outer edge is painted glossy white. The robots all use color sensors to avoid falling out of the ring. These sensors are able to detect the color white (by analyzing wavelengths) or changes in light reflectivity, sending a message to the cpu to interrupt the program and stop forward motion when a certain threshold is met.

It was pretty cool to see the array of programs that the different teams created. Some used switches ("if" statements), and all of them used loops. In the same way that writing is really about revision, programming is really about debugging. Each team spent a lot of time refining their original programs to make the robots behave in the way the designers imagined.

After an hour and a half, all the bouts were completed and we had a winner (NaCl), a second place bot (Robocop), and a third place bot (Bitty Billy). Even though this was a double elimination event, we were caught up in the excitement of the moment, and neglected to have the winner of the winners' bracket do two bouts with the winner of the loser's bracket. So officially, we decided that NaCl and Robocop tied for first place.

It was a great evening and, as you can see in the photos, the kids were engaged. I am grateful to The George Davenport Trust for giving us the grant to buy these kits, and to the teachers and administrators of RSU 1 who support this kind of programming for our students. Whether or not these kids grow up to be engineers, the lessons learned through this kind of experience build brain cells and make learning joyful. And you can't ask for more than that.

*We made an error and didn't have NaCl and Robocop do their final bout during the tournament. Mr. Seymour and I ran the two bots after the tournament, and Robocop won. Since this was our mistake, both NaCl and Robocop will receive first place trophies, but Robocop is the official champion.

Saturday, December 12, 2015

This year's crop of Robotics students gathered today at Bath Middle School for an extended work session. One of the biggest challenges of teaching robotics during the school week is that our classes, at around 45 minutes, are maddeningly short. On this Saturday morning, we set aside three full hours for kids to build, program, test, troubleshoot and debug their Sumo Robots. What a difference a few hours makes.

By the end of the morning, we had more than ten viable competitors with a variety of programs and body designs. A major challenge in construction is keeping the robot within the 9 square inch size limit. Many of the robots needed to be modified in order to fit. Another limitation for the robots is that they must weigh less than 32 ounces. Interestingly, most of the builders were finding it difficult to get their robots above 24 ounces. As is the case with Sumo wrestlers, heavier competitors push harder, and are harder to push around.

The student team above experimented with gearing down their motors -- putting small gears on the motor axles to turn larger gears on the wheel axles. They ended up with a 2:1 ratio which made the robot slower than others, but far more powerful.

We also had the chance to focus for longer periods of time on programming. The sumo robots need to do three things autonomously:

locate their opponent

push their opponent out of the ring

retreat from the white edge of the sumo ring

These creations are not remote controlled. On the contrary, the builders press a button on the EV3 brick, and step back. The robots have to think on their own using the programs the students wrote for them. The more I tinker with the LEGO Mindstorms programming environment, the more nuanced my understanding of it becomes. The best programs for this purpose seemed to be the ones with two loops nested in one big loop. We also learned about the different ways to stop a loop from running.

A powerful aspect of the Mindstorms kits is that you can run programs while the robot is connected to the computer, and the blocks of the program become animated while they are running. This allows the programmer to see what's working and what's not working in real time.

Of course, there were many practice bouts on the official Sumo ring which was set up in the library. By all indications, the main event on Monday, December 21st in The Pit at Morse High School from 6:30 until 8:00 is going to be GREAT. We will have a tournament bracket projected on the wall, and robots will face off in a round of double elimination. By the end of the night we will have a first, second and third place finisher, and as of now, I have no idea which teams will prevail. If you're interested and available, you ought to come out next Monday to check out the action! It's a lot of fun!

I spent part of last summer putting together a scope and sequence for the LEGO program, and we have been following it pretty well. We began the year by writing code for a color sensor to sense one color and then speak its name. The program involved switches with multiple cases and a loop.

One program went above and beyond, and was able to detect and speak three different colors. The program looked like this:

Reading from left to right, this program says:

start

enter loop

if red is detected, say red one time

if red is not detected proceed to next switch

if green is detected, say green one time

if green is not detected proceed to next switch

if blue is detected, say blue one time

if blue is not detected proceed to end of loop

repeat loop indefinitely

I also had kids build driving robots that did simple movements.

Move forward a set amount, stop, and reverse to the starting point.

Travel in a square, returning to the exact place you started.

Use the ultrasonic sensor to maintain a set distance from an obstacle that moves forward and backward.

The LEGO kits we have use four sensors, a touch sensor, an ultrasonic sensor, a light sensor, and a gyroscopic sensor. Motors can also be used as sensors by measuring rotations/degrees and sending that data to the EV3 Intelligent Brick.

We have a series of exciting competitions planned for this year. On December 21st we will hold the second annual Sumo Robot Competition in "The Pit" at Morse High School. This is a really fun event that has pairs of robots facing off in a contest to push each other from the ring. 16 teams will compete for first, second and third place.

Later in the winter we will hold a maze solving competition, and then a qualifier for the statewide LEGO Robotics "Track Meet."

This type of learning is pretty enticing to middle school students -- it's creative, fun and experimental. It's a departure from typical classroom experiences. Kids get so immersed in the creative process that it's a challenge to get them to leave at the end of the period.

We have just scratched the surface so far this year. I look forward to watching the kids continue to grow by learning from "doing." I remind them each day that we learn from failing, so "fail early, fail often, and fail cheaply." We hope to see you at the Sumo Bot Competition on 12/21!