| [ Home | Events | Robots | Humans | Projects | About | Account ] | |
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:
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.
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: http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ScalarKalman.html
I found the links above to be the most helpful, but these are also pretty good: http://www.cs.unc.edu/~welch/kalman/Levy1997/Levy1997_KFWorkhorse.pdf
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. :-) http://www.sparkfun.com/shop/index.php?shop=1&cart=209119&cat=1&itemid=406&
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
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. |