The Robot Dojo
The robot I called Captain Hook had it all: sensors to detect an approaching victim, sensors to let it know when it was in grappling range, sensors to nimbly guide it around the edge of the arena. The algorithms were more fiendish than anything I had taught the kids: it could feint an attack; it could circle the arena and attack from behind; it could disengage when it lost purchase on the canvas. It’s weapon, a claw that scooped enemies into the air, was driven by a gear ratio so high the robot almost tore itself apart when I was testing it. It had taken me weeks of sleepless nights to build. The pads of my fingers ached from pushing and prying plastic rods and gears and pins. But it would all be worth it on the day of The Robot Dojo tournament. Victory for me was assured.
It might seem a little mean to work so hard at beating 10 year old kids at a robot competition. But I had founded my small robotics school partly as a way to justify the cost of purchasing a set of Lego Mindstorms robots for myself. As a child, I had been obsessed with science and technology but never had anyone to guide me. My electronics kits devolved into tangles of wires. My chemistry set left behind stains and bad smells and not much else. The Mindstorms were my chance to finally build something. And where I had had no one to teach me, I would teach others along the way. What better way to teach than with a good clobbering in the Sumo robot ring?
The Robot Dojo was founded a few years ago at the height of the STEM and learn-to-code hype. I was concerned this movement was more about molding future drones for the tech giants than allowing kids to explore and express themselves on their own terms. I wanted to inject some creativity into science teaching, allowing children to dream up their own uses for robotics, however impractical. This vision was only partially realized but we had fun trying.
We bought eight Lego Mindstorms kits and a handful of the cheapest laptops available and quickly discovered that creativity does not come cheap. The kits are expensive ($400CDN at the time) and need to be shared among students either during the same class or in succeeding classes. Moreover, the Lego Technics pieces are not like the bricks most people know, that snap together one on top of the other. These are rods, bars, pins and all sorts of irregular shaped pieces, capable of building complex machinery. In fact, the pictures on the box show stirring images of walking droids, battle tanks and mechanical cobras. But in reality, the pieces are fiddly and require hours of practice just to build the simplest thing. Kids were going to get frustrated in a short class, especially when they had to tear down what they'd worked so hard to build for the next group. So we gave them simple starter bots with two driven wheels and a caster, and devised imaginative programming tasks for them to solve.
Competitive problem solving
Students worked in pairs, competing to solve these challenges. They were required to talk their way through a solution before touching the robots. The challenges involved logical thinking, measurement and math. For example, they were asked to send a robot around the moon (a bucket in the middle of the room) and back to its base, but they couldn’t step out into space (the floor) to test. They had to plot their robot’s course before launching, based on what they knew about it’s speed and timing. Each challenge incorporated a new programming concept, such as loops, conditional statements or math functions, or a new element of the robot itself, like the different kinds of sensors. Since we never gave them the solutions, they slowly built up their own knowledge, until they could solve classic problems like line-following on their own. Their greatest triumph was solving a maze: designing the algorithm was an intense experience, that demanded analysis, debate, and even walking through the maze themselves.
In fact, as satisfying as these moments were, the students found the mental effort associated with programming exhausting. This was not helped by the Lego programming environment, a behemoth piece of software that brought our cheap computers to their knees. It purports to make programming easy through a visual flow chart-like interface. But even the simplest math becomes an unwieldy knot of lines and blocks. In later classes we began to experiment with the open source ev3dev project which replaces the OS on the CPU brick with Debian Linux and allows programming in Python. Students found this more pleasant, but the fact remains, programming is hard. “Stressful,” my son recalls.
Freedom to build
We also held summer camps that allowed more free reign and that combined programming with other activities. As an amateur polymath myself, I have a deep-seated belief in the importance of breaking down barriers between disciplines. Hyper-specialization might create more efficient workers for the click mills, but being able to think creatively in different areas creates a more rounded child. Inspired by the Computer Science Unplugged curriculum we devised outdoor sports that incorporated elements of spatial thinking and algorithm design. One of the most entertaining was a playground-sized network graph. A series of planets (different play structures) were signposted with different destinations to other planets in a complex web. Only by racing through the different paths were they able to pick the winning series of moves. We played this in -10C, but the children were so engrossed they didn’t notice the cold.
Once the children had mastered the basics of programming, we allowed them to build their own robots. Some built dance bots and gymnast bots and decorated them. Others worked towards competing in a Sumo tournament. The only restriction on building was that they couldn’t steal pieces from their classmates sets. Once they'd used their allotment of prized 17-hole bars, that’s it. As I predicted, they had a very hard time building anything functional with the Lego Technics. Limbs, weapons and wheels constantly fell off, waggled where they should have held firm, crashed into each other and simply wouldn’t replicate the children’s fantastical imaginings. On the other hand, they had a lot of fun scraping through their boxes of pieces, running to see what the other teams were up to, running back to build counter measures. One of the most entertaining was built by a team that kept adding more and more pieces to a front defensive plough until it extended outward in a great black curlicue. The others called it The Moustache and wondered how they were going to beat it.
The Final Battle
Every robot fought every other robot. Most of the battles went one of two ways: either the robots stood at opposite end of the ring, ran in circles and never came near each other, or they engaged in a hideous grapple, until both toppled from the board together.
“Watch how it’s done, kids,” I said, stepping up and presenting Captain Hook. They watched. In one fight, my robot walked itself off the ring, victim of it’s own ambitious evasion algorithm. In another, it’s hook got stuck under a larger opponent and lifted itself into the air. In the final fight, The Moustache batted it off the board without even noticing. I was mortified and took my robot back to the workbench to lick my wounds. I thought of giving the students a lecture in the perils of over-engineering, but...
Financially, The Robot Dojo was not a success and judging by the number of similar outfits that have come and gone since then, I suspect this is fairly typical. I think there are two main problems with teaching kids robotics at this level:
- Robot kits are expensive so you have to share them among students, either in teams or from one class to the next. But programming and building, at least on an exploratory level, are solitary activities, like reading a book or writing. Even today, I have to escape to the library if I want to get any real work done. For children it can be excruciating to work through an intense problem surrounded by noisy peers.
- There’s not a whole lot you can actually do with the robots, at least not without a lot of time and experience. My students were momentarily thrilled when they discovered how to make a robot follow a line, but after that, so what? What can you do with a line-follower, other than enter line-following competitions?
I still have the robots and occasionally wonder what I would do differently the next time. Here are possibilities:
- Allow the students to build the pre-designed kits like the ones on the Mindstorms box. This feels like cheating to me, but it does give them familiarity with how to build. Originality often comes through modification rather than greenfield invention.
- Use the remote control instead of programming. Children appreciate the instant feedback of the remote control. This may lead them to start mentally modelling the robot behaviour, which could make programming easier later on.
- Design more interesting and creative programming challenges. For instance, build a robot that can get past a swinging blade, break out of jail by evading a patrol, fire a projectile, move to a beat.
- Get some Lego pieces that interface Technics with regular Lego bricks, since these are much easier to build with. You can’t do as much with bricks mechanically, but kids care more about the looks anyway.
- Incorporate some kind of work from home, either using cheaper kits the students purchase or using a home programming environment, like the one that comes with OpenRoberta. In fact, I’d begun experimenting with controlling robots remotely from home, so students could have battles at a distance. With Python, they could map a room using the ultrasound sensor, then create different functions for different attacks. But this assumes of course that the students actually care enough to work on them at home. Most don't, which is fine.
The problem with all of the above points is they require intense amounts of work to design. For me, it was tiring enough just picking up the pieces at the end of each class. Also, they may simply expect too much of the classes. In fact, if we had any success, I think it was in providing kids with a place to get together and have fun in a somewhat techy atmosphere rather than molding young minds.
On that final day I sat at the workbench sadly tinkering with my robot. For the kids, my defeat didn't even register. By then, they had stuffed pillows down their shirts and were Sumoing each other.
Then I heard one lone voice call out from across the room.
"Hey Conrad, can I borrow Captain Hook?”
So, my robot had made an impression after all! They wanted to glean what they could from the design. Perhaps the gearing, the ingenious placement of the sensors, the compact distribution of weight. "Sure, but don't break it," I said generously.
“Don’t worry. I just want to use it for target practice.”