Source : http://drewsrobots.blogspot.in/2011/09/little-walking-robot-aka-puppybot.html
- Simplicity. The robot is made from as few parts as possible. Every part that is added is another part that can fail. It is easy to solve a problem by adding more components. It’s harder but far better to do so while also simplifying the design.
- No purely cosmetic parts. As per the previous rule, the robot isn’t allowed any parts which are there purely to make the robot look better. Every part is required to in some way make the robot better in a functional way – more reliable, more durable, easier to control or more versatile, etc.
- Every functional part has to be designed with aesthetics in mind. As I am not letting myself hide the functional parts of the robot behind cosmetic covers, I try to make the visible parts look good. This usually follows from good workmanship, and not taking cheap and easy solutions to little engineering issues like insulation and anchoring components in place.
- No structural joins made with glue. The early versions of the robot were held together with silicone gel. The servos were glued to the sides of battery, the microcontroller board and radio were glued to the top of that, and the feet were glued to the outermost servo on the legs. This was easy but unsatisfactory – the glued joints would fail unpredictably while walking, had to be pried or cut apart to replace servos, and took hours to set after being repaired. Now I make all mechanical joins with easily detachable, reusable fasteners – screws and bolts – while mechanical joints I never need to detach are welded or soldered.
- Ease of repair. Wherever possible, parts can be easily accessed and replaced in the field. I can rebuild the servos – replacing gears and electronics – without even removing them from the robot. I can’t replace the battery or other electrical parts as easily, but I don’t have spares for those anyway.
- Crowd-friendliness. At conventions, the robot can come into direct physical contact with people. Children will poke it, people may pick it up or trip over it. I needed to design it to not injure anyone accidentally. The robot has no sharp points or edges, but uses spheres and large-radius curves wherever possible. I’ve also tried to design the joints to be open and have no tight finger-crushing pinch points, although it’s still possible to catch a finger painfully in some leg positions.
- Smooth and accurate translation of stick position to leg motion. The earliest versions of the robot had no mixing, just straight connections from the radio receiver to the servos. Motion of the sticks were translated directly to motion of the legs. It was very difficult to control, but I found I could get a lot of expressive motion and gesturing with different stick positions. Later I experimented with automated walking cycles. I’d just have to push the joystick in the direction I wanted the robot to move, and it would walk itself that way. This was a lot easier, but a lot less expressive and entertaining. I switched back to direct control over the legs, but I also added custom mixing algorithms to make walking easier. Key to making the robot appear lifelike is accurately translating the motion of the joysticks to the movement of the legs. Getting the right joysticks is important. The joysticks on the old RC airplane radios I started with were lovely – very smooth motion, independently adjustable spring centering on both axis, and mechanically adjustable center point trims. When I decided to move away from the RC airplane radio and use an Xbee serial modem instead, I tried using a pair of Wii Nunchuk controllers. These were nicely compact, fitting in the palms of my hands, but the joysticks were terrible, having very limited range of motion, zero adjustability, and a plastic housing that gave them an octagonal range of motion. Walking with the Wii controllers was a lot jerkier, lacking the fluidity or ability for fine gestures that I had before. This year I took the joysticks out of the old airplane radios and built custom-made controllers around them, which gave me a lot of the old fluid motion back. Also important is that the leg joints themselves can move smoothly over their entire range of motion. This means no bodywork to hang up or impair free motion, and servo wires routed in such a way as to not get caught or pinched as the legs move. The last has been tricky, and a perpetual challenge to the design.
Making of quadruped robot
The robot is built around a piece of 1/8″ thick waterjet-cut steel plate, provided by Big Blue Saw. All the major structural elements – the leg mounts and the outer shell – attach to this center piece. Earlier versions of the robot were completely handmade. Investing in a waterjet-cut frame helped tremendously – everything was actually aligned properly and held securely, which can’t be said for some of the handmade frames.
The power indicator is semi-permanently attached to the front of the frame. The indicator assembly is mostly built up from copper wire, which is wrapped around part of the steel frame at the front and soldered to itself to stay in place.
Physical assembly of the robot actually starts by securing the servo wires to the leg structure.
The servo wires are routed through some steel spring material I found in a scrapyard. I don’t know what this stuff was originally used for, but it makes a decent wire loom, and looks better than just using zip-ties or heat-shrink on the servo leads. The two servo leads from each leg are run through a sleeve that is also slipped over part of that leg’s support structure, and then all four leads from each side run together through a sleeve before plugging into the Pololu SSC board.
The shell of the robot’s main body is made from a three inch copper tank float from McMaster-carr, caved up with my trusty Dremel tool. Each shell half mounts to the main structure at three points, connecting with hand-cut right-angle aluminum blocks. The mounting hole at the front of the frame is occupied by the robot’s main power switch.
Actually getting all of the electrical parts inside the shell is challenging. The battery just barely fits into the available space, and all the other parts need to be placed in just the right locations for everything to fit. I haven’t quite got the wires run properly in this shot.Here I almost have everything in place. You can see the charging jack, attached to the upper half of the shell which is upside-down on the right side here. That will need to be carefully routed around the battery to the back of the robot.
The top half of the shell is attached now. On the back of the shell, above the charging jack, is the connector for an external antenna. I almost never actually run the robot with an external antenna, as even with just the jack the radio range is more than enough for the distances I usually let the robot get from me.
Flipped upside down and with the bottom cover removed, you can see the antenna lead connecting to the Xbee radio, mounted on the Xbee explorer board attached to the Pololu SSC. Once I manage to get the robot assembled, everything is very tightly packed. Other than the power switch, charging jack, and external radio connector, nothing is actually physically mounted. Everything is just wedged together so tightly that nothing can move or get loose. This is not actually the best practice, but there’s really no room for mounting hardware inside the robot, and I take some care not to have anything rubbing against sharp edges or having wires with no slack that can get pulled loose.
Once the central body has been assembled, I can move on to the legs.
Each leg is made up of two servos, a ‘knee’ segment, and an outer leg and foot assembly. Assembly starts by mounting the inner servo, the one which moves each leg forwards and backwards, to the frame. On some of the earlier robots I built I’d cut the mounting tabs off the servos and glued them in place. That was a bad idea for multiple reasons. Not only did the glued joints fail too often and make it hard to maintain the servos, but the direct connection didn’t offer any cushioning. Here I’ve made a point of using good quality rubber isolators and brass ferrules at all four mounting points on each servo. I’m hoping this will help prevent both broken gears and cracked mounting tabs by spreading out the loads and providing some degree of impact cushioning.
That’s the basics of the physical assembly.