Autonomous Soccer Robot

Student: Naveen Enock
Table: ENG2
Experimentation location: Home
Regulated Research (Form 1c): No
Project continuation (Form 7): No

Display board image not available



OpenMV. (2013). Small - Affordable - Expandable. OpenMV.

Pirringer, M. (2019, October 21). Printing with NylonX. Chief Delphi.

The Sierra Team. (2021, July 20). IPC-2221 Standards in PCB Design. Sierra Circuits.

Peterson, Z. (2021, September 17). PCB Routing Guidelines for Altium Designer. Altium.

Keeth, G., Evans, J., & Peterson, G. (2022). Getting Started in KiCad | 6.0 | English | Documentation | KiCad.

PJRC. (2023). Using Other Languages with Teensy USB.

Additional Project Information

Project website: -- No project website --
Research paper:
Additional Resources: -- No resources provided --
Project files:
Project files

Research Plan:

Since the hardest concepts to learn are electrical and mechanical design, my robot should be able to simplify these topics by providing the students with something to already work with

The Robot should also be able to perform all of the following functionalities:

- Move in any direction in a fast and agile manner

- Detect and follow the ball

- Collect and move the ball toward the goals

- Kick the ball

I will create a multifunctional PCB used in combination with a 3D-printed Chassis and Omni wheels to create a powerful and easy-to-use robot.

To create the PCB, an extensive parts list is first created to include all sensors and actuators that are needed to support all the basic and advanced concepts required to perform well in the Robocup Competition. The list will also include support for an OpenMV Cam as it enables students to use MicroPython scripts and popular libraries such as TensorFlow to program complex machine vision algorithms (OpenMV, 2013). 

Eeschema schematic editor from KiCAD will be used to draw the electrical schematic for all the circuits on the PCB. Since the electronic parts that I select may not all be very common I may have to create and upload custom symbols that will be used to represent the uncommon components by referencing the respective datasheets for accurate pin assignments and functions. The schematic will also contain many additional power and ground pins paired with analog and digital pins to allow students to connect and interface with ANY sensor or actuator they wish. To further increase modularity external UART, SPI and I2C ports will also be present to allow connectivity of secondary processors or communication modules that increase robot functionality. 

The last part of the PCB design is the process of “routing” to enable physical copper connections between all the different components (Peterson, 2021). The physical size of each trace must correspond to the maximum amount of current that trace could carry. The width can be determined by first calculating the area required for the specified current and then converting it to the width of the trace for each board specification. The equation below is based on the IPC-2221 standards for electronic design (The Sierra Team, 2021).

A =(1/(k*T^b))^(1/c) W=A/t*1.378

The constants k,b, and c depend on the location of the trace, as internal traces need to be larger to maintain the same temperature constant. 

Freerouting is a free open-source software that enables engineers to speed up the routing process by using a Java-based script to automate the routing process (Peterson 2020). The KiCad Board file will first be exported and imported into Freerouting via a Spectra DSN file and then Exported back to KiCad via a SpectraSession file. Previously calculated trace width values are entered as NetClasses allowing the Freerouting algorithm to route the PCB with the shortest routes that include the least number of vias. The finished result is a fully complete PCB that is routed in the most efficient manner.

In order to test and confirm all functionality the PCB will be manufactured from JLCPCB in high quantities for a very low cost to be fully soldered and assembled. If during testing there are faults detected, new versions of updated ones will be manufactured and re-tested until all flaws are identified and eliminated.

Simultaneously I will also design the Omni wheels and Chassis using Onshape, a free web-based CAD platform, to create 3D printable STL files. While the initial prints of the robot are done using PLA, the final version will be printed using NylonX to enhance rigidity by the addition of embedded chopped carbon fibers (LaPlante 2022). 

The main microcontroller that will be used is the Teensy 4.1 due to its extremely fast clock speeds and its large selection of DIO pins. Programming the Teensy can be done using many different programs as there are many third-party “bridge” applications that allow users to program in their preferred language and IDE (PJRC, 2023)

Questions and Answers

1. What was the major objective of your project and what was your plan to achieve it? 

The major objective of this project was to build a robot that would be able to perform well in the Robocup junior competition. This can be achieved by incorporating hardware that will allow the robot to accomplish all of the abilities that are required to outperform other competing robots. The other aspect of creating a successful robot is making a machine that is very robust and reliable in various different environments. This includes creating hardware that can be recalibrated and has little sensitivity to changes in the environment. 

The other aspect of this project was to create a tool that can be used to teach and introduce students to robotics and more specifically the RoboCup competition. Most of the other kits on the market often do not offer the range of abilities that are required to build a soccer robot and are limited in the amount of customizability the student can do. This robot allows students to program and "see the robot move" without having to design their own PCB or 3D print a chassis, things that often seem too hard and time-consuming to the point that the student loses interest. Additionally, this robot has many expansion ports to upgrade the robot electrically and mechanically. The student is able to add additional sensors and actuators and see how the changes they make affect the performance of the robot

       a. Was that goal the result of any specific situation, experience, or problem you encountered?  

