This is basically the first post documenting the design, construction and testing of a robotic leg mechanism that will (someday) be used in a home made robot. I have been messing around with the idea of building a robot using servo motors commonly used in RC boats and airplanes etc... I am using Futaba S3004 servos and fabricating linkages and bearings out of plastic and some RC ball joints. The idea here is that 4 legs can be built using 3 servos in each leg. These could be mounted to a square base with one in each corner and made to walk etc... using a small single board computer like a Basic stamp or something similar.
Before starting on the base or getting a processor board I decided to pick up a few servos and figure out if the legs would even work. Below is what I have been doing in the leg design so this post is kind of a catch up to where I am today. I'll post CAD files of a finished design once I work out all the bugs.
In each leg one servo will lower the leg in what I am calling a Rotate move. Another servo to extend the leg using a linkage mechanism - an Extend move and eventually a third to turn the leg in a Turn move. Because I started this blog a few days after I started constructing the legs this post will lay out some of the previous work. I have no experience with these types of servos so I am learning about their characteristics.
In each leg one servo will lower the leg in what I am calling a Rotate move. Another servo to extend the leg using a linkage mechanism - an Extend move and eventually a third to turn the leg in a Turn move. Because I started this blog a few days after I started constructing the legs this post will lay out some of the previous work. I have no experience with these types of servos so I am learning about their characteristics.
I built one leg prototype without the Turn servo just to test the linkage mechanism. The picture shows the leg lowered about 45deg. with a Rotate move. The extend linkage is out about half way as well. The total travel with these servos is 180deg. In this design the Rotate servo is held stationary and the Extend servo moves with the linkage in a Rotation. In this way the total mass being moved in a Rotation is the leg mechanism and the Extend servo combined. The center of gravity in this design made it a bit lopsided in the Rotate move as the center of gravity moved over the Rotate axis. The Rotate servo oscillated as the leg went 'downhill' and had gravity helping it. It was stable in the other direction.
Last night and this evening I finished assembling the second leg prototype. I tested it and it exhibits some of the same issues as prto #1 did with stability in the Rotational move. In this design I put both the Rotational servo and the Extend servo in the linkage mechanism. In this way both servo motors and the leg linkage move when a Rotational motion is done. This design is balanced when the mechanism is horizontal as shown in the picture. (Prototype 1 is on the left in the picture for comparison, Prototype 2 on the right) This leg too has some stability issues when it is balanced as shown, the Rotation servo seems to be susceptible to oscillations when touched or poked a bit. Also when the Extend servo is operated and the leg is in this position the motion of the Extend movement can initiate the oscillations.
One thought is that the moment of inertia for both leg prototypes is the about the same and the natural resonating frequency of each mechanism is approximately the same (I'm guesstimating anyway). If this frequency is the same as the internal servo feedback loop that could cause the instability. I experimented with a cantilevered pole attached to one servo on the bench and was able to get it to oscillate by changing the pole length until I found the "sweet spot". In this experiment the axis of rotation was vertical and the pole essentially laying flat and rotating horizontally so gravity/balance wasn't an issue. Another option is to drive the leg mechanism in the Rotation move by using a linkage to connect the Rotation servo to the leg rather than mounting the leg directly to the servo. The linkage will take the mass of the leg off the servo head couple it to the servo through the linkage so the reflected inertia of the leg mass back to the servo can be 'set' by changing the linkage arm length. If I build and test the linkage approach I'll post a picture to explain it better.
Before building the legs I built a small servo control box. You can see it in the picture above, it's the silver metal box behind Prototype 2 with three knobs on it. This box controls up to three servos, turning the knob causes the servo to turn by the same amount. (Because the servo motors only turn 180deg the knobs don't turn all the way around) The schematic is a hand scribbled mess but what I built from it works. There are a billion different schematics on the web showing similar circuits but I built mine mostly using parts I had laying around the garage. There is nothing new or interesting about the circuit but I put a copy here in case it stops working and I can't find the paper I scribbled it on!!!
No comments:
Post a Comment