Infante robots – an educational robotics system

5 infante robots
Hi! Today I’ll show you a project that started as a challenge that I have accepted and turned out to be one of the most challenging projects I have ever done. K6 professor Bruna Carmo wanted to do some research on educational robotics for her Master Thesis but couldn’t find an affordable educational robotics system that could be simple enough to be used by 10-year old kids. As is known by many educators that try to use robots in classrooms around the world, commercial educational robots are quite expensive. As an example, a single LEGO NXT costs around 300€ in Portugal. Even if an educator manages to get funds to buy one, it becomes hard to develop activities with one robot and 20+ kids. Moreover, most commercial robotics systems require the educator to have acquire some previous knowledge on using the systems, read some manuals, install all the required software, set up the programming connections and then, teach a class of 20+ kids how to program and to safely handle the robot. Usually educators must spend a few hours just to get their students acquainted with the robot programming. Moreover, most of the times that professors and educators develop activities with robots, these involve assembling the mechanical parts of the robot, learning to program it and that’s about it. She had a different idea in mind. Her objective was to use the robots as a motivational element that could be used in any activity, regardless of the area of study, and without spending so much time learning how to use the system, setting up the system and teaching kids how to use it. 
5 infante robots
I already had some ideas in mind in creating some small and low-cost robots for swarm robotics for some time and quickly realized that I could adapt those ideas and with a few research and more thinking could come up to a solution that could help kids develop their mathematical reasoning and getting interested in programming, robotics, science! That was just the right time to turn some of the ideas that I had in my mind into reality. After accepting the challenge, I had 5 months of hard working on weekends and holidays to get the system ready in time for testing. Something was kind of scaring me, which was the fact that her research for her Master Thesis was depending on the system that I compromised myself to develop: I could not fail and I had to get it ready in time!
When I started thinking about the system I had two main thoughts in mind: (a) If it can’t be set up in under 5 minutes, it’s not suitable for professors and educators; and (b) if it can’t be explained to kids in under 5 minutes, it’s not suitable for kids. It turned out that the system ended up requiring less than 5 minutes in both situations 🙂
infante robots with magalhães laptops
In the months that followed, I faced the most complete engineering project that I had ever done. Had to come up with the best architecture to mix low cost and simplicity, select materials and electronic components, design the mechanical parts of the robot, cut those parts in my CNC machine TheMaker2, learn how to use serial Bluetooth communication modules, program the PIC16F88 microcontroller, create a simple communication protocol to send commands to the robot, configure one Raspberry Pi to act as a Wireless Access Point and as a web server, adapt the web server (written in Python) to meet the requirements, and adapt the Blockly project, by Google, to control robots in real life. In engineering terms, it was a mix of 3D design of mechanical parts, CNC machine operation, electronics design, microcontroller programming, Bluetooth communications, Python Programming and Javascript programming. I guess this is the project where I had to use all those things that I’ve learned in other small projects and university lectures.
Infante robots and multi-robot controller
After 5 months, I finally had the robotics system ready. I actually managed to finish it a one or two weeks earlier 🙂 . The resulting educational robotics system was composed of 5 mini robots with a size of 7.5*7.5*7.5 cm (compliant with Mirosot category from FIRA robotics competition rules 😛 ) with line following and crossing detection sensors and Bluetooth communications, and a multi-robot controller which consists of a Raspberry Pi with Bluetooth and Wi-Fi dongles. Basically, it’s “one Raspberry Pi to rule them all!” 😛 Since I used some parts scavenged from old printers and other electronic devices, I managed to build each robot with only 10€ of parts 🙂 
Infante robot navigating through mountains
So, how does it work from the user point of view? The user just have to turn on the Raspberry Pi and wait about two minutes for the operating system to boot and initialize the Wireless Access Point connection and the web server. During that time, the user can turn on all the five robots, having each one a unique ID. After those two minutes, the system is ready to be used. Once the system is ready, the user just has to pick up the tablet, laptop or smartphone, connect it to the wireless network created by the Raspberry Pi and enter the web server address into the internet browser to access the web-based programming interface. In the programming interface, kids just have to enter the ID of the robot that they wish to control and drag and drop instruction blocks that snap together to create instruction sequences. For the 10-year old kids that used the system for the first time, only 3 instructions were made available: “go forward”, “rotate left” and “rotate right”. Once they finish building the instruction sequence, they just have to click “execute commands” and the Raspberry Pi establishes a Bluetooth connection to the robot and sends the instructions sequence. The robot reads the sequence and executes the instructions one by one, navigating over a black line placed over a white background. Whenever a crossing is detected, the robot ends the current instruction and proceeds to execute the next one. You know what? You have just learned how to use it! 🙂
Happy kids programming the infante robot
The educational robotics system has been tested twice. On the first time it was used with a class of 10-year old kids (4th grade) from the Elementary School of Bom João, in Faro (Portugal), who had to help the Infante robots to visit the hills and mountains of Portugal, learning geography and improving their mathematical reasoning and ability of virtually placing themselves in the position of the robot in order to figure out if the robot should turn left or right. The kids were given a brief 2-minute explanation on how to use the system and then left on their own, in groups of 5, with a list of tasks they had to accomplish with the robot. Both me and Bruna Carmo didn’t make anything else than observe them to see how well they were doing. Surprisingly, they learned how to use the system very quickly and managed to finish all the tasks that we gave them much faster then we expected. They quickly presented a solution for the nonexistence of more tasks: “Can we come up with our own tasks and keep playing with the Infante, please??” 😀 They found it to be so easy and fun to use that they didn’t realized that they were learning the locations of the mountains of Portugal, which is a really boring thing to learn and professors just usually try to convince kids to memorize their names and locations. With the robots, they were the ones telling each other: “That mountain is over there, it is more to the left than the one we made the robot go before.” When the robot didn’t do what they were expecting, they talked to each other and worked together to find out what was wrong and how they could make it right. Another thing that we noticed was that since they were playing, they were very confident about what they were doing and had no problems explaining their ideas to their colleagues.
Kid using a tablet to program the Infante robot
The first test went so well that we decided to try again, but with a class of 9-year olds (3rd grade). We went to another school, Colégio da Nossa Senhora do Alto, also in Faro (Portugal), and this time presented the kids with an activity about recycling. Some items were placed over a grid and they had to program the robots to reach those items and then take them to the appropriate recycling bin. Once again, we gave them brief 2-minute explanations on how to program the robot and left them to work on their own. Exactly the same happened: they quickly learned how to program the robots and finished the tasks we gave them sooner than we expected and invented their own tasks to keep playing and discussing with each other how they could make the robot go to place A or B.
Needless two say, when the class ended they didn’t want to go home and wanted to keep playing. A few of them even started crying because they didn’t want the class to end 🙂

programming the infante robot with a tablet

The research work done using the robots has resulted in three publications in portuguese education conferences. You can access the publications here. They are written in portuguese but you may translate them using google translator. Another publication will be available soon. It is written in English and was presented at the International Conference on Social Robotics, which was held at the Armada House, in Bristol, UK. . Just note that all the publications made available are only to be used for educational purposes! 🙂

Oh, and by the way, Bruna Carmo managed to get a 18 out of 20 in her Master Thesis! Congratulations to her! 🙂

Below you can see a photo album and a short video showing the educational robotics system 🙂

Response code is 404

This educational robotics system has already been featured in the portuguese news three times! 🙂 Check the articles about it:

Hope you liked this project! 🙂 

Take care!

Did you find this post helpful? Do you wish to contribute to other projects regarding computer science, electronics, robotics or mechatronics that will be posted in this blog? If you wish to do so, you can donate via paypal using the button below. Thanks! 🙂