BWM - Practice

Methodology

We divide our robot into three primary subsystems:

  • Walking Mechanism
  • Drive System
  • Balancing System

Each of these subsystems progressed through multiple iterations before reaching full functionality and acceptable performance.

After reviewing several concepts, we selected a four-bar mechanism as the simplest and most reliable method of producing a useful walking motion. Our mechanism design produced a semi-circle output, almost identical to the Chebyshev Lamda Mechanism, and our goal was to connect two of these mechanisms together to move a single leg and foot, with another two mechanisms moving a second leg offset 180º from the first.

Surmounting our walking mechanism we planned to build a moving counterweight that keeps the robot's center of mass above its shifting support polygon. We iterated through several different concepts of how to achieve this reliably.

We planned to produce as many parts as possible using 3D printing, as this would give us good strength and durability and outstanding manufacturing flexibility. Laser cut acrylic would be far too brittle for a mobile robot and delrin or aluminum would be too heavy for a small mobile robot and too slow and expensive to machine considering the multiple iterations we expected to produce. 3D printed PLA allowed us to rapidly manufacture and iteratively improve our many detailed parts at negligible cost.

Purchased parts included a large number of ball bearings for all moving joints, steel shafts for axial power transmission and structural strength, timing belts for radial power transmission, and motors for motion generation.

Parts were assembled primarily with press-fits for bearings and shafts, with loose-fitting parts secured using super glue.

Walking Mechanism

We quickly produced a small-scale test mechanism to test the feasibility of our concept selection. We performed motion studies of this test mechanism in Solidworks and found that it produced the desired motion with no expected problems. We printed the mechanism, with two four-bar mechanisms connected to one leg, and found that it worked as expected.

After finding no problems with the test mechanism, we designed a full-sized machine. We printed one mechanism designed for 5mm steel shafts and ball bearings, with the goal of perfecting our mechanism before designing the rest of the machine. We found that two bearings on each end of each joint provided adequate stiffness for absorbing radial torques and that 1mm-thick spacers in between bars provided adequate clearance to prevent undesired contact between moving parts. We identified several points of potential interference between moving parts and reshaped parts as needed.

The robot body, or the mechanism's "ground" bar, was the largest unconstrained variable. It was shaped to avoid a large number of moving parts and to support and align all the components of the mechanism, drive system, and counterweight with high stiffness. At least half a dozen iterations of the body were created.

After the complete walking mechanism was printed and assembled, it was found that structural stiffness of the body and four-bar mechanisms was more than adequate, but that the stiffness of the legs was unacceptably low. When weight was placed on top of the body while one leg was lifted off the ground, the legs would bend and it was expected that the robot would not be able to maintain balance. To correct this, braces were added to the outside of the legs.

Overall, the walking mechanism was a very simple and straight-forward system to produce. Lessons learned from the previous slider-crank mechanism, primarily using multiple bearings per joint-side to increase radial torsional stiffness, were integrated in the first design and no additional significant problems were encountered. After completing assembly of the walking mechanism, body structure, and leg structure, we moved on to design and fabrication of the drive system.

Drive System

Because our robot is mobile and must support and move its own weight, we needed to reduce mass wherever possible. We initially attempted to use a motor and gearbox available from a previous project. It was very small, very lightweight, and free. It used an inexpensive brushed DC motor powered by a AA-battery pack to drive a double-worm-gear reduction. Unfortunately we attached the drive system to our walking mechanism and found that it was not powerful enough to drive the legs, much less the counterweight, even at low speed. A much more powerful drive system was needed.

We found a larger brushed DC motor that was rated for significantly higher power, 3D printed a double-worm-gear gearbox for it, and connected this to the walking mechanism. We found that it was powerful enough to move the legs, but just barely. It would not be powerful enough to move the counterweight as well.

