## Timestamp *Timestamp* 7/8/2025 23:14:53 ## Team Name *What is your team's name?* MARVEL ## League *What league do you participate in?* Open League ## Country *Where are you from?* South Korea ## Contact *If other teams have questions about your robot, now or in the future, what email address(es) can we publish along with this document for people to reach you? (You can put in multiple email addresses, like multiple team members, an email for the whole team or both. Feel free to share other ways of communication like Discord handles)* hanjaegyu1234@gmail.com jung1214kr@gmail.com a01041895341@gmail.com seohyunbyun090216@naver.com ## Social Media *Team Social Media Links (if you have any)* ## Team Photo *Upload a photo of your whole team with your mentor and robots Note: This is not mandatory and will be published along with your TDP if you choose to upload something* ## Members & Roles *What are the names of the team members and their role(s)?* JINHWAN KIM : Electrical Design & Making JEGYU HAN : Programming SEOHYUN BYEON : Mechanical Design & Making JUHO EOM : Mechanical Design & Making ## Meeting Frequency *How often did your team meet? (e.g. 90 minutes once per week or a day every weekend.)* 160 minutes once per week. ## Meeting Place *Where did you meet to work on your robot? (e.g. a robotics room at school, at some other place, one of your homes, school library etc.)* Robotics room at robotics academy. ## Start Date *When did your team start working on this year's robot?* The previous version of the robot started in November last year, and after attending the Singapore Open in early April, we started making the hardware for the new robot. ## Past Competitions *Which RoboCupJunior competitions have you competed in and in which leagues?* Austrailia Open 2024 : Light Weight (EOM) 2024 Eindhovwn : Open Open League (BYEON) Singapore Open 2025 : Open League (KIM, HAN, BYEON) ## Mentor Contribution *Which parts of your work received the most contribution from your mentor?* We were taught technical theories and related mathematical theories such as trigonometry, inverse trigonometry, vectors, logical operations, and the drive system using four omni-wheels. And our team received a lot of financial support. ## Workload Management *How did you manage the workload?* We didn't manage it specially, and every time we gathered, we organized the work to be done that day and divided up the work to be done. ## AI Tools *Which AI tools did you use?* When special calculations such as driving formulas are required, ChatGPT and Copilot are used as references. ## Robot1 Overall *Robot 1 Overall View* ![](images/1oSJqIkBQ6t7uqRBpNphYj1ileGWEbOHx.jpg) ## Robot1 Front *Robot 1 Front view* ![](images/1Rc86HEImlfbvmSKpzhPVpUMMBHoA3vJr.jpg) ## Robot1 Back *Robot 1 Back view* ![](images/12yOHMdG3JSz9ITMMC29R88c7KVCOi0jG.jpg) ## Robot1 Top *Robot 1 Top View* ![](images/1dnyOZbGpx-uRWpMct9G__jayDj5Q2a-0.jpg) ## Robot1 Bottom *Robot 1 Bottom View* ![](images/1Z-_rIUVl_A3K4_qeX07grZY7tJO_NxxF.jpg) ## Robot1 Right *Robot 1 Right View* ![](images/1sJxQhP8gpBtbYdlPrCvqtFcmEC3iuTky.jpg) ## Robot1 Left *Robot 1 Left View* ![](images/1xZguuCr9pJN6W_5GKOaHyhDfAWAz3Qdi.jpg) ## Positioning & Movement *How do you find your position inside the field and how do you use that position to move your robots around?* The robot's position on the field can be easily determined using the coordinates of the two goals obtained using the camera. When the ball is not visible or has stepped on the outer line, it can move towards the center of the field by moving in the direction of the median value of the angle between the two goals. ## Robot2 Overall *Robot 2 Overall View* ![](images/1MI6jkiVArRfy4jcpagmBqp3kIFMWxUU5.jpg) ## Robot2 Front *Robot 2 Front view* ![](images/1OwkZAfsAbq31gRMIBksuZEJMCWPTkOXt.jpg) ## Robot2 Back *Robot 2 Back view* ![](images/1jYtDBOf5YcI9x9UqqwOSDLjsTg5vM3FX.jpg) ## Robot2 Top *Robot 2 Top View* ![](images/1nzzM33nyGp51LV5OnMMb5z_3InbYiXEX.jpg) ## Robot2 Bottom *Robot 2 Bottom View* ![](images/1CrJ74JUz6br4zlYlbLDYGIkuKhXqx9Dj.jpg) ## Robot2 Right *Robot 2 Right View* ![](images/1hkf-dpe4lg7cpZw39NYP2iGBaYFl-JFt.jpg) ## Robot2 Left *Robot 2 Left View* ![](images/1izkf94pyPY2p0xKRQcRDsSX6X6jDOvBm.jpg) ## Mechanical Design *How did you design the mechanical parts of your robots?* We decided on the motors, wheels, and solenoids to use, created a 3D model of them, placed them within the desired size, and defined the outline of the robot. We used the SketchUP program. ## Build Method *How did you build your design?* We used FDM type 3D printer and SLA type 3D printer. FDM type was used to make the mechanism and SLA type was used to make the prototype of the reflector. A company called Hanssem Digitech manufactured the PCB, and since we were unable to solder the 100-pin TQFP type ATMEGA2560 CPU, we commissioned this company to do SMT work on the main board. A company called Creallo manufactured the reflector using SUS304. ## Motors & Reason *How many motors have you used and why?* A total of 5 motors were used. 4 were used for driving and one was used for the dribbler. The motor used was Premium Planetary Gear Motors 730RPM part number 638260 from Servocity, USA. For the dribbler, a GA16-050 planetary motor 2526RPM motor was purchased from AliExpress, China. The wheel used was a 50mm Omni-Wheel from GTFRobot, China. ## Kicker Design *If your robot has a kicker, explain how you designed and built the mechanics of the kicker* The kicker uses a solenoid KK-1040B, purchased from AliExpress in China. We purchased a 5V or 6V rated product, and to increase the power, we used a power FET IRFZ34N to drive the ON/OFF with a battery voltage of 11.1V, and limited the maximum operating time to 0.1 seconds. ## Dribbler Design *If your robot has a dribbler, explain how you designed and built the mechanics of the dribbler.* The dribbler was made using a DC motor and a paper feed roller used in a printer after a lot of trial and error. The roller was purchased from AliExpress in China as a Brother DCP 7055 assembly pickup roller. The inside of the roller is empty, and a 3mm shaft is attached to both ends and the roller is fixed on top of it. There is an empty space between the shaft and the roller, which prevents the robot from riding up on the ball when dribbling it. ## CAD Files *CAD design files* ## Mechanical Innovation *Mechanical Innovation* Wheel layout : We have made and used robots with 3 wheels so far, and this is the first time we have installed 4 motors. However, we have used 4 omni wheels at FTC. Reflector : A reflector was used to capture the entire FIELD using a camera. The camera can be placed below and the reflector placed above to view the entire field. ## Mechanical Photos *Photos of your mechanical designs highlights* ![](images/1Ewzbetr193-CVotJP0uiEig8WNZv4usN.jpg) ![](images/14XBrvnK6n3AnamW65uMDwkS-XvSFP-gh.jpg) ![](images/1DLd8Pn7piqZSkwvRXk2tsLJGsIl2OR7R.jpg) ![](images/1QujwZUvYn4u83TFgKxq_t8HXyr10dsk2.jpg) ![](images/1s8fP1ocxcXD8U_2XYNUDNOFIiS-nbbCu.jpg) ## Electronics Block Diagram *Provide us with a block diagram of your robot's electronics* ![](images/1g3Nbg2VBbQxYMQBhZ0_9PaeMpf1rMYx8.jpg) ## Power Circuit *How does your power circuits work?* Our robot can be powered by one 11.1V lithium polymer battery. The motor and solenoid use the battery voltage as is, and use the 5V switching regulator LM2576 to make 5V and supply it to the logic. This 5V power is made into 3.3V by using the 3.3V linear regulator LM1117 and supply it to the LCD. ## Motor Drive Circuit *How do you drive your motors? Explain the circuits you use for that* We use 5-A H-Bridge for DC-Motor driver TLE5205-2G. Its operation is defined by IN1 and IN2 pins. We use ATMEGA2560's own PWM function to generate the signal and pass it to the driver. ## Microcontroller & Reason *What kind of micro controller or board do you use for your robot? Why did you decide to use this part for your robot? If you have more than 1 processor, explain each one separately.* We use Atmega2560 used in Arduino MEGA board. We chose it considering the 10 PWM signals, 3 UARTs, I2C, SPI, SOFTWARE UART, ADC and GPIO number we need. It has been a long time since we chose and used this CPU. Previously, we used ATMEGA2560 PRO module, but it took up a lot of space, so this time we directly attached CPU to PCB. ## Ball Detection *How does your ball detection sensors and/or camera[s] work?* The ball is found using a camera and a specially designed reflector. The camera is placed below and the reflector is placed above so that almost the entire field can be seen through the reflector. Since we need to find a small ball, the camera shoots in VGA format and the camera program considers the largest object within the ball's Spectrum range as a ball. To detect a nearby ball, a PHOTO COUPLER is attached to the capturing zone to determine whether the ball is close. ## Line Detection *How does your line detection circuits work?* There are 24 line detection sensors in total, each pair consisting of a white LED and a photo transistor. We drew a circle precisely and placed 16 of them at 22.5 degree intervals on it. Then, we placed 16 positions at 22.5 degree intervals on a slightly larger circle, and placed 8 of them: 2 in front, 2 in the back, 2 on the left, and 2 on the right. The LED is driven by the shift register LED driver TLC6C5912, and the phototransistor is connected to a resistor to change the flowing current into voltage, which is then input to the CPU ADC through an analog multiplexer for AD conversion. ## Navigation/Position Sensors *What sensors do you use for navigation and how are these sensors connected to your processor? What sensors do you use to find your position in the field? What about the direction your robot faces?* We use the YAW value of the BNO055 IMU sensor. This sensor is connected in I2C mode and uses the Arduino library. The robot always maintains the forward direction using the YAW value, and when the ball enters the capturing zone and the shooting condition is met, the camera recognizes the goal and turns the robot toward the goal and moves toward the goal. Then, it shoots. ## Kicker Circuit *How do you drive your kicker system? How does the circuit make the kicker work?* The kicker uses a solenoid. The CPU sends out a signal of 0 and 1 to control this solenoid. This signal is connected to the POWER FET IRFZ34N to switch the battery power to operate the solenoid. We operate the solenoid with a 6V rating from the battery power (11.1V) to increase the power. And to prevent damage, we limited the On time to 0.1 seconds. ## Dribbler Circuit *How does your dribbler system work? What components and circuits did you use to drive it?* The driving circuit of the dribbler is the same as the driving motor. It uses the Motor Driver TLE5205, and the CPU generates a PWM signal and inputs it to TLE5205 In1 and In2. ## Schematics *Schematics of your robot* ![](images/1FNHWS0gZUVQasghVa5T60rs6pl937R-b.jpg) ## PCB *PCB of your robot* ![](images/173DU57NmTRV1HM-oQrUkUo0rRJE4TkPR.jpg) ## Innovation *Innovations* LED Dynamic Driving: We use 24 phototransistors for line detection. We use 24 WHITE LEDs as light sources. Each LED consumes 20mA. If we turn on 24 LEDs at the same time, 480mA of current will flow. We used two TLC6C5912, 12-bit Shift Register LED drivers to limit the number of LEDs that can be turned on at the same time. We can limit the number of LEDs that can be turned on at the same time with this part. Currently, only 4 LEDs are turned on at the same time. If we are reading one sensor now, we only turn on the LEDs up to the 3rd sensor to be read. ## Circuit Photos *Photo of your circuit boards highlights* ![](images/141AxXcDgJFcJFu2QZxbO4SQwGXlzzE67.jpg) ![](images/1gjmPIh2fjjZJ8V7UdZBwVcTvwunzoerR.jpg) ![](images/19UHLh62thawvaiZ3Acuk2p_5jf6HRLX6.jpg) ## Motor Control *How do you use your processor to move your motors?* The CPU's own PWM function was used. Power is passed from -100 to +100 to the moving function, and the PWM direction and values from 0 to 255 are converted and written to the OCR register within the function. ## Ball Detection Method *How do you find where the ball is? How do you read the data from the ball detection sensors or camera?* The ball is basically detected by the camera through the reflector. The OpenMV camera finds the ball and each goal and sends the coordinate information to the CPU. DATA is when the CPU sends a request command to the camera, the camera sends all the information to the CPU. In order to increase the processing speed of the camera, it normally searches for the ball and searches for the goal only when the goal information is needed. The CPU and the OpenMV camera communicate using UART, and we defined the PROTOCOL ourselves. And we install a photo sensor ITR9909 under the kicker to determine whether the ball is close. ## Ball Catch Algorithm *How does your algorithm work to catch the ball? Is there a difference between your robots in how they move towards the ball? Explain the differences.* When the robot detects the ball with the camera, the robot draws a virtual circle on the ball, finds a point where the robot and the circle meet, moves to that point, and when it reaches the starting position, moves to the back of the robot along that virtual circle. If the ball is in front, it moves to the back of the ball. ## Line Algorithm *How does your robot find the lines to stay inside the field? What algorithms do you use to avoid going out of bounds?* We installed 24 light sensors made of WHITE LEDs and photo transistors. The status of these sensors is stored in two types of internal variables. One is the current status of the sensors, and the other is the content that remembers the detection. The current status of the 16 inner sensors forming a circle is stored in the Line16 variable, which is stored in the LineDetected16 variable. When a line is detected, the average of the physical coordinates of the sensors defined by the self is calculated. This value becomes the vector value of the direction in which the robot was moving. We move the robot in the opposite direction of this vector and move until the sensors that passed the line cross the line again. ## Goal Algorithm *What algorithms do you use to score goals? How do you use your kicker and dribbler to handle the ball?* When the ball is in front of the robot and comes within a certain angle range and distance, the dribbler is activated and approaches the ball. When the ball is detected by the sensor that detects the proximity of the ball, the robot requests information about the opponent's goal from the camera and the robot turns in this direction and moves forward. When the direction of the robot and the direction of the goal are the same, the solenoid is activated and a shot is made. If the ball stops within the penalty line, the robot activates the dribbler and moves within the penalty line until the rearmost sensors of the robot detect it and shoot. ## Defense Algorithm *What algorithms do you use to avoid the opponent team scoring? How do your robots defend your own goal?* The defensive robot moves in four stages. 1. If the ball is not visible, the robot moves to the center in front of the goal. At this time, the operating method is to subtract the distance to the side wall and the distance to the back wall from the coordinate value of the location to be moved, set this value as the Vx, Vy value, and use the inverse trigonometric function to find the angle and move in that direction. 2. If the ball is on the side, the robot moves strongly slightly behind the ball and hits the ball. 3. If the ball is in front, the robot moves so that the angle between the ball and the goal is in a straight line to reduce the shooting angle. 4. If the ball is close to the front, the robot switches to attack and returns to the defensive position after the ball disappears or the shot. ## Robot Communication *Do your robots communicate with each other? How do you use this communication to your advantage?* The robots communicate with each other. However, the content is still very simple. The attack robot sends an ACK (0x064) every 0.2 seconds. If the defense robot does not receive this signal for more than 1 second, it considers the attack robot to have been kicked out and switches to attack immediately. If this signal is received again, it finishes what it was doing and switches back to defense mode. ## Innovation2 *Innovations* Escaping from the line: The robot has 24 sensors placed at equal intervals on a circle, and the current status of these sensors is stored in the LineDetected16 variable, which is stored in the Line16 variable. When a line is detected, the average of the physical coordinates of the sensors defined by the robot is calculated. This value becomes the vector value of the direction in which the robot was moving. We move the robot in the opposite direction of this vector until the sensors that passed the line cross the line again. ## GitHub Link *GitHub link* ## BOM *Bill of Materials (BOM)* [https://drive.google.com/open?id=1IVRYvh5q6v3siiVwG5Sh1xbfq-TfxZ_V](https://drive.google.com/open?id=1IVRYvh5q6v3siiVwG5Sh1xbfq-TfxZ_V) ## Cost *How much did it cost you to build your robots?* Robots (cost of components that are in your robots right now): 1,200 USD each Experiments (failed builds, broken hardware etc.): 1,500 USD Environment (fields, balls, etc.) : 200 USD ## Funding *How did you gathered the funds to build the robots?* 80% ACADEMY 20% PARENTS ## Affordability *How affordable was it to compete in RoboCupJunior Soccer?* 1 ## Answer Check *Have you checked all of your answers?* Yes! ## Publication Consent *We publish TDPs and posters during or after the competition as described in the beginning* Yes, we acknowledge everything submitted in the above form can be published. ## Email Address *Email Address* hakyungi@hanmail.net ## TDP File *TDP File Upload (Not required)* ## Extra Column *Column 67*