[DOC Format]   [PDF Format]

 

Human Walking Control

 

Peng Zhao

 

Department of Computer Science

University of British Columbia

 

Abstract:

How to control a creature’s muscles in order to obtain a desired motion is a great challenge to computer animation. The goal of my project is to synthesize a controller for dynamical simulation of walking. Starting from some very simple human motions, such as quiet standing, I implemented the control strategies that can keep balance for a 3D human model. These strategies were finally used on the controlling of complicated motions, such as crouching and walking.

 

1 Introduction

Physics-based system simulation can simplify the work for generating the realistic motions of passive objects, such as sliding blocks or bouncing balls. However, for active objects like humans and animals, we must also solve the control mechanism to direct their movements. The control strategies behind the locomotion can help us understand how humans and animals take corrective actions during motions. These control solutions are also very useful in the controlling system of humanoid robotics.

Walking is a seemingly simple behavior for human. The dynamics of walking is, however, more difficult than that of running and jumping. The inherent instability of walking makes it one of the hardest motions to model, especially when the conditions are unpredictable. The ideal controller of walking should be able to walk at various speeds, turn and walk across variable terrain.

In this project, I started from keeping the balance of quiet standing, which is a very simple human motion. I found the hip strategies and ankle strategies in quiet stance can also be used in many complicated motions, such as crouching and bending. Finally, I implemented a controller that can keep balance when walking in the same place. Some more work needs to be done to control the motion of walking forward.

 

2 Related Works

Much research has been done for controlling the motion of creatures. Some of them focus on constructing controllers that can produce periodic motions. Van de Panne proposed a control synthesis technique, which is called “Pose Control Graph” (PCG) [6], to generate periodic controllers. Since it is relatively easy to determine whether a given controller can produce a desired motion, the major idea of PCG algorithm is generate-and-test optimization process. The initial poses in the PCG are generated randomly and evaluated by some optimization metric. The good poses are then tuned to get a local optimization.

The PCG algorithm provides only the basic open-loop control for a motion, which relies on the passive stability of motions to keep balance. But the instability of walking makes it unable to be controlled well by this kind of controller. In addition, for the complicated model (e.g. 37 DOFs Human), the search space is too large for the generate-and-test process to get a good result. So the “Limit Cycle” (LC) control technique adds the necessary control to produce a stable limit cycle for walking [3]. The controlled figure can walk at a selected speed and following a given path.

Another approach is to use a “Sensor Actuator Network” (SAN) for producing the locomotion control [5]. The SAN is a non-linear network of weighted connections between sensors and actuators. Like the PCG algorithm, SAN can generate the controllers automatically for a given model. Since it combines the information of sensors to the controller, the produced controller is somewhat more stable. But it still has limitations on the complexity of model and motion.

 

3 Simulation

Before synthesizing the controller, a mechanical model and a simulator are required. Since the goal of this project is to control human walking, I used a 37 DOFs human model and a 3D simulator to implement the control.

 

3.1 Human Model

Figure 1 illustrates a 3D human model with 16 joints and 37 degrees of freedom. Six of DOFs correspond to the global translation and rotation, and the other thirty-one DOFs correspond to the rotational axes of each joint. The physical properties of this model, such as mass and inertia, are consistent with anthropometrical data for an adult male. Table 1 shows the physical properties of each link and table 2 shows the DOFs of each joint. The model and data come from the DANCE simulator, which will be described in the next section.

 

 

Figure 1: 3D human model

 

Link

Position**

Mass (kg)

COM***

Inertia (kg·m^2)

Hip

(0, 1.131, 0.0052)

16.61

(0, 0.1206, 0.05)

0.18, 0.16, 0.23

Trunk

(0, 0.1206, 0.05)

29.27

(0, -0.14625, 0.0351)

0.63, 0.32, 0.73

Neck

(0, 0.24635, -0.0013)

1.0

(0, -0.0442, -0.0065)

0.006, 0.001, 0.006

Head

(0, 0.0442, 0.0065)

5.89

(0, -0.078, -0.0312)

0.033, 0.023, 0.03

Upper arm

(0.1768, 0.18915, 0.0013)

2.79

(-0.1326, 0, -0.0013)

0.005, 0.025, 0.025

Lower arm

(0.1326, 0, 0.0013)

1.21

(-0.1378, -0.0039, 0)

0.0012, 0.0054, 0.005

Hand

(0.1378, 0.0039, 0)

0.55

(-0.065, 0, 0)

0.0005, 0.002, 0.0016

