Posts Tagged Robotics

Code Progress is Still Progress

It’s been a long time since I’ve updated, and to those following my project I apologize, I know how annoying it is to see an interesting project on the net stall for years. (well, at least I hope my project the info I’m putting is useful/interesting/inspiring to others)

Long story short, I left my old job last December, moved cities and started a new job in a different industry. Needless to say, life has been busy, and I haven’t had as much time for my projects as I’d like, which may or may not be a good thing depending how you view it. Moving 1,154 km away from my Dad’s basement workshop hasn’t helped either. No more driving to my parents place to do machine work in my spare time. I’m left to slowly acquire my own tools now.

I haven’t forgotten about the quadruped, and have even managed to get some work done on it. I’ve powered up the motor drivers and haven’t found any major design errors yet, which is a good sign. Motors are spinning, and potentiometers are being sensed properly. I still need to do a bit of work to tap the 0-80 holes to mount the angle sensors, and machine the drive shafts a little bit to engage said angle sensors properly, before I can get the PID controller working properly to move the joint to the appropriate angle.

I’m also considering moving to brass gears, at least on the motor. I’m not overly concerned about the Delrin gears stripping, as there shouldn’t be a massive loads on them that cause outright concern, but I am having trouble mounting them securely to the motor shafts. As it ends up, Delrin is a bit flexible, enough so that it won’t hold a set screw securely, and even with a set screw the motor shafts end up spinning inside the gear. Moving to a brass screw should solve this problem, and is likely the easiest solution, albeit a little bit expensive.

On that note, you may have noticed I’ve put up ads. For the longest time I’ve been against ads on my personal website, but web hosting and robotics as a hobby does cost money. I haven’t really settled on whether or not I’ll keep the ads yet…

, , , , ,

No Comments

A Blast From The Past (Sumo Style) Part I

It’s been a busy summer (and then winter), involving getting a new job and moving to a new city, so I haven’t had much time to work on my robots much recently, let alone update my blog! So, instead of posting any updates on my robots (those will come later on when I get more work done), I’ve dug up some information on one of my older Sumo Robots, aptly named:

Chomp!

Chomp! in Competition

Chomp! in Competition

Chomp! was my first sumo robot, and first robot beyond BEAM robotics. Built in my High School years, it competed for the first time in the 2000 Western Canadian Robot Games, and placed first in the 5kg Autonomous Sumo competition. Although slow and lumbering, this robot had a good (for the time) vision system and protective skirt system that deployed on startup.

The brains of the Sumo was the rustic Basic Stamp II, powering an L298 H-bridge that controlled 4 motors, one per wheel. An aluminum frame held the robot together, and a custom made decals gave the robot a nice fierce personality ;)

Back before the days of commonly available Sharp IR Rangefinders, I used a solution involving Modulated IR sensors (40 kHz) and modulated IR LEDs. By toggling the LEDs on or off, from a single sensor I could determine if the robot was to the left, right or front of me. A far cry from ‘1.21 GW‘, my current mini sumo, but it worked, and helped get the robot first place!

Chomp! preparing for Battle, before deploying protective skirts

Chomp! preparing for Battle, before deploying protective skirts

Chomp! went on to compete in the 200 WCRG for the next year or two, but other robots rapidly improved over the years, and Chomp! became too slow and the protective flaps too weak for stronger robots.

Chomp! actually had a sister (brother?) robot, named “Fatal Discharge”, which never ended up working right. Unfortunately, this was before I figured out enough about motor controllers to know that the L298 wasn’t quite up to the task.

After Chomp!, I went on to build “Event Horizon”, which was a moderately successful robot, and one of the first in Canada to have a vacuum system for increased traction. But more on that later…..

, , , , ,

No Comments

Quadrupeds Need a Whole Lot of Motor Controllers

Bare PCBs 1

Motor Controller Blank PCBs

Leg Motor Controller 1

Motor Controller in the Leg

