Building an Autonomous Soccer-playing Robot

Student: Jordan Reyes
Table:
Experimentation location:
Regulated Research (Form 1c):
Project continuation (Form 7):

Display board image not available

Abstract:

With the growth of technology, we are being increasingly dependent on robots and their functions. In turn, robots have grown in capability. The purpose of the Robocup competition is to have a "a team of fully autonomous humanoid robot soccer players" that can win a soccer game against humans. The Robocup Junior competition aims to achieve something similar. Team Spirit's robot aims to compete with other Robocup Junior robots in playing a game of soccer. The robot was built to fit the constraints of the competition. We ran into issues, such as optimizing the size, weight, and compactibility of the robot. The lack of a competition this year prevented us from testing the effectiveness of the robot against other, competitive teams, we won the international Rookie of the Year award in terms of robot design presentation.

Bibliography/Citations:

No additional citations

Additional Project Information

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

Research Plan:

We began by planning out the structure of our robot, taking into consideration the following parts used: motors and wheels, line sensors, ball sensors, compass sensors, and controller boards, designing the chassis in such a way as to hold all the parts in a neat and orderly way. Each part had certain constraints and requirements to keep in mind. For example, the ball sensors could not be higher than the ball itself, otherwise they could not accurately detect it. In contrast, the line sensors had to be level with the motors, but there had to be enough clearance between the motor and itself. With the dimensions and placements of each part set, we modeled the robot's chassis using Onshape, a 3D design program, and then printed it.

Next we started the process of sourcing each component. Sensors and motors were bought online, whereas others were designed and made by Team Spirit for a more cost-effective option, one example being the wheels crucial to the omnidirectional movement of the robot. Taking inspiration from Eric Weiser's wheel design, we modelled a wheel that used washers and key rings instead of rubber beads, bought the parts, then printed the design. With all physical pieces present, we could begin assembling the robot. Wires were soldered (a potential safety hazard, requiring us to wear safety equipment).

Before we could begin coding, we needed to identify which components of the robot needed dedicated functions to interpret their incoming data. This was determined by our setup of the sensors and motors. Once these components were identified, we created an outline that gave a general series of steps the robot would take. Once we had the structure complete, we began a cycle of coding, testing, and recoding our robot....

 

Questions and Answers

1. What was the major objective of your project and what was your plan to achieve it? The major goal was to create a robot that met the requirements of the Robocup Junior competition and could compete with other robots.

       a. Was that goal the result of any specific situation, experience, or problem you encountered?  We were a group of friends who lacked any experience in robotics, but a club in our school was created for the Robocup Junior competition, and we decided to join.

       b. Were you trying to solve a problem, answer a question, or test a hypothesis? It was mostly a learning process for the three of us, and we were trying to see if it was possible to make a robot that worked at all.

 

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

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

Ryan: Ryan coded the program for the robot that allowed it to detect the ball and move accordingly. He completed and finalized assembly of the first prototype.

Jordan: Jordan was responsible for the 3d design of the robot in a CAD workspace. He created the chassis and assisted in the assembly of the robot and all of its parts.

Jessica: Jessica managed the progress and requirements for the robot, sourcing components and distributing responsibility for each part, as well as aiding with assembly. In addition, she prototyped, designed, and assembled the omniwheels used on the robot.

 

3. What is new or novel about your project?

       a. Is there some aspect of your project's objective, or how you achieved it that you haven't done before? Everything was a new experience for us. Learning to 3D design, wiring circuits, and programming in a new language were all skills we learned on the way in order to reach our final product.

       b. Is your project's objective, or the way you implemented it, different from anything you have seen? Our omniwheel design was inspired by Eric Weiser's, but we believe its implementation was still unique compared to the omniwheels used by most other teams. It's build relied on easily accessible materials (washers and keyrings).

       c. If you believe your work to be unique in some way, what research have you done to confirm that it is? No official research was done, but we did test the effectiveness of our omniwheels compared to those of other omniwheels.

 

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

      a. What problems did you encounter, and how did you overcome them? The code was especially challenging to work with, since we used an unconventional coding IDE. Our process of coding initially resulted in a large block of untested code. We found that it was easier to break it down into smaller parts and test the individual parts as opposed to assembling the code all at once.

      b. What did you learn from overcoming these problems? We learned to be more satisfied with smaller successes as well as being more patient with our progress.

 

5. If you were going to do this project again, are there any things you would you do differently the next time? We would start with the basics and attempt to build up. Instead of buying all sensors at once, we would test them individually until we found one satisfactory enough. Instead of coding for the entire robot, we would break it down into more manageable parts. We would turn to other, more experienced teams for advice and their input.

 

6. Did working on this project give you any ideas for other projects? This project has made us more interested in autonomous vehicles. All three of us have enrolled in an "Innovation in Engineering" course this year. Last year, students in this course learned to build a UAV.