This is my first mini-sumo. I started building it a couple of weeks before the 2005 WCRG but didn't have it ready until the 2006 games. I spent WAAAAAAY too long building this.
I named it "Sayonara Sucker" from a line spoken by an overconfident jet pilot in the movie "Godzilla 1985" just before he attacked the monster (and was smote from the sky shortly thereafter). I was originally going to name it STOMP, another Godzilla reference, but I liked Sayonara Sucker better.
I shamelessly "borrowed" the basic configuration from Grant McKee's "Ender's Wraith" which dishes out some serious whoop-ass whenever I've seen it compete. By the way, I recommend you spend some time surfing Grant's pages. I marvel at his simple yet effective designs. He now works in Hong Kong for WowWee Robotics. I am sure they have learned to appreciate his talents.
The chassis is made of 1.6mm and 3.2 mm hobby plywood. Many other people I know find it amusing that I make my robots out of wood. I wanted to keep it all as low as possible and just managed to cram everything into a bot that's only 45mm high. With just the motors, batteries, wheels and chassis it comes to 450 grams. That only left me 50 grams for the rest of the electronics.
There was a suggestion that I name it "Woody." Considering it's made almost entirely out of wood that would certainly be an apt appelation. However, ages past I decided that nothing I create will ever be called "Woody."
The wheel hubs are made from aluminum and I machined them myself during a most excellent short course the WCRS set up at SAIT on the basics of machining with a lathe. The instructor was Rob Sadowski. If the society ever decides to do more courses like that I AM SO THERE.
I bored 4 holes in each hub to lighten them a little. It would have been too heavy overall without that. The wheels are coated with 2020 urethane for maximum gripiness. I want to make more hubs for spares BUT THE FREAKING B2227L LATHE I ORDERED FROM BUSY BEE TOOLS ON MARCH 4 HAS STILL NOT ARRIVED!!! GRRRRRRRRR.
Spinning the wheels are two of the four Escap 33:1 geared motors that I have. The other two are in my minesweeper.
The only mechanical advantage this bot might have over the competition is the battery pack. It consists of 12, countem 12, Kan 2/3 AA 650 Mah nimh cells. I went with nimh cells instead of lipoly because nimh cells can take the punishment and really dump the current. These cells are easily capable of handing out 6 amps although the motors, when stalled, only draw 1.5 amps each at 14.4 volts. No dropouts here! Even then, this means that the bot has just under 40 watts of pushing power available when stalled. So, this bot has both good speed and and can really grind when called upon. The batteries are more or less fixed in place and are charged externally through a jack on the side. A good charger can top them up in less than 30 minutes.
Besides giving up lots of juice for the motors these batteries will also do well powering the sharp range-finders which can be serious intermittent current hogs.
I figure a minisumo is only as good as its smarts. The processor is a 20 Mhz mega88 on a custom board. Motor control is handled through two custom low gate threshold MOSFET H-bridges. A couple of years ago I quested for some ultra-low gate threshold MOSFETS to design improved solar engines out of. International rectifier makes some outstanding MOSFETS in so-8 packages and Grant McKee designed a simple but clever and efficient H-bridge out of them. Check it out:
To sense the enemy there are 3 sharp digital optical sensors out front and two LS417F-based proximity sensors (i.e. like proxdots) out the sides. The ones in front look through holes in the scoop. With the amazingly low bots I have seen running around I figure the front sensors need to be really low to the ground to have a chance of seeing the enemy. Their view is splayed slightly out front to get better coverage.
To sense the ring there are four reflective surface sensors, one at each corner. The ones on the rear corners are there to try and detect if the bot is getting pushed out of the ring.
As is usual for all of my new bots these days there are two completely separate 5 volt power supplies. One is for the processor and the other is for everything else. I find the Sharp range finders are very noisy and the reliability of my designs jumped significantly when they got their own power. One of the things I have to watch out for is the regulators overheating. The voltage drop from the batteries to internal power is 9 volts! I have to really make sure that the current draw for each circuit stays within the heat capacity. I also made sure there are larger copper pads to solder the regulators to for maximim dissipation. If worse comes to worse I can always install a heat sink.
The regulators I chose are the Sharp PQ05DZ51 series. They are low drop out, relatively cheap, come in a nice, small surface mount package and have a pin that can tell it turn on/off. The processor regulator enable is tied to the input voltage so it is always on when the bot is on. The other regular gets turned on by the processor when it is time to run. This will represent a SIGNIFICANT power savings. This is the first bot to use them and if it works out well I plan to use them elsewhere. This is especially true with lithium-polymer power bots. The batteries are so sensitive to being over discharged that I think having a way to shut down the majority of the power leaks will minimize the chance of the very expensive batteries getting ruined if I were to leave it on by accident.
I also have a serial port header and max232 voltage converter so I can send telemetry from the bot to my computer while it is running. The max232 chip gets its power when the serial port header is connected. This is something new I have started doing my bots too. In the past I would write a log to the mega's eeprom but the space is limited. With this the bot can blather all day long on what it's doing. It just needs a cable. I might make it optical/rf some day.
For the algorithm I wanted to keep it simple despite my silly inner desires to make it (and everything else I make) too complicated. Basically, it will be:
The only complication that I will add is that the rear corner sensors will keep a watch for the edge. If the bot is driving forward and one of the rear sensors gets tickled the bot would guess it is getting pushed off of the ring and try a quick reverse of whatever it is doing to try and get out of it.
Another strategy is to utilize "stealth." The jury is still out on how effective this will be. At first I was going to wrap the entire bot in black electrical tape. One of the Hylands brothers suggested it to me. That's a fine idea since this tape is used for line following and it does a pretty crappy job of reflecting infrared light. I might just end up painting it black and leave it at that.
The power switch is a pretty standard toggle unit pointing out the back. To help keep it from getting flicked off by accident when getting bumped around I recessed so the handle does not protrude. I have a small chunk of aluminum tube to act as an extension handle to allow me to turn it on or off. The reset button and start buttons are accessible through a hole in the top plate wide enough to admit my finger.
As usual, I totally ran out of I/O pins as I was designing it. *sigh* I thought about switching to a mega16 as that would give me another 10 I/O pins or so.
April 17, 2006
I etched the circuit board today and left it overnight for the glue to harden. Since I can't make boards with plated through holes I have decided the easiest way for me to make double-sided boards is to etch each side seperately from 1/32" board, drill 4 alignment holes and glue the boards together with epoxy. This is the third board I have made this way. The first two were on the minesweeper and the results were so outstanding that I am going to stick with it.
This PCB is new for me as well in that it's the first I have done with a significant number of components on the solder side. I had to do it as not everything would fit. The regulators, power caps and the processor itself are on the bottom. On the top are all of the connectors, switches, the H-bridge components, LEDs and other stuff that I want to see or access easily. As usual, the processor is surrounded by a header so I can easily plug stuff directly into the circuit.
In the end I decided to go with the mega88 since it's small and will be good enough. I sacrificed a few cool functions to make it work. Basically, there are 9 sensors (4 sensors to detect the edge of the rin; one at each corner, 3 opponent sensors pointing out the front using the Sharp digital range finders and 2 proximity sensors based on "proxdots"; one on each side. For debugging purposes I have 9 LEDs to represent each the sensors. That's 18 I/O pins right there although I used the last two ADC channels only available on the mega's surface mount package for the proximity sensors. Four I/O pins are used to control the motors. See below for more on that. The last two I/O pins that are available are for the start switch and to enable the regulator that powers the sensors.
After hearing the experience from Mr. Hylands and Grant with their Sharp range finders and the power they can suck I made sure that there is plenty of good capacitor space near each sensor. I use a 47 uf and .1 uf tantalum caps with a very low ESR on each to help filter their power. I would have used larger caps but there just isn't any room!
The weight is starting to concern me. With nearly everything installed including the motherboard but without any parts on it the bot weighs in at 484 grams. I have just 16 grams to go and still have to add all of the motherboard parts, the rear ring sensors and the proximity sensors. I think I can manage it but it will be close. Fortunately, I have a little room to cut out some weight. I have yet to cut the holes for the front sensors out of the metal scoop plus can dig out some wood in the bottom of the bot. I suppose I could also cut away some of the metal in the wheels. Either way, it doesn't look like I will need to find space to install weights! Had I used thru-hole components it would end up overweight with this chassis plus the motherboard just wouldn't fit in the chassis!
In bots past I used three I/O pins for each motor. Two for the function (brake, coast, forward, backward) and one for the PWM channel. After careful research I have come to realize that megas with dual compare units and I/O pins on each timer can give me every function possible but still use only two I/O pins. That's one of the reasons I went with the mega88 since all three timers are capable of that.
Grant's H-bridge circuit alternates between brake and forward/reverse. That's ok for this bot since I expect to be slamming the motors full power pretty much all of the time anyways. The addition of a single quad exclusive OR chip (surface mount, of course) would turn this into the most amazing H-bridge ever. It takes up little more room than the MC33887 chip but can handle MUCH higher PWM rates. Sweet.
April 22, 2006
FIRST LIGHT! Well, for telescopes that's the first time it is exposed to what it is supposed to view. Here the first LED on the motherboard got power today and lit up. Those tres cool surface mount regulators work just fine. Since the LEDs and surface mount caps/resistors are the hardest to get at once the other components are in I am doing them first. Usually I do the processor once I verify power to test the ISP but I need the wall of headers around the processor to connect the front and back traces (no plated-thru holes, you know) and once those suckers are in the LEDs and resistors are pretty much unreachable.
The quality of this board is the highest I have ever made. I have found a few techniques that have really helped out. One is I always make sure to run the printer through a couple of black cleaning cycles first. Second, the latest generation of inkjet transparancies I bought are even better than the ones I had before. There are way fewer pinholes and traces having little "bites" taken out of them. There was only one fault on the etching itself: there was a little filament of copper between to pads. It was probably some dust or a cat hair that cause that one.
Of course, that doesn't mean I didn't make any mistakes on the design. HELL NO. Many of the pads are too damn small and were damaged in the drilling (I never seem to learn this lesson), I forgot the H-bridge pulldown resistors; I hate it when bots twitch as I program them. I forgot to add a jumper to enable the serial port. Fortunately, the MAX3311 chip I used auto-detects the PC and supposedly powers down when nothing is there. Finally, I also should have made some of the traces wider, especially the ones feeding the H-bridge power.
April 23, 2006
I haven't made much progress this weekend. My lathe was ready for pickup at Busy Bee tools so I went for a huge shopping trip to snag it and some metal and various other bits. When I backed my Bronco II up to the loading dock the guy asked me if that's what I was taking the lathe home in. "Yeah." I replied. He looked dubious but said he was going to fire up the fork lift.
Fork lift?
The web page said the crate was 47 inches long and weighed 160kg. A lot but I've handled bigger. In reality it was 50 inches long (just nanometers short of the maximum that will fit in my truck) and MUCH heavier than 160 kg. Hell, I weigh 100kg and have no trouble picking myself up. I can't even lift one end of this thing.
Well, to make a long story short I got it unloaded with the help of basic physics and a short term lack of stupidity on my part.
Back to the sumo. Much to my chagrin I found out that UISP doesn't do a very good job of supporting the mega48! After I had soldered the chip and support circuitry in I found I was unable to upload software to it. Grrr. It found the fuses and could do other stuff but simply couldn't handle page writes. I had tested the board by leading wires from the headers to a DIP mega88 on a breadboard and it worked like a charm. Grrrrrrrr. I tried avrdude instead and it worked just fine. I think I might have to switch to avrdude for the future. This bites since UISP does a better job of handling the fuses than avrdude. Avrdude's fuse handling doesn't make any sense to me at all. But, I gotta use what works. Here's a pic of the board partially stuffed with the LEDs nice and glowing.
April 24, 2006
Well, I sure did let a lot of magic smoke out of my parts this weekend. I just can't get the damn h-bridge to work! Each half of the H-bridge comes on when I send a high resulting in a short circuit. Even with only half of the bridge installed it still shorts out the power! Fortunately, I have a power supply that will go up to 30 volts but at the same time I can limit the current. Even then, I don't think it's very happy with me and I am going through MOSFETS at an alarming rate. The IRF7317s are a buck each and once something of mine gets desoldered I usually consider it dead and won't reuse it even it turns out that the problem wasn't the part itself.
DOH!!!!!!! The answer (I think) just popped into my head here at work. THE SCHEMATIC IS WRONG! The Vdd voltage on the driver chip is listed as 5 volts but that won't work and here's why:
When I put in a high a low appears on the gates of the MOSFETS (the 4426, which I used, is an inverting driver). For the P-channel MOSFET the gate voltage is -14.4 volts with respect the source (the battery voltage) so it turns on. The N MOSFET's voltage with respect to the source (ground in this case) is 0 volts so it turns off. All is good and motor should run.
Now I change the inputs to low and +5 volts appears on the gates. The N-channel MOSFET turns on since its gate is +5 with respect to source (ground) BUT the P-channel MOSFET stays on since it's voltage is -9.4 volts (14.4 - 5)! There you go, short circuit. Magic smoke escapes and Craig throws up his hands in frustration which startles the cat on his lap who is now also upset and demands food for compensation. Everyone is unhappy.
So, to fix I am going to cut the trace leading to Vdd on the TC4426 and wire them directly to the battery voltage. Hopefully that will be end of this story since this is a pretty simple fix.
April 25, 2006
No, that wasn't it. Tests at 14 volts but with a current regulated power supply went well but as soon as I put the batteries on all four MOSFETS blew instantly. So, I am abandoning the discrete MOSFET H-bridge and am going to go with the Motorola MC33887 chips instead. I whipped up a little daughter board last night and it will lay on the motherboard on the spot where the doomed discrete H-bridge existed. I am hoping that will be end of that. THIS BOT IS TAKING TOO LONG.
April 26, 2006
The daughter board with the mc33887s is in place and appears to be working. Next time I think I will go with the L2605 dual 2.8 amp H-bridge. They are expensive ($12.5 at Digikey; ACK!) but have a nice package and are easy to put into a circuit. It's also much smaller than two MC33887s.
The motherboard is all installed (an important milestone in any project I make) and I expect it to move under its own power very soon. Here's a pic of the new motherboard all installed.
The weight has climbed to 504 grams and I haven't finished adding all of the sensors, fasteners, etc. I think I will mold some new wheels using Solarbotics RW2 hubs with the center bored out to 4mm. The hubs I made are quite heavy. This should bring the weight back under 500 grams and leave me enough spare to finish adding the components.
April 28, 2006
The new wheels really helped with the weight problem. They are 10 grams lighter each than the ones I machined myself. I never imagined I would have to spend so much effort saving weight on this robot.
The motors are all wired up and it moved by itself last night. It's fast. I noticed how huge a difference having clean wheels makes for the wheel grippiness. So I think I will try and make a simple double sided tape board that I can roll the bot across before each round (or bout if the judges will let me) as it does an amazing job of cleaning the wheels.
The 2020 urethane wheels are about as sticky as I can imagine the rules allowing. I recall reading about a test where the bot is placed on a piece of paper, let sit for a few seconds and then lifted up. If the paper comes with it the wheels are too sticky. It takes over a week of curing before these wheels will pass that test.
After seeing how fast and powerful the motors are with those grippy wheels I now wonder how likely is it the tires may rip if the bot gets into a shoving match. I will make sure I bring spare wheels with me.
I think I will have to raise the top of the bot about 5mm. Adding the daughter board with the h-bridges on it significantly increased the height of the motherboard.
The hardware build is coming to an end! I just have to adjust the motor wiring, add the last of the sensors route the signal and power wires.
April 30, 2006
Grrrr. Even the MC33887 h-bridges are giving me trouble. They seem to latch up and refuse to power the motors on a random basis. At first I thought it was a loose wire but now I see there is about a 10% chance of the motors working each time the robot boots. I haven't found any references to this particular chip latching up on the web but I am going to ditch them too and try out the L6205 when I get some ordered.
The range sensors are working fine although I have them too close to the ground and are picking up white ring edge. There isn't any room to raise them more than a millimeter or two so I am going to try and reduce the interference by painting the bottom the chassis in front of them black. I did that with the center sensor and it has much fewer false positives than the other two.
May 4, 2006
The problem with the MC33887s turned out it needed more capacitance on the battery side. I added a 4.7uf 25v tantalum cap between battery power and ground and that appears to have taken care of it. The .1uf I already had just couldn't hack it.
The software (always my favourite part) is coming along nicely and should easily be ready by game time. I managed to jack up the front edge of the range sensors so the false positives have disappeared. The middle range sensor's range is pretty terrible so I am going to make the current limiting resistor for its LED a little smaller; maybe two ohms.
I had to struggle a little to get the weight down. It was 508 grams and I hadn't even added the rear ring or side proximity sensors yet! I replaced a number of stainless steel bolts with nylon ones and cut away some of the internal structure and got the weight down to 492.9 grams before the additional sensors were added. The last tire is hardening in its mold right now. Hopefully I will have time to make a pair of spare wheels.
May 6, 2006
I tried the bot out on a real ring at the Aerospace museum today. The software improved very rapidly. The problem I am struggling with now is the fact that the bot is too fast and it overshoots the edge. For now, I slowed it down to improve the software and hope to get the bot sped up a bit as things get better.
I cut out my own ring today. I've been wanting to try out a circle cutting fixture with my router and today was my chance. Came out really well. I used a 1/4 inch carbide spiral up cutting plunge bit. I am going to let the paint cure overnight before my bot starts grinding on it.
May 11, 2006
Lots and lots of progress today. I had a small alarm when I had thought the motherboard had blown up but turns out it was just the battery connector had a broken pin. PHEW! The other thing that worried me was false positives from the range finders. Fortunately, I haven't had a recurrance since I aimed them up a little.
The software has evolved quite nicely and is nearly in competition form. I just have to tweak a few things, make a top cover, check the weight and paint the whole thing flat black and it will be ready to go.
The only thing that bugs me is that the bot is too fast! It will drive right off the edge of the ring when going full throttle. So, I had to turn the motors down a little just to keep it in the ring. Fortunately I can keep a little reserve power for the RAMMING SPEED mode. When all three of the forward range finders see something it goes banzai and pours on the coal. Still, it's kind of a bummer considering the time I spent cramming 12 cells into that sucker. >:-|
Right now the bot is charging. I can play with it for about two hours before the batteries get low. On to tweaking the minesweeper!
May 17, 2006
Alas, my bot didn't place in the 2006 games but it was close. I had poor tactics in placement plus there's a bug in the software somewhere that causes it to lose it's mind once in a while. However, after the contest was over it's tradition for nearly everyone to place their sumos on to a huge ring and then fight it out. There were about 15 robots or so. We did this four times and mine was the last remaining twice. The other two times Dave Hyland's Stinger was victorious. So, I think this bot has real potential. It was also the fastest sumo I saw there by a considerable margin.
The bot suffered a little damage during the free-for-all. Somebody's brat swatted by bot off the ring because he was upset mine pushed his out. This kid was old enough to know better. I wish his parents would have taught him to respect other people's property.
I had a chance to examine the competition plus Dave Hylands and others had some great suggestions.
I plan to sand down the bottom of the bot my 1.5 mm. This will give it more ground clearance and help prevent one of the wheels from coming off the ground if the scoop gets raised a little. I also plan to add some ultra-high friction tape to the bottom behind the scoop. This will help brake the bot when it goes over the edge meaning I might be able to significantly increase the speed up to the maximum. I like Dave's idea of using rubbing alcohol to clean the wheels between each bout and plan to use that if I ever get to compete with this bot again. I also plan to increase the diameter of the wheels by a millimeter. There's not enough room to go beyond that! Fortunately I anticipated this and made some 32mm diamter molds during the lathing course.
I didn't have time to add the side proximity sensors. That's really high on the priority list now. Several times the bot drove right by the opposing bot without seeing it. I also would like to try and see if I can angle the left and right range finders out a little and increase their range. That might require replacing the sensor board. It all depends on how well the proximity sensors work out.
I found the wooden frame held up well for the competition but didn't hold up to having it drop from a table-height raised ring to the floor. I was able to compete with it afterwards but it required some repair work. I am going to add some internal bracing in spots where there is room plus laminate either a .4mm thick piece of plywood or a layer of very light glass cloth and epoxy on to the rear. The question is how I can do all of this without pushing it over the weight limit?
May 25, 2006
I ended up sanding about 1mm off of the bottom. I figure that plus the .5mm more radius from the larger wheels should be enough. I also sanded as much a ramp as I dared on the bottom near the rear. The idea is to help prevent the wheels coming off of the ground of the front of the bot gets raised up.
I replaced the top with a spare bit of 1/32 PCB instead of plywood. I also have it far more firmly mounted with 9 bolts instead of just 4. When it fell during the games the top got ripped off. I might have trouble with the weight with all of the structure that I am adding.
My attempts at making the circuitry lower profile were successful I was able to remove the spacers that I had at the games. The overall height is 43 mm. There are some mini sumos lower than that but not many.
May 15, 2007
Well, I managed to get the bot into good enough working order to compete in the 2007 WCRG. Came in second to Bob Cook's amazing "Thin Man." I otherwise thought it did quite well. It was still the fastest sumo by a wide margin. I entered it in full-size sumo. Of the three entries it was the only one that either moved or stayed in the ring but it wasn't strong enough or had enough traction to push out the other bot that just stood there.
DOH!!!! It just occured to me that I could have just strapped a block of lead to the robot's roof since it only weighed 10% of the limit for full-size sumo. Traction would have been MUCH better!
*SMEK* Coulda been a contendah.
It appears that the string of mega48s that I bought appear to be all or mostly bad. Only one took a program and, even then, it was iffy. All of the others I replaced just wouldn't program at all. To verify I made a super-simple board with only one purpose: test if I could upload a program. It failed utterly on the two mega48s I tried. It passed with flying colours on the mega8. I then replaced the sumo's mega48 with a mega88 I had lying around and it worked. So, I was off and running. It was a scramble to get everything put back together. Besides the processor the only other change I made was take one cell out of the top battery pack giving me 11 cells total. The weight dropped to 480 grams but I didn't make up for it since my scale doesn't agree with the one used at the games and I didn't want to be overweight by accident. I'll stick in some chunks of lead later on.
Getting new 2/3 AA nimh cells is proving to be something of a pain. The cells I have now are starting to degrade; they only deliver about 400 mAh at a 1 amp discharge.
I am considering switching to lipoly cells. Evo makes a three cell 800 mAh pack that is the same size as one of my 6 cell sticks and can deliver more joules and more amps to boot. The Thunder Power 910 3S1P would probably also work. The only problem is I want to make sure the bot can switch to low power if it detects the battery voltage is getting really low. I don't want to waste a $50 battery pack because I forgot to turn off the robot one evening. Fortunately the most power hungry devices are on their own power supply and with this turned off the bot only consumes about 10 milliamps (or less if I remove the power indication LED).
The loss of 2.1 volts shouldn't be too much of a problem since the bot
is already turned down a little to keep it from driving off of the edge too
often.
Last modified: You know how cats catch mice and birds and drop them at the front door as "gifts" to the humans? Well, my cat went upstairs, "caught" a cucumber that was on the counter, munched on it a little (apparently my cat likes cucumber), dragged it downstairs and dropped it at my feet while I conducting yet more diabolical experiments. That is sooo cute! It's also sooo disgusting as I had to pitch the slobbery cucumber carcass into the garbage so it could embark on its voyage to the great Tzatziki patch in the sky.