Programming Artificial Intelligence Into a LEGO Robot

Lego Robots

Hello! My name is Tesca and I am one of the national winners of the NCWIT Award for Aspirations in Computing. I have always enjoyed programming, and especially programming the LEGO® robot on my FIRST LEGO® League robotics team. Two years ago, as the lead programmer of my robotics team, I developed software that would allow my team's robot to read instructions from a text file. This allowed the robot's controller to hold many more programs, and provided for instant software downloads from the computer to the robot. My innovation saved both time and memory space.

After creating this software, I wanted to develop new artificial intelligence-based pathfinding software that would allow the robot to create its own text-file instructions to guide it from one point to another. At first, I didn't realize how much time this project would take. After spending over 300 hours designing, developing, and debugging the software, the software produced correct results. My robotics team won first place in the state of Oregon last year with my software, and went on to win third place at the national competition.

Upon my return from the national competition, I realized ways that I could further improve the capabilities of the program. I created a new algorithm for my pathfinding software that balanced accuracy with efficiency. I also developed the ability for the software to use geometry and trigonometry to carefully avoid obstacles in the robot's way. Then, I created the flowcharts and software code for my more accurate and refined software program. After pulling all-nighters, overloading the LEGO NXT minicomputer that I used, and spending 440 hours developing and testing the program, I finished developing the software. The resulting program allowed the robot to make good paths to get from one point to another, while avoiding obstacles and balancing accuracy and efficiency in the routes it created. My robotics team placed first in Oregon with the software, and we advanced to the World Festival.

At the World Festival robotics competition, I met with the software developers from the LEGO® company. They had been asking to visit with me for the past two years, and we exchanged several emails in advance of our meeting. Based upon our email conversations, they sent a software developer from LEGO® with artificial intelligence programming experience to meet with me.

At the World Festival, I spent about four hours speaking with the LEGO® AI programmer and about twenty of their NXT programming staff members. At first, they wanted to know everything about my code and traced through the entire program. Then, they asked me funny questions about the kinds of books that I read and the music that I enjoyed. They wanted to know what I wished to see improved in their software. They took notes. I told them that my biggest request was that they add arrays. (I had to have the NXT store data in text files, which was necessary - but not ideal - since NXT-G lacked the capability to use arrays.)

I spoke for a long time with a female programmer who had created the user interface. She asked my opinion about a lot of things and took notes. My software programs impressed the LEGO® staff and they asked if I could present my artificial intelligence programming work at the LEGO® developers conference at the Denmark LegoLand next April. At the World Festival, we also won the first place Inspiration Award.