We were provided with a much larger and more powerful brushed DC motor, but had avoided using it up to this point due to its size and weight. In order to minimize both of these parameters, we removed the drive's encoder, associated electronics, and all-metal gearbox. We then printed a set of reduction gears using spur gears from our gear generator to decrease speed and increase torque at the gearbox output. After several quick iterations, we found that a reduction of 36.75:1 (8:24, 8:28, 8:28) produced approximately 15 RPM with more than adequate torque to drive our entire robot. 15 RPM results in one step every ~2 seconds, which is ideal for our robot with its sliding counterweight.

Our final gearbox was then connected to the robot body by designing a C-clamp into the body itself. This not only connected the motor securely, but also acted as a tension adjuster for the motor's timing belt.

On the subject of timing belts, we initially attempted to transmit rotary power using round-belt pulleys and dacron string. However, we quickly found that the low-friction dacron string would not grip the smooth, printed PLA surface. Wrapping the string around the pulleys multiple times created more problems than it solved and tying the string into loops by hand did not allow us to adjust string tension easily, precisely, or repeatably. To correct these problems, we replaced our string and round-belt pulleys with timing belts and toothed pulleys. We then printed simple screw-driven tensioners and selected belt sizes by drawing their arrangement in Solidworks. Timing belts worked very well and produced no unexpected problems. One belt transmits power from motor/gearbox to walking mechanism crankshaft and two more transmit from crankshaft to counterweight.

Counterweight System

The counterweight was the most difficult subsystem to produce. It needed to meet several strict requirements, including a large range of speed of movement, high stiffness, and high strength. We developed and tested three different counterweight designs, each one addressing problems with the previous design.

Our first design was a four-bar mechanism intended to carry the motor's battery pack as a counterweight. The problems with this concept were that the battery pack did not weigh enough to balance the robot and that traditional bar mechanisms are smooth and continuous, whereas our counterweight needed movement that was sharp and discontinuous. Ideally, our counterweight would sit motionless above the grounded foot, then move quickly to the other foot during the fraction of a second that both feet were in contact with the ground. We produced a four-bar mechanism that covered the desired range of motion but could not produce the desired time trajectory. Also it did not have the structural strength and stiffness required to hold a sufficiently sized counterweight mass.

Our second design replaced a continuous bar linkage with a discontinuous contact-driven mechanism. We created a see-saw that would rotate with the robot's legs and would collide with tabs placed on top of the body that would cause the see-saw to flip at desired times, shifting a sliding counterweight from one foot to the other along a slide bearing. Instead of using our battery pack as weight, we machined a cylindrical piece of carbon steel to fit over the slide bearing. The primary problem with this design was its complexity and its partially-constrained nature. In order to fully constrain the 3DOF counterweight and prevent it from moving in uncontrolled ways, we would have to construct very complex high-DOF joints to connect it to the legs. If we allowed it to move partially constrained, the robot would not be able to balance reliably.

Our third and final design combined the strengths and eliminated the problems of the first and second. We created a rotating cylinder with a sliding counterweight inside that combined the fully-constrained nature of the four-bar with the discontinuous nature of the see-saw. Our weight slides along an angled shaft that rotates synchronously with the walking mechanism's crankshaft, shifting the weight quickly from the lifting foot to the landing foot precisely during the short double support phase. Timing is also easily and precisely adjustable by simply loosening and moving the timing belt.

Purchased Parts

For our final machine, we purchased:

PartSourceQuantity
3mm steel shaftgeneric~50mm
5mm steel shaftgeneric~700mm
5mm precision ground steel shaftgeneric200mm
3mm x 6mm x 2.5mm ball bearinggeneric6 pieces
5mm x 9mm x 3mm ball bearinggeneric~50 pieces
M3 x 20mm cap screwgeneric2 pieces
M3 x 30mm cap screw, fully threadedgeneric1 piece
2in OD cylindrical steel stockgeneric~1in
5mm x 7mm x 8mm slide bearingMcMaster2 pieces
91MXL012 1/8in timing beltMcMaster2 pieces
140MXL012 1/8in timing beltMcMaster1 piece
DC motorPololu1 piece
AA battery packAmazon1 piece

Next Section: Results