Pix for my doggy project

After much screwing around and giving up on the latest webcam I bought for YouTube work, I’ve had to resort to the old fuzzy OV511 webcam that’s been watching the sun rise for the past 4-5 years. :)

OK, the pix are fuzzy, but at least you can tell it’s moving.

The first vid shows the Joinmax kit stretch, test out each leg (originally I was kinda hoping it could lift each leg because the others formed a stable triangle — but no such luck), and then go for a short stroll.

The wire coming out the rear end is an RS232 cable leading off to a ground-level Linux box running the Warplan planner and my own low-level C runtime library (basically good enough to get the characters down the wire at 9600 baud with no hiccoughs).

The 2nd vid shows the (somewhat harder) sitting down and standing up. Any pauses are due to checkpoints I put into the code to ensure servos were not getting stuck (since the microcontroller in the dog has a tendency to turn off for unpredictable periods when overloaded) and the strategy figured out by the planner was actually working.

I also have amusing vids of previous versions of the walking stuff where the doggy only manages to shuffle its feet at high speed, or gets its claws stuck in the medium-pile carpet. :)

2 Comments

  • On 09.05.07 ash said:

    That little guy is cool. I like the proud poses it strikes and the tail waggle as it walks around the place. :)

    The cam makes me feel like I am looking at archival footage from WWII. A secret testing facility for the Nazis superweapon that was was just about to be released when the war was lost (You know, like all of those BBC documentaries that seem to be on the telly all the time in the UK :)

    I am seriously going to have a look at Prolog after seeing what you have done with it. I had a quick Google to see if I could find anything on integrating it with other languages but there didn’t seem to be much out there.

    How are you thinking of converting the output into code? Would there be a basic mapping from output statements to code modules? (if that makes sense at all).

    Also I’ll try to fix up the rich text editor because it’s really annoying me as well… 

  • On 09.05.07 Anonymous said:

    It’s either WWII footage or something out of Dr Who. :)

    The Warplan planner can be post-processed to do anything, including add other conditions that a plan must meet. One post-processor is just an interpreter of the “rotate_shoulder(n,ang)”, “lift_leg(n,ang)” and other pre-defined operations, and another post-processor generates C code that I can compile and does pretty much the same thing as the interpreting back-end.

    I have tools that structure the C code into subroutines (basically, the tool basically looks for “largest repeated substring” and turns it into a procedure, then looks for largest repeated substring again, and again, until the largest substring is too small to bother with — a modest heuristic, but it does a pretty good job with machine generated straight-line code that has lots of repeated low-level sequences). So the output is pretty readable when you rename the subroutines to something reasonable (it normally just calls them “xxNNN”).

    The tail-wagging is cute. Another wrap-around bug makes the amount of oscillation vary, which is neat. :) The tricky part was to get the wagging stopped BEFORE it started to sit down. :)

    Luckily it’s fairly strong plastic, so no visible damage yet.

    OK. I’ll write up something a bit more detailed, and include some of the C code generated by that particular back-end.