Editor's Note: Two weeks ago a sumo robot fight was held in parallel with DFRobot 3rd Anniversary, six fighters in all joined and the “Nevermore” pulled out the final prize. Here is some reflections by the two makers of the “Nevermore”.
Well, what we are talking about is the sumo robot fight, which is seemingly well known around the globe to be a robot fight with one small ring, two fighting on the opposite and the only one stays within the ring wins. Simple and straightforward rules, aren’t they. Since no destructive weapon is allowed in the fight, we decided to use the shovel which has been playing a great role in Chinese history for centuries as our armed force. And it turned out to work well.
Start with the 2wd miniQ platform designated for the game: the 2wd platform itself is a compact one with two N20 motors with 50:1 Gear ratio; powerful enough to drive enemies over 400g out of the rim with the L298N circuit on Romeo, and also with a satisfying maximum speed. Another advantage of the platform would be enough space left to place sensors thanks to the 2wd design.
Unlike line-following and obstacle avoiding, sumo fight really requires sharp and quick eyes for such fierce fights. A number of distance sensors are installed on Nevermore so that he can feel the ever-changing surrounding. Generally, the one first spots the enemy has great advantage over the other. However, it’s more than simply pilling up sensors all around: we installed 3 Sharp GP2Y0A21 distance sensor in the front to generate impact, another 3 at the back to make swift turns and retarget. We also added 10cm Infrared Sensor to detect edges.
Next thing important is to keep him inside the ring. Approaching the border? Stop moving. Hurling towards the line with enemy? Check and stop moving. The wise one always knows when to stop.
Last but not least, the shovel. The purpose of it is to disable enemy movement and get it out. To be frank we also wanted to add an MP3 module so that Nevermore roars everytime he gets the enemy, hah. We know that when two shovels meet, the lower one wins. There is also one thing that during fights, the fixed shovel tend to be in a higher position randomly. To solve this, we armed Nevermore with a kinetic shovel pressed by flexibles. Some shovels are also added on the sides of Nevermore to avoid tackling.
To download Nevermore sample code, click here.
Some more words on the code. Some may think it too messy due to the number of sensors. Let’s see this diagram:
Below is a quick look into the status categorizing part.
Final words: Handling different sensors and data well may not be enough to win battles, algorithms like session average or moving average need to be seriously considered. The data difference between two collections also plays an important role. You’d better not let your robot harum-scarum at full speed in case it goes out.
There are always more strategies and tactics than theories. So, the best way is by making your own one, and fight!