Older blog entries for NateW (starting at number 17)

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
http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/MatrixKalman.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
http://www.cs.unc.edu/~welch/media/pdf/maybeck_ch1.pdf
http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf
http://www.uno.edu/~SAGES/publications/PractitionersKalman.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
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.

The four-legged heapod took its first steps tonight. As you might guess, it walks with a limp.

Still no photos... Still working on a new web site to host them.

The hexapod is up to four legs now. One of my parrots chewed up the servo leads on three of the servos, so it's going to have to be a quadropod until I replace those.

The leg design I'm using now is built from hand-bent metal rods, and I'm not satisfied with it. Between the inconsistent bending and the interference between the rods and the chassis, I've decided to revise the legs to use straight rods, with another set of laser-cut plastic pieces to get the ends of the rods in the right places. Hard to explain, but I'll post a photo before long.

The control system software is coming reasonably well. Photos to come...

The laser-cut parts arrived from www.pololu.com and the hexapod is taking shape. There were a couple of minor errors in the plans... no show-stoppers, but it's surprisingly hard to use 2D CAD to design flat parts that get assembled in 3D. :-) Only two legs built so far, the rest will probably have to wait until after the holidays. I post some pictures when it starts to look like a robot. :-)

I just wanted to publicly thank www.picobotics.com for putting out a good product and backing it with good support. I bought a PicoPic 20-servo controller and had some trouble getting it to work at first, but Mark answered my emails promptly and got me going.

(The problem? I held the unit upside-down when I configured it like the picture in their manual, so I removed the wrong jumper. Oops.)

After a couple years of not doing much robot-related stuff, I'm getting back into it again...

Hexapod progress: Have received servos, arms, and linkages for the hexapod, and pololu.com will be cutting the chassis pieces this coming week.

Biped progress: Finally came up with a hip joint configuration that I know I can build and I think will work well enough. I really want to do a belt drive system similar to the robot on this page - http://www.ixs.co.jp/index-j.html - but am not convinced I can actually pull it off. The design I have in mind is based on Lynxmotion's brackets though so there's no real fabrication involved. The 3-DOF hip has been one of the more challenging parts of the design, if this really works I may move from design to construction soon.

Software progress: I'm working on a visual programming language to make it easier to develop software for both robots, it's coming along pretty well. It's similar to the control system diagrams in Juice, a bit more sophisticated, completely rewritten, and not (yet?) integrated with the simulator. I can simple draw diagrams and execute them, but am still fine tuning the "syntax" and optimizing the execution code.

With any luck, the software and hexapod will come together in the next two or three weeks and I'll have it walking before christmas. But it's probably optimistic of me to think so. :-)

Are there any english-language forums or mailing lists focused on Robo-One-style contests?

If you know of any, please contact me at delaminator()gmail.com (replace "()" with "@")

Thanks!

Another year has gone by so it's time for my annual robots.net journal entry. :-)

Still no new developments with the simulator, it stabilized back in '02 with the features I set out to create so I haven't had much inspiration or motivation to enhance it. There may be an extension before long to allow other applications to control simulated robots... but I'm not promising. Lots of other irons in the fire right now.

Moments ago I beheaded a Hitec 645MG and 5645MG (essentially the same servo, but the former is analog and the latter digital) and a Futaba 9252 (digital), and hooked them up to some RC gear to see how they would behave in continuous-rotation applications. I have long theorized that digital servos use PID feedback to get their improved holding power, and furthermore the "I" term in the PID equation would render them useless for continuous rotation. I was wrong.

If there were an I term in the feedback equation, I would expect the servo motor to accelerate to full speed if the desired position and actual position were held just slightly apart for a length of time. However, I was able to make the motor run at a low speed indefinitely. The Hitec 5645 seems to have slightly higher proportional feedback than the 645; the Futaba 9252 has substantially higher proportional gain (the 'window' that creates variable speed output is quite narrow by comparison to the others), but there's no evidence of integral feedback.

I surgicially reattached the heads of the aforementined servos and I am happy to report that all three patients recovered fully.

Warning, shamelessly off-topic self-promotion follows:
If you have pet birds, check out www.featherforum.com

Now, back to robot stuff...

Holy smokes, I've been certified as Master. Thanks, everybody.

It's been a whole year since I last posted something here. How did that happen? In the interval I got a new job and a parrot, but nothing much to report on the robot front.

The simulator hasn't changed in any big ways, but there have been a bunch of minor incremental improvements. I uploaded a new version today that might be christened v1.6 if no major bugs turn up.

It isn't GPLed, but you can hack on it anyway if you like - the source is now available through the web site. It will probably be a pain in the butt to build though, and I apologize for that. The build environment needs to be documented... I'd probably tear my hair out for weeks if my hard drive died right now.

8 older entries...

X
Share this page