As President of Princeton Soccer Robotics, an after-school club that educates students and provides them with the resources to compete in Robocup, I came across the problem of many students losing interest because of the large learning curve that is present in the field of robotics. Not only is a student expected to master electrical and 3D CAD, but they are also expected to have the knowledge of programming embedded systems and coming up with creative algorithms to solve many difficult problems. To combat this problem our club experimented with many different kits of varying price points, however, they all turned out to be too basic with limited functionality, or too DIY for a beginner student. This robot combats this by having all of the sensors that are needed to handle the basic functionalities while also giving ample opportunities for the student to make their additions and personalization of the robot.

       b. Were you trying to solve a problem, answer a question, or test a hypothesis?

I was trying to solve the problem of the lack of an appropriate starter kit that has the potential to win Robocup and be beginner-friendly.

2. What were the major tasks you had to perform in order to complete your project?

The design process always started with CAD and Electrical design. All the skills required to build this robot were self-learned through various resources on the web. I had to design a robust PCB that was able to hold all of the required sensors and create power delivery systems for the various motors and actuators present on the robot. I also had to learn an effective method to create a high-power switching circuit to control the "kicker" or a push solenoid that required high voltage to be supplied to provide the necessary force to kick the ball. On the Mechanical side, creating an effective design that was not only 3D printed but also strong and rigid proved to be a challenge. Taking inspiration from other small-scale projects I decided to create the chassis and create custom-made Omni wheels to reduce the overall weight of the robot. Finally implementing all of the different algorithms and processing the massive amounts of data was a task that spanned many months.

       a. For teams, describe what each member worked on.

While the RoboCup Junior competition requires you to have at least one other person on your team, all of the robot creation was done prior to me adding a second person. While this increased the overall time that it took to create this robot, it gave me the opportunity to learn many more aspects of robot creation that I otherwise would not have learned.

3. What is new or novel about your project?

The number of sensors and capabilities that this robot offers is unmatchable to anything else on the market. One of the criteria for the Lightweight league in the RoboCup competition is that the robot must weigh under 1100 grams. With the number of capabilities, I wanted this robot to have I had to use various methods to cut down every last gram to be under this weight limit. Everything on the robot from the mirror mold to the wheels was 3D printed to maximize weight reduction. We used nylon bolts paired with nylon spacers to further eliminate the use of heavy metals like brass and aluminum, allowing us to prioritize weight for powerful motors and features like the kicker. 

       a. Is there some aspect of your project's objective, or how you achieved it that you haven't done before?

Everything on this robot was a first-time experience. While I have played around with Arduino before, never before have I taken on a massive project as such. With doing things for the first time came many failures, however, these failures raised learning opportunities where I learned skills that I will keep with me forever. The weight and size limitations also forced me to learn methods to maximize the amount of technology I could in a very small space. I learned to make use of PCBs and custom 3D-printed pieces to make the layout and overall structure of the robot much neater and more compact.

       b. Is your project's objective, or the way you implemented it, different from anything you have seen?

Many of the best robots at the Robocup World Cup contained very similar principles that were present in my robot, however, I noticed that none of the lightweight robots had additional functionality like the kicker. I presume this was because of the weight limitation. Additionally, I also built this robot under a much smaller time frame compared to other teams, who had many months of research and testing to perfect and redesign their robot. With the limited time I had to create this robot, It was imperative that all my designs worked the first time.

       c. If you believe your work to be unique in some way, what research have you done to confirm that it is?

After taking part in and spectating many RoboCup competitions I have yet to see a robot that is powerful and easy to use. I have seen new students try to participate using LEGO MINDSTORMS as it offers much intuitive and easy-to-use hardware however these robots are never able to compete due to the lack of performance offered by these kits. 

4. What was the most challenging part of completing your project?

      a. What problems did you encounter, and how did you overcome them?

Debugging electronic faults was by far the hardest and most frustrating task that I have had to do. These electrical faults happen out of what seems to be nothing and take a very tedious amount of testing to diagnose. Diagnosing the fixes is often difficult as they involve soldering wire into very small pads that are not very resistant to the heat from a soldering iron. After confirming the fix you then need to go back to your design and remanufactured the entire board which can set you back 2-3 weeks.

I overcame these problems by creating PCBs with many isolated systems. This means creating separate ground planes for high and low voltage and debugging faults in a more sequential approach.

      b. What did you learn from overcoming these problems?

Patience. A skill that I did not expect to learn from robotics however proves to be one of the most important skills to have. Failures are almost guaranteed and success in engineering projects is almost always defined by the way you react to these failures. I have been, many times in situations where I have been so close to giving up, however after one last try I see that it works. This patience, and designing for failures are both skills I learned.

5. If you were going to do this project again, are there any things you would you do differently the next time?

I would start much earlier so that I will have time to test and make changes and I would conduct more research on solutions that are already out there. 

6. Did working on this project give you any ideas for other projects? 

Working with embedded systems has caused me to realize that the possibility of things I can automate and program are endless. It is possible to add logic to just about anything. If I had more time I would try to incorporate Artificial intelligence to possibly predict ball movement and calculate enemy positioning. It is also possible to use various networking techniques to incorporate the second robot more smoothly to create more effective algorithms.

7. How did COVID-19 affect the completion of your project?

As most of this project was done at home the effect of COVID-19 was minimal. The most major setback was the worldwide chip shortage that severely limited my choice of motor drivers. Due to the chip shortage, many of the inexpensive motor drivers were out of stock and this forced me to buy much more expensive drivers that had features that I was surely not going to use. Additionally the extended delivery times also delayed the overall production time of the robot.