Thigh

(0.1118, -0.0406, 0.0058)

8.35

(0.0169, 0.2379,-0.0143)

0.16, 0.025, 0.15

Shin

(-0.0169, -0.2379, 0.0143)

4.16

(0.0078, 0.2158, 0.0039)

0.056, 0.007, 0.055

Foot*

(-0.0078,-0.2158, -0.0039)

1.34

(0, 0.0442, -0.039)

0.0075, 0.007, 0.0018

 

Note: ***Center of Mass (COM) is measured from the COM to joint. **Position is measured from the COM of parent link to the joint. The hip’s parent link is ground. *This table lists only the information of left arm, hand, leg and foot. The properties of right part can be obtained by the symmetry.

 

Table 1: physical properties

 

Joint

DOFs

Axis

Joint

DOFs

Axis

Joint

DOFs

Axis

Head

1

x

Elbow

2

y, x

Hip

3

x, z, y

Neck

3

x, z, y

Wrist

2

z, y

Knee

1

x

Shoulder

2

z, y

Waist

3

x, z, y

Ankle

2

x, z

 

Table 2: rotational degrees of freedom

 

3.2 Simulator

The simulator I used for simulating the system dynamics is Dynamic Animation and Control Environment (DANCE) [9]. It is an object-oriented simulation system for physics-based character animation. DANCE provides four base classes, Systems, Simulators, Actuators and Geometries for the simulation and rendering. All of them are portable and extensible.

For the purpose of my project, I added another class into DANCE for the control strategy. I also expanded the classes to get some sensor information such as whether the foot touches the ground. 

 

4 Approaches

The inherent instability of walking makes it difficult to keep balance, especially for the 3D case. Using only the open-loop control is not sufficient. Figure 2 shows the walking control produced by the generate-and-test method of [6]. The model can only take a few steps and then falls down. So I started from keeping the balance of quiet standing, trying to find the control strategies for both the lateral stability and frontal stability. At last I used these strategies to keep balance in some complicated motions, such as bending, crouching and walking.

 

Video (599K)

Video (648K)

 

Figure 2: open-loop control of walking

 

 

4.1 Proportional-derivative (PD) controllers

Most of my controllers are based on the PCG control. The joint angles are driven toward the desired angles by joint actuator torques calculated by using PD controllers:

torque = Kp * (angle_desired – angle_current) – Kd * angle_velocity

Where Kp and Kd are the constants of spring and damper. The value of Kp and Kd specify the strength of the muscle attached to each joint. Obviously, they should be strong enough to raise the whole body and they should not be too strong that only one ankle can make the body fly. To simplify the control work, it is better to use a set of reasonable muscle constants. Table 3 shows the spring and damper constants I used in my project. Most of the values are gathered from [8].

 

Joint

Axis

Kp

Kd

Joint

Axis

Kp

Kd

Head

x

100

10

Waist

x

2000

100

Neck

x

100

10

 

z

2000

100

 

z

100

10

 

y

2000

100

 

y

100

10

Hip

x

1275

60

Shoulder

z

100

10

 

z

900

30

 

y

100

10

 

y

1275

60

Elbow

y

50

5

Knee

x

1275

60

 

x

50

5

Ankle

x

1275

60

Wrist

z

20

2

 

z

1275

60

 

y

20

2

 

 

 

 

 

Table 3: Joint strength parameters

 

4.2 Quiet Standing

Keeping the balance in quiet standing seems the simplest control of human. In fact, however, it is a complex biomechanical control, which depends on many factors, such as the distance between feet and the placement of feet. In my project, I focused on keeping balance of regular stance. That is, two feet are placed left and right with some distance.

The control strategies during quiet stance are generally divided into hip strategies and ankle strategies. My controllers used the ankle strategies for the frontal stability and both the hip strategies and ankle strategies for the lateral stability.

 

4.2.1 Frontal Stability

As stated in [7], keeping balance in sagittal plane can be modeled as an inverted pendulum about the ankle joint (Figure 3). The torque due to the gravity is

Mg * h * sin(θ)  ≈ Mg * h * θ

And the torque due to the spring muscle at the ankle is Kp * θ. As long as the stiffness, Kp, is larger than (Mg * h), the whole body will oscillate around the equilibrium position. Plus some damping in the ankle joint torque, the body will eventually stop near the equilibrium position. The maximum torque of ankle is (Mg * L), where L is the length from the end point of foot to the ankle joint. Otherwise the whole body will be lifted up. So the body cannot lean too much for the ankles to keep balance. Since the length of front foot is larger than the rear foot, my balance controller uses an angle of 0.03 radians as the equilibrium position (i.e. keeping the body lean forward a little).

 

 

