There’s beauty in clockwork.

So here I am, listening to “Like A Dog Chasing Cars” off of the Dark Knight soundtrack conjuring lavish and epic visions of the future in my spacious imagination. The song itself is the main catalyst for my current thoughts. The epic Hollywood strings dancing around in my head with the thunderous bass banging about is vividly depicting a trailer of a movie not unlike a future I would like to see.

As I am building my robot, I am discovering some of the major hurdles roboteers come to hate when building their own mechanical creatures. My main pet peeve right now is powering the damn thing. When I first started this project I bought a lead acid battery capable of churning out some 7500Ah. Plenty right? Well, not really. You’ve got your PC sucking the most juice (I haven’t measured how much yet, but wow, what a drain), the DC-DC board supplying the 24V for the SICK sensor and the motors themselves draining quite a bit while rolling around. I now plan to get two 12V 17Ah batteries to power my little beast giving me a total of 34Ah to work with, but with a real weight problem to go along with it. As it stands my drive train is powerful enough to lug the chassis and the PC about but I am getting so worried about the added battery weight. The drivetrain itself is rather bad to begin with due to my rushed craft and this added weight is really going to be stressing my design.

The chassis, even though it is made out of handy and relatively lightweight 80/20 aluminium extrusions, is bearing the most weight on the project, surprisingly enough. And the PC’s chassis is made out of heavy steel which tops the cake. The other day I was browsing about my robotic links when I found something rather interesting, something that could potentially solve some of my problems. I give you the Parallax drive-train kit! For a whopping $279.99 you get a complete gear motor driven differential drive system with built-in quadrature encoders for one’s positioning needs. The sad thing however, is that I have come to a dead-ish end with my funding. Now with school starting again and having to pay for tuition/books/etc. I’m finding myself a little short on robo-cash. Oh well, this won’t stop me!

Stop me from continuing on with my robot that is. I mean, the new batteries alone will cost about $200 in total, then I have to buy a lead acid charger on top of that, which is another $100 on top. I believe my robot will be running on tethered power for the foreseeable financial future until I can put more money aside for this. It’s amazing how much of an issue power actual is with mobile robotics. Commercial robotics rely on either expensive lithium ion cells (I am pretty sure the Segway uses some really nice but damn expensive cells), or damn heavy lead acid batteries to get their power. I have a firm belief that when we start seeing some (cheap) high power to weight ratio portable power sources we will see an incredible revolution in consumer robotics. I am talking the stuff of Asimov!

You’ll have robots running for days without having a recharge, actually being useful around your house and neighborhood, maybe even picking up on a little sun while outside. What use is a robot in its docking station? Not much really. I’m instantly reminded of the companion robotic teddy bear from the movie A.I. and how incredible it will be to be able to create life this way. I’m one of those people who believe we will be able to create a intelligent synthetic life one day, and no, not the “evil” kind (I’ll leave that discussion for another post). To ease us into a society with artificial life I think we will devise ways to introduce robots as pets or companions. There will definitely be a priority for characterization of the robot.

I envisioned my robot to have a very characterized  feel to it. I want it to own a very distinct entity even when it is aimlessly scurrying about in its infancy. As humans, we have a tendency to personify things, leaving much of the animation and life of the inanimate objects up to our imaginations. It will be fascinating to breathe this kind of life into something otherwise static and lifeless.

My train of thought is gone for now. I’ve tried to write down as much as I could, and I guess I will have to keep the rest for later!

Phew.

The SICK PLS-101 has landed!

And here it is… My SICK PLS101-312 Proximity Laser Scanner:

SICK with Logitech OrbitBack of the PLS-101 with 80/20 1010 extrusions bolted onLaser readings using the PLS configuration utilityPLS sitting on top of my computer with the stinky Dell showing off the readings

