Tuesday, September 2, 2014

Final Exam: Flat, oversized-bar spinner combat robot

Updated 2 September 2014 to completion.

Back in the combat robot game! This time, a more traditional (and proven) drivetrain, with a hefty steel bar. This is the three pound Final Exam.



Lots of inspiration from Charles' Pop Quiz, a one pound robot of very similar design.

The primary goal of this robot was to out-reach any and all other weapons out there. This was taken care of by using the overhead bar design, allowing the weapon to completely surround the robot at a radius of 13 inches. Later I realize there are other kinds of limits to this range.

The second goal was to be flat enough to fit underneath most other horizontal spinners. This was tricky. Most of the components I used before were somewhat medium sized in each dimension. For a flat robot this was unacceptable. Compromises were made. Many somewhat underpowered drive motors, for example, instead of a few sufficiently strong motors. In the end I was able to make the weapon 23 mm (0.9 in) above the ground. Lets get started with details.

Weapon Design

The Motor

To minimize height contributions from the weapon assembly the weapon motor needed to be as flat as possible, and the weapon as close to the motor as possible.

To solve motor height, I started with one of Hobbyking's "Multi-rotor motor" which trades off height for width. Instead of having a long motor with a large magnetic field, it uses a wide design to get more torque with a smaller magnetic field. This also has the side effect of making the motor slower, at 620 Kv. For comparison a motor I would otherwise use if I didn't have this size limitation would be at least 1000 Kv.

To solve motor to weapon distance, I decided on a hub motor design, mounting the weapon directly onto the motor. This works great with the wide and flat motor, since the lower speed and high torque are exactly what the hub motor needs. However, it adds some design considerations, as now the weapon has to withstand weapon impacts.

After fiddling in CAD, this design came out. The outer ring is a pretty wide 72 mm, but the height from the bottom to the blade is only 18.8 mm. The outer ring is 14 mm tall, leaving plenty of room for a top plate.

The ring of magnets was cut away from the original motor can, reinforced with JB weld, and pressed into the new motor can. The old stator was removed from its mount, rewound (dLRK, 12T per tooth, single strand 22 AWG), and pressed onto a new mount.

To somewhat protect the motor from shock, the blade was not rigidly fixed to the motor's rotation. Instead, it used a shaft collar, which is pressed against the blade before tightening it, allowing there to be some slip if it really has to.

At the center of the motor is a long bronze bushing supporting both the weapon and the shaft collar holding the weapon on. I used a bushing instead of a bearing for the small size and its length.

The can is supported on the outside with a big thin section bearing and a wide support to soak up radial loads. When assembled, the top plate overlaps the bearing, holding it and the motor can firmly in place.

However, this design has some problems, which I would soon discover.

Due to the long bushing, the motor is extremely sensitive to axial misalignment. Even after tapping the dead shaft support in the lathe to ensure co-axial-ness, I still had to loosen and retighten all the components every time I removed the dead shaft. Otherwise there would be binding and lots of heat generated. While I didn't mind loosening the 19 screws holding the weapon together too much, it became a problem when things got misaligned from a big hit from another robot.

Another problem is that shaft collars are not immovable when tightened. I found that it is most certainly possible for the blade to pry off the shaft collar even when it is tightened so far it deforms its mount. I added double sided tape to the contacting face of the motor can to help with slipping when this occurred.

In real life!

Aside from those two shortcomings, the motor did prove to be quite resilient, absorbing abuse from the weapon tumbling at full speed, hitting concrete and other robots, and a hefty out-of-plane hit from the spinning drum of a Weta clone.




The Blade



The blade was designed to be as long as I could make, with restrictions on width and weight. The width is twice the diameter of the center hole (9/16 in), recommended by the Riobotz combat robot tutorial to optimize the strength around the center hole.

At the tips they are pointy to enhance grabbing ability. Looking closely you can see the opposite corners are rounded, so they don't protrude beyond the radius set by the flat sides of the blade.

I chose S7 tool steel for this weapon, through hardened and tempered to somewhere in the mid 50's HRc. This way it will hold an edge (since it is pretty hard) yet still be able to absorb impacts without shattering. To squeeze out a bit more inertia, I used oversized 5/32" stock.

Right after tempering in the kitchen oven
Luckily the tempering temperature was within kitchen oven range, at 550 F.

