Tuesday, January 25, 2005

Bob's Script Code in Action

script tests go well
Keith Rowell Design

Bob has designed an ingenious scheme for defining the walking motions for Knewt. And tonight's test was superb. You can see a movie of the action here: (test movie)

The scheme uses two files. One "motion" file for describing a series or routine of motions that includes motor position, speed, acceleration, and timing (when to act). The second "script" file calls the motion files, running one file many times or several simultaneously. We believe this configuration will do the job and it certainly passed the test tonight.

We can do the "theoretical" motions while making assumptions, but we won't know the actual servo positions and other values until we can test the stuff on the actual robot. You can see a previous mock up movie of the walking motion done on a lego test stand here: (test stand movie)

I ordered washers and standoffs today. There was a technical difficulty the first time ordered (a week ago) so I ordered today over the phone. It must have taken 30 minute's. Anyway, the washers will act as thrust bearings to relieve any rubbing between the aluminum parts at the bearing joints. And the standoffs are a very typical part used in many places.

The pace is really hectic lately, and a hell of alot of fun!

Saturday, January 22, 2005

Shoulder Tail Photos

Shoulder Tail Installed
Keith Rowell Design
The shoulder tail is the removable part of the shoulder plate that makes it possible to install the bearings in the hip bracket. I mentioned these last week but didn't have photos until now.

More Shoulder and Ankle Parts
Keith Rowell Design

Wide mode settings
Keith Rowell Design
Upon testing the motors in wide mode, I discovered that they can be made to go the entire 180 degrees, but at the extreme ends of the sweep, they are "erratic". I will test this with more motors to verify, but for the moment I'm sending 7000 to -7000 position commands. This gives about 160 degrees of movement instead of 180, but is stable and there is no motor overheating.

Servo Internal Stop
Keith Rowell Design

I was noticing alot of motor overheating while testing and opened a couple to have a look. I can't be sure, but my theory is that misaligned servo stops were restricting full motion and causing a stall current condition.

The stops get misaligned by turning the servo horn by hand. The gearbox has a huge ratio with 5 stages, and turning the gearset from the horn causes the geartrain to jump teeth and then the factory settings are out of alignment. Upon opening some motors, I found that there were even a couple broken teeth.

I think I recall being told not to turn these by hand. But I obviously didn't listen as you won't. I'm looking now for the "I told you so!"

Removing the stop with a dremmel tool
Keith Rowell Design

Instead of trying to find the original factory setting, I decided to remove the mechanical stop entirely. This was very easy with a dremmel tool. I don't think the remaining position sensor (pot) can get "un-set" because it keeps telling the servo to turn until x is reached.

The good news is that "un-dammaged" motors can do the whole 180degrees with no trouble. I will do more testing to ensure that the expanded pulse width isn't doing any damage to the circuitry.

Lower Outrigger Construction
Keith Rowell Design

The outrigger posts are attached at the ankle and the shoulder plate. The threads on the RC ball joints are so small the the screw steel so hard that it's difficult to drill and tap. Instead, I just cut the threaded shaft short and glued it into the top of the socket head with JBweld.

It's very strong. The outrigger at the shoulder intersects the screw at a 90deg angle though. I'm not sure what to do about that one yet. But suspect more JBweld will be involved.

Thursday, January 20, 2005

circuit board locations 04
Keith Rowell Design

Here the head turn motor is light blue, almost the same color as the background. You can see it just under the front of the horizontal board. The thickness of the boards represents space to plug connectors onto the header pins and all the other stuff on board. It's mostly unused space and will not fill the head as much as indicated. The forward vertical board is space holding for the controller board that hasn't been made yet. It's smaller than the mojo board about 2.5x2". We haven't found an off the shelf board this size for a pic.

Circuit Board Placement

circuit board locations 03
Keith Rowell Design

We're looking at how to get all the circuit boards into the bot now. We can always put more on the outside, like on the back. But I had originally inteded for the head to hold them all. There is definitely room for the Mojo board even with the head turn motor sticking up higher than I wanted.

circuit board locations 02
Keith Rowell Design

The width of the boards don't use up all of the space in the middle, but "cut it close" on the corners. Custom boards might be in order. We're looking into it.

PCB Locate

circuit board locations 01
Keith Rowell Design

I'ld like to add the indication of speach by putting a bar graph LED below the nose area. Since the head is to be made of translucent plastic, I pictured having LEDs showing through the skin, but not penetrating through to the outside, except for maybe the eyes. I've still not been able to successfully split the head in two without crashing the model. I'll give that another try this week.

Expanded Mode Mojo Testing

Bob and I met and tested his code for controlling more than 5 motors at once. It worked fine, he's overcome a few steep hurdles to get to this point. One of which was traced back to the compiler environment not handling a 16bit word as expected and causing the script to abort early.

We tested bob's program with normal range (1-2ms) pulses, then tested the mojo board on it's "extened range" (.5-2.5ms) pulses. That corresponds to -8000 to +8000 on the hex code.

In normal mode, there is about 90deg of rotation from the small servos. In extended mode, we had hoped for a full 180deg. But all we witnessed was about 135deg of rotation. Wheather using 6000 or 8000 didn't seem to matter much.

Tonight I revisited the issue and set expanded mode to 8000 then 6000. I noticed that there was hardly any difference at all. Plus the motors were getting hot. We didn't notice this with the larger motors.

I loosened the screws on one of the motors and it's range increased. So I'm suspecting poor alignment and possibly out of alignment internal stops. (I've skipped teeth on some of these motors, while turning them by hand. This is bad.) If the internal stop is out of position, it will be stalling the motor in middle ground positions. I may try cutting the internal stops out entirely on one to see how far the 8000 will go.

Monday, January 17, 2005

Sunday, January 16, 2005

Motor Designations

Motor Designations 5
Keith Rowell Design

I met with Stuart and Bob last thursday and we set some ambitious schedules for the new year.

Bob requested that the motors be designated for callout by the software and this is what the attaced images are showing.

#1 Head Turn
#2 Balance / Weight Shift
#3 Right Leg
#4 Right Foot
#5 Left Leg
#6 Left Foot
#7 Turn / Hip

Stuart has finished the shoulder tail pieces but I have no photos this week. The slip fit hole for the 4/40 screw that goes through this piece was a bit large, and allowed some play. I happend to have the exact right brass tubing and super-glued a short piece into the hole, then tapped it. The brass being softer than the aluminum, deformed nicely as the screw snugged up, making a very tight fit. There is a small ammount of play left in the alignment pins, but I've left them dry for now. I'm sure they will be absolute once the locktite goes on.

There is only the shoulder plate, neckplate, and foot modifications left to make and we've got big plans to do those quickly. I've ordered mylar washers to act as thrust bearings, these should show up this week.

Tuesday, Bob and I are looking into the programming scheme for simultanious, or "parallel" actions that allow multiple motors to work in unison. Bob's scheme loads all possible motions into a single file with headers dilenating single motions like "left foot forward". Then there's an actions file that will call a collection of motions and tell them when to happen.

Motor Designations 4
Keith Rowell Design

Motor Designations 3
Keith Rowell Design

Motor Designations 2
Keith Rowell Design

Motor Designations 1
Keith Rowell Design