{"id":52,"date":"2024-08-16T16:36:32","date_gmt":"2024-08-16T16:36:32","guid":{"rendered":"https:\/\/libraryresources.nse.org.ng\/robotics\/chapter\/chapter-6\/"},"modified":"2026-03-16T14:23:00","modified_gmt":"2026-03-16T14:23:00","slug":"chapter-6","status":"publish","type":"chapter","link":"https:\/\/libraryresources.nse.org.ng\/robotics\/chapter\/chapter-6\/","title":{"raw":"Design and Development of an Autonomous Sumo Robot","rendered":"Design and Development of an Autonomous Sumo Robot"},"content":{"raw":"<h1>1) Sumo Robot<\/h1>\nA sumo robot is an autonomous robot that is fully programmed to function with predetermined tasks. As the sumo wrestlers fight inside the ring and try to defeat the opponent by bringing them down to the floor; a sumo robot must locate the opponent in a ring and try to push it out of the ring to win. The typical shape of the arena\/ring are circular or square. Sumo robots are some of the most sophisticated machines designed and engineered for optimum performance. Figure 1 shows several designs of sumo robots used in competitions.\n\n&nbsp;\n\n[caption id=\"attachment_50\" align=\"alignnone\" width=\"300\"]<img class=\"wp-image-50 size-medium\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-300x221.jpg\" alt=\"4 Sumo Robot Designs\" width=\"300\" height=\"221\"> Figure 6.1: Various Sumo Robot Designs[\/caption]\n\nThere are several weight categories that are available for competitions such as nano, micro, mini, mega and heavyweight. Each category has the size and weight criteria that must be met by its designers. The size varies between 1 inch X 1 inch X 1 inch to 24 inch X 24 inch X 24 inch. Other design considerations include materials used for components, electronic and electrical components, defense components, programming language and strategy, sensors and actuators and the rules of the competition. The following sections will discuss each of these design parameters in detail.\n<h1>2) Physical parameters \u2013 size and weight<\/h1>\nThe size of the sumo robot is predetermined by the competition\u2019s manuals. Most common sizes start at 1 inch by 1 inch by 1 inch for the \u201cnano\u201d bot size, 2 inch by 2 inch by 2 inch for \u201cmicro\u201d bot, 4 inch by 4 inch by 4 inch for \u201cmini\u201d sumo bot, 8 inch by 8 inch by 8 inch for \u201cmega\u201d bot and 24 inch by 24 inch by 24 inch for a \u201cheavyweight\u201d sumo robot. Some competitions may define sizes other than ones mentioned above such as National Robotics Challenge defines 20 inch by 20 inch by 20 inch for sumo robots at various levels \u2013 middle school, high school, and post-secondary. The weight categories vary from 1 pound for nano sumo robot up to 50 pounds for heavyweight sumo robots.\n<h1>3) Materials and mechanical parameters<\/h1>\nMost common materials used in the build of sumo robots are polymers and metal alloys. Some competitions such as VEX robotics competitions specify certain materials\/kits that participants can use to build their robots. Steel and aluminum alloys are used when the robot needs to \u201cgain\u201d weight. Polymers such as PTFE, HDPE, TPE, PLA, Acetal, ABS plastic etc. can be used to design the body of the robot. Key required properties are high impact resistance, good machinability, toughness, wear resistance, medium to high tensile strength, high density, good strength to weight ratio, high durability and endurance strength. Table 1 below shows properties of most common materials used in the design of sumo robots.\n\nTable 1: Most common materials used in the design of sumo robots\nProperties Steel Aluminum ABS plastic HDPE PLA TPE\nDensity (g\/cm3) 7.85 2.7 1.05 0.941 \u2013 0.965 1.24 0.99\nTensile strength (MPa) 276 \u2013 1882 90 22 21 \u2013 42 50 15\nMelting point (\u00b0C) 1370 \u2013 1510 660 190 \u2013 250 120 \u2013 190 120 \u2013 170 230\nHardness (BHN) 86 \u2013 388 15 46 \u2013 100 180 \u2013 200 254 83\nElectrical resistivity (\u03a9m) 10-7 10-8 1015 1016 \u2013 1017 108 \u2013 1015 1012 \u2013 1016\nThermal conductivity (W\/m.K) 24.3 \u2013 65.2 237 0.15 \u2013 0.2 0.4 \u2013 0.5 0.13 0.159\n<h1>4) Programming and Control<\/h1>\nThe sumo robot is programmed for three objectives i.e. maneuvering or moving inside the ring, detection of opponent sumo robot, and detection of the edge of the ring. Once, the opponent is detected, sumo will execute the \u201cpush\u201d programming steps to take the opponent out of the ring. Arduino IDE is the most common programing language used in autonomous sumo robots. Other languages used include Python, C++ and Scratch or Blockly (graphical programming). Controlling motors to execute command such as move forward, move backward, turn left or right, thrust forward and stop. Depending on the number of sensors used in the robot assembly, each sensor is integrated into the program code so that an appropriate action is taken based on its feedback. Example program is shown below:\n\n&nbsp;\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\n<p class=\"textbox__title\">Example Program<\/p>\n\n<\/header>\n<div class=\"textbox__content\">\n\n\/\/ Motor Pins\n#define LEFT_MOTOR_FORWARD 9\n#define LEFT_MOTOR_BACKWARD 10\n#define RIGHT_MOTOR_FORWARD 11\n#define RIGHT_MOTOR_BACKWARD 12\n\n\/\/ Sensor Pins\n#define EDGE_SENSOR_LEFT A0\n#define EDGE_SENSOR_RIGHT A1\n#define PROX_SENSOR_FRONT A2\n\n\/\/ Thresholds\n#define EDGE_THRESHOLD 500 \/\/ Adjust based on edge sensor calibration\n#define PROX_THRESHOLD 300 \/\/ Adjust based on opponent distance\n\nvoid setup() {\n\/\/ Set motor pins as outputs\npinMode(LEFT_MOTOR_FORWARD, OUTPUT);\npinMode(LEFT_MOTOR_BACKWARD, OUTPUT);\npinMode(RIGHT_MOTOR_FORWARD, OUTPUT);\npinMode(RIGHT_MOTOR_BACKWARD, OUTPUT);\n\n\/\/ Set sensor pins as inputs\npinMode(EDGE_SENSOR_LEFT, INPUT);\npinMode(EDGE_SENSOR_RIGHT, INPUT);\npinMode(PROX_SENSOR_FRONT, INPUT);\n\nSerial.begin(9600); \/\/ For debugging\n}\n\nvoid moveForward() {\ndigitalWrite(LEFT_MOTOR_FORWARD, HIGH);\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_FORWARD, HIGH);\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);\n}\n\nvoid moveBackward() {\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);\ndigitalWrite(LEFT_MOTOR_BACKWARD, HIGH);\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_BACKWARD, HIGH);\n}\n\nvoid turnLeft() {\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);\ndigitalWrite(LEFT_MOTOR_BACKWARD, HIGH);\ndigitalWrite(RIGHT_MOTOR_FORWARD, HIGH);\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);\n}\n\nvoid turnRight() {\ndigitalWrite(LEFT_MOTOR_FORWARD, HIGH);\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_BACKWARD, HIGH);\n}\n\nvoid stopMotors() {\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);\n}\n\nvoid loop() {\n\/\/ Read sensor values\nint edgeLeft = analogRead(EDGE_SENSOR_LEFT);\nint edgeRight = analogRead(EDGE_SENSOR_RIGHT);\nint proxFront = analogRead(PROX_SENSOR_FRONT);\n\n\/\/ Debugging: Print sensor values\nSerial.print(\"Edge Left: \");\nSerial.print(edgeLeft);\nSerial.print(\" Edge Right: \");\nSerial.print(edgeRight);\nSerial.print(\" Proximity: \");\nSerial.println(proxFront);\n\n\/\/ Edge detection: Avoid falling out of the ring\nif (edgeLeft &gt; EDGE_THRESHOLD) {\nmoveBackward();\ndelay(500); \/\/ Reverse for a moment\nturnRight(); \/\/ Turn away from edge\ndelay(500);\nreturn;\n}\n\nif (edgeRight &gt; EDGE_THRESHOLD) {\nmoveBackward();\ndelay(500); \/\/ Reverse for a moment\nturnLeft(); \/\/ Turn away from edge\ndelay(500);\nreturn;\n}\n\n\/\/ Proximity detection: Charge toward opponent\nif (proxFront &gt; PROX_THRESHOLD) {\nmoveForward();\n} else {\n\/\/ Search for the opponent by turning\nturnLeft();\n}\n}\n\n<\/div>\n<\/div>\n<h1>5) Motors and drivers<\/h1>\nThe primary purpose of motors is to move the robot around the arena and allow maximum traction in the wheels so that it is difficult for the opponent robot to push the sumo out. A high torque motor\/servo motor\/DC motor is preferable compared to a stepper motor. The motor controller\/driver will be chosen based on the class and specifications of the motor. For example, a uxcell DC 24V 80RPM Worm Gear Motor 10kg-cm Reversible High Torque Speed Reduce Turbine Electric Gearbox Motor 8mm Shaft can be coupled with a Cytron 10A 5-30V Dual Channel DC Motor Driver. The Cytron driver has several advantages: it provides bidirectional control for two brushed DC motors, high voltage range 5V \u2013 30V DC, high current up to 10 A continuous for each channel, elimination of wear and tear of mechanical relay due to solid state components, does not require heat sink, and provide regenerative braking.\n<h1>6) Sensors and range selection<\/h1>\nSeveral types of sensors can be used for various purposes. Proximity sensors, IR sensors can be used to detect the opponent sumo robot, line sensors can be used to detect the limits of the arena. Analog as well as digital sensors can be used together for detecting the objects in the arena. The range of detection will need to be tuned and calibrated. For example, a Pololu Digital Distance Sensor 15cm can be used to detect an object that is within 6 inches from the sensor, whereas a Sharp\/Socle GP2Y0A02YK0F Analog Distance Sensor 20-150cm can be used to determine the proximity of the opponent and can drive the sumo robot towards it and push it out of the arena. The Arduino reads distance values by using its built-in ADC to transform the sensor's analog voltage into a digital value ranging from 0 to 1023. This digital value can then be converted into a distance in centimeters using a specific formula or lookup table provided for the sensor. Some sumo robots may choose to use vision sensors, however, embedding them into the sumo and their protection in the arena may become problematic.\n<h1>7) Defense and pushing mechanisms<\/h1>\nOffense could be the best defense in sumo competitions \u2013 high traction wheels with high gear ratio DC motors could help \u201cstand ground\u201d when the opponent pushes the sumo robot. However, activating the motors to push forward as soon as opponent is detected could result in avoiding being dragged into reverse by a much heavier or stronger robot. The robot can move in a circular direction initially to detect the opponent. Other defense mechanisms include using paint similar to the arena floor that may confuse the opponent in detection. Batteries used in robot construction for driving it in the arena will determine how much push force can be generated. The minimum force required to push the opponent can be calculated as follows:\nF_push=\u03bc_k*W\nWhere,\nFpush is the force required to push the opponent,\n\u00b5k = kinetic coefficient of friction; can be assumed as 0.2 for most smooth plywood surfaces.\nW = weight of the opponent sumo robot\n<h1>8) Competition rules and regulations<\/h1>\nThe following competition rules are adapted from the <a href=\"https:\/\/www.thenrc.org\/contest-manual\">National Robotics Challenge 2025 Contest Manual<\/a>. The most important rules have been displayed below:\n<ul>\n \t<li>The robot must be powered by electrical batteries.<\/li>\n \t<li>Robot must be self controlled and must use sensors to detect lines and opponent.<\/li>\n \t<li>Sumo robot can not degrade the surface or it will be disqualified.<\/li>\n \t<li>Dimensions and weight requirements will be checked by the competition officials before and after bouts and all robots must adhere to these specifications throughout the competition.<\/li>\n \t<li>Robot must have a 5 second delay before beginning to move\/detect.<\/li>\n \t<li>All robots must have a visible RED latching emergency stop button on top of the robot.<\/li>\n<\/ul>\nFour possible starting combinations for the robots are shown below:\n\n[caption id=\"attachment_50\" align=\"alignnone\" width=\"300\"]<img class=\"wp-image-346 size-medium\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/18\/2026\/03\/robot-positions-scaled-1.jpg\" alt=\"Four possible starting combinations\" width=\"300\" height=\"40\"> Figure 6.2 Four possible starting combinations[\/caption]\n\nWhen any part of the robot crosses the outer white line of the arena in a contact situation with the other robot, it loses the bout and the robot that stays inside is declared winer. The decision of the judges will be final and binding.\n<h1>9) Reliability and repeatability of the robot<\/h1>\nFor reliability and repeatability, the robot must be tested and evaluated. It is a good practice to test the robot against a heavier object and check the limits of its functions. Once, the sensors have been properly calibrated, they can be tested for detection and accuracy. The accuracy of the sensors can be also tested by resting the robot on a block (so that it cannot actually move) and then observing the functioning of the program and sensors when they are activated with an object moving in front. The program should drive the motors forward in the direction of the object. The ranges of sensors can also be tested by moving an object in front of the robot and finding its detection limits. A gradually increasing weight can be pushed by the sumo to find its limits and can be recorded for repeatability.","rendered":"<h1>1) Sumo Robot<\/h1>\n<p>A sumo robot is an autonomous robot that is fully programmed to function with predetermined tasks. As the sumo wrestlers fight inside the ring and try to defeat the opponent by bringing them down to the floor; a sumo robot must locate the opponent in a ring and try to push it out of the ring to win. The typical shape of the arena\/ring are circular or square. Sumo robots are some of the most sophisticated machines designed and engineered for optimum performance. Figure 1 shows several designs of sumo robots used in competitions.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_50\" aria-describedby=\"caption-attachment-50\" style=\"width: 300px\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-50 size-medium\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-300x221.jpg\" alt=\"4 Sumo Robot Designs\" width=\"300\" height=\"221\" srcset=\"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-300x221.jpg 300w, https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-768x565.jpg 768w, https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-65x48.jpg 65w, https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-225x166.jpg 225w, https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1-350x258.jpg 350w, https:\/\/libraryresources.nse.org.ng\/robotics\/wp-content\/uploads\/sites\/18\/2025\/03\/sumo-robot-fig1.jpg 784w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-50\" class=\"wp-caption-text\">Figure 6.1: Various Sumo Robot Designs<\/figcaption><\/figure>\n<p>There are several weight categories that are available for competitions such as nano, micro, mini, mega and heavyweight. Each category has the size and weight criteria that must be met by its designers. The size varies between 1 inch X 1 inch X 1 inch to 24 inch X 24 inch X 24 inch. Other design considerations include materials used for components, electronic and electrical components, defense components, programming language and strategy, sensors and actuators and the rules of the competition. The following sections will discuss each of these design parameters in detail.<\/p>\n<h1>2) Physical parameters \u2013 size and weight<\/h1>\n<p>The size of the sumo robot is predetermined by the competition\u2019s manuals. Most common sizes start at 1 inch by 1 inch by 1 inch for the \u201cnano\u201d bot size, 2 inch by 2 inch by 2 inch for \u201cmicro\u201d bot, 4 inch by 4 inch by 4 inch for \u201cmini\u201d sumo bot, 8 inch by 8 inch by 8 inch for \u201cmega\u201d bot and 24 inch by 24 inch by 24 inch for a \u201cheavyweight\u201d sumo robot. Some competitions may define sizes other than ones mentioned above such as National Robotics Challenge defines 20 inch by 20 inch by 20 inch for sumo robots at various levels \u2013 middle school, high school, and post-secondary. The weight categories vary from 1 pound for nano sumo robot up to 50 pounds for heavyweight sumo robots.<\/p>\n<h1>3) Materials and mechanical parameters<\/h1>\n<p>Most common materials used in the build of sumo robots are polymers and metal alloys. Some competitions such as VEX robotics competitions specify certain materials\/kits that participants can use to build their robots. Steel and aluminum alloys are used when the robot needs to \u201cgain\u201d weight. Polymers such as PTFE, HDPE, TPE, PLA, Acetal, ABS plastic etc. can be used to design the body of the robot. Key required properties are high impact resistance, good machinability, toughness, wear resistance, medium to high tensile strength, high density, good strength to weight ratio, high durability and endurance strength. Table 1 below shows properties of most common materials used in the design of sumo robots.<\/p>\n<p>Table 1: Most common materials used in the design of sumo robots<br \/>\nProperties Steel Aluminum ABS plastic HDPE PLA TPE<br \/>\nDensity (g\/cm3) 7.85 2.7 1.05 0.941 \u2013 0.965 1.24 0.99<br \/>\nTensile strength (MPa) 276 \u2013 1882 90 22 21 \u2013 42 50 15<br \/>\nMelting point (\u00b0C) 1370 \u2013 1510 660 190 \u2013 250 120 \u2013 190 120 \u2013 170 230<br \/>\nHardness (BHN) 86 \u2013 388 15 46 \u2013 100 180 \u2013 200 254 83<br \/>\nElectrical resistivity (\u03a9m) 10-7 10-8 1015 1016 \u2013 1017 108 \u2013 1015 1012 \u2013 1016<br \/>\nThermal conductivity (W\/m.K) 24.3 \u2013 65.2 237 0.15 \u2013 0.2 0.4 \u2013 0.5 0.13 0.159<\/p>\n<h1>4) Programming and Control<\/h1>\n<p>The sumo robot is programmed for three objectives i.e. maneuvering or moving inside the ring, detection of opponent sumo robot, and detection of the edge of the ring. Once, the opponent is detected, sumo will execute the \u201cpush\u201d programming steps to take the opponent out of the ring. Arduino IDE is the most common programing language used in autonomous sumo robots. Other languages used include Python, C++ and Scratch or Blockly (graphical programming). Controlling motors to execute command such as move forward, move backward, turn left or right, thrust forward and stop. Depending on the number of sensors used in the robot assembly, each sensor is integrated into the program code so that an appropriate action is taken based on its feedback. Example program is shown below:<\/p>\n<p>&nbsp;<\/p>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">Example Program<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>\/\/ Motor Pins<br \/>\n#define LEFT_MOTOR_FORWARD 9<br \/>\n#define LEFT_MOTOR_BACKWARD 10<br \/>\n#define RIGHT_MOTOR_FORWARD 11<br \/>\n#define RIGHT_MOTOR_BACKWARD 12<\/p>\n<p>\/\/ Sensor Pins<br \/>\n#define EDGE_SENSOR_LEFT A0<br \/>\n#define EDGE_SENSOR_RIGHT A1<br \/>\n#define PROX_SENSOR_FRONT A2<\/p>\n<p>\/\/ Thresholds<br \/>\n#define EDGE_THRESHOLD 500 \/\/ Adjust based on edge sensor calibration<br \/>\n#define PROX_THRESHOLD 300 \/\/ Adjust based on opponent distance<\/p>\n<p>void setup() {<br \/>\n\/\/ Set motor pins as outputs<br \/>\npinMode(LEFT_MOTOR_FORWARD, OUTPUT);<br \/>\npinMode(LEFT_MOTOR_BACKWARD, OUTPUT);<br \/>\npinMode(RIGHT_MOTOR_FORWARD, OUTPUT);<br \/>\npinMode(RIGHT_MOTOR_BACKWARD, OUTPUT);<\/p>\n<p>\/\/ Set sensor pins as inputs<br \/>\npinMode(EDGE_SENSOR_LEFT, INPUT);<br \/>\npinMode(EDGE_SENSOR_RIGHT, INPUT);<br \/>\npinMode(PROX_SENSOR_FRONT, INPUT);<\/p>\n<p>Serial.begin(9600); \/\/ For debugging<br \/>\n}<\/p>\n<p>void moveForward() {<br \/>\ndigitalWrite(LEFT_MOTOR_FORWARD, HIGH);<br \/>\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_FORWARD, HIGH);<br \/>\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);<br \/>\n}<\/p>\n<p>void moveBackward() {<br \/>\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(LEFT_MOTOR_BACKWARD, HIGH);<br \/>\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_BACKWARD, HIGH);<br \/>\n}<\/p>\n<p>void turnLeft() {<br \/>\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(LEFT_MOTOR_BACKWARD, HIGH);<br \/>\ndigitalWrite(RIGHT_MOTOR_FORWARD, HIGH);<br \/>\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);<br \/>\n}<\/p>\n<p>void turnRight() {<br \/>\ndigitalWrite(LEFT_MOTOR_FORWARD, HIGH);<br \/>\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_BACKWARD, HIGH);<br \/>\n}<\/p>\n<p>void stopMotors() {<br \/>\ndigitalWrite(LEFT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(LEFT_MOTOR_BACKWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_FORWARD, LOW);<br \/>\ndigitalWrite(RIGHT_MOTOR_BACKWARD, LOW);<br \/>\n}<\/p>\n<p>void loop() {<br \/>\n\/\/ Read sensor values<br \/>\nint edgeLeft = analogRead(EDGE_SENSOR_LEFT);<br \/>\nint edgeRight = analogRead(EDGE_SENSOR_RIGHT);<br \/>\nint proxFront = analogRead(PROX_SENSOR_FRONT);<\/p>\n<p>\/\/ Debugging: Print sensor values<br \/>\nSerial.print(&#8220;Edge Left: &#8220;);<br \/>\nSerial.print(edgeLeft);<br \/>\nSerial.print(&#8221; Edge Right: &#8220;);<br \/>\nSerial.print(edgeRight);<br \/>\nSerial.print(&#8221; Proximity: &#8220;);<br \/>\nSerial.println(proxFront);<\/p>\n<p>\/\/ Edge detection: Avoid falling out of the ring<br \/>\nif (edgeLeft &gt; EDGE_THRESHOLD) {<br \/>\nmoveBackward();<br \/>\ndelay(500); \/\/ Reverse for a moment<br \/>\nturnRight(); \/\/ Turn away from edge<br \/>\ndelay(500);<br \/>\nreturn;<br \/>\n}<\/p>\n<p>if (edgeRight &gt; EDGE_THRESHOLD) {<br \/>\nmoveBackward();<br \/>\ndelay(500); \/\/ Reverse for a moment<br \/>\nturnLeft(); \/\/ Turn away from edge<br \/>\ndelay(500);<br \/>\nreturn;<br \/>\n}<\/p>\n<p>\/\/ Proximity detection: Charge toward opponent<br \/>\nif (proxFront &gt; PROX_THRESHOLD) {<br \/>\nmoveForward();<br \/>\n} else {<br \/>\n\/\/ Search for the opponent by turning<br \/>\nturnLeft();<br \/>\n}<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<h1>5) Motors and drivers<\/h1>\n<p>The primary purpose of motors is to move the robot around the arena and allow maximum traction in the wheels so that it is difficult for the opponent robot to push the sumo out. A high torque motor\/servo motor\/DC motor is preferable compared to a stepper motor. The motor controller\/driver will be chosen based on the class and specifications of the motor. For example, a uxcell DC 24V 80RPM Worm Gear Motor 10kg-cm Reversible High Torque Speed Reduce Turbine Electric Gearbox Motor 8mm Shaft can be coupled with a Cytron 10A 5-30V Dual Channel DC Motor Driver. The Cytron driver has several advantages: it provides bidirectional control for two brushed DC motors, high voltage range 5V \u2013 30V DC, high current up to 10 A continuous for each channel, elimination of wear and tear of mechanical relay due to solid state components, does not require heat sink, and provide regenerative braking.<\/p>\n<h1>6) Sensors and range selection<\/h1>\n<p>Several types of sensors can be used for various purposes. Proximity sensors, IR sensors can be used to detect the opponent sumo robot, line sensors can be used to detect the limits of the arena. Analog as well as digital sensors can be used together for detecting the objects in the arena. The range of detection will need to be tuned and calibrated. For example, a Pololu Digital Distance Sensor 15cm can be used to detect an object that is within 6 inches from the sensor, whereas a Sharp\/Socle GP2Y0A02YK0F Analog Distance Sensor 20-150cm can be used to determine the proximity of the opponent and can drive the sumo robot towards it and push it out of the arena. The Arduino reads distance values by using its built-in ADC to transform the sensor&#8217;s analog voltage into a digital value ranging from 0 to 1023. This digital value can then be converted into a distance in centimeters using a specific formula or lookup table provided for the sensor. Some sumo robots may choose to use vision sensors, however, embedding them into the sumo and their protection in the arena may become problematic.<\/p>\n<h1>7) Defense and pushing mechanisms<\/h1>\n<p>Offense could be the best defense in sumo competitions \u2013 high traction wheels with high gear ratio DC motors could help \u201cstand ground\u201d when the opponent pushes the sumo robot. However, activating the motors to push forward as soon as opponent is detected could result in avoiding being dragged into reverse by a much heavier or stronger robot. The robot can move in a circular direction initially to detect the opponent. Other defense mechanisms include using paint similar to the arena floor that may confuse the opponent in detection. Batteries used in robot construction for driving it in the arena will determine how much push force can be generated. The minimum force required to push the opponent can be calculated as follows:<br \/>\nF_push=\u03bc_k*W<br \/>\nWhere,<br \/>\nFpush is the force required to push the opponent,<br \/>\n\u00b5k = kinetic coefficient of friction; can be assumed as 0.2 for most smooth plywood surfaces.<br \/>\nW = weight of the opponent sumo robot<\/p>\n<h1>8) Competition rules and regulations<\/h1>\n<p>The following competition rules are adapted from the <a href=\"https:\/\/www.thenrc.org\/contest-manual\">National Robotics Challenge 2025 Contest Manual<\/a>. The most important rules have been displayed below:<\/p>\n<ul>\n<li>The robot must be powered by electrical batteries.<\/li>\n<li>Robot must be self controlled and must use sensors to detect lines and opponent.<\/li>\n<li>Sumo robot can not degrade the surface or it will be disqualified.<\/li>\n<li>Dimensions and weight requirements will be checked by the competition officials before and after bouts and all robots must adhere to these specifications throughout the competition.<\/li>\n<li>Robot must have a 5 second delay before beginning to move\/detect.<\/li>\n<li>All robots must have a visible RED latching emergency stop button on top of the robot.<\/li>\n<\/ul>\n<p>Four possible starting combinations for the robots are shown below:<\/p>\n<figure id=\"attachment_50\" aria-describedby=\"caption-attachment-50\" style=\"width: 300px\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-346 size-medium\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/18\/2026\/03\/robot-positions-scaled-1.jpg\" alt=\"Four possible starting combinations\" width=\"300\" height=\"40\" \/><figcaption id=\"caption-attachment-50\" class=\"wp-caption-text\">Figure 6.2 Four possible starting combinations<\/figcaption><\/figure>\n<p>When any part of the robot crosses the outer white line of the arena in a contact situation with the other robot, it loses the bout and the robot that stays inside is declared winer. The decision of the judges will be final and binding.<\/p>\n<h1>9) Reliability and repeatability of the robot<\/h1>\n<p>For reliability and repeatability, the robot must be tested and evaluated. It is a good practice to test the robot against a heavier object and check the limits of its functions. Once, the sensors have been properly calibrated, they can be tested for detection and accuracy. The accuracy of the sensors can be also tested by resting the robot on a block (so that it cannot actually move) and then observing the functioning of the program and sensors when they are activated with an object moving in front. The program should drive the motors forward in the direction of the object. The ranges of sensors can also be tested by moving an object in front of the robot and finding its detection limits. A gradually increasing weight can be pushed by the sumo to find its limits and can be recorded for repeatability.<\/p>\n","protected":false},"author":1,"menu_order":6,"template":"","meta":{"pb_show_title":"","pb_short_title":"Ch. 6: Design and Development of an Autonomous Sumo Robot","pb_subtitle":"","pb_authors":["vbedekar"],"pb_section_license":"cc-by-nc"},"chapter-type":[],"contributor":[63],"license":[56],"class_list":["post-52","chapter","type-chapter","status-publish","hentry","contributor-vbedekar","license-cc-by-nc"],"part":49,"_links":{"self":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/52\/revisions"}],"predecessor-version":[{"id":53,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/52\/revisions\/53"}],"part":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/parts\/49"}],"metadata":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/52\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/media?parent=52"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapter-type?post=52"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/contributor?post=52"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/license?post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}