Figure 3: inverted pendulum model in the sagittal plane

 

4.2.2 Lateral Stability

Keeping the lateral stability is, surprisingly enough, harder than that of frontal stability. The reason is that the width of foot is much smaller than the length of foot. Using only the ankle can only tolerate very small perturbations. For this point, the hip joints must be used to help keep balance.

The hip abductor/adductor moment can move the Center Of Pressure (COP) between two feet, which will draw the COM back to the equilibrium position. Actually, during the quiet stance, the lateral stability is totally dominated by this hip load/unload strategy. Figure 4 shows the model in the frontal plane. The equilibrium position is just the middle of two feet.

 

 

Figure 4: model in frontal plane

 

4.3 Bending & Crouching

The balance strategies during quiet stance can also be used in some motions, such as bending and crouching. The controllers of joints other than hip and ankle are generated by PCG algorithm. The torques on the hip and ankle are calculated by the strategies mentioned above. Figure 5 shows the screen shots of these two motions.

 

Front view of bending

Video (608K)

Side view of bending

Video (602K)

 

Front view of crouching

Video (643K)

Side view of crouching

Video (639K)

 

Figure 5: screen shots of bending & crouching

 

4.4 Walking

Walking is much harder to control than other motions. So I only implemented a controller that can walk in the same place. Some similar ideas can be used to synthesize a controller that make the model walk forward.

The difficulties of controlling walking lie in its inherent instability. When one foot is raised from the ground, the stability in sagittal plane can be balanced by ankle strategies, but the lateral stability is hard to keep using only the stance leg. For example, raising the left foot will cause the whole body falling to the left, and the right leg can do little to recover from this falling. My strategy of walking control is,

In my project, moving the COM towards the stance foot is simply implemented by temporarily setting the equilibrium position near the target foot and using the same hip strategy to drive the COM. The foot raising and touching down are controlled by PCG controller. And sensor information is used to check whether the swing foot touches the ground, then the whole system enters the phase of raising another foot. Figure 6 shows the screen shot of walking. The parameters of this controller are tuned by hand, although they can be generated automatically by some stochastic search method.

 

 

Figure 6: screen shot of walking

Video (2.92M)

 

5 Conclusion

The control of some seemingly simple motions such as walking is surprisingly difficult. The strategies behind the human’s behaviors for keeping balance are complex. In this project, I implemented the ankle strategies and hip strategies during quiet stance. Those strategies are suitable in controlling the balance of some other motions, such as bending, crouching and walking.

Needless to say, there are some limitations in my controllers. It does not provide a general solution of walking in different conditions, such as various speeds and across variable terrain. The parameters in the controllers are mainly tuned manually. It is better that these parameters can be generated by some automatically search method.

 

6 Acknowledgements

I wish to thank Michiel van de Panne for his help and advices in this project.

 

References

[1] Thomas L. Dean and Michael P. Wellman. Planning and Control. Morgan Kaufmann, San Mateo, California, 1991.

[2] P. Faloutsos, M. van de Panne, and D. Terzopoulos. The virtual stuntman: dynamic characters with a repertoire of autonomous motor skills. Computers and Graphics, 25(6):933–953, 2001.

[3] J. F. Laszlo, M. van de Panne, and E. Fiume. Limit cycle control and its application to the animation of balancing and walking. Proceedings of SIGGRAPH, pages 155–162, August 1996.

[4] M. van de Panne. Control for simulated human and animal motion. Atelier IFAC Motion Control, September 1998.

[5] M. van de Panne and E. Fiume. Sensor-actuator networks. Proceedings of SIGGRAPH, pages 335–342, 1993.

[6] M. van de Panne, R. Kim, and E. Fiume. Virtual wind-up toys for animation. Proceedings of Graphics Interface, pages 208–215, 1994.

[7] Winter DA, Patla AE, Prince F, Ishac M, Gielo-Perczak K. Stiffness Control of Quiet Standing. North American Congress on Biomechanics, 1998

[8]  Laszlo, J. Controlling Bipedal Locomotion for Computer Animation. M.Sc. Thesis, Department of Computer Science, University of Toronto, 1996

[9] Victor Ng-Thow-Hing and Petros Faloutsos. Dance: Dynamic animation and control environment. www.dgp.toronto.edu/DGP/DGPSoftware.html.