Post by Wade Vagle
As we learned from our TrotBot Scaleup attempt, not all robot's legs will walk by pushing or pulling the robot. When we pushed TrotBot Ver 0 the cranks would initially rotate, and then the linkage would freeze and the feet would skid on the pavement. So, we had to manually rotate TrotBot's cranks to make it walk.
The same thing happened when we tried to push our LEGO Klann walkers with the motors disengaged - the feet would skid and the cranks would not rotate. In both cases, this was due to the linkage being at a sort of reverse Dead-Point. As you can see in the image of Klann's linkage below, pushing Klann's feet at this point in the crank's rotation would not cause the crank to rotate. Instead, pushing the robot would only cause the legs to bend and the feet to skid.
However, pushing a Klann robot with the crank in the below position would cause the crank to rotate:
If another pair of legs were added to each side of Klann, as done in the simulation of Strider below, then maybe its legs could be driven by pushing the robot (although one of Klann's feet would still skid at the corner of the foot-path, so it may not work so well - maybe adding feet that could slide or rotate a little would help?)
Here's a test to see how easily this variation of Strider's legs can be driven by an external force - gravity in this case:
Notice how the robot wavers slightly to the left and right as it descends, due to the foot-speed varying a little.
Strider's legs can also be driven by pushing the robot when built in an 8-leg version, although not as efficiently as 12-leg versions:
Posted by Wade Vagle
Like how we appreciate Nike's when running on concrete, large-scale walkers benefit from shock-absorbing feet. By increasing the spring's travel, shock-absorbing feet may also be able to increase the percentage of ground-contact of each leg enough to smooth the gaits of high-stepping walkers like TrotBot and Strider. And of course this would create new problems to be solved!
First, here's the Mondo Spider's feet in action, which provide some shock absorption, and they also slide on the smooth concrete, which helps with turning and with smoothing Klann's speed:
It walks amazingly fluidly considering how Klann's foot-path comes to a stop at each end, and the springs probably smooth the transition between feet somewhat:
Watching the video raises some questions, like:
Implementing Klann's linkage without shock-absorbing feet that slide results in a more halting gait, as can be seen in this version of the Walking Beast:
Next, here are some shock-absorbing feet ideas from Mechanical Walker pioneer, Professor Joseph Shigley:
Feet with such springs extend the feet toward the ground. So, in addition to absorbing shocks, the springs also increase the percentage of ground contact per crank rotation of each leg.
Taken to an extreme, feet with very long springs could theoretically increase an 8-legged Strider's ground-contact of the legs to the point that it always had one foot on the ground at each corner of robot, and do so without causing the robot's height to drop when the feet touching the ground switch. Since both of the feet will be near the ground at the foot transition, two springs will be pushing the robot up, reducing how far the robot falls at foot transitions.
However, a few of the (probably numerous) issues of long-spring feet are:
Maybe the smoothest solution for 12-leg Striders would be to add shock-absorbing pads to the bottom of Strider's feet with toes, like the toes simulated below? Pads with a smooth, hard surface to facilitate sliding while turning like the Mondo Spider's feet? Note: the more refined dimensions of this non-LEGO version of Strider's linkage can be found here.
Strider's linkage variation 7 may also be smoothed by shock-absorbing foot pads, since the bump in it's gait occurs at the foot transition, and this should be easier to test since variation 7 can be built in LEGO (if anyone does test this, please share your result with us!)
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.
As you can see in the following images, Klann's foot-speed slows down significantly at each corner of its foot-path:
This causes robots using the Klann linkage to have a halting gait, which can be a problem on higher-friction terrain at higher speeds. One solution is to add feet that passively rotate as Klann's speed varies, like Strandbeest uses.
As you can in the following video, rotating feet also reduce how much the feet drag during turns, since the inner and outer feet can rotate at different speeds and function somewhat like a differential.
Strandbeest's foot-speed also slows at each corner of its foot-path, but less so than Klann's:
This may be part of the reason that Theo added rotating feet to Strandbeest? ( Jeez that thing is cool!)
Similar to Klann robots, adding rotating feet to LEGO Strandbeests smooths their speed:
TrotBots with 8 legs balance by having 4 feet in contact with the ground, one at each corner of the robot. If one of these feet were removed, then TrotBot would tip, similar to what would happen if you took one wheel off of a car.
For a tripod gait to be balanced, the feet need to be arranged like an equilateral triangle, so we removed the two outer pairs of legs, and added a pair of legs to the center of TrotBot, inside the frame:
Also, we needed to adjust the timing of TrotBot's front and rear feet. As shown in the image below, hexapod robots with tripod gaits transition from one tripod to another as they walk, which requires TrotBot's front and rear feet to be 180 degrees out of phase:
However, orienting TrotBot's front and rear cranks 180 degrees out of phase won't put the feet 180 degrees out of phase, because the location of the two leg's upper frame connections relative to the cranks is in the opposite direction. Looking from the side of the robot, the left leg's upper frame connection is 49.4 degrees to the left, and the right leg's is 49.4 degrees to the right. Here's a diagram of the left leg's frame connection relative to the crank:
So, in order to have the left and right feet touching the ground at the same time the right crank would need to be rotated clockwise by 49.4 degrees x 2, or 98.8 degrees. For the foot contact to be 180 degrees out of phase, the right crank would need to be rotated a further 180 degrees, or 278.8 degrees in total, as shown in the image below.
Here's a simulation of TrotBot's legs with this 278.8 degree phase shift of the right crank:
In this test, 10 pounds were added to TrotBot with 3 versions of feet:
1. feet with heel and toe linkages
2. feet with only heel linkage
3. feet without heels or toes. As can be seen in the video, TrotBots without heels and toes should be built in a 12 leg version to handle heavy loads.
Also, we added 10 pounds to a toe-less TrotBot that used LEGO's plastic axles, but its bumpier gait required more torque than the plastic axles could handle. Those axles twisted so much that TrotBot could barely walk, so we replaced them with steel axles before filming this test. We should have included a clip of the plastic axle version to better show how heavy walkers with bumpy gaits may need LEGO's plastic axles replaced with steel axles to handle the torque.
An alternative to adding heel/toe linkages to TrotBot is to build it in a 12-leg version, which results in a similar increase in foot-contact with the ground. However, it's a wider build, so the longer crank/axle system will twist more if LEGO's plastic axles are used. For this reason we usually replace at least the inner leg's plastic axles with steel axles when building 12-legged walkers.
Recently I’ve been working on getting TrotBot to climb 1/3-scale stairs. The first video below shows TrotBot climbing stairs at the standard 32 degree angle of life-size stairs, both with and without wheelie bars. The second video shows TrotBot attempting steeper 38 degree angle stairs without wheelie bars, and required a bit of expert driving to avoid flipping backwards!
In this process, I found that TrotBot’s center of gravity needed to be lowered to prevent it from flipping backwards, so I lowered the battery box.
In general, vehicles handle better with a lower center of gravity, so I should have mounted the battery box lower in my original instructions.
Instructions to modify TrotBot to lower its battery box:
These instructions require the vertically oriented 7 hole beams that mount the battery box to the frame be replaced by 11 hole beams. Using 11 hole beams allows the battery box to be mounted a half dozen holes lower than it would be otherwise.
Start by removing the battery box and vertical 7 hole beams from the TrotBot frame, and get four 11 hole beams to replace the 7 hole beams. NOTE: it's easier to pull the two sides of TrotBot apart incrementally while rotating each metal support rod between pulls so that the LEGO beams can slide along the rods.
The following photo shows the attachment of two 11 hole beams to the battery box along with the 9 hole beams that attaches to them to the metal support rods to form the hypotenuse of the frame triangle. The 9 hole beams that are used as the hypotenuse will remain on the metal support rods and are only in the pictures to provide context.
Attach the 11 and 9 hole beams together to form the basis for the frame triangle. The 9 hole beams must be mounted on the 5th hole from the top of the 11 hole beam.
Mount these parts onto the battery box. Notice that the 9 hole beams are mounted on the outside of the 11 hole beams, that they are facing away from the battery box.
Repeat this process for the other side of the battery box.
Next mount this structure back into the TrotBot frame.
And that's it, TrotBot with a lowered center of gravity - time to work on TrotBot's next climbing challenge:
I've been thinking about creating an EV3 Strider Ver 2, but to handle the increased weight and width Strider needs to be improved in a few ways, like by increasing the amount of foot-contact it has with the ground.
One way to increase foot-contact is to add four more legs. To check how this would smooth the gait I simulated one side of a 12-legged Strider (Ver 2), and if you watch the video below you'll see Strider bounce whenever the feet touching the ground switch. This bouncing shouldn't be much of a problem at LEGO scale, but it would be at large scale.
While a scaled-up Strider's linkage could be optimized for a smoother gait, it can also be smoothed by adding feet that are shaped to offset the gait's bumpiness. As an example, in the second half of the video I added small triangular feet to the front legs, which act like heels and toes. These feet reduce the gait's bumpiness by about 1/3rd. However, the toes are more likely to catch on obstacles, which can cause the linkage to lock and gears to grind.
The gait of Strider Ver 3 can also be smoothed by adding toes:
You can find a half dozen other variations of Strider's linkage that can be smoothed by adding toes on Strider's Linkage Optimizer page, like this:
Feet with curved bottoms that are shaped to offset the bumpiness of a particular linkage should be even more effective at smoothing gaits - at least when walking on smooth ground.
Here's Strider Ver 3 in a LEGO prototype with the above simulated toes:
And here's the same Strider linkage with 8 legs plus longer toes of length 3 and a short heel of length 1:
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 human joint hyper-extension is prevented by structures like ligaments, linkage joint hyper-extension can be prevented by adding structure. Below are some examples of "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:
As shown below, Strandbeest's 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:
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!