Recent blog entries for NateW

Did some experimenting with bluetooth and bandwidth, by creating a BT server that receives 40-byte packets and replies with 40-byte packets, similar to what the Gumstix is doing on my biped, but without any actual processing. My hope was to get more bandwidth by using a raw bluetooth socket instead of building on top of the bluetooth serial port profile, but alas, the SPP overhead is apparently negligible.

I can up the packets to 80 bytes and still get 60 frames per second between my desktop and my laptop, but on the gumstix I am stuck at about 15 fps even with the raw socket approach.

On a related note, one of my Gumstix is booting Windows CE now, so the above testing was all done with C#. Unfortunately, debugging requires either USB or ethernet and my biped has room for neither, so I need to figure out a way around that (ActiveSync over bluetooth?) before I reflash the Gumstix in the biped to boot CE as well.

Currently the CE-on-Gumstix stuff is only usable by people with Platform Builder (Microsoft's CE development suite), which is pretty expensive. But with any luck, that will change in the not-too-distant future.

Turns out I didn't kill the servo controller after all. Far as I can tell, it was just getting confused by the ~3 volts leaking through the voltage regulator while the Gumstix/Robostix combo booted. I guess by the time the Gumstix turned on the Robostix voltage regulator, the servo controller had given up due to the brown-out. The more recent Gumstix boot loader turns on the voltage regular almost immediately, and the servo controller is happy.

The gyro/accelerometer board isn't mounted yet (hence the open space above the battery pack), and I want to move the battery cells out to the arms, and there's a big mess of wires hanging out the back, but the pile of parts looks like a robot again. It's just hanging from the test stand in those pictures, but hopefully it will stand on its own before too long.

I put my biped back together, and got all of the servos moving (just one at at time) via bluetooth, and they I killed the servo controller right before Robothon. The new servo controller got here last week, but I want to re-do the power distribution before I install it. It would be nice to be able to turn the servo controller on and off from the Gumstix (and maybe the servos themselves too). I'm still thinking that over...

Question for Bram V:

How does Lucy balance laterally? I can't see any side-to-side weight shift - is the lateraly movement very small, or is Lucy's top end attached to something? Great video by the way, the leg movements are very smooth.

It was a bit of a struggle to get bluetooth working right on the Gumstix, and it paid off. The Gumstix forms a bluetooth personal area network with my laptop when the Gumstix boots, so I can SSH into it for administration and monitoring. The laptop can also open a serial connection via bluetooth to send commands to the Gumstix, which forwards them to the servo controller. I don't even have to be in the same room. :-)

The robot is spread out all over my workbench as I write this, but it's almost time to put it back together again.

The biped mechanics are mostly done, other than a bit of fit-and-finish work:

Front View

Rear View

Whoops... That ED-209 link again. My bad.

I've finally started construction on a biped - something I've been wanting to do for years but never quite got around to doing. It's a made of Lynxmotion servo brackets and laser-cut polycarbonate, and the overall shape was inspired by ED-209. However my "ED-1" uses no linear actuators in the legs, and will probably have longer arms, though I haven't yet made up my mind about that. I think I'll be departing from the ED-209 form factor in order to add an extra degree of freedom to the arms.

The legs, hips, and torso are built; the arms should be done by the end of this week, the feet will follow in another week. I have no pictures (as usual) but a couple people took photos at the Seattle Robotics Society meeting yesterday and if those images find their way onto the web I'll link to them from here.

The dead hard drive I mentioned in my last entry turned out to be not much of a tragedy. I booted to Linux, mounted the drive as a file, then copied the raw data to a good drive. Then Googled for "GPL" and "FAT32" and found some tools... After fixing some corrupt data on the boot sector, I was able to recover about 90% of the data from the dead drive - and as far as I can tell, the other 10% was completely unimportant.

Good news: I got my friend's scout walking yesterday.

Bad news: the boot drive on my desktop PC just failed.

I have backups for the really important stuff, but I have a sinking feeling that there's a "long tail" of stuff that wasn't quite important enough to back up religiously... but which, in aggregate, adds up to a lot of lost work. Only time will tell.

Have been learning about Kalman filtering in hopes of providing my robot with a good sense of balance... In case anyone else is interested in learning about Kalman filtering, here are the best links I've found so far. These are not the most in-depth, but they are (far as I can tell) the ones with the best "plain english" description of what all the formulas mean.

This one presents Kalman filtering of scalar values, rather than vectors, which cuts down on the greek notation but preserves the key concepts. The second link explains how the scalar version is extended to work with vectors:

I found the links above to be the most helpful, but these are also pretty good:

After a couple nights of reading these papers, the light bulb suddenly went on... I get it! At least, I think I do. I'll find out soon, as I just ordered a SparkFun 6DOF IMU, so I should soon have some signals to filter.

I have to plug Sparkfun here because this product appeared on their web site just a couple months after I proposed the idea in their online forum. I beg, they build, I buy. I wish more companies worked that way. :-)

Here come the movies and screen shot I promised a while ago... except that instead of my hexapod, this is a MegaRobotics dog, loaned to me by a friend of mine.

moive: side view
movie: front view
screen shot: source code

The software is coming along nicely, but defining a single sequence of operations (for example, the stand-up routeine at the start of each video) is more trouble than it should be. It might be nice to have the state machine system interpolate from one pose to another when transitioning from state to state... I still need to think on that for a while, but it seems promising.

16 older entries...

Share this page