Of course, this blade is not without downsides. First, it has a huge moment of inertia for this weight class due to its length. While an 1/8" thick six inch diameter steel disk has a moment around 3 lb-in^2, this bar has 11 lb-in^2, making it kinda hard to start spinning quickly.

The other issue is that bars don't precess like disks. Instead of smooth motions, bars tend to tumble when rotated out of plane. This instability can be seen with Last Rites, the horizontal spinner, in this match at around 0:19.


Now imagine what happens if the blade was bigger than the robot. Final Exam has a bad habit of tossing itself, sometimes 20 feet into the air (sorry, no videos of this as I was more worried about robots headed in my direction).

When it was able to spin up it could do massive damage, such as this unfortunate colson wheel.

Non-motor related things (Frame, drive, assembly)

This was a very waterjet-heavy design (old Invention Studio habits die hard). The main frame consists of a hamburger of 14mm thick aluminum sandwiched between two thin plates of aluminum.
The meat. Note the cutouts at the corners for the wheels and the pockets for the motor gearboxes.

Four Sanyo/Pololu micro gearmotors are mounted at the corners. Normally these are used for one-pound robots but I gave it a shot.

I attempted to run them at 4S (16.8V) but it melted the solder inside, so the drive motors were ran on 2S (8.4V).

Rubber tubing was glued onto aluminum hubs and finished on the lathe for the wheels.

The front was machined at an angle and covered with what I think was 1/32" grade 5 titanium.
Shady way of doing it.

Proper way of doing it.

The weapon motor stator was rewound to 12 turns dLRK with 22 gauge wire.

The batteries are split into a pair of 2S (8.4V) packs. The weapon motor runs on them in series (16.8V) while the drive motors run on just one pack, due to motor design limitations. This also requires two power switches to avoid putting the high voltage circuit in reverse polarity.

When the blade was heat treated and tempered, it came out curved, causing dynamic instability and the robot to end up upside-down. To unbend a heat treated steel bar, it required putting quite a large curve on it in the vise while blow-torching it.

I was pleased with the overall slimness of the robot. I managed to undercut a rather tall midcutting robot with my overhead bar.

To try to add some self-righting capability, I put a hat on the bot, completely ruining how sleek it looked. It consisted of an aluminum tube and a plastic disposable salad bowl.
Before.

After.

Faces were added to help out.

Performance

Underwhelming. It was slow to spin up and terribly unstable. The drive motors were not shock mounted or doubly supported so they bent a little.

The hat came off halfway though a match and prevented the weapon from spinning up. A significant portion of robot damage was self-inflicted.

On the plus side, the weapon bar and weapon motor performed admirably. The bar took a direct hit on the end from a drum and kept going. The weapon motor also endured the hit, despite the long cantilevering weapon. I still use the weapon bar as a crowbar and the basic weapon motor design was reused in the next two robots.
If I were to remake this robot I would definitely shorten the blade to help with instability and use much softer tires to protect the drive motors. However, the complete lack of inverted driving was unacceptable to me and I moved on to a different design.

Models

Look inside (Solidworks 2012 models): https://github.com/aaronbot3000/final-exam

Monday, September 16, 2013

Brief review of the 6V 1000 RPM gearmotor from ebay

This is an attempt to find a less expensive replacement for the pricey but effective FingerTech Silver Sparks for use in beetleweight (3 lb) combat robots. Note, Gold Sparks are so bad they really shouldn't be sold as robot gearboxes. A gearbox that strips under the load of driving straight is a little ridiculous.

The rundown of this motor with a 4S, 16.6 V battery:

Max speed: 2400 RPM
No load current: 90 mA
Stall current: 1.7 A
Torque: unsuitable for a 3 lb robot, unless you use many motors or small wheels

Comparing with a Silver Spark under the same conditions:

Max speed: 1200 RPM
No load current: 130 mA
Stall current: >2 A
Torque: previously used on 3 lb robots to good results

The torque on the chinamotor was significantly less, but expected, given its higher speed, smaller size, and lower current.

 The chinamotor gearbox disassembled.

 The silver spark gearbox disassembled. It seems like it has an extra stage.

 The motor gears have the same size and pitch.

And the gearboxes are pretty similar. The chinamotor gearbox isn't crimped together, so it likes to come apart, and it has a longer bushing.

