Jon's Place

Tuesday, January 30, 2007

More GUI Work

One of the things I realized when I started doing more work with sequences is my sequence tools, although neat, still don't do enough. I strongly believe that advanced tools are the basis of advanced research. Once your tools are powerful enough, doing hard things becomes easy, and you can concentrate on the things you're really trying to accomplish.

Anyways, I've completed the next step in my sequence tools, which you can see here. Additions include the pause/frame buttons, and a scrolling sequence view. Details can be found here.

Friday, January 26, 2007


So, I've been working on my user interface tools a lot lately, and part of that has been building up the concepts that I am going to use to make MicroRaptor take his first steps (literally) towards walking. In the process of building and debugging these tools, I've been building motion sequences to stand, to transition into a first step, and then to start actually walking. One of the things I discovered is that in order to do the kind of walking that I want MicroRaptor to do (large steps, with a 6" stride), the robot needs to be very flexible in terms of how it can move its legs.

Getting MicroRaptor to transition to the first step, where one leg is moved out in front of the other, turned out to be fairly straight forward. What I discovered at that point is that because the legs are so far from each other, you have to do a significant weight shift in order to move the weight back over the front leg so he can lift his rear leg around. With the configuration I had before, I just couldn't make this weight shift happen (see top image).

However, after looking more carefully, I realized I was not using the full range of motion that the foot servos could provide, mainly because the bracket was getting in the way. I flipped the brackets over, and suddenly the whole thing became a lot simpler (see second image). With this setup, the feet can flex forward another ten degrees, which makes all the difference in the world when it comes to shifting weight around...

Thursday, January 25, 2007

First Step

Well, MicroRaptor took his first unassisted step this morning, and that was neat to see. I've been working on tools mostly, which you can see some details of here.

Here's a movie of his first step. Once we get the wifi connection going, and I get the proper chassis built so we can put batteries onboard, I'll start pushing things a little farther, and maybe even get the first walking happening.

Friday, January 19, 2007

Cranking Along

So, lots has been happening - I've had a few busy (late) nights the past week. Right now I'm working on user interfaces, specifically what I call the "Operations" GUI, which is what I use while operating MicroRaptor.

The screenshot below and to the left shows what it looks like right now. In this image, the robot is running a sequence that switches from whatever the current position is to standing. The graphic on the top-left shows the sequence (60 frames x 20 actuators), with the red portion being the current frame in the sequence being executed.

The sliders on the bottom right are all hooked up to the actuators in real time, and I can grab one and slide it left or right to position a servo manually.

I can also switch sets of the servos (basically, body parts) between freewheel mode and controlled mode, which allows me to manually adjust one of the legs (for example) while the other maintains its position, or to manually position the head while standing.

Lots of fun, still tons of work let to do in this department. Next up is the sequence editor, which will allow me to extract a single actuator from a sequence, and edit its movement graphically over the span of the sequence.

Tuesday, January 16, 2007

More Progress

So, I've got the main structure of the robot put together, although some of it will change as I get the chassis machined and the rest of the parts and pieces together.

All in all, its looking pretty good...


Things are progressing well - last night I managed to build two complete legs, and have temporarily attached them together using the CM-5 case, since I don't have the real chassis machined yet. Next up is the neck and tail... This weekend I'll be machining the chassis, probably out of Delrin.

Monday, January 15, 2007

It Came !!!

So, my Bioloid kit showed up today, thanks to the great people at the Brain Engineering Lab. Not much to say at this point, but hopefully I'll get some time within the next few days to start working on it.

MicroRaptor is getting closer...

Wednesday, January 10, 2007

Fun Stuff

Well, things have been progressing well. I've got my new ATmega128 board talking to the Bioloid bus, so I no longer need a jury-rigged robostix. I've also been working on my Squeak code, and have updated my administration GUI to handle multiple AX-12s on the bus, and to give real-time sensor feedback while I'm dragging the servo morph to move the actual servo.

I've been playing a little with some of the servo parameters. If your AX-12s are squealing, you can fix that by upping the "Punch" parameter (last one in the table) to something over 100 - the defaul power-up value is 32. Changing the Compliance Margin values to 2 or 3 helps with that as well.

My Bioloid kit is on the way, so hopefully this weekend I'll be playing with some new toys !

Sunday, January 7, 2007

Working !!!

Wow, sometimes I feel pretty stupid. Turns out I had my solderless breadboard wired incorrectly. I fixed the wiring, and everything started working again, just like magic !!!

I am extremely happy today :-)

AX-12 Woes

Well, I finally got my hands on a CM-5, thanks to the fine folks at CrustCrawler (which, incidentally, is where I got my two AX-12's to start with).

After hooking it up, I found out my AX-12's are perfectly fine. So, next thing I suspected was the UART on the robostix somehow got toasted. My brother made up an echo program that allowed me to test both UARTs, and they are both fine.

However, when I stick my cheapo Radio Shack logic probe on the bus wire, it stays high when I send the AX-12 a command if the AX-12 is plugged into the bus. If there are no servos on the bus, the data clearly gets transmitted on the bus wire, because I see the pulse light on the probe flash a bunch of times.

So, there's something about the mix of robostix and AX-12 that just don't seem to like each other. I'm kind of perplexed right now - I have no idea what could be wrong. I have a brand new ATmega128 board sitting on my desk here, but I don't want to plug it into the bus until I figure out what is going on...