We will discuss the general issues associated with walking in this section.
Probably the most important discussion point on understanding walking is to bring out the concept that walking requires many different processes to occur essentially simultaneously. It needs to be highlighted that the process of written description cannot really discuss concepts in a manner other than one at a time. We suppose a discussion could be created that had multiple areas running simultaneously, but in the end they would simply be a fragmented collection of individual streams of information mixed all up together with each other, and it would not be the clearest method to discuss walking.
So we will simply go through the set of issues that must all function together in order for walking to occur. This approach, of course, requires that each sub-topic is discussed one at a time, and there could easily be a perception that somehow the order of which topics come first and which come last would have some importance. We wish to highlight at the start that this issue of whether the order has any meaning is actually not an issue. The truth of walking is that all of these considerations must occur together, and interact together, and interactively react together in order for walking to occur. None of the sub-topics is any more important than any of the others. We simply have the topics discussed in a row because this is the most efficient manner to discuss this type of topic using English.
As we consider walking, it is easy to imagine that walking is almost an event where two separate opposing forces must work together with each other. We choose to call one force balance and the other force motion.
The balance issue for the robot is simply the concept that the robot has a requirement that its feet are on the ground, and that (for the most part) nothing except its feet are on the ground. We need to have more detail in this discussion of the robot and its feet on the ground. With this topic of balance, it is helpful to expand the description of the robot into various types of conditions for the robot.
Let’s consider the characteristic of motion of the robot as it applies to balance. At the top, the characteristic of motion is divided into “motion is present” vs “motion is not present”. With respect to the balance issue, in the condition where the robot is not moving, then balance considerations require that the robot is only allowed to have those physical configurations where the force of gravity acting on the configuration does not cause the robot to move.
In the condition where the robot is moving, then balance considerations would require that the robot is held in (or allowed to move into) only those configurations where the effect of the force of gravity on the robot is not allowed to be an effect where overall control of the robot is lost. Another way to describe the balance considerations that apply when the robot is moving is to simply state that the robot (of course) can move, that we cannot allow the needs of balance to halt all motions of the robot, that instead we will give enough authority to the balance controlling sections of the robot’s programming so that the robot is not allowed to get itself into a motion configuration where the available and reasonable reactive motions of the robot are unable to keep the robot in a condition where its feet are on the ground and only its feet are on the ground.
We have used the word “balance” above and it is one of those many words where the word is easy to say, most people have an opinion of what the word means, and few people have really attempted to create a simple unambiguous and math based understanding of just exactly what the word means. It is so important for us to have such a discussion of balance, however, because if we do not, then it absolutely will occur that everyone reading along will have an opinion of what the word and concept means, but we will all have a slightly different concept in our heads, and as we discuss we will all be either faintly or (much more likely) significantly confused about what everyone is really saying. We will come back to balance later and get more detailed working definitions of what balance means.
This discussion of balance is general so far. It is true that very much more detailed and precise discussions of balance are possible, but they require at the beginning that they are directed to a specified structure. As an example, consider the concept of balance as applied to a solid sphere. If the sphere is set down on a level surface (the ground) and let go, then immediately the sphere will exist in a stable configuration with respect to balance. This is to say, since we have defined balance (on the topic of balance for an object that is not moving) as the condition where the object does not move under the influence of gravity, then the sphere is immediately and always balanced. This derives from the property of a sphere that its center of mass and its center of gravity are always present directly above the point of its contact with the ground, because that is the definition of a solid sphere.
The issues of balance become more complex if a solid structure is considered where it does not have complete symmetry with respect to the portions of the structure that are contacting the ground. Consider a cube for example. The first concept that needs to be defined concerns a definition about that area of the structure that is contacting the ground. We will make the convention that this area is called the footprint. The cube can be placed on the ground so that one of its square faces is in contact with the ground. We will note that, by definition, the cube has 6 possible faces, all are squares, and all are exactly the same dimensions. We also note that the center of mass and the center of gravity of the cube exists at the center of the solid material of the cube. If we imagine the cube on the ground with one of its faces on the ground, then the footprint of the cube is a square, and the center of mass of the cube is located above the footprint, and if a vertical line is drawn from the center of mass down to the footprint, then the intersection of this line and the footprint is actually in the exact center of the footprint.
Our definition of balance with respect to an object that is not moving, is related to the vertical line that can be drawn from the center of mass of the object down to the ground on which the object is resting and the place where this vertical line touches the ground with respect to the location on the ground of the footprint of the object. This line will always exist because all solid objects that are not changing in their physical configuration will have a center of mass that can be calculated, and vertical as a direction will always exist, and the outline of the footprint of the object as it contacts the ground will always be understandable. These considerations allow us to always have the ability to determine the location of the center of mass in three dimensional space, connect a line to that center, set the line as vertical, and extend this line toward the ground until it touches the ground. We also will have the ability to determine the outline of the footprint of the object because we are stipulating the shape of the object, and that it is not changing, and the orientation of the object with respect to the ground and with respect to the direction of the force of gravity.
The end result of these considerations is that we can use the calculations of geometry to determine if the vertical line drawn from the center of mass of the object intersects the ground at a location that is inside the boundaries of the footprint of the object. We are stipulating that we are only working with solid objects that have enough internal rigidity that their shape does not change. In fact, they have enough rigidity that their shape does not change independent of what part of them is touching the ground.
With all the considerations above in place, then our definition of balance (in the specific case where the object is not moving) then becomes easy to state. If the vertical line from the center of mass of the object intersects the ground in a location that is inside the footprint of the object, then the object is considered balanced. One condition that will arise from this is that if the object is not moving, and it meets the above criteria for balance, then, if the object is left alone, then it will not move.
Let us apply this to the cube. If the cube is set so one of its faces is on the ground, then that square shape becomes the footprint of the cube. The vertical line from the center of mass of the cube will contact the ground inside the footprint of the cube. The cube is considered balanced.
Consider a different situation. Let us place the cube so that one of its corners is touching the ground. Now at this moment we are working with idealized structures, and this will mean the cube and the ground are considered unmalleable, and the cube has perfect corners. The effect of this is that these corners essentially have no dimension to them, as they are intersections of planes. Since these corners have no meaningful area, then if the corner is placed on the ground, then the footprint of the corner will be essentially zero. Since the area of the footprint is essentially idealized out to be zero, then the vertical line from the center of mass of the cube cannot go through the ground inside the boundaries of the footprint, and therefore, with the stipulation of attempting to balance a perfect cube on one of its corners onto a perfect ground surface, then, under our system the answer will be…. one cannot balance a cube this way.
These discussions demonstrate that very specific analysis can occur considering an object and its balance, but that in order for these discussions to have their detail, it is required that the exact specifics of the shape and weight distribution of the object are known. We will fully describe the exact shape of the robot, but we have not done this yet, and we will hold more detailed discussions of balance until after the exact shape of the robot has been presented.
The topic of motion is relatively easier to set out. We can certainly imagine the robot in a condition where it is not moving, and it is stably balanced. This would simply be a robot that is basically just “standing there”. The topic of motion involves that the robot is going to “go somewhere”. This issue involves that there exists some “upper level” or “higher” instructions that compare where the robot is currently located against where the robot should be, and then create directives to get the robot to move itself toward the desired end location.
The issue of balance does not really require this need for an “upper level” or “higher instructions”. One can easily imagine simply coding into the control set that the robot needs to remain balanced. The coding then compares the current condition of the robot against an inner set of conditions that can be calculated in advance to be inherently balanced. The balancing coding then sends out instructions to move various parts of the robot from their current configuration(s) to one of the balanced configurations essentially by using calculations that follow the principles of iteration. That is the balancing coding would compare the current configuration of the robot (existing as a collection of an exact location is space of the various parts of the robot) against the list of balanced configurations that are possible, and basically running an iteration to see which changes would require the movement of the least number of the parts of the robot over the least amount of distance. The balancing coding would choose these motions as the “solution”, and would send those commands out to the robot’s various parts to make the moves.
The purpose to run out how the balancing coding would function is to demonstrate that the balancing coding has a quality of being independent or running on its own. The solution of the balance issues is related to geometry and the positioning of the overall center of mass or center of gravity of the robot to a location that is inside the footprint of the robot.
The answer to the issue of balance involves math operations on the geometry of the robot and its footprint. These are issues of math, and do not change. We are not required to ask “So what is considered balanced today vs what was balanced yesterday ?”. This type of variability of controlling principles does not occur with balance. We don’t really have to ask anyone or any “upper authority” what the goals are today or any other day in order to calculate the answers to balance issues.
Motion of the robot, on the other hand, has an absolute need for a “higher hand” or “upper level”. It is not possible for the robot or its calculation coding to answer any issues of motion unless there is some type of input concerning where is the place where the robot is supposed to be. Once the two required parameters of motion are met (parameter one: what is the physical location of the robot now ?, parameter two: what is the desired physical location of the robot ?), then calculations can begin to create coding sets to get the robot to move.
The real issues of motion involve setting out sets of rules to determine which of the various parts of the robot will be given commands to move in order to solve the problem of getting the robot from its current location to its desired location. These considerations would include which motions tend to solve the problem that exists, and then determining which individual parts of the robot should be moved and what percentage of the overall motion event should be contributed by which of the parts of the robot.
It is easy to imagine that when the motion portion of the coding area sends out its commands and the motions begin, that these motions will have an immediate effect on the balance of the robot and (if it is desired that the robot remains balanced) then these effects of the motion commands would require that the balance coding area would immediately initiate calculations of coding events and commands from the balance area of the coding part of the robot to act to counter the unbalancing effects of the motion commands.
The design group feels that these two coding areas of the robot (motion vs balance) will mostly create coding instructions that really are different in their effects on the robot. The overall action of walking at the overview level will be a concept that control of the robot is alternated from control (for a short interval) by the motion section of the coding area, alternated with control ( again for a short interval) by the balance section of the coding area.
In essence, the process would be that the motion area gets the robot away from its current balanced state and into a state where the robot is moving toward a new location. This motion event would occur for a short interval, and then the balance area would be given control of the robot so that it (the balance area) could in essence “rescue” the robot from the unbalancing effects of the recent motion instructions, and the balance area could get the robot “all settled down again”. This would then be followed once again by a new set of motion instructions and the whole process would begin again.
The overall intention is that these two processes (balance vs motion) would alternate their control of the robot at intervals of time that are small enough that on the macro level to an observer it would seem that the robot is smoothly and deliberately moving itself from its current location to the desired location, and it is performing this motion in a manner where it is balanced throughout.