What about a gearbox swap?
It produces what feels like enough torque for a two motor beetleweight and tops out around 1200 RPM, similar to the Silver Spark. The downside is that due to a smaller size, it heats up much faster, so proper driving to avoid stalling is important. Seems like I should get the 500 RPM variant instead.


When I get a robot together I'll see how these do.

Wednesday, July 24, 2013

Agent Colson: The combat robot that's mostly wheel





Agent Colson is a continuation of 6" Colson wheel based robots started by Jamo and Colson Bot.
Expected

Result
The robot is as simple as it gets. All the components strapped to an aluminum plate. A pair of Pololu/Sanyo 10:1 micro gearmotors pushes this thing at 5 ft/s. A 26 x 28 mm brushless spins the Colson wheel, though it is a touch underpowered. A pair of vextrollers (Vex Motor Controller 29) move the drive motors.


The Colson wheel itself is hollowed out on the lathe and the rotor of the motor pressed into it.
So much swarf.
So many voids
The two halves are held together only by the magnetism within the two sections of the brushless motor. It works okay, only coming apart during significant impact. In the spinup test video below, Youtube chopped and clipped the audio to hell, so mute the video for your ears.

PA Bot Blast

Meeting colsonbot

Agent Colson took a beating during PA Bot Blast 2013 (but is still alive?). During its first match with the Weta clone Mondo Bizarro, it was beat on until it flew apart into two halves.

Reassembled, but only slightly dented.
Then it was experimented on with Final Exam to see how hard Final Exam hits.
Final Exam hits hard when given the chance.
In the end, all the hot glue holding everything together came off, the brushless controller died, and a drive motor disassembled itself.

It was really fun though. Maybe I'll fix it up with a bigger drive motor for Dragoncon (but not really).

Tuesday, July 16, 2013

Gyro King Performance

Gyro King was a finicky robot. Xo and I never got it spinning at our hoped for 6000 RPM, only reaching a measly 2000 RPM. In addition, motors have really low bandwidth compared to their drive circuitry, thanks to inertia and inductance. Thus, while the robot can drift and move while spinning, it was incredibly slow, and by the time you moved anywhere significant, the internal heading would have changed, and your target is somewhere else. Thus, it performed like other melty robots - waiting for the other robot to run into it and break itself. Not very fun, especially when your robot speed determines how much bite the weapon gets, leading to how much energy gets transferred.

In this 2 vs 2 match Gyro King is basically stuck in the corner the entire match. Granted, it only had one motor working at this time, but I don't think the second motor would have changed much.

A much more interesting match. This is at GMX 2012, with both motors working. This match also shows another problem: the weapon teeth have an annoying habit of flying off by shearing the four 6-32 screws holding it on. Here it was because The Hammer's weapon was able to dig underneath the teeth and pull them out. Since the frame is aluminum, it didn't offer much resistance. Gyro King won through a stroke of luck. The Hammer used a toggle switch for main power. It was hit so hard the switch toggled and shut down the robot halfway in the match.

The same competition, but against a nimble opponent. As you can see Gyro King cannot really do anything. It wins only through the error of the opposing operator accidentally driving into the pit, taking himself out of the match.


A fun match against a very capable robot. In the first couple of hits Gyro King's teeth are knocked out. One hit almost sends Gyro King out of the arena. You can really see how the limited mobility prevents it from taking advantage of Dominant Mode's inversion.

In conclusion, Gyro King was a fun project, an experiment in high impact and high strength components and seeing how many types of electronics we can stuff onto a single board, and a test of mettle, but next time I'm building something a little more aggressive.


Sunday, May 5, 2013

A Guide to Better Dithering on Laser Engravers

Introduction


When laser engraving images that are not binary black and white, you usually get a couple options. The first is to use relief engraving, which uses the grayscale version of the image to control the power of the laser. This creates nifty 3D contours of your image, but often the difference in "colors" is small. The image only becomes visible when looking at it at an angle, if at all. The second option is to use the built in dithering. By using a pattern of dark or light dots, this ensures gives better control of how dark colors appear. However, the built in dithering is, in my opinion, pretty dumb. With the power of GIMP and a bunch of test engraves, we can do better.

From source image to engraving! Source image by jtobijah.
The dots are slightly different because I lost the original processed image, and forgot the settings.

Improving on vanilla dithering


The major improvements I worked out are:
  • Using the actual colors of the engraved material when calculating dithering.
  • Using a low DPI image, so the laser makes multiple passes per image pixel.

