This is my second minisumo-type robot. Minisumo Bullet XT took part in several competitions but due to one mistake in mechanical design it was too easy to beat him. But you know, I don’t give up so easily 😀 ,so I’m still trying out new ideas and designs.
Every next version of it is better and better. I think that the next iteration of this robot shouldn’t have any imperfections anymore (I hope so ;D ). The whole robot including the design process was created in about 2 or 3 weeks (I don’t remember exactly).
Below in this little article/post I will try to describe my build and the most important mistakes I’ve made in it.
Hopefully you will find it interesting.
The project was created quite quickly in Autodesk Inventor. Firstly, I’ve designed all parts that were needed and then I’ve assembled it all together by creating an assembly. Each model has been duplicated and redesigned to change some important dimensions just to compensate the ABS shrinkage effect . The holes and the nuts slots have been enlarged by a few percent to make an perfect fit.
During design I took into account the possibility of adjusting the plow to fit the dohyo surface. It was a big mistake but I’ll describe it later on.
The motors are mounted with 3D printed clamps that squeeze them with use of 4 M3x30 bolts. In this project I’ve also included a sharp scraper plate attached with 4 ball bearings. It was designed to “unfold” during the sudden movement at the start.
After that I’ve roughly outlined the size of the PCB that I later moved to the Eagle for further development. After some calculations, the predicted weight was within 450 grams, in fact the real weight of the whole robot was about 490 g.
In the render below you can see most of the parts from which robot is made of:
As the genuine Pololu gear wheels had bad D-shaped holes (they fit to pololu micro-gear motors) I had to redesign them. I’ve also improved some details in these gears to make them easier to print.
To test the robot I printed a doyho ring, that I’ve later laminated to increase the durability of the surface. I know what you’re thinking, “brick” tests are not the same thing as fighting a real opponent, but at least you can see more or less that everything works as it should. During the tests I’ve made some minor corrections in the code and I’ve adjusted the analog comparators responsible for detection of the doyho edge. As you can see in the video that I’ve attached below, the robot is very fast and it very well copes with the movement of almost a kilogram box of screws.
During the tests, the robot fell into a slip despite the tracks with high surface grip, due to too high motor “power”. Because of this full power was only activated when the robot decided that the opponent is exactly in front of it. Otherwise, the robot was falling out of the ring because of high inertia and speed. Because of this I had to do a pretty complicated combat algorithm to make it work at all. In the end everything worked as it should, but the code is now a terrible mess. During the tests, the adjustable plow caused some problems by “hooking” on the doyho.
In the menu there is a program that allows you to test all sensors in real time to adjust them to actual conditions on the ring:
Below you can see how Bullet XT works during first brick-style tests: 🙂
I would say that there is nothing special in electronic part of this project . As the main microcontroller I’ve used Xmega128A3U. It has many useful hardware peripherals. I’ve used TB6612FNG IC,s as motor controllers. They are connected in parallel due to the high peak current rating of the motors. I made main PCB by using photochemical method (yes , it is double sided 😀 ). Whats more, I’ve even coated it with Lichtenberg alloy to prevent copper from oxidizing. As comparators I’ve used some spare operational amplifiers. I’ve also used 4 tact-switches for menu navigation and Nokia 5110 LCD to display all necessary information’s.
I’ve added some LED,s on the corners and under the PCB just to improve the overall external appearance. I’ve also added TSOP Series infrared receiver for remote triggering but this feature was never implemented in the code. In the picture below you can see the whole menu (option of fighting mode, testing the sensors, turning on the lights, checking the battery voltage, testing the motors):
The photo below shows the highlighted tracks:
As you can see there is nothing special in the schematic – as usual “dirty work” is tied to a microcontroller.
I used powerful Pololu: 25Dx48L HP motor with gearbox ratio 9.7: 1. As it turned out later, motors with such a torque are an big overkill . I think that anything from the micro series should have enough torque . Anyway, these motors almost never work at full power.
You can see some specs of these motors below:
- Nominal voltage: 6 V
- Dimensions: 25D x 48L mm
- Weight: 82 g
- Shaft diameter: 4 mm
- Gearbox ratio 9.7: 1
- Idle rotation at 6V: 990 rpm
- Idle current (6V): 550 mA
- Peak current: 6 A
- Torque: ~ 0.27 Nm
In the picture below you can see the encoder , motors and capacitors that were added later to stabilize the voltage:
The peak current turned out to be a big problem, when starting from idle, these motors pull 6 A each, so together they draw about 12 A. The first channel on the oscilloscope shows the voltage drop on the Li-Po battery when one motor starts (as you see the drop is quite serious, about 2 volts). Before I’ve used high-speed diodes and high capacitance on the logic side, this voltage drop was reflected in the supply voltage of the microcontroller.
Every time when motor started from idle ,entire microcontroller was restarting (due to BOD enabled). After isolating the logic from the motors with the diodes and removing the linear regulator, which was replaced by a step up / step down converter that actively uses the energy stored in the capacitors. Almost all worked as it should. As you can see on the second channel, the logic voltage is temporarily raised by about 1.5V. It is probably an overshoot of the target voltage setting due to the rapid voltage change at the input of the voltage converter. Microcontroller somehow copes with it – I’m not going to fix it because the whole robot will be disassembled soon anyway.
You can see interesting thing on the second enlarged oscilloscope screenshot (H-bridge PWM switching noise on the power supply voltage):
My favorite digital sensors Sharp GP2Y0D340K are no longer available so I had to figure out something else. I’ve decided to use fast analog Sharp’s GP2Y0A60SZLF (10-150cm) which are very similar to the 340K’s. These sensors work just fine, but not as good as the digital GP2Y0D340K. Well, I had to use that what is available.
Sometimes they don’t keep up with the detection of the fast moving opponent. As a dohyo edge line sensors I’ve used KTIR0711S proximity sensors. In addition, a Sharp GP2Y0D810Z0F (10cm digital distance sensor) was placed in the middle of the plow to check if the opponent is currently in front of it (to decide about applying maximum power to the motors).
Line sensors have been mounted only under the front plow:
There are 4 Li-Po 3.7V 700 mAh batteries connected in parallel (2S2P). The connectors are nicely hidden under the PCB. It is very tricky to mount the PCB on the main frame because there is not much space left under it.
Everything was 3D printed from ABS filament. These parts are so durable that after a few battles, they don’t have even one scratch. The pictures below show the motors mounts and the the “idler gear wheels” bearing blocks.
In addition, the plow was laminated with epoxy resin and steel plate to reinforce it. Thin razors were glued to the “scraper”. Ultimately, this idea didn’t worked as expected, because this part doesn’t want to lay flat on the doyho surface by itself. I’ve been trying to add some weight to it, but it didn’t worked either…
The whole thing works very nicely, but the front plow sticks too poorly to the surface of the doyho. Because of this everything needs to be re-designed and rebuilt.
The robot quickly locates and attacks the opponents, but it is unable to push them out the doyho.
I finally understood that, it is very easy to push out the opponent when he loses traction due to the plow beneath him.
Certainly I need to re-design the main frame to accommodate it to a better plow made of sharp and “low profile” blade which could be pushed under the opponent easily.
- The plow doesn’t lay flat on the doyho surface
- The scraper with razors does not perform its function
- Badly designed power supply section
- Motors with too high current draw
IMPROVEMENTS IN THE NEXT VERSION:
- A new plow made from a sharp and durable blade made of tungsten carbide
- New small micro motors
- Two silicone coated wheels instead of tracks
- “Slim” main frame
- Additional doyho edge line sensors on the back