Post by Wade Vagle
If you are looking for ideas on how to create highly functional mechanical walkers, Professor Joseph Shigley's 1960 feasibility study for the army is a great resource. It combines engineering rigor and sound reasoning to illuminate many of the challenges, and potential capabilities of mechanical walkers.
To meet the requirements of walking tanks, Shigley sought a mechanism that could:
To meet the rugged terrain and speed requirements of tanks, much of Shigley's study focused on the foot-paths of mechanisms. Below is Shigley's diagram of foot-path types, with type E representing his ideal type for rugged terrain and fast speeds.
When Creating New Mechanisms, Start By Investigating 4-Bar Linkages
In general, the fewer bars in a linkage, the better (lower costs and build-times, less mechanical complication and friction, etc.). So, searching for a mechanical solution based on a 4-bar linkage is usually a wise first step. Shigley advised searching thru Hrones-Nelson's atlas of hundreds of 4-bar linkage coupler curves as a "good first approach to such a problem", which must have been a vital resource for mechanical engineers in the days before personal computers. Below is about the best 4-bar linkage configuration Dr. Shigley found in Hrones-Nelson's atlas, but it doesn't step high enough for rugged terrain.
Shigley described how the step-height could be increased by allowing a joint to slide along a cam groove, but we wanted a mechanism that could be prototyped in LEGO. So, instead we experimented with pairing two 4-bar linkages into a combined 10-bar linkage with front and back legs, such that the rear leg lifted the front foot and vice versa. This allowed us to increase the step-height significantly.
We found that the boat-shape of Strider's foot-path mitigates this problem, since the foot's horizontal speed during the lift and lower phases is similar to the foot-speed of the drive phase. This can be seen in the above GIF of Strider walking across the screen. Notice how the foot's horizontal position doesn't change much during the bottom halves of its lift and lower phases. So, when a foot steps on an obstacle halfway down its lower phase, it will be less likely to skid or cause the robot's forward motion to stop while stepping up onto the obstacle.
The impact of the boat-shape can be exaggerated by reducing the number of legs from 12 to 8, causing the feet to contact the ground well above the bottom drive phase of a 12 leg Strider:
You can see this in action in the below video of an 8-legged Strider walking on rocky terrain. Strider's feet often contact the rocks well above the bottom drive phase, yet the robot's speed remains fairly consistent as it walks across the rocks, and it doesn't come to a stop with each step like our 8-legged Klann walkers do on such terrain. (Actually, it's worse for Klann since it pulls its feet forward before lifting them, which caused its feet to catch on the rocks, jamming the linkage and breaking a few of our gears. If you want to walk Klann robots on such terrain, maybe adding rotating feet would reduce the chances of feet jamming?)
As you can see in the below simulation of one corner of a 12-legged Strider on an obstacle course, the robot's horizontal speed is fairly consistent as the terrain's elevation changes:
In contrast, the feet of robots with triangular foot-paths will be going the wrong way when stepping on/off larger obstacles, or when the terrain's slope changes abruptly. If the feet can't skid, then the change in the terrain's elevation can push the robot backward, as can be seen in the simulation of Klann's Mechanical Spider below. If the rear legs aren't stepping on a similar obstacle at the same moment, then they'll be pushing the robot forward as usual, fighting the front legs and potentially jamming the mechanism.
The front-to-back symmetry of Strider's foot-path results in fairly consistent horizontal speed when the terrain's elevation changes on either side of its foot-path - e.g. when either ascending or descending the stilts in these simulations. In contrast, TrotBot's foot-path is somewhat teardrop-shaped. This causes TrotBot's horizontal speed to drop when encountering large elevation changes on the shorter, inner side of its foot-path. This can be seen in the below simulation when TrotBot steps down to a lower stilt:.
Tank-Scale Functionality on Rugged Terrain?
Strider's high-stepping, boat-shaped foot-path allows it to meet Shigley's rugged terrain requirements fairly well at LEGO-scale. However, tank-scale functionality on rugged terrain is another matter, which would require the robot to be strengthened dramatically due to the lower strength-to-weight-ratios of larger scales. And, increasing strength typically involves adding structure and motor power, which further increases weight, which requires even more structure, etc.
The legs in particular would need to be strengthened, since walking along the side of a hill, or turning the walker tank-style while on rugged terrain would put a tremendous amount of sideways forces on the long legs - if it were even feasible at such large scales. However, adding too much structure and weight to fast-moving legs would create other problems. Instead, perhaps the lower half of the legs could be supported laterally by rails connected to the frame? Rails that created channels that the leg's path should follow? Positioned below the legs' knee and "hamstring" joints to reduce sideways forces on these weak points? Eh......for rugged terrain I think I'll stick to smaller-scale walkers, which also benefit from Shigley's insights.
High Speed Walking
As Shigley described, an ideal walking mechanism for a tank should have the constant horizontal speed of a wheel, while also being able to step over obstacles that block wheels. Strider has relatively constant foot-speed, resulting in an efficient gait, and is the only mechanism that we've tested which can walk with a 1:1 gear ratio without the LEGO motors stalling:
High Speed Vibration
Shigley also described how the vertical and horizontal inertia forces of the mechanism should be balanced for a tank to walk fast without vibrating itself to death. Such vibration isn't much of a problem at LEGO-scales, but it gets worse as scale increases. If you've ever driven a vehicle where the steering wheel shakes due to its wheels being out of balance, and seen how it's corrected by attaching small metal weights to the wheels, then you can probably imagine how much worse the vibration problems could be for a vehicle with large mechanical legs running at high RPMs.
Strider's mechanism would almost certainly need to be modified in order for a large-scale version to walk at high RPMs with limited vibration. If curious, Shigley's study below shows how to mathematically analyze inertia forces, and gives some suggestions for balancing them.
Load Bearing and the Linkage's Bar Count
The more bars a linkage has, the more joints it needs. Each joint adds friction. Furthermore, the joints will always have some play, which can cause long legs with many joints to bend sideways under loads, especially when turning them tank-style. Strider's paired-leg, 10-bar linkage has relatively few bars per leg (5 bars/leg) versus TrotBot's and Strandbeest's 8 bars/leg, and Klann's 6 bars/leg. If implemented well, this implies that Strider's linkage should be able to handle loads relatively well.
Below tests linkage variation #6 with a 25 pound load. The plastic parts bend and shift somewhat under the load, increasing the difficulty of carrying the load, but the LEGO motors didn't stall. Also, we were planning on uploading a video with Strider self-destructing at the end by attempting to turn it while carrying 25 pounds. Some of our other walkers self-destructed while carrying much less weight, so we were a bit surprised that Strider survived with its legs intact. Strider's low bar count per leg does appear to help with carrying heavy loads.
Before performing this test the plastic LEGO axles were replaced with steel axles to handle the torque. Other than that, and the 2 steel support rods, all of the parts are plastic LEGO parts connected by LEGO pins (no glue).
Strider's linkage dimensions can be found here, and other configurations of Strider can be found here where you can also create your own customized Strider linkage with an embedded simulator.
Below is Prof Shigley's feasibility study, a 1960 Popular Science article discussing it, and the Hrones Nelson Atlas of four bar linkage coupler curves.
TrotBot's lower leg pins tend to come out when the legs experience sideways forces, as can happen when turning TrotBot on terrain with a lot of friction (like on thick carpeting).
If the legs aren't snapped back in place, then friction on the pin's lips will wear them down, and the pins will no longer join with a sharp "snap", causing them to pull out more easily. Ideally, joints should be 3 beams wide and symmetrical like the red chain of beams below, which prevents pins from pulling out or bending sideways when bearing weight:
However, using LEGO's parts to sandwich TrotBot's leg joints inline like the red beams above would add a lot of width to the robot. Instead, I sandwiched the leg joints by attaching an additional 3x5 L-shaped beam to the outside of the legs, which is a bit off center but still works well with LEGO's high strength-to-weight ratios. I tested these new attachments by turning TrotBot on some thick carpeting, which would usually cause a few of the leg's pins to pull out. Below the video are some pictures of how I added the parts, and I used these attachments in my TrotBot version 3 builds.
I've got a few other ideas to test over the next few weeks, and then I'll post some new TrotBot instructions with the improvements. UPDATE: Here are the new instructions with a part list.
I rushed my Klann Ver 2 build and didn't build the outer frames in an optimal way:
The only thing keeping this frame's corners at right angles are the two 3x5 L-shaped LEGO parts. If this frame were put under a lot of force, like would happen at a larger scale, the corners would be subjected to torque that could easily cause the rectangle to collapse. To avoid this diagonals need to be added, which will convert the rectangles into triangles and lock the corner's angles.
The challenge with walkers in LEGO is we often need diagonals for rectangles that define the linkage's parameters. In other words, these diagonals often need to be the hypotenuses of right triangles. As you can see below, my Klann's upper support rods are 7 holes above the motor's axle, and the lower support rods are 2 holes below the motor's axle. Neither of these lengths work with a 3-4-5 or 6-8-10 right triangle with LEGO parts for hypotenuses. What can we do using the integer lengths of LEGO's beams?
NOTE: When determining the length of LEGO beams the first hole is always counted as 0! If you don't measure LEGO beam lengths in this way you won't be able to use the Pythagorean theorem to calculate which beams to use as hypotenuses.
Fortunately, with LEGO we don't have to be at precise integer numbers, and we can use hypotenuses that are close enough.
1. Hypotenuses for rectangles of height 7.
Plugging in a 90 degree angle with a side length of 7, plus a few other whole number sides into the Pythagorean theorem yields this near integer number triangle:
I used this triangle for Klann's inner frame where two 9 hole beams create hypotenuses of length 8:
I also used this triangle for TrotBot's frame:
2. Hypotenuses for rectangles of height 9.
We can also connect the top and bottom beams of Klann's frame with a hypotenuse:
Plugging a 90 degree angle with a side length of 9, plus a few other whole number sides into the Pythagorean theorem yields another near integer number triangle:
So, 13 hole LEGO beams can be used to lock Klann's outer frames into triangles, like this:
Here are a few other useful triangles for LEGO frames:
Also, the below 5-3 bent beam can be used as a hypotenuse.
You can create more triangles by lengthening a side of the above parts by attaching a LEGO beam to it.
When two linked bars are nearly parallel their connecting joint can easily flip orientations and cause the linkage to lock. This phenomena is known as a "Dead Point", "Toggle Point", or "Singularity". Here's an example of what Klann Ver 1 experienced, since it used a configuration of the linkage where the "knee" joint came close to being straight :
The below right picture is near the Dead Point, where two bars highlighted in red are nearly parallel:
Due to the force on the foot, the joint can hyper-extend and "flip" as shown below, which causes the linkage to lock::
Like how animal joint hyper-extension is prevented by structures like ligaments and elbow bones, linkage joint hyper-extension can be prevented by adding structure.
Below are some examples of joint "hyper-extension blockers" in LEGO.
The following solution for Klann Ver 1 blocked the joint from flipping with the addition of a 2-hole red LEGO beam:
Dead-Points are also know as "change points", which all Parallelogram linkages have:
As shown below, Strandbeest has (nearly) a parallelogram linkage in the center of the mechanism, and its knee joint can also flip:
Strider's knee joint also has a dead point that needs to be managed. As you can see in the following simulation, Strider's knee joint hyper-extends inward during the weight-bearing phase of the crank's rotation:
Adding weight to Strider robots can cause the knee joint to hyper-extend further, which can either reduce the height of the leg, resulting in a bumpier gait, or cause the joint to flip.
As shown in the image below, Strider Ver 3 uses blue LEGO pins to limit knee hyper-extension, which work well at LEGO-scale weights, but when heavy loads are added to Strider, these blue pins bend and the gait gets bumpier.
In the following experiment we added stronger "hyper-extension blockers" to a Strider robot using Linkage Variation #6, which we tested with a 25 pound load. The blue pins were still used, but an additional part was added to the front of the knee that presses against the shin if the knee hyper-extends too far.
Below is a video of the test. Notice when the weight is initially placed onto Strider, the inner knee on the right side hyper-extends slightly, but not enough to prevent Strider from lumbering under the 25 pound load:
Note: before performing this test, the plastic LEGO axles were replaced with steel axles to handle the torque. Other than that, and the 2 steel support rods, all of the parts are plastic LEGO parts connected by LEGO pins (no glue).
Below shows how we managed Strider Ver 2's dead point:
Below is another possible solution that uses an additional linkage on the inside of the joint that allows the knee joint to bend toward the robot, but prevents bending away from the robot.
Below is another idea for a Strider robot using linkage variation #4:
Walkers with multiple pairs of legs spaced out from the frame subject axles to more stress than what they are typically designed to handle. Furthermore, LEGO's plastic axles twist easily under torque, which can be especially problematic for walkers since such twisting can disrupt a walker's gait by delaying the leg's movement.
How much do LEGO axles twist?
The above experiment was run with LEGO's M-motor 8883, geared down in a 5:1 ratio - the same set up I used for TrotBot.
With some walkers the gait is smooth enough and the weight low enough that axle twisting doesn't harm the gait much. However, with heavy and wide walkers, like the Mindstorms TrotBot I just finished, axle twisting can be a problem. Fortunately, Brick Machine Shop makes stainless steel axles for LEGO:
These steel axles resist twisting and help to keep leg movement closer to the mechanism's designed movement. They also fit more tightly, so cranks won't come off axles while operating your walker - but this also means it is difficult to insert these axles into parts, so we pre-stretch the LEGO holes before putting the parts onto the robot (see below). We also use a Kapla block, coin or needle nose pliers to make it easier to remove parts from the axles.
Pre-Stretching LEGO axle holes:
Then, slide the part up and down the axle a couple times to widen the hole a bit more, using something like a Kapla block, coin, or needle nose pliers to increase your leverage.
We purchased these steel axles from Bricklink store Brick Machine Shop. They used to sell the assortment pack pictured below, but it's not showing on the their store as of 11-7-2018, If a few people request them, maybe they would add them again?
The Mechanical Spider can bear more stress than other walking mechanisms, why?
To handle the stress, we try to use LEGO's cam-shaped parts like in the image above, which have a greater resistance to bending than do linear parts. With 8-legged walkers, the inner and outer legs need to be 180 degrees out of phase, so we simply connect two such cranks together to make the double length cranks required to put the legs 180 degrees out of phase. Note: for large-scale walkers we don't recommend using double-length cranks between the inner and outer legs. Instead, single-length cranks should be used to return to the axle's center of rotation, and this axle section should be supported with diagonal beams to the support rods. Then, another single-length crank is used to put the outer legs 180 degrees out of phase from the inner legs. A simple example of this is shown in the animated GIF at the top of this post, with a yellow supporting beam between the left and right side's cranks.
12-legged walkers have 3 leg-pairs on each side of the frame, and each of these leg-pairs needs to be 120 degrees out of phase with its adjacent leg-pairs. So, adjacent cranks need to be 120 degrees out of phase, like in the simulation of TrotBot below.
The only LEGO part we found with an 120 degree angle was the Technic Rotor 3 Blade Liftarm shown below, which required additional parts to make into cranks of sufficient length, added width to the walker, and the resulting crank was weak.
Can you come up with a better solution?
(spoiler alert - one possible solution is presented further down)
Below is one idea that utilizes triangles to make sturdy, 120 degree cranks with a width of 2 LEGO beams.
You can make an equilateral triangle with 3 Technic beams of the same length.
Add a 2nd equilateral triangle to it to create a 120 degree angle:
To transfer the rotation from one axle to another, LEGO parts with cross-shaped holes are needed. Below is one idea for making 120 degree cranks of length 4. The white and yellow 3-hole beams have a tight fit, but the resulting crank is sturdy.
Below is a video of a 12-legged version of Strider using this crank:
Welcome to DIYWalkers! I'm Ben Vagle, and I've been building mechanical walkers since I was 11 years old, both big and small. I started this blog to share what I've learned, and to collaborate with you. Let's see if we can take walkers to the next level!