It’s been a while since my last update on the Quadruped’s build progress, but I finally got my PCBs back for the motor controllers. Since the robot has twelve motors, I need six motor controllers in total (Each of my controllers controls two motors). They’re an updated version of the h-bridge I prototyped last fall, and used in my mini sumo robot. Although definately more than is really required, the motor controllers boast ultra-low RDSon Direct FETs, and HC9S12C32 micro-controller to handle the control and monitoring of the h-bridges. The black soldermask really enhances the look of the PCBs mounted in the robot.

Each leg has it’s own motor controller to manage the two motors in each leg, and another two motor controllers will manage the four motors in the core. The leg motor controllers are shaped specifically to fit within the frame on one side. The other side of the upper leg frame will hold another PCB with some sensors (I’m planning on e-field and/or pressure sensors in the robot’s feet and on the leg itself.)

Leg Motor Controller 2

Motor Controller and Angle Sensors

Leg Pogo Adaptor

Programming Adaptor

Each joint requires angular feedback for the motor controller’s closed loop system. This is accomplished by using special potentiometers through which the joint shaft will pass. The potentiometer is wired as a simple voltage divider, and  as the angle of the shaft changes, the potentiometer will give a different voltage output. This voltage will in turn be read by the motor controller and turned into useful data. The special potentiometers used here were a bit of an obscure find, but luckily they are a stock item at Digikey.

In order to ease the routing of all the connections on a 2 layer PCB, I decided to offload the large BDM header onto a separate board, which can be screwed onto the leg frame when I load the motor controller firmware. Several pogo pins then  make the programming connections to the test points on the controller PCB. I decided to get creative with the shape, and it turned out pretty neat.

I’m toying with the idea of putting a customized boot loader in the 9s12 controller, and giving the main processor (the Gumstix) programming control over all motor drivers. This way, instead of individually updating firmware on the motor controllers as I continue development down the road, I can instead just load one hex file into the Gumstix’ file system, and it will automatically update the firmware on all six motor controllers.

New Battery

Lipo Batteries

I also recently ordered the batteries I will be using to power the robot, 4x 2000 mAh LiPo batteries. I will be running then in a 2-series 2-parallel configuration to get 4000 mAh at 7.2 volts to run the entire robot. I still need to design and build a board that will fit underneath the batteries in the core of the robot, which will be responsible for battery protection/charging as well as power and control signal distribution to the four legs.

Still a lot of work to go, but it’s getting closer to walking…

, , ,

6 Comments

Some Random Stuff

GPS Module and Antenna

U-Blox GPS and Satantel Antenna

One of my friends working on a GPS project of his own managed to aquire some Sarantel Helical antennas, and got some for me as well. I’m planning on using them with the U-blox GPS module I have had sitting around. (I originally bought the GPS module for a MUAV autopilot I’ve been slowly designing, but when I got busy with work it got put aside and technology outpaced my design. For the MUAV autopilot I’m now intending on using a smaller, lighter GPS module which has freed up this one for service on my Quadruped). I’m still mulling around on choosing an LNA to throw in between the radio and antenna to improve sensitivity, so the PCB design is stalled until I make a selection.

Four Legs in progress 2

Teaser Photo

Although the GPS is “technically” able to attain a GPS lock indoors according to the literature, I’m not going to count on that. The camera will be used for indoor navigation and world modeling (I’ll post more on the progress of that later), while the GPS will be used primarily for outdoors navigation. The main reason for this is I’m thinking of having a go at the Robo Magellan competition put on by the Seattle Robotics Society. Although for the general flat environment a small walker is at a huge speed disadvantage to the larger wheeled or tracked rovers that typically enter, I’m more interested in the technical challenge of designing a robust and adaptive walking/navigation algorithm for the robot than winning.

Populated Mobo

Mini Sumo Brain

As a bit of an unrelated note, here’s a picture of the populated circuit board for my mini sumo. Now that there’s no pressing deadline to get the robot working, I’ll have more time to fiddle with this board and get FreeRTOS up and running on the LPC2138 to manage the data and computational requirements of some of the more complicated sensors I’m throwing into this sumo robot for no other reason than “because I thought it would be a good technical challenge”

, , , , ,

1 Comment

2009 Western Canadian Robot Games I

Super-Secret-Backup-Plan-1

The HC12 Motor Controller Board modified as a sumo controller

I spent the second half of last week scrambling to get my mini sumo robot, 1.21 Gw into a working condition for the robot games. I populated the circuit boards mentioned in an earlier post but as I grew low on time I decided to put those aside for this year. Instead of trying to teach myself a new architecture (LPC2138), I decided to concentrate on programming the robot using a board I was familiar with, my HC12 based motor controller design. (This was the prototype motor controller for my Quadruped walker, so I had some base code already written for it, which went a long way towards getting my sumo robot programmed in a little over a day)

May 2009 Weigh In

331 Grams!

I made the decision to forgo edge sensors for this competition, and instead chose to make the robot as aggressive as possible, the theory being that if I push the  opposing robot off the edge before my robot gets to the edge, I won’t need edge sensors. In the end, I managed to get a working robot, measuring 98mm wide by 97mm  long, and weighing in at only 331 grams!.After I finish the actual controller board I intend to use on this robot, I’ll have to make some weights to bring it closer to the 500 gram limit.

In the end, I placed first in the advanced mini sumo category, though I had some good competition! For more videos, check out the WCRS website. I will try to post my own pictures and videos when I get a chance.

, ,

No Comments

Mini Sumo PCBs…

BlankPCB

Bare PCBs

After
MockUpPCB

Fitting the PCB in the body...

a rushed PCB design marathon, I got my PCBs in last week, built by the good folks at APCircuits. The stencil came in shortly after. Since I made the PCBs into a panel, I had to cut them appart and file down the edges so that it would fit in the chassis. Overall the PCBs turned out nicely. I built them up and can sucessfully load code into the LPC2138. (No pictures of the completed circuit board yet). Things are comming togethor nicely.

You’ll also notice on the silk screen that I have given this robot a more creative name than Mini Sumo Version 6. I now call it “1.21Gw,” pronounced, of course, much as Doc Brown pronounced it in the timeless classic (no pun intended) “Back to the Future”

Now to finish it up and write some basic code for the robot games this weekend.

, , ,

6 Comments

It’s not a robot until it looks like a robot.

Flycutting the Delrin Body

Flycutting the outside of the Chassis

The long weekend was a busy one with lots of progress made on the mini sumo. I sat down in front of the mill, and machined the robot’s body out of a single piece of 1″ thick Delrin, a task requiring a lot of care to not mess up, as one slip up has the potential to ruin the entire part, and hours of work.All in all, I think it turned out very well. Delrin machines very well, although does require a vacuum cleaner close by to continually clean up all the chips that accumulate, especially considering how much material I removed….

I also spun the two aluminum motor mounts, and cut the stainless steel base plate that seal off the bottom of the body. Still a lot of work to do on the chassis, and the circuit design is progressing slowly.. Now it’s just a race against time to get the PCBs made, circuits debugged, and a rudimentary program written up to get the robot running for the games. It’ll be tight, but I think It will be ready…

Here are some additional pictures…

Delrin Body Bottom

Bottom view of the Chassis

.
Delrin Body Front

Front view, with motor mounts and hub vissible

.
Milling the inside of the Delrin Body

Milling out the inside of the Chassis, where the electronics and batteries will go

, ,

No Comments

Adventures in Mold Making Part II

TireInMold

Removing the prototype tire from the mold

After
FirstTire

The first tire.

16 painful-to-wait hours, I cracked open the mold to check out the first prototype tire. It turned out very nicely, and much better than my previous adventures so many years ago. (Maybe when i get a chance I’ll dig up some of my old stuff to use as a comparison).

The traction on these tires is amazing, and the dark blue colour looks cool, however I think I’ll use a bit less pigment next time. The tricky part will be maintaining a consistent amount of pigment, since I only have one tire mold and will have to mix up a new batch for each tire I make. Making another mold would take valuable time away that I need to work on the chassis and electronics design if I’m to have any chance of finishing in time for the WCRG…

Note the air bubble that caused a missing piece in the tire.. Since this was a prototype tire that I plan to rip apart to test the strength, I wasn’t too concerned about fixing that part while molding it.

, ,

No Comments

Adventures in Mold Making Part I

DelrinBlank

Somewhere in this piece of Delrin is a mini-sumo robot chassis.

It’s been a while since my last post, but I’ve been working away hard at designing and a little bit of machining for my Mini Sumo. It’s proving to be quite a challenge to fit all the electronics and sensors I want into the small package of a mini sumo robot only 25mm tall, but I think I’ve figured out how to shoe-horn the electronics in there.

I’m planning to do some fairly sophisticated sensors, but that’s a topic for another day, and likely after the games as I likely have to run a temporary brain for this competition as time is too tight to get a PCB turn.

Tire Mold

The finished tire mold

I have made decent headway on the chassis, having made more wheel blanks, and made a mold so that I can cast my own polyurethane tires. The mold itself is made from Delrin on the mill, held togethor by four screws, and kept in alignment with 6 dowel pins. The center slug was spun on a lathe, and forms the bottom of the mold, as well as a means to seat the wheel directly in the center of the mold. A top plate from scrap polycarbonate is screwed on to keep the top finish of the wheel nice.

Delrin is a really nice material to work with on a hobby mill and lathe, and it was relatively easy if somewhat time consuming to bore out the 25mm diameter hole for the robot.

MoldRelease2

Brushing on the Mold Release

6 or 7 years ago was the last time I cast polyurethane for sumo tires, I reckon, so I figured what I had lying around was no longer good. A bunch has changed since then, and a stop to a local mold making shop with some samples had me settled on Smooth-On Reoflex 30.  Other people have used various Reoflex durometers for sumo robot tires as well. Feeling in a spendy mood, I also decided to buy some blue pigment.

Excitedly, at the end of the work day I got home with the polyurethane in it’s shiny box, which I’d bought over lunch hour, and prepared the mold. After collecting all the things I would need to cast my tires, I found that the really Old AIrbrus lying around wouldn’t spray the mold release agent anymore, so I cheated and used a brush instead. After waiting for the mold release to dry, I clamped the mold pieces together, popped in a wheel, and started mixing some polyurethane.

MoldReady

Ready to pour the polyurethane!

This new stuff works better than what I’d used previously, and was less viscous and as such did not get as many air bubbles trapped in it while mixing. An added benefit was that I could use some over-sized syringes I had lying from an old ink-jet cartridge re-filling kit.

A word of caution when using pigment for polyurethane, however: The “SoStrong” pigment.. Is, just as the name would imply, oddly, So Strong. I used a few drops, which was a few drops too many. The end result was a very dark mix. But, as this is a prototype tire that I plan to rip appart to test strength, I wasn’t too concerned.

Now the tire is sitting in the mold. With a 16 hour de-molding time, It should be ready tomorrow roughly around lunch… We shall see how it turned out then.

UPDATE: Check out Part II of this article here!

For now, here are some other links you may find useful with regards to polyurethane sumo tires:

, ,

No Comments

Mini Sumo Motor Mounts

Well, it’s been a while since I’ve updated, and I have gotten a little bit of work done on the robots in between ice diving adventures, and working on the Jeep. Most of the progress made has been playing with software (Investigating webcams and OpenCV for Spyder’s machine vision) and hardware design (PCB layouts for Spyder’s many circuits.)

Motor Mount 4

Motor Mount Prototype

Today
Motor Mount 3

Motor Mount Prototype

, however, I sat down and got some machining work done for my mini sumo. I was wrestling (no pun intended) with the idea of how to mount the motors, and eventually decided to make a flanged sleeve for the motor to fit inside, which will then be securly attatched to the frame of the robot. The first attempt turned out pretty good, although not quite perfetct, as I didn’t properly square it off in one of the steps. It’s useable, but I’ll have to decide wether or not I want to make another one.

So, things are slowly comming a long. I’m afraid I won’t have all the circuitry I wanted to put into the mini sumo done in time for the robot games (chiefly goverened by the long lead time for budget PCB’s from batchPCB), but hopefully I can at least get something that will run arount the ring. I suppose as a backup, I do have my H-Bridge prototype board I could use to control it.. Complete with high-efficiency H-Bridge, and a powerful little 9s12 to control it all… Hmm..

, ,

No Comments