During the last year I’ve been researching designs for robot locomotion platforms that can ascend steps while transporting a payload. This is a much harder problem to solve than originally expected. The challenge is that there are competing requirements. In order to easily navigate hallways within a typical home environment a robot can’t be wider or longer than approximately 2 feet (assuming that the robot can turn on its central axis). Anything wider than this and the robot can’t fit through a door; anything longer and the robot can’t navigate around box corners such as that found in a room entrance. However, constraining a robot to 2’w x 2’l makes for a relatively narrow base to contain the center of gravity while ascending and descending stairs, especially while carrying a payload that might make the robot tipsy.
Before investigating possible solutions we need to first consider the problem space. What types of stairs does the robot need to traverse? How tall are the steps? How long are they spaced? Thankfully home building codes constrain the problem space for us. According to the building codes listed on Wikipedia stairs within a residential environment have a maximum height of 8.25″ and a minimum length of 9″. Given these constraints we know that the slope is limited to no more than 45 degrees. Also the “nose” on a stair step can’t be longer than 1.25″.
Deciding on a Style of Locomotion
Although stairs are the tough issue to solve, the first order of business is to select the means of locomotion. Should the robot have legs, treads, or wheels? It seems that treads can be eliminated early on as they are fairly destructive within a home environment. Tracked robots (e.g., tanks) turn by moving one tread and holding the other stationary. The net result is that the tank “skids” on its treads. I can imagine my wife being pretty unhappy seeing tank skid marks on a clean floor. 🙂
So which is better for a home robot – legs or wheels? Legs (like a spider) have the advantage of accommodating a wide variety of environments and the ability to easily step over obstacles. However they have the disadvantage of being more complex to design and operate – especially when carrying a heavy load up stairs.
Even with this in mind I seriously considered legs for some time. At first I considered a robot with 6 legs. Although 6 legs have the benefit of being the easiest to operate (three legs maintain stability while the other three legs search for new footing), I thought the number of motors required would be quite expensive not to mention heavy. Remember that the robot has to carry 50 lbs up stairs. Assuming each leg has 3 degrees of freedom, 6 legs would require 18 heavy-duty motors!
So what happens if we reduce the number of legs to 4 – three for stability while one searches for new footing? The issue here is that the robot would require significant sensors to determine the robot’s changing center of balance, and complex programming for shifting the robot’s weight as it ascends the stairs.
Legs also have other downsides – within a flat environment they are considerably slower than wheels to get from one place to another. Also I believe most people would find a spider robot rather “icky” to be around all day long. Thus given these and other issues I’ve decided to design the robot’s locomotion platform using wheels.
Designing a Wheeled Locomotion Platform
Once the decision to use wheels has been made the question then becomes: what wheel arrangement should be used? A common wheel arrangement is what’s known as a “differential drive” system. The robot has two active driver wheels on the robot’s sides and a third passive castor in back. The robot turns by moving one wheel more than the other and goes straight by moving both wheels the same amount. However the downside of a differential drive system is that it offers a relatively small area to contain the robot’s center of gravity. The wheels and castor form a rather small triangle in which the center of gravity must reside in order for the robot to remain upright.
Since the main goal of the robot is to remain stable while carrying heavy loads, I’ve opted instead for a four-wheel drive system similar to a car. However in this case each wheel on the robot is independently driven and steered. That way the robot can turn within its own dimensions by first turning each wheel 45 degrees left and right and then rotating wheels diagonal from each other in opposite directions. It seems to me that a design of this type will work well for most single-story homes.
Given the decision to build a wheeled locomotion platform the next design problem to solve is the method for raising the wheels from step-to-step. The remainder of this blog entry lists some various design ideas.
First Design Attempt: “Circular Leapfrog”
The first step in ascending stairs is to ascend the first step (sorry for the bad pun). Basically the robot has to detect that a step is present, move the front wheels up to the top of the first step, and then move forward slightly. The wheels “leap frog” over each other to keep the robot upright while the other wheel in the group ascends the step. The robot then repeats this sequence for each step until no more steps remain. What makes this difficult is to determine the method for moving the front wheels up a step while keeping the robot’s balance.
This design approach considers using a bicycle frame approach as “outriggers” for the robot’s wheels. Parallel cranks are used to keep the wheels perpendicular to the robot.
After drawing this approach it appears too top-heavy for carrying loads. In addition the steps and the wheels can be out of sync such that the top wheel is ascending a step while the rear wheel resides on a previous step. Not only would the robot statically exceed 45 degree lean but the dynamics of the motion would easily tip over the robot.
Second Attempt: Serrated Lifter
While surfing the web I ran across a YouTube video that gave me a idea for a new approach for climbing stairs. In the YouTube video (which I can’t find any longer) a robot was shown lifting heavy loads by wedging itself between the load and the floor. The robot had two triangular-shaped plates placed side-by-side. Each plate had the hypotenuse serrated into small squares. The plates were motorized so that they both rotated around a common Z axis in a circular motion. The net effect is that as the plates rotated the robot was able to progressively wedge itself between the load and the ground.
As I watched the video an idea came to me – what if the two plates could ratchet the robot up a step? With that thought in mind I created the drawing on the left (click picture for full-size image).
While the robot is on level group the motorized wheels move the robot normally. Only when the robot detects a step does the “plate” motor start rotating the plates in an elliptical motion. As the plates rotate around each other one square catches the step edge, then the next square, the next, and so on until the wheel is finally deposited on top of the step.
This design offers one advantage not found in the previous designs – the robot ascends the steps in a very controlled and smooth motion. There is no opportunity for the robot to slip since the plates are firmly pressed against the step at all times. Another advantage is that the mechanism is fairly simple to build and operate. With that said there is a downside that I don’t care for – the robot moves around the home with jagged “saws” protruding from the front of the robot. Although there is nothing wrong functionally with the design, from an aesthetic point of view it seems rather intimidating. I can see mothers of crawling toddlers being nervous when the robot starts approaching their children with the “saws” raised. With that in mind I decided to continue looking for another design.
Third Attempt: Tri-Wheels
After considering the mechanical complexity of the other approaches I started wondering if tri-wheel designs should be considered such as the one shown in this YouTube video. I then created the drawing on the right to study the kinematics involved (click picture for full-size image).
The drawing illustrates the basic concept of a tri-wheel “leg” ascending stairs. While the robot is traversing a flat surface it balances on a single wheel. When the robot detects that it has to ascend stairs (how the robot detects stairs is still an open issue) the three wheels are locked so that they no longer rotate. Instead the motor rotates the axle itself so that all three wheels rotate as a single unit around the axle.
As I studied the drawing I started feeling encouraged – it seems that this is indeed a simpler mechanism to build. It also has the advantage of being able to use larger wheels which will help the robot roll over obstacles if the terrain becomes rough.
However a problem arose when I considered using tri-wheels for both the front and rear axles as shown in the adjacent diagram.
The problem is that two tri-wheel assemblies are needed, one for the front axle and one for the rear, resulting in a robot whose overall size (approx 4 feet) exceeds the robot’s size constraints (2 feet). Although a tri-wheel approach may let the robot ascend stairs easily it doesn’t seem suitable for situations where the robot has to navigate within small confines (e.g., narrow hallway corners). Given this realization I decided to continue looking for other alternatives.
Final Solution – Hybrid Wheel/Track Combination
At this point I started thinking that perhaps I am making the problem more complex than it needs to be. Basically all I want to do is to steady the robot while moving its wheels up the height of a step. The following YouTube video seems to provide a simple solution. This mechanism basically reaches over the top of the step and lifts the wheels to the same height.
The basic idea is to add something like a tank tread to the wheel’s legs. It’s not a normal tank tread however in that it only has two track shoes with extended arms. When the leg approaches the step the track starts rotating. At some point the track shoe arm catches the edge of the step and lifts the robot. As the arm continues around the track the robot will start to move up and over the arm to deposit the wheel on the step. Located beside the track arms are guides steadying the arm from collapsing due to side-to-side movement.
“Slinky” Chassis Design
The final problem to solve is how to coordinate the front and rear wheels so that each axle can operate independently of the other. This allows the front wheels to ascend a step while the rear wheels remain steady and vice-versa. Without a variable geometry chassis the rear wheels would alternatively drag and then push the front wheels as they both climbed the steps. By way of analogy it’s like two people carrying a heavy load up a flight of stairs. The front person has to let the load “give” a bit as the rear person ascends a step.
One idea I had for a possible solution is to use an extending slider for the robot’s chassis. The robot has two primary configurations – closed while navigating around the house and expanded (like a slinky) while climbing stairs. The following two diagrams illustrate both configurations (click a picture to show a full-size image):
Expanded (aka Slinky) Configuration
The sliding chassis also provides another benefit. Remember that the robot should be no longer than 2’ to operate well within a home environment. However 2’ is somewhat short for ascending stairs. By programming the rear wheels to wait awhile as the front wheels ascend the steps the robot can slowly increase its overall length, thereby significantly improving stability. When the robot reaches the top step the operation is reversed – the front wheels stop until the rear wheels catch up. At this point the robot’s length returns to its normal 2’ length.
In summary I believe this design is the best one I can think of for both navigating a home environment and ascending/descending stairs. In later blog entries I will start to design the leg mechanism in greater detail. As always comments are welcome as are ideas for simplifications. Many design issues still remain; I expect I’ll need some fine tuning to work out remaining details during construction.