Monday, September 30, 2002

This robot is drunk.

I recently ran across ODE, an open source rigid body dynamics library. In addition to standard joint/hinge constraints (which even I can do), ODE supports collision and contact with friction (which I've never worked through).
It works pretty well, though colliding objects tend to interpenetrate noticeably (even though the docs say it uses "hard" contact constraints), and resting contact for stacked objects isn't very stable. Those are the hard problems, though, so I'm not really complaining.

Over the weekend, Anton and I stayed up into the wee hours of the morning playing around with ODE. One of its test programs has a little wheeled buggy that you can drive around, with a ramp you can drive over. Anton and I spent several hours hacking on that program--adding Anton's extensible scheme interpreter (to make it easy to build new environments), camera tracking, multiple buggies, and better driving controls. It's so much fun playing around with physically based systems. (Anton did most of the coding. I did most of the building and test driving.)

On the same website, we ran across animations from the Ph.D thesis of ODE's author. The thesis involves motion control training, and the animations show simulated robots learning to walk. I imagine we were just 3-in-the-morning-giddy, but Anton and I laughed ourselves sick watching the robots flail and twitch. 'Course, we also laughed ourselves sick whenever the buggy in the test program flipped onto its roof, so I think our sense of humor is suspect.


  1. Hola~
    So... are you going to post the code for the buggy game?

  2. >So... are you going to post the code for the buggy game?
    I'm not sure it's worth posting our modified version at this point--it requires a certain older version of some of Anton's libraries, and would take some effort to make it buildable by others. In any case, most of the effect can be had by downloading ODE and playing with the original buggy demo.

  3. I would be happy to bring it up to date with my latest library version, and put it up on my web page. I'll get it from Tom and do just that, no promises as to when it'll show up though.