Each additional color added into the dithering algorithm vastly improves the range of shades represented by dithering and the quality of each shade. Since my method allows different "colors" to be etched at different speeds and powers, more colors can be squeezed out the material.

The Tutorial


Step 1

First, collect the tools. I used GIMP for all my image processing. I'm sure you can find the equivalent commands in your program of choice.

Step 2

Next is to figure out what colors you can etch onto your material. The more distinct colors you can make, the better, giving the dithering more options. A good way I find is to etch a bunch of these gradients at various speeds and work from there.

Test gradient!


For wood, etching makes things darker, but for acrylic, etching makes things lighter. Make a bunch of test cuts at different speeds and powers to see what colors you can get. I find slow cuts at low power create good darks on wood without etching too deep.

There is a problem, when you etch very dark colors the surrounding areas are scorched. While sanding off the scorches works, there are a couple exceptions. When you have standalone unetched pixels surrounded by light pixels, sanding tends to break them off. Or, if you're working with the cheapest craft plywood in existence you found in the scrap bin, any kind of sanding will quickly eat through the very thin veneer and reveal the glue below. What I did was use an low power at the highest speed to blast off a extremely thin layer off the top without any significant darkening.

Make sure you write down what laser settings you used for each power. As learned from experience, don't trust yourself to remember it.

Once the colors have been determined fire up GIMP to enter the colors into a custom palette. To do this first open up the palette window by clicking Windows -> Dockable Dialogs -> Palettes.
Palette window on the left, new palette on the right, with dark etch, light etch, and unetched material color.
Do not forget the color of the unetched or "laser sanded" material as well. Try to match the colors as close as possible.

Step 3

The classic test image.

Open up your image of choice. First we lower the source image's dots/pixels per inch (hereby referred to as DPI) to match that of the laser. I find 100 DPI is the highest resolution I can go before single pixels start failing to form. Make sure your image still fits on your material after changing the DPI. In GIMP you can do this through Image -> Scale Image.

It also helps to change image size to inches/mm to get a good idea of its real size at this low DPI.

Then comes the magic. Change the color mode from RGB or whatever it started as to indexed. Do this by Image -> Mode -> Indexed. The dialog below will come up. Choose the palette you created in Step 2, and pick a good dithering mode. The Floyd-Steinberg flavors creates dithering without (intentional) patterns while Positioned does. This converts your image to use only the colors in your palette, which in turn are all the colors your laser can recreate. If the output is too much of one shade, try tweaking the brightness and contrast before converting your image to indexed mode.

Converting to indexed. If you get big blotches of color, you either forgot to turn on dithering or actually have big blotches of color in your source image.
Since the material colors are input into GIMP, this is what the engraved material will actually look like.

When the image looks good, the next step is to convert it into an image with colors the laser software can use to define different layers (like solid red, green, blue, etc). To do this first convert the image back to RGB by Image -> Mode -> RGB. Then use the select by color tool to select a color, making sure the threshold is zero and no feathering or antialiasing nonsense is turned on, and set it to the laser software friendly color by using the fill tool set to fill the entire selection. It will look a litte funny.

Don't worry, the laser will know what's going on.

Finally increase the resolution to some multiple of what it was (here it was 100 DPI), so the laser makes multiple passes per pixel. I used 400. So, through the same image scaling dialog as before, first change the pixels per inch to 400, then change the image size to the same physical dimensions as before. This means multiplying its width and height by 4. Make sure you set interpolation to none or all your colors are going to be messed up.

Step 4

Unfortunately, I have no pictures of the laser setup because I don't have a laser anymore. I just have to believe in you, the reader, to get it right, eventually.

Set your laser cutting speeds. Based on the colors you used in your source image, set the laser speeds and powers corresponding to that color. So if you set the dark engrave to red in your image, set red to make the dark engrave in your laser program. Import the image into your laser cutter software and do whatever tweaks you need (adding a cut line, etc). Print your image, making sure the DPI setting on the laser is the same as your source image (here I used 400). Enjoy the wait.

Gallery

It even works on pictures. Source image by CopyX.
The dots are slightly different because I lost the original processed image, and forgot the settings. 

Paper Mario sprite.

Another Paper Mario sprite.

Marceline from Adventure Time. The chipping at the bottom can happen when you try to sand cheap craft plywood.

Somewhat irrelevant, but you can also laser engrave mashed potatoes.