Abstract:We have accomplished many of our objectives and exceeded our own expectations in some areas. The cycle of testing, diagnosing, redesigning, and rebuilding allowed us to improve our robots in a very systematic way. An example of the result of this is making plates lighter without compromising on rigidity through multiple CAD iterations.
We also were able to incorporate logic level voltage control, line sensors, ball sensors, various filters, high voltage control, connections to camera, and connection to bluetooth modules in just two small disk shaped pcbs. Many of these features were not incorporated at the start but were added on as more fundamental problems got fixed and iterated versions.
Our main vision accomplishment is the ability to track goals, the distance to them, whether goalies are in front of them, what spot is best to shoot at, and the ability to connect all of this information to Teensy 4.1.
Bibliography/Citations:No additional citations
Additional Project Information
- YouTube Channel
After watching high level matches while we were competing in the Robocup 2019 event in Sydney, we decided to prioritize the following goals when building our robot for our next competition.
First, we wanted to have two identical robots using striker and goalie roles to guide their strategy to make mechanical design and programming far simpler. In order to get the ball as fast as possible, we wanted our robots to have four double layered omni wheels, a circular array of ball sensors, and a circular array of line sensors. In addition, we wished to use dynamic role switching and smooth line avoidance to further increase the efficiency of our robot. To make our robots score consistently, we planned to use a solenoid to kick the ball and an omnidirectional camera to aim towards the part of the goal that isn't blocked by an opponent’s robot. Our goals were largely inspired by the teams M&A, Sky Crew, and Legend at Robocup 2019.
We began by designing the CAD model of our first robot iteration in Onshape. This design had four omni wheels which used the rollers from our previous robots’ wheels. It was entirely 3D printed out of PLA and had a line sensor PCB and a ball sensor PCB. This robot was very helpful as an early prototype for working out the many software and electrical issues. For example, our software team worked out communication protocols, vectors for holonomic movement, and sensor noise.
Our second iteration came with a full CAD and PCB overhaul. We redesigned the robot for reducing weight to accommodate a kicker and an omnidirectional camera. The kicker was originally made using a 75 ohm solenoid, but we had to replace it with a 10 Ohm solenoid to get adequate kicking force. Our first mirror cone was made out of polished aluminum using a lathe, but this was very heavy so we opted to instead thermoform mirror foil into a much lighter conic mirror. This also made the cone much faster to shape and polish. At this point we began to develop functions that take ball sensor inputs and output an optimal direction. These functions are called the Orbit and the Dampen function.
Our final iteration was again the result of new PCB’s and a completely redesigned CAD model, with a new set of major improvements to software. This version has omni wheels manufactured completely in house which had two layers of silicone tube rollers. They are significantly more compact and have more traction than our older wheels. In addition, we used carbon fiber reinforced nylon filament and a more lightweight design, resulting in a robot that weighs only 1020 grams. This iteration also features integrated logic and high power control as well as sensors reliable enough for software to make line algorithms.
Questions and Answers
1. What was the major objective of your project and what was your plan to achieve it?
Our major objective is to win the 2021 RobocupJunior Soccer Lightweight competition. We plan to accomplish this by designing powerful custom printed circuit boards, building two highly capable yet lightweight robots, and writing a robust and efficient autonomous program. For example, we wanted our robots to have four motors, an omnidirectional camera, and a solenoid kicker, which only two lightweight teams had accomplished in the 2019 international competition.
a. Was that goal the result of any specific situation, experience, or problem you encountered?
We based this goal on the matches we observed while competing in the Robocup 2019 competition. Since the three top placing teams in the lightweight division had omnidirectional cameras and four Maxon motors, these features appealed to us for their achievability and effectiveness. Similarly, we witnessed many goals made possible by kickers and dynamic role switching, so these were also features we gave high value.
b. Were you trying to solve a problem, answer a question, or test a hypothesis?
Our objective is to win the 2021 RobocupJunior Soccer Lightweight competition.
2. What were the major tasks you had to perform in order to complete your project?
The major tasks of our project can be categorized as hardware, electrical, or software. In hardware, the greatest challenge was to make the robot have all the desired components and weigh less than 1100 grams (the competition weight limit). The hardest part of our electrical engineering was designing a circuit to convert the 12V from the battery into 50V to make an adequately powerful solenoid kicker. Finally, the most difficult part of programming the robot was handling sensor noise, writing smart algorithms for line avoidance, and maintaining performance.
a. For teams, describe what each member worked on.
Our team has four members. Mark worked on designing and soldering PCBs, solving electrical issues, and developing strategies. Danil worked on software for the robot’s main processor such as developing an algorithm for moving behind the ball. Niklas worked on software for the camera and mirror construction. Keiji worked on the CAD design, 3D printing, and assembling of the robot.
3. What is new or novel about your project?
Although there have been a couple teams that have built robots with similar hardware capabilities in the past, they have all used traditional manufacturing methods to cut flat plates out of materials such as aluminum and carbon fiber. One unique aspect of our robot is how it was 3D printed entirely out of carbon fiber reinforced nylon filament. This material has a density of 1 g/cm3 while aluminum and carbon fiber have a density of 2.7 and 1.9 g/cm3, respectively. Further, 3D printing has allowed us to save weight by using 20% infill, which means the interior of our parts have been strategically hollowed out in a way that maintains the part’s structural integrity. As a result, our current robot has all the features we wanted and is 80 grams under the weight limit.
a. Is there some aspect of your project's objective, or how you achieved it that you haven't done before?
This is the first time we have made a full robot design in CAD, custom pcbs, 3D printed parts using carbon fiber nylon, vision systems, or a project that uses an RTOS.
b. Is your project's objective, or the way you implemented it, different from anything you have seen?
Our team has made numerous accomplishments that we have not seen before. In particular, this is the first time that a team in lightweight has implemented RTOS in software, built a PCB that includes a step up, stepdown, line sensor system, and high voltage solenoid triggering system, or used carbon fiber nylon filament in the construction of the robot.
c. If you believe your work to be unique in some way, what research have you done to confirm that it is?
We know these aspects of our robot are unique because we have talked to the elite teams at Robocup 2019 and extensively researched team posters, github repositories, and videos.
4. What was the most challenging part of completing your project?
The most challenging part of building our robots was making the robot weigh less than 1100 grams, software challenge, solving electrical issues, and vision challenge. Since lathed aluminium mirrors were too heavy, we instead thermoformed mirrors with a lathed and sanded wooden mold. One main challenge with the vision system was setting up communication between microcontrollers. We first tried I2C but after many problems switched to UART. Additionally, it took some time to figure out how to effectively process so much data at once in a readable fashion, and keep the codebase understandable.
a. What problems did you encounter, and how did you overcome them?
Every time the microcontroller requested sensor data, the entire program would freeze until the data is received. To fix this, we switched to less blocking protocols, for example from I2C to UART, and implemented an RTOS to allow full code concurrency. In order to make the robot weigh less than 1100 grams, we designed the robot to have thin plates with heavy lightening cutouts as well as structural i-beam supports to better absorb impacts and increase rigidity.
We solved the stability problem in the vision codebase by making an entire library of functions. The purpose of this was to make it easy for other team members to understand and utilize the basic functions of the camera. We solved the problem of electrical connections between the camera board and main microcontroller by simply replacing all wires (and user error) with PCB traces to make testing repeatable.
b. What did you learn from overcoming these problems?
We learned how to make highly responsive programs that reacted quickly and how to design lightweight and rigid mechanisms.
5. If you were going to do this project again, are there any things you would do differently the next time?
We would be more conscious of the time and set ambitious goals in terms of schedules.
6. Did working on this project give you any ideas for other projects?
A future project we are interested in would be creating a robot for the RobocupJunior Open league which has different rules and limitations but similarities in some aspects. That league is much more open to innovations in terms of weight and electrical limits.