When students are given the freedom to explore, amazing things can happen. That was the case for the Engineering program at Essex North Shore Agricultural & Technical High School in Massachusetts, where a group of seniors turned an open-ended project into a deep dive into automation, AI, programming, problem-solving, and collaboration. The result? A robot that plays chess!
From Idea to Innovation
Tristan K., a senior in the Engineering program at Essex North Shore came up with the idea to have a robot play chess early in the school year when he first heard that he would be using the UR3 collaborative robot more in-depth in class. He had prior knowledge of chess rules and strategies and of Stockfish, an open-source chess engine, because he plays chess on his own time.
Patrick McColl, Engineering teacher at Essex North, often gives his students open-ended project assignments that involve using different pieces of equipment in their lab. This gave Tristan the opportunity to bring his chess-playing robot idea to life with a group of Engineering seniors, including Max A., Tirth P., and Wesley P.
Patrick suggested that the Engineering group talk to the seniors in the IT program. So, the engineering seniors put together a presentation for the IT students. Avery A., a senior in the Essex North Shore IT program, immediately found the problem interesting because although they were versed in Python, this project involved a type of programming they had never tried before. They knew that the robot would require an external controller to utilize any chess AI and that they would need to write a program that would use a network to connect the AI to the robot.
Building the Foundation: Design, Programming, and Protocols
The students used equipment in their lab to create the chess pieces, which came together easily for Tristan. They were designed with OnShape and 3D printed from ABS on a Stratasys F170.
One of the more straightforward parts of the project involving the robot was using the teach pendant to program it using the GUI. Tristan found the interface to be intuitive and full of useful features.
For Avery, the easiest part of this project was creating a protocol, or language, for the controller and robot programs to communicate with each other. In a previous project, they had developed a device that encoded text data into voltages, so they were already familiar with planning such a protocol. They ended up creating a protocol where every command is issued in 32-bit messages, where different bits have different significance. They planned it all on a spreadsheet before implementing it in the program.
How Students Tackled Troubleshooting
The most challenging part of this project was the troubleshooting. Rather shortsightedly, the students began to implement the chess functionality almost immediately, which meant that when any issues arose, they would need to manually enter moves or use a predefined set to recreate a certain condition.
Avery ultimately resolved this issue by refactoring the code and writing tests. They studied the robot's documentation to figure out how they could split the code into subroutines, which reduced the size and consolidated errors. This meant that all movement of pieces would use the same lines of code. The tests were created to evaluate various aspects of the robot's code, like promotion, picking up, placing, and disposing pieces.
Ready to Inspire Your Students? Bring Collaborative Robots to Your Classroom
For the students involved, this project was more than just a fun challenge; it was a valuable learning experience. It tested their ability to think critically, work as a team, and integrate different types of equipment across disciplines.
Would you like to inspire your students with a Universal Robots collaborative robot for your classroom at a New England school? Contact AET Labs to learn more and get a quote.