This will basically make my robot a research-worthy machine, as these units are used in universities worldwide for a variety of robotics applications. They work by shooting out an infrared laser and measuring the time it takes for the reflection to come back. It does this in an arc of 180 degrees using the help of a little mirror that rotates on the inside. Now you’d expect something to cost an arm and a leg… And guess what, they do! Look at these ridiculous prices: http://www.plccenter.com/buy/Sick+Optic+Electronic/PLS101312 I would have never dreamed of using a range finder with my robot until I found my own in a lucrative eBay auction. After hesitating for a total of 10 minutes I put in my bid and setup a snipe just in case someone tried to pull a fast one. Just as the 30 second mark approached some guy tries and steals it away from me! Fortunately my sniper went into action then BAM, I win! I was so elated. Total price with shipping was $350, and compared to what these retail at, this was a steal.

I’ve actually had the unit since last Friday but I’ve been too busy to actually post anything about it until now. So far I have already mounted it on two 80/20 extrusions that will make up part of the body of the robot and created custom DB9 connectors for both the power and the RS232 connection (many thanks to: http://www.pages.drexel.edu/~kws23/tutorials/sick/sick.html). The tricky thing was that the PLS inverts the Tx and the Rx of a regular serial cable so I had to swap them myself by cutting a serial cable and half and crossing the corresponding wires. As for the power, I hooked the unit up to my power supply and gave it a steady 24V that the unit requires to operate. Now 24V does pose a problem since my original design was based on a 12V bus, so in order to fix this problem I will need a 12V to 24V step up converter which I may already have found here: http://www.zahninc.com/su11.html It’s too bad the converter is a little expensive but it can be bought later in the build.

Another thing I realized was that my main computer didn’t have a serial port (I’m too hip with technology to jive with serial, lol)! So in order to test the PLS I used my girlfriend’s old Dell to run the diagnostic software. The reason why I was so eager to test it was because the seller neglected to pack it very well and I was worried it was all busted up on the inside. The price was kind of sketchy too. Luckily my fears proved false and I successfully grabbed laser readings from this wonderful unit!

So why would you want to have a laser range finder for your robot? Well think about mapping and localization. More specifically, Simultaneous Localization And Mapping. SLAM allows a robot to know find out where he is in relation to a map he can build himself. The concept can be applied with images (very computationally intensive), sonars (slooow), and laser range finders like my PLS. What’s so wonderful is that there are already many people working on open sourced SLAM software that deal with this laser specifically which will give me a good foundation for me to start from.

Let’s build a robot…

I have come a long way with my build and have some progress to show for it. A lot has changed since my very first robot post, so let us quickly look over some of the main components I have gathered for our robot friend.

Robot vision

Pictured below is the Logitech Quickcam Orbit MP I have chosen for the robot’s eye view of things. It was dirt cheap and you can really tell when you start panning & tilting the thing. While I could have shelled out a quite a bit more to get a fancy servo driven head module, I was not going to use it for any odometry whatsoever (well maybe *some* but nothing fancy like stereo-vision), so that would have been a little too … flamboyant. Basically the robot will be completely autonomous, and I wanted to provide the user an external heads up display where they could view the robot’s inner map of its surroundings, current goals, battery charge, and ultimately a live feed that would allow you to pan and tilt. The Orbit MP fit the bill perfectly.

Logitech Orbit MP

Aluminum brackets & framing

For structure I am using a combination of 80/20 framing and sheet metal to put everything together. 80/20 is this great stuff that you can use to build almost anything out of sturdy and lightweight aluminum. I discovered this wonderful erector set while browsing around the internet for other robots people have built and they came well recommended. Only downside is that it’s rather expensive but you can still get a pretty good deal through their surplus eBay store. Now for the motor brackets, I designed some folded sheet metal pieces in Autodesk Inventor and sent the flat patterns to a local shop in town to cut out the pieces for me and I couldn’t have asked for a nicer job. They didn’t do any bending though, so I bought myself a sheet metal brake to fold them myself. I’m very surprised and impressed at how good these turned out.

80/20 extrusionsAluminum brackets

Wheels and gear motors

When choosing motors I went searching for something practical yet powerful, and while browsing eBay (where else?) I stumbled on two Buehler right angle gear motors that both had encoders already on them. So basically I didn’t have to worry a single bit about installing a wheel encoder myself. I did a short test and both encoders worked very well with TTL voltage so it will play nicely with the PID board I am going to build for them. Unfortunately the only drawback to these encoders is their singular output, so they don’t provide fancy quadrature output that would help the robot discern turn direction (but since he’s going to know which way he’s turning each of his motors it shouldn’t be too big of a deal). Also, another downside I found about these about these motors is that the axle floats between the teeth of the worm gear a few degrees which might give me unnecessary error when it’s all hooked up. If the wheel itself had the encoder I wouldn’t have much of a problem but that’s life, right?

Now if I had to find one thing to complain about this early on, it would be the wheels I chose. They were chosen specifically because the bore size had to match that of the axle coming out of the right angle motor (8mm) because I don’t have a really precise drill press (which sucks). I don’t have the equipment to precisely key out the axle either so I had to find hubs to fix on the wheels on the axle (the little metal things screwed onto the wheels). To make matters worse, the screws I was sent weren’t threaded all the way to the head of the screw so I had to ditch a hub off each wheel so that the screws could go through. This is no good because there’s less wheel grip on the actual axle which means more of a chance of the wheels slipping off of it. The drive train is definitely going to be revised later, but for now it will have to suffice.

The main drive wheelsRight angle gear motors with built-in encoders

How it all comes together

So here is how it all looks together so far. In the first picture you can see where the battery will be positioned. That spot is excellent for the robot’s center of gravity as he will have a lot of layers of electronics and sensors to support. The long 80/20 beam you can see in the picture is going to be cut down to size once I know exactly how big he is going to be. One last thing I’m going to nag about is the slightest little warping I am seeing from the motor bracket. This I am going to fix by adding additional support on the sheet metal (welding on a strong piece of metal perhaps) to ensure everything will stay up. All in all however, things are looking pretty damn good!

Partially built with battery emplacement.Another shot of the partially built chassis

It feels great to finally start seeing the pieces come together. I’ll address more stuff (caster wheels at the back, main chassis frame, SICK laser range finder) in my upcoming post so make sure you stay tuned for more goodness!

Custom theme changes

After a bit of work I finally have implemented my own custom look for the Zeke theme. Voila!Things I like:

  • How well the torn edges blend in with the wood background (resize your window for sexy)
  • Footer looks great (but…)
  • Header looks pretty sweet too

Things that need fixin’:

  • Main font was never changed… Needs to be sans-serif to match the static header
  • Menu needs decoration
  • The footer’s ‘but’ is that it doesn’t show off on all pages. This is thanks to my laziness. Quick CSS hack to make it show if you will.
  • Header’s buttons are blah, will fix ‘em too :D

Even with the gripes the important thing is that it’s looking a lot more me and that makes me happy.

General robot update

First of all, I added Ryan to my link section. He’s a pretty rad guy I work with and my first blog pal!

Second I’d like to touch on the robot project I had mentioned earlier. It’s changed drastically since its original concept but is progressing along superbly!

I’ve decided to go with my own chassis due to cater to two new motors I’ve obtained back in November. The chassis itself forced me to learn some AutoCAD basics which are really going to help with the rest of the project. However as it has become apparent to me.. It’s a lot harder to get it actually made. After emailing a few fabricators I have yet to receive any response. My friend knew of another person who might be able to help however they haven’t called back either! I’m starting to think that I may have to construct it myself, which in itself isn’t the most daunting of tasks if it weren’t for how thick the sheet metal actually is. Since I decided to go with aluminum however, it might be doable. We’ll see.

I’ve even got a lot of the electronics down too. I’ve bought the USB to I2C adapter which will communicate the mainboard to the rest of the hardware and I have obtained myself a PIC programmer. I also found this fantastic PCB design for a power supply and sonar array which will sexify the internals as well (I was going to manually use a perf board and… ugh. you know.) I’m holding off buying the sonar sensors until I get the chassis made just so I don’t have them laying around and get broken somehow. I chose SRF-05s due to how cheap and easily interfaceable they are, I’m pretty excited to use them.

Wheels are another beast I think I may have tackled. The problem with the wheels was mostly thanks to the stupid 8mm shaft that came out of the gear motors I chose. I actually found some wheels to fit the shaft however they have bearing, so I’m going to have to remove them and have the hub of the wheel static with the rest of it. They should be coming in soon so we’ll see.