UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Physics-based animation of primate locomotion Wang, Suwen 2011

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata


24-ubc_2011_fall_wang_suwen.pdf [ 12.99MB ]
JSON: 24-1.0052101.json
JSON-LD: 24-1.0052101-ld.json
RDF/XML (Pretty): 24-1.0052101-rdf.xml
RDF/JSON: 24-1.0052101-rdf.json
Turtle: 24-1.0052101-turtle.txt
N-Triples: 24-1.0052101-rdf-ntriples.txt
Original Record: 24-1.0052101-source.json
Full Text

Full Text

Physics-based Animation of Primate Locomotion  by Suwen Wang B. Computer Science, Dalhousie University, 2007  A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF  Master of Science in THE FACULTY OF GRADUATE STUDIES (Computer Science)  The University Of British Columbia (Vancouver) August 2011 c Suwen Wang, 2011  Abstract Quadrupedal animals commonly appear in films and video games, and their locomotion is of interests to several research and industrial communities. Because of the difficulty of handling and motion capturing these animals, physics-based animation is a promising method for synthesizing quadrupedal locomotion. In this thesis, we investigate control strategies for animating a gorilla model, as an example of primate quadrupeds. We review the state of the art in quadrupedal animation and robotics, and in particular a control framework designed for a simulated dog. We investigate the essential control strategy modifications as necessitated by the unique characteristics of gorilla morphology and locomotion style. We generate controllers for physically realistic walking and trotting gaits for a 3D gorilla model. We also rig a 3D mesh model of a gorilla with Maya, a commercial animation software. Gorilla gait motions are synthesized in our simulation using the rigged skeleton, and synthesized gaits are exported though a motion data pipeline back to Maya for rendering.  ii  Preface Part of Chapter 3 describes work included in “Locomotion Skills for Simulated Quadrupeds,”, published in ACM Transactions on Graphics 30(4), 2011, by Stelian Coros, Andrej Karpathy, Benjamin Jones, Lionel Reveret, and Michiel van de Panne. With permission from Michiel van de Panne, this thesis builds upon and extends the research work published in this paper. The images in Figure 2.1, 2.3,2.7,2.8, 2.10 are used with permissions from the publication organizations for these works. The image in Figure 2.4 is the work of Etienne-Jules Marey. After the copyright expired, it is in public domain. The image in Figure 2.5 is used with permission from Michael Girard. The image in Figure 2.6, 2.9 is used with permission from Marc Raibert. The image in Figure 3.5b is used with permission from photographer Roger Hall. The image in Figure 3.8a is used with permission from photographer Paul Velez. The images in Figures 2.2, 3.1,3.4,3.3, 3.6a are used with permission from Michiel van de Panne.  iii  Table of Contents Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  ii  Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iii  Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iv  List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  vii  List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  viii  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  x  1  Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1  1.1  Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2  1.2  Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3  Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4  2.1  Quadruped Gait Analysis . . . . . . . . . . . . . . . . . . . . . .  4  2.1.1  Basic Definitions . . . . . . . . . . . . . . . . . . . . . .  4  2.1.2  Gaits Transitions . . . . . . . . . . . . . . . . . . . . . .  8  2.1.3  Scale Effects on Gaits . . . . . . . . . . . . . . . . . . .  9  2.1.4  Implications for Quadruped Gait Synthesis . . . . . . . .  10  Quadruped Gait Synthesis: Kinematic Methods . . . . . . . . . .  10  2.2.1  Traditional Rotoscoping . . . . . . . . . . . . . . . . . .  11  2.2.2  Motion Capture . . . . . . . . . . . . . . . . . . . . . . .  12  2.2.3  Synthesis of New Motion from Mocap Data . . . . . . . .  12  2.2.4  Inverse Kinematics . . . . . . . . . . . . . . . . . . . . .  13  2  2.2  iv  2.2.5  Signal Processing Methods . . . . . . . . . . . . . . . . .  15  2.2.6  Trajectory Optimization Methods . . . . . . . . . . . . .  15  Quadruped Gait Synthesis: Dynamic Methods . . . . . . . . . . .  16  2.3.1  Gait Generation by Dynamic Controller . . . . . . . . . .  16  2.3.2  Controller Design by Optimization . . . . . . . . . . . . .  16  Quadruped Robots . . . . . . . . . . . . . . . . . . . . . . . . .  18  2.4.1  Early Work . . . . . . . . . . . . . . . . . . . . . . . . .  18  2.4.2  Passive Dynamic Robots . . . . . . . . . . . . . . . . . .  19  2.4.3  Dynamically Stable Robots  . . . . . . . . . . . . . . . .  20  2.4.4  Robotic Locomotion on Rough Terrain . . . . . . . . . .  20  Unique Characteristics of Primate Locomotion . . . . . . . . . .  23  Design of a Primate Terrestrial Locomotion Controller . . . . . . .  24  3.1  Framework Overview . . . . . . . . . . . . . . . . . . . . . . . .  25  3.1.1  Gait Generator . . . . . . . . . . . . . . . . . . . . . . .  25  3.1.2  Dual Leg Frame Control . . . . . . . . . . . . . . . . . .  26  3.1.3  Virtual Force Control . . . . . . . . . . . . . . . . . . . .  27  3.1.4  Desired Pose PD Control . . . . . . . . . . . . . . . . . .  28  Controller Modifications for Gorilla Morphology . . . . . . . . .  29  3.2.1  . . . . . . . . . . . . . . . .  31  DS-walk Gait Controller . . . . . . . . . . . . . . . . . . . . . .  32  3.3.1  Initial Modifications . . . . . . . . . . . . . . . . . . . .  32  3.3.2  Center of Mass Control . . . . . . . . . . . . . . . . . . .  35  3.3.3  Knuckle Walking . . . . . . . . . . . . . . . . . . . . . .  35  3.3.4  Foot Trajectory . . . . . . . . . . . . . . . . . . . . . . .  36  3.3.5  Shoulder Collapsing: Adding the Shoulder Twisting . . .  37  3.4  Trot Gait Controller . . . . . . . . . . . . . . . . . . . . . . . . .  38  3.5  Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39  3.5.1  Gorilla Model . . . . . . . . . . . . . . . . . . . . . . . .  39  3.5.2  Gaits Variations . . . . . . . . . . . . . . . . . . . . . . .  40  3.5.3  Robustness . . . . . . . . . . . . . . . . . . . . . . . . .  42  Character Rigging and Motion Pipeline . . . . . . . . . . . . . . . .  45  2.3  2.4  2.5 3  3.2 3.3  4  Gorilla Standing Controller  v  4.1  Rigging the Gorilla Skeleton . . . . . . . . . . . . . . . . . . . .  46  4.1.1  Maya Joint Tool . . . . . . . . . . . . . . . . . . . . . .  46  4.1.2  Rigging the Simplified Gorilla Skeleton . . . . . . . . . .  47  4.1.3  Dummy Joints for Frontal Skin Support . . . . . . . . . .  49  4.1.4  Assigning Physics Properties for Simulation . . . . . . . .  50  4.2  Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  51  4.3  Motion Data Pipeline . . . . . . . . . . . . . . . . . . . . . . . .  54  Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  57  5.1  Limitations and Future Work . . . . . . . . . . . . . . . . . . . .  58  Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  60  Appendix A MEL Script for Motion Data Import . . . . . . . . . . . .  69  5  vi  List of Tables Table 3.1  Estimations of maximum push forces(N) for gaits at different speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  vii  44  List of Figures Figure 2.1  Different gaits with relative phases[5] . . . . . . . . . . . . .  5  Figure 2.2  Gait graphs for dog model[16] . . . . . . . . . . . . . . . . .  6  Figure 2.3  Ground reaction force graph of a walking mouse[90] . . . . .  7  Figure 2.4  Bird motion photography by Etienne-Jules Marey . . . . . . .  11  Figure 2.5  Quadrupedal motions of PODA [26] . . . . . . . . . . . . . .  14  Figure 2.6  Dynamic characters in the work by Raibert and Hodgins[65] .  17  Figure 2.7  McGhee’s walking machine[51] . . . . . . . . . . . . . . . .  19  Figure 2.8  Scout I climbing a step[12] . . . . . . . . . . . . . . . . . . .  20  Figure 2.9  BigDog walks on snow[62] . . . . . . . . . . . . . . . . . . .  21  Figure 2.10 LittleDog[66] . . . . . . . . . . . . . . . . . . . . . . . . . .  22  Figure 3.1  Control framework overview[16] . . . . . . . . . . . . . . . .  25  Figure 3.2  Walking gait graph . . . . . . . . . . . . . . . . . . . . . . .  26  Figure 3.3  Leg frames abstraction of quadruped model . . . . . . . . . .  27  Figure 3.4  Invert pendulum model diagram[15] . . . . . . . . . . . . . .  28  Figure 3.5  Comparison of dog skeleton(a)[75] and gorilla skeleton(b) . .  30  Figure 3.6  Comparison of dog model(a) and gorilla model(b) . . . . . .  30  Figure 3.7  Gorilla standing with adjusted PD gains . . . . . . . . . . . .  32  Figure 3.8  (a) Natural gorilla stance; (b)Simulated gorilla stance . . . . .  33  Figure 3.9  (a) Leg frame orientations in standard pose; (b)Leg frame orientations for stable standing . . . . . . . . . . . . . . . . . .  34  Figure 3.10 Arm stepping failing from the shoulder weight . . . . . . . .  37  Figure 3.11 A gait graph for trotting walk . . . . . . . . . . . . . . . . . .  38  Figure 3.12 Gorilla model joints . . . . . . . . . . . . . . . . . . . . . .  40  Figure 3.13 DS walking gait side view . . . . . . . . . . . . . . . . . . .  41  viii  Figure 3.14 DS walking gait front view . . . . . . . . . . . . . . . . . . .  41  Figure 3.15 Walking trot gait side view . . . . . . . . . . . . . . . . . . .  42  Figure 3.16 Walking trot gait front view . . . . . . . . . . . . . . . . . .  42  Figure 3.17 Comparison of foot planting locations during a slow trot(a) and fast trot(b) . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43  Figure 3.18 External force for robustness testing . . . . . . . . . . . . . .  43  Figure 4.1  Static gorilla skin mesh in Maya . . . . . . . . . . . . . . . .  45  Figure 4.2  Joint tool in Maya . . . . . . . . . . . . . . . . . . . . . . .  47  Figure 4.3  Perspective view of one-side rig (a) and side view of one-side rig(b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48  Figure 4.4  Top view (a) and front view (b) of one-side rig . . . . . . . .  48  Figure 4.5  Move joint in coronal direction . . . . . . . . . . . . . . . . .  49  Figure 4.6  Fully rigged skeleton with dummy joints . . . . . . . . . . .  50  Figure 4.7  MOI notations for a solid cuboid . . . . . . . . . . . . . . . .  51  Figure 4.8  Different views of gorilla model after binding . . . . . . . . .  52  Figure 4.9  Skinning artifacts: before joint rotation . . . . . . . . . . . .  53  Figure 4.10 Skinning artifacts: after joint rotation . . . . . . . . . . . . .  53  Figure 4.11 Visualization of joint influence(a) and skin weight brush tool(b) 54 Figure 4.12 Skinning artifacts: fixed . . . . . . . . . . . . . . . . . . . .  54  Figure 4.13 Diagonal sequence walking rendered in Maya . . . . . . . . .  56  ix  Acknowledgments I would like to thank my supervisor, Michiel van de Panne, for his guidance, encouragement, and patience during my study and the completion of my thesis. His enthusiasm and insights helped me greatly during the research process. I also appreciate my second reader, Robert Bridson, for the time and efforts he took for reading my thesis. This work is funded in part by GRAND. I also want to thank Stelian Coros, whose work has become the foundation my thesis work builds upon. His help and encouragement has also been indispensable. I also enjoyed the camaraderie I shared with Kai Ding, Benjamin Jones. And my awesome friends in UBC, their unreserved support makes this journey much more enjoyable. In particular, I want to thank Yan Tan. For better or worse, she defined a big part of my graduate school experience and personal growth. And I will still cherish the memory of our experience. Finally my parents. I owe my heart and mind to you.  x  Chapter 1  Introduction People are very familiar with quadruped animals. Cats and dogs are kept as pets, horses are commonly used for sport, recreation, and transportation; and many wild quadruped animals are also well-observed and studied. Therefore, believable behavior of virtual quadruped characters is important for achieving virtual realism. With recent advances in computer graphics, there is a demand for more sophisticated and natural looking quadruped characters in films and games. There have been several successful examples. As a major character, Aslan in ‘The Chronicles of Narnia’[82] is anthropomorphic yet very natural looking. In video games such as ‘The Elder Scroll: Oblivion’[9] and the ‘Assassin’s Creed’ series[77], the main characters ride horses as a way to explore the virtual worlds. It would severely interrupt the immersive experience of the players if the horse behavior were not realistic. The locomotion of quadrupeds is also highly relevant to the research and development of legged mobile robots. Because only half of the land area on earth is accessible to wheeled or tracked vehicles[62], legged locomotion is a far superior choice for mobile robots in terms of reachability. Besides robotics, quadrupedal locomotion is also of interest to the fields of zoology and neuroscience. Research in both of these fields examines the generation and characteristics of locomotion. Zoologists provide insights and empirical data from observing animals, and neuroscientists explore how the neural system can generate the rhythmic motions the gaits are composed of. At the same time, simulation environments in computer 1  graphics and robotics provide opportunities to test and validate hypotheses from biomechanical studies. The state of the art for physics based quadrupedal animation can be seen in the work of Coros et. al. [16], where they propose a quadrupedal locomotion control framework and apply it to a dog model with great success. To extend this work, it is of interest to investigate how this control framework can be generalized to other animals with different morphology, and what the required modifications are for this adaptation. In this thesis, we experiment with locomotion controllers for a gorilla model. The gorillas are particularly interesting as a case study. They are morphologically different from dogs, and have the capability to perform both quadrupedal and bipedal locomotion. Standard 3D modeling and animation software packages are becoming increasingly sophisticated. Through a combination of artistic mastery and software expertise, it is possible to achieve spectacular animation effects with these animation packages. To author motion for articulated figure for articulated animation, animators mostly rely on keyframe-based techniques. Although keyframing provides detailed controls to the animator, this technique is not well suited for modeling the physically realistic interaction between a character and its surroundings. The tedious work required of animators also limits the range and flexibility of the output motions. Our physics-based control framework is a step towards the quest of synthesizing detailed natural motion without requiring meticulous low level details from artists. Therefore, it is useful to explore possible ways our framework can be used with standard animation packages, and how well they work together. We therefore validate the usefulness of our motion control framework for producing animation sequence in commercial animation software. We use Autodesk Maya[8] in our study.  1.1  Contributions  This thesis makes the following three contributions. First, we provide a broad overview of the state of the art in quadruped animation, and quadrupedal robotics. We also review the unique characteristics of primate locomotion. Second, we adapt  2  the virtual force based controller framework to a gorilla model. This has a significantly different morphology from the dog model for which the framework was originally developed. Lastly, we develop an export pipeline from our C++ program to 3D animation software Maya. This enables the motions synthesized with physics-based simulation to be rendered within Maya.  1.2  Organization  The rest of the thesis is organized as follows: Chapter 2 provides a review of previous work in quadruped animation and robotics. Chapter 3 gives a brief overview of the quadruped control framework proposed by Coros et al. [16], and details the modifications required to adapt the framework to a gorilla model. Chapter 4 details the process of building a motion pipeline between our simulation and the Maya environment. The gorilla skeleton is generated by rigging a skin mesh, and imported into our simulation. The motion data for the gaits generated by the controller framework is then exported to Maya for generating animation. Chapter 5 provides concluding remarks.  3  Chapter 2  Related Work How quadrupedal animals generate the complex rhythmic gaits has been an intriguing question for biologists, neuroscientists, and robotics researchers alike. This chapter provides an overview of current development of quadruped animation research, and broadly categorizes various techniques of quadruped gait synthesis. We begin with zoological and biomechanical perspectives on quadruped motion as a theoretical foundation, since they provide valuable guidance for gait synthesis. We then covers various kinematic techniques for authoring quadrupedal motion. Being more relevant to our work, dynamics methods for synthesizing quadrupedal gaits are also covered. Finally, a review of research on quadrupedal robot locomotion concludes our discussion.  2.1 2.1.1  Quadruped Gait Analysis Basic Definitions  With four legs, quadrupeds can coordinate their legs with different combinations of swing and stance patterns. Therefore, to effectively communicate about different gaits of quadruped locomotion, a set of basic concepts and terminology need to be established. Among various studies, the definitions collected in the classical 1984 paper by Alexander[5] have become the standards in the field.  4  A stride is a complete cycle of leg movement. We assume any particular gait is a sequence of repeating strides, so normally we only study what happens within a single stride. The stride length is λ , and the stride frequency is f , therefore the average speed of the gait can be expressed as λ f . Duty factor β for a foot is the fraction of time during the stride when it is on the ground. Usually the duty factors for a lateral pair of feet are equal. Relative phase denotes when the foot touches the ground during a stride, and it takes values from 0 to 1. McGhee [52] first proposed a system of describing gaits using duty factors and relative phases, and it has been proven convenient. In Alexander’s paper, different gaits are illustrated using a diagram showing the different combinations of relative phases, as seen in Figure 2.1.  Figure 2.1: Different gaits with relative phases[5] The most common gaits among these are amble, trot, and gallops. At slow speeds, animals most often use the amble gait. With increasing speed, they may switch to trotting, and eventually a galloping. Another common way to encode different gaits is to plot the stance phases for each leg along a time axis, as seen in Figure 2.2. In general, Froude number is a dimensionless number defined as the ratio of the inertia of a body to gravitational forces. More specific to animal locomotion studies, Froude number is equal to  u2 gh ,  where u is the traveling velocity of the 5  Figure 2.2: Gait graphs for dog model[16] animal, g is the gravitational acceleration, and h is the characteristic dimension of the animal, usually the height from ground to hip joints. Dynamic Similarity can be defined as follows [17] [57]: Two systems of moving bodies are described as dynamically similar if the motion of one could be made identical to that of the other by multiplying: 1. all linear dimensions by some constant factor; 2. all time intervals by another constant factor; and 3. all forces by a third constant factor The Ground reaction force(GRF) is the force that the ground surface applies to the body when in contact with the ground. Since it is the only substantial source of external forces during the locomotion, GRF is an important measurement in the study of animal gaits. In particular, GRF on each leg is typically plotted over time as in Figure 2.3: A well established idea is that the coordinated movement of the limbs is regulated by a central neuron circuit, which is called central pattern generator (CPG). Ijspeert[38] gives a comprehensive survey on the current development in terms of theories and practices of CPG. The survey covers the development of CPG theory from the neuroscience community, and also talks about how these insights had been applied to robotic locomotion design. There has been much research into how locomotion of quadrupeds relates to their anatomy. Schamhardt[69] looks into what contributes to the substantially 6  Figure 2.3: Ground reaction force graph of a walking mouse[90] different types of quadruped gaits, for anatomically similar skeletal structures. This paper provides several insights on how quadrupeds move in general: 1. Many quadrupedal animals stand and walk mostly on their toes, effectively increasing the length of their limbs. 2. During the first half of the stance phase, the quadruped will try to push their leg forwards and downwards, so that the sagittal component of GRF pointing backwards prevents slipping. During the push-off phase, the animal will push the leg downwards and backwards. The resulting forward GRF component then propels its torso. 3. The intra-limb mechanics of each stride is more or less consistent between different gaits, so the differences are mainly due to the inter-limb coordinations. 4. Limbs extend the farthest right before striking the ground and right after push off, and flexes during the load bearing stance phrase. 5. Joint stabilization can be done actively by muscles or passively by tendons. The passive control allows a horse to stand without using muscle energy. 6. Scaling of the geometry of an animal results in weaker muscles compared to the required strength. Nature’s solution is to reduce the moment arms of the 7  gravitational force. In other words, large animals can’t flex their joints very much. Ritzmann et al. [68] find similarities that are common to arthropod and vertebrate animals, identified by convergent evolution. They describe three principles: leg specialization, body flexion and the development of a complex head structure. They describe how these principles can be applied to robotic designs. Lee et al. [47] study acceleration and balance in trotting dogs, by collecting measurements from video data. They emphasize the force redistribution on the four legs at acceleration and deceleration of dogs during trotting. Elftman [19] focuses on the details of energy storage and transfers within the leg. Methods to obtain instantaneous measurements of force and torque on the leg and foot are described, so that the dynamics within the leg can be considered independently from the body. Because of the good availability and incentives from the horse racing industry, there are many studies dedicated to equine locomotion. Buchner et al.[11] study the physical properties of Dutch Warmblood horses. The data they collect can serve as a good reference for model construction. Witte et al.[88] report on a detailed investigation of the relationship between footfall timings, limb force and running speed in racehorses, conducted in field conditions.  2.1.2  Gaits Transitions  Another interesting topic for zoological studies is under what conditions animals switch from one gait to another. There are two hypotheses about what generally triggers a upward transition. Some believe there is a biomechanical trigger, which depends on the dimensions of the individual animal. In other words, if the animal reach certain relative speed, it will switch gait. The other hypothesis is that the trigger has to do with energetics, usually measured by the oxygen consumption rate with regard to the speed. Animals change from one gait to another to minimize energy consumption, as mentioned in [3]. For the same reasons mentioned above, there are numerous studies on gaits transition in horses. Griffin et al. [28] study horse transition from walk to trot. They find that transition speeds are proportional to the square root of their leg 8  lengths, suggesting a biomechanical transition trigger. Also, animals switch to a trot at a Froude number of approximately 0.35. They also study the energetics of gaits switches and confirm that horses switch to trotting to allow for optimal energy efficiency. Wickler et al. [84] also study what triggers horses to switch from trotting to galloping. Using an energetics point of view, they find that the switches happen at a significantly lower speed on an inclined terrain than on flat terrain. However, they do not describe the detailed motion during the transition. Ren and Hutchinson [67] find that elephants switch from walking to running at a Froude number of 0.09. Heglund et al. [33] study the relationship between size and transition speed and frequency. They use the transition speed from trot to gallop as an equivalent speed for comparing animals of different size, and find that plotting stride frequency at the trot-gallop transition point as a function of body mass in logarithmic coordinates yields a straight line.  2.1.3  Scale Effects on Gaits  The body size can be dramatically different for quadrupedal animals. From elephants to mice, the difference can be in range of 100. To account for the differences in size and gaits, Alexander [4] first proposes a hypothesis to describe the relations between the size, speed, and stride length for dinosaurs. Later this hypothesis was applied to quadrupeds[3]. Their hypothesis states that two animals move in a dynamically similar fashion, when their sizes and speed give equal Froude numbers. Since the gait characteristics of dynamically similar systems are proportional to each other, this hypothesis can be used to predict the gaits of one animal, based on another animal traveling with the same Froude number. The study shows that these hypotheses hold well for cursorial mammals, but not across the distinction of cursorial and non-cursorial mammals. Alexander and Jayes[3] look more closely at how the dimension-less Froude number affects various aspects of quadrupedal gaits. With increasing Froude numbers, mammals generally switch from a symmetric gait, like walk or amble to an asymmetric gait, such as a canter or gallop. Also, the relative stride length, λ /h in-  9  creases with the Froude number. Another interesting finding is that larger animals generally cannot reach higher Froude numbers than smaller ones, as mentioned in the work by Alexander, Langman, and Jayes [7]. Herr and his colleagues[34] propose a computational model to explain some well-documented scale effects seen in running quadrupeds. They construct virtual animal models of different size in their physics simulation environment, and use the simulation to predict gait parameters within a uniformed framework.  2.1.4  Implications for Quadruped Gait Synthesis  Through the biological and biomechanical studies mentioned above, much is known about how quadrupeds move. However, given its inherent complexity, synthesizing a detailed, realistic quadrupedal gait still relies on the specialized knowledge and skills of animators, or tuning of robots by engineers. To alleviate this burden, many techniques have been proposed during the last several decades. In computer animation, the methods can be divided into two classes: kinematic and dynamic methods. In kinematic methods, the motions of quadruped characters are directly specified without considering the causes, according to reference data or algorithmic procedures. In dynamic methods, only the forces and torques applied to the quadruped model can be controlled. The obtained motions are the results of modifying the object states according to the laws of physics. Although robotic quadrupedal gait generation lends many insights and principles to dynamics animation approach, it has its unique requirements and challenges. Robotic motions are not required to be as natural looking as in computer animation. Instead, robustness and reliability are stressed, as failure may result in hardware damage. In the remainder of this chapter, research work in these three areas will be reviewed.  2.2  Quadruped Gait Synthesis: Kinematic Methods  As the name suggests, this class of methods emphasizes describing the motion, without dealing with the forces causing the motions. In kinematic animation, one can animate an articulated model by specifying a time sequence of key poses, 10  where each key pose is a complete specification of the position and orientation for each link. Animation can then be generated for “in-between” poses by interpolation. Kinematic techniques may be broadly classified into construction-based methods and constraint-based methods. In construction methods, motion can be created by either directly specifying the key poses using visual recordings as references. The locomotion can be composed from segments of simpler motion, either from motion capture data or algorithmically generated. The constraint-based methods are based on the use of optimization to satisfy a given set of predefined constraints, with inverse kinematics being a prime example. This section will cover the previous work on these techniques.  2.2.1  Traditional Rotoscoping  Generating natural looking animal motions often requires reference data that describes how real animals move. Given the obvious limitations of motion capture for animals, animators often work with visual recordings of animal behavior. The pioneering work on photography of animal locomotion is from Eadweard Muybridge [56] in the US and Etienne-Jules Marey [20] in France. They both used chronophotography to study how humans and animals move, but employed different techniques. Muybridge used evenly spaced cameras to shoot in time sequence, so that the image of animals can be captured when it passed beside the corresponding camera. Etienne-Jules Marey used a different technique, where he captured different phases of the animal’s motion cycle into a simple image, as seen in Figure 2.4.  Figure 2.4: Bird motion photography by Etienne-Jules Marey To translate these images into animation, artists use a technique called roto11  scoping, where key poses are extracted by tracing from a projection of a photo sequence or live footage frames. Rotoscoping was invented in 1917 by Max Fleischer [24], and has been prevalent in film and animation industries ever since.  2.2.2  Motion Capture  Besides the common difficulties with the motion capture (Mocap) technology, working with quadruped animals has its additional difficulties. Although commercial motion capture studios provide animal mocap services [73], [13], [85], the prohibitive costs limit this to be used by entertainment industry. Also, there are obvious more difficulties to capture natural motions for wild animals. It is not surprising that the most common quadrupedal mocap subjects are horses and dogs. Because of the preceding issues, various video-based motion capture techniques have been developed. The technique proposed by Wilhelms and van Gelder [86] identifies features and their temporal relationships in a video sequence, using active contours and other image processing techniques. The active contours then kinematically guide a 3D articulated horse model. Their method works for moderately slow motions and simple backgrounds. Favreau et al.[21] present how animal motions can be reconstructed from wildlife documentary videos. Gibson et al. [25] also work on tracking animal gaits from wildlife videos. They focus on computer vision techniques and use the animal structure to yield improved tracking.  2.2.3  Synthesis of New Motion from Mocap Data  Since quadruped motion capture data is very limited, research efforts have been made to modify or reuse existing motion data to produce new motions. Skrba and O’Sullivan [71] conduct a user experiment to see how people perceive gaits of different quadrupedal animals. They use point light walkers to represent the gaits, and show that in some cases, a gait of one type of animal can be adapted to animate another type of animal, without affecting the perceived realism. This study gives validity to quadruped motion retargeting. Although many techniques have been proposed, such as motion warping[87], motion graphs [43] and signal processing methods[10], most of these studies focus  12  exclusively on human motions. Rarely is quadruped motion used as an example to demonstrate the extensibility of the proposed technique. In one such study, Xiao et al.[89] demonstrated that quadruped skeletal motions can be automatically estimated from optical motion capture data. A remarkable success of applying motion retargeting techniques is the video game Spore [18]. Here the technique was adapted to solve the unique challenge of animating the creatures with unpredictable morphology generated by players, while preserving the structure and style information from the artists. Hecker et al. [32] implemented a mapping between specific motion space and general motion space, so that the artists can create morphology-independent general motions by specifying the semantics. At run-time playback, the motion is transformed into specific space using inverse kinematic solver. As an important tool for procedural animation, inverse kinematics will be reviewed in the following section.  2.2.4  Inverse Kinematics  Instead of the tedious work of specifying the complete keyframes, realistic motion can also be generated by various algorithms. These algorithms regulate certain aspects of the motion, and try to find suitable poses while satisfying the specified conditions. Several procedural animation techniques are described in this and following sections. When applying forward kinematic methods, it is usually difficult to control the position and orientations of the end effectors of the articulated model. For example, given a root position for a quadruped model, it is not obvious what rotation each joints should take to make sure the feet are planted on the ground. A well-established technique called inverse kinematics (IK) solves this problem. Some links in the articulated model are identified as end effectors, and their spatial trajectories and orientations are used as input to an IK algorithm. For simpler models, analytical methods may be used to directly solve the joint poses from the end effectors’ states. More often, numerical methods are used to progressively seek a viable joint configuration for articulated models with larger degrees of freedom. Girard and Maciejewski describe how inverse kinematics can be applied to  13  solve the configurations of under-constrained limbs in an interactive animation system called PODA[27], enabling easy coordination of the limb motions. The system also uses parameterized gait control to coordinate the leg movements, kinematically generate the cyclic walking motions. In subsequent work [26], Girard describes procedural techniques to generate different quadrupedal gaits and demonstrates on their PODA system. Figure 2.5 shows an example of their synthesized quadrupedal motion.  Figure 2.5: Quadrupedal motions of PODA [26] Research effort has also been made to improve the Jacobian matrix calculation needed for IK algorithms. Orin and Schrader [58] describe how to calculate the Jacobian matrix for different representations of an articulated model. Because of its origin in robotic control, IK has been applied to various control methods for quadrupedal robot. These will be reviewed in a later section. One recent successful commercial implementation of the IK techniques is Autodesk HumanIK middleware, which was integrated into the Autodesk Maya software system[8]. In the hit video game ‘Assassin’s Creed’[77], the horse gaits were 14  generated by this IK middleware[74].  2.2.5  Signal Processing Methods  As mentioned in the biomechanics studies, animals often evolve to exploit the natural vibrations of their bodies during locomotion in order to reduce energy consumption. This theory inspires researchers to treat animal locomotion as a combination of oscillations. The techniques of signal processing can therefore be applied to generate and process motions. Grezeszczuk and colleagues [29][30] make early attempts to abstract the rhythmic motion components into layered controllers by fast Fourier transform. Their work focuses on aquatic creatures, which tend to be less complex to control because of the lack of ground contacts. In a recent paper, Kry et al.[44] proposes a new technique to synthesize locomotion given the physical properties of the animal model. Modal analysis is carried out to find a basis of low frequency model vibrations. Locomotion can then be synthesized by the superposition of selected basis motions. The controllers produced by this method can be used for both dynamic animation or pure kinematic animation, but are only suitable for simple creatures, since balancing in more complex creatures is not handled. One advantage of their algorithm is that adding secondary motion to enhance realism becomes much easier for kinematic animation.  2.2.6  Trajectory Optimization Methods  By definition, a trajectory is the path a moving object follows according to time. Animation is essentially the specification of trajectories for each link of an articulated model. Another approach to animate a quadruped is to formulate the search for suitable trajectories as an optimization process. Various techniques have been proposed, depending on the type of data given as inputs, or the criteria the optimization process is based on. Since terrestrial gaits often leave traces of footprints, much information about the locomotion can be inferred from the footprints. Torkos and van de Panne[76] apply the gait synthesis approach originally proposed in [79] to animate quadrupedal animals. Positions and timings of the footprints are given as input to the algorithm, and centre of mass (CoM) trajectories are optimized to determine the  15  general motion. The optimization formulation takes physical realism into consideration by minimizing a physics error term and a comfort term, ensuring that the resulting motion is both realistic and visually pleasing.  2.3 2.3.1  Quadruped Gait Synthesis: Dynamic Methods Gait Generation by Dynamic Controller  The work by Featherstone [22],[23] lays a theoretical foundation by proposing an algorithm to calculate robot accelerations based on recursive formulas involving articulated-body inertias. Early efforts were made to synthesize locomotion using physics-based methods. McKenna and Zeltzer[54] implement an efficient forward dynamic simulation algorithm to animate six-legged insects. They also propose the general structure of a physics simulator, which is commonly used in research nowadays. Their motion synthesis is achieved by a gait controller inspired by biological principles and a motor controller which applies forces to the model legs. Raibert and Hodgins [65] greatly extended the possible gaits the physics simulator can produce to include dynamically stable locomotion, such as running, jumping, and hopping. Figure 2.6 shows the characters in their simulation environment. They also investigate various aspects of the gait controlling strategies, such as speed control, and pose control. The authors envision two paths of development for physics based gait simulation: one is the further abstraction of control, where translation between higher level “commands” to the lower level gait regulation and force application would be done without much intervention from animators. The other is the automatic generation and adaptation of gait controllers to different animal models. In some degree, research advancement did follow these two paths, though the various topics in these directions have proved to be very challenging.  2.3.2  Controller Design by Optimization  With the maturity of physics simulation frameworks such as Open Dynamic Engine (ODE)[72], lower level simulation details are encapsulated. Therefore more research attention is concentrated on controller designing. 16  Figure 2.6: Dynamic characters in the work by Raibert and Hodgins[65] A large number of DOFs can be reduced by using pose-control graphs to represent quadruped gaits[78]. Free parameters for the finite state controller are generated by an optimization process, where different optimizing functions are tested, such as speed and lateral rocking. However, this method does not provide the active balancing that is required for robust locomotion. Marsland and Lapeer[50] use video-base keyframing methods to produce reference poses, and a PD controller to drive an articulated horse model to follow reference motion. They also add a virtual joint to correct deviations in the heading of the horse. Another direction to increase the realism of synthesized quadruped gaits is to adapt more anatomically accurate models. Aleotti et al.[2] develop a system to simulate detailed dog spine motions during walking gaits. Some insights on the characteristic motion of the spinal cord would give additional realism to quadrupedal animation, where the spine is often coarsely modeled, if not as a single rigid body. In recent work, Wampler and Popovi´c[83] propose a method for generating optimal gaits and morphologies for an animal without requiring referencing motion or foot contact data. Their method relies on a combination of spacetime optimization and a derivative-free optimization technique. While they demonstrate arbitrary legged models can be animated, some of them do not appear very natural; and they are generated from trajectories, not fully simulated motions. 17  Marks et al.[49] map a neural network to the joints of articulated models, and apply evolutionary algorithms to let their models “learn” good locomotion. They give fitness ratings to different individuals in their evolution runs, in order to improve the quality of generated motion. They achieve limited success on a simplified quadruped model. Although dynamic simulation frees animators from the burden of repetitive posing the character, some mechanism of artistic control is still essential for this technique to be useful. In this respect, Laszlo et al.[46] describe a system of controlling the articulated character motion with keyboard and mouse interactions in a physics simulation. They investigate different dimensions along which motion primitives can be segmented, and mechanisms to handle discrete and continuous control inputs. With their method, animators can easily utilize their insight into the desired motion and intuition on motion planning.  2.4  Quadruped Robots  For their off-road capability, legged robots, especially quadrupeds, have always interested robotics researchers. Unlike the animation community, whose primary concern is to create natural and realistic motions, robotics researchers often face more practical issues, such as whether the robot can be untethered, how long the robot can operate without intervention, or the robustness of the hardware to withstand the shock of falling. Despite the difference in requirements, many control methods and principles gained from robotic studies have provided guidance for quadruped animation.  2.4.1  Early Work  Early work by McGhee[51] establishes the validity of using finite-state machine controller to generate gait on a quadrupedal robot. He demonstrates a quadrupedal robot with wide-support, and produces a stable gait approximating a trot. This is shown in Figure 2.7. Palmer and Orin [60] propose a 3D trotting controller for a quadruped robot. The controller can handle changes in speed and heading direction. They test the method in simulation and on an actual robot. 18  Figure 2.7: McGhee’s walking machine[51] Kar [39] provides comprehensive review on various vehicle configurations and leg mechanisms for statically stable walking robots developed prior to 2003. His work concentrates on mechanical design methods, and does not include information on control strategies.  2.4.2  Passive Dynamic Robots  The study of passive dynamics robots focuses on more efficient utilization of the momentum of swinging limbs. Researchers have been investigating how passive dynamics can be applied to robotic locomotion, in order to reduce the required actuation. Quadrupedal robots have been built to run[37], sometimes even without any control action [64]. Martin Buehler and his colleagues developed dynamically stable quadruped robots Scout I[12] and II[63]. To push for simplicity, Scout I has rigid legs and only one actuator for each leg, and relies on a very simple controller to achieve dynamic stability, as in Figure 2.8. Later on, Scout II was built as a more complex 19  extension model. However, its knee joints are prismatic, and the front legs and rear legs are controlled independently. Their work relies on the concepts of passive dynamics to create moving robots with simple designs.  Figure 2.8: Scout I climbing a step[12]  2.4.3  Dynamically Stable Robots  More recently, knowledge in passive dynamics has been applied to create robots that are capable of dynamically stable locomotion. Singh and Waldron [70] present a kinetic hybrid model in which the states vary based on the principal forces present. [36] describes a middle layer between the simulator and high-DOF robot controller. Another quadruped robot capable of dynamic walking is described in [55]. This robot includes on-board sensors and posture control components, but proper functioning of their control algorithm is based on the optimized starting configuration for its legs. Robotics researchers have also drawn inspiration from observing natural animals. [48] studies trotting horses to gain insight into dynamic robot design. They propose to use springs to model tendon for storing kinematic energy during locomotion. [42] presents a biologically-inspired gravity load controller, which combines a gravity load receptor with a mechanical model of stimulus-reaction mechanism found in animals. Using this controller and a rhythmic pattern generator, they successfully test their framework in a physics simulation as well as on a walking robot called Aidin.  2.4.4  Robotic Locomotion on Rough Terrain  Some early work such as [40], [81] on robotic locomotion on rough terrain assumes that every point on the terrain surface can stably support the robot foot placement. 20  This is not true with steep inclination and soft spots found on natural terrain. This problem is first tackled in [45]. They term gaits that avoid these problematic areas along the path as a “free gait”. Mcghee and Iswandhi[53] improve these original ideas, and make a complete formalization of free gait planning and propose and evaluate a heuristic algorithm. [59] proposes a framework to generate free gait for a primitive four-link quadrupedal robot. Their algorithm uses A* search techniques to look several steps into the future before committing to a stepping decision. In this way, the gait can avoid becoming trapped. Hardarson has an excellent section devoted to legged robot locomotion on rough terrain in his survey paper[31]. BigDog, LittleDog A notable recent success of rough terrain legged robot is BigDog (Figure 2.9) by Boston Dynamics [62].  Figure 2.9: BigDog walks on snow[62] With their years of experiences, Raibert and his colleagues find that most locomotion can be broken down to three basic movements: a vertical bouncing motion to provide support, hip torque servoing to control the body pose during stance, and strategically adjusting foot placement to balance. Using these insights, BigDog is built as an autonomous, legged rough-terrain robot, with on-board systems that provide power, actuation, sensing, controls and communications. It can perform various gaits and motions, such as standing , squatting down, crawling, trotting and bounding. Its speed ranges from 0.2 m/s in crawling, to 2 m/s in a trotting run.  21  Because of intended military applications, prolonged endurance was also valued. BigDogs longest continuous operation was a 10 km hike that lasted 2.5 hours. For locomotion control, each of the four legs has four degrees of freedom and is collectively coordinated by a virtual leg model. Rough-terrain abilities are achieved by sensing kinematic and loading changes on each legs. The controllers compensate small inclines by tilting the body, and larger inclines by also adopting smaller steps. BigDog was reported to handle inclines from 15 to 61 degrees. Boston Dynamics and DARPA also created a smaller quadruped called LittleDog[66] to serve as a platform for research on locomotion learning.  Figure 2.10: LittleDog[66] Byl et al.[14] use a simplified physical leg model to plan under-actuated joint trajectories, and reason about ground reaction forces for motion planning. Their approach aims to increase both the speed and the reliability of the crawling gait on rough terrain. LittleDog with their controllers can negotiate very rocky terrain at 5.6 cm/sec, and reach 70% reliability. Kolter and his colleagues[41] use LittleDog to demonstrate hierarchical apprenticeship learning. They devise a hierarchical control scheme to guide the locomotion of LittleDog. High level advice for the apprenticeship learning consists of a complete trajectory for CoM. Low level advice is identified when the robot takes a suboptimal step, and subsequently finds an improved greedy foot placement.  22  2.5  Unique Characteristics of Primate Locomotion  While extensive research has been done on the locomotion of quadrupedal animals of special interests, such as horses or dogs, locomotions of primates have received less attention. While sharing some basic principles and concepts with more general quadrupedal locomotion, primate quadrupedalism exhibits unique characteristics. In their work in 1989, Vilensky and Larson[80] establish the differences between the locomotor control mechanism of primate and that of other cursorial animals. It is hypothesized that, for a primate, the brain has a more direct influence on forelimbs, so they have a larger role in manipulating the environment and have less responsibility for body support and propulsion. As supporting evidence, they observe that more weight is supported by the hind limbs in primates. More specifically for a gorilla, they observe that the two most commonly used gaits are diagonal sequence (DS) walk and walking trot, and hypothesize that using DS gait is due to the posterior location of the center of mass. Some gait data is provided in their paper as well. One of the most distinct features of a primate is the evolution of their fingers, for manipulating food and other detailed skills. Accordingly, gorillas adopt knuckle-walking in their quadrupedalism, where they curl up fingers and press knuckles to the ground surface for weight supporting. In terms of gorilla gaits, Hildebrand [35] report that for diagonal sequence walking, the rear leg passes over the front leg, often on the same side. This causes the spine to be at an angle with respect to the direction of motion. One shoulder is thus slightly ahead of the other. In his 1984 work, Alexander[6] uses gait footage for different primates as reference data, and observes that they usually take longer strides with lower frequencies than other non-primates. These studies provide us with insights and details about primates quadrupedalism, specifically on how gorillas move. Our implementation and adaptation of the controller framework for gorilla is directly influenced by this knowledge. Some reference material may also be helpful to validate the results of our simulation.  23  Chapter 3  Design of a Primate Terrestrial Locomotion Controller As discussed in Chapter 2, there are vastly different modes of locomotion in quadrupedal animals. Even within the category of primates, there are many locomotion styles the animals adopt. As observed in nature, primates travel both on the ground and through the treetops. During ground locomotion, limbs of the animal are responsible to support and propel its body weight. During arboreal locomotion, the primates largely use their arms to hang from the branches and swing from tree to tree. In this thesis we focus only on terrestrial locomotion. More specifically, we choose the gorilla as our testing character model. In their natural environment, gorillas mostly use quadrupedal ground locomotion, but occasionally they also stand and walk using only their hind legs. Given the potential for both quadrupedal and bipedal locomotion, the gorilla naturally serves as a good case study for locomotion generation, potentially bridging quadrupedal control with bipedal locomotion control. As mentioned previously, Coros et al.[16] propose and apply a quadrupedal locomotion control framework to a dog model with great success. In order to apply this control framework to the gorilla model, various modifications need to be made. A brief overview of the major components and control strategies in this framework follows in the next section, and the rest of this chapter will detail the 24  process of designing gorilla locomotion controllers derived from the quadruped control framework.  3.1  Framework Overview  Our dynamics simulation framework is composed of a control system and a physics engine. The control system consists of several components which work together to compute control torques driving the gorilla model. Open Dynamics Engine [72] is used as the physics simulation engine. At each time step, the control torques for each joint are computed and applied, and forward simulation updates the current states of the rigid links in gorilla model. The controller then uses new state information as feedback, and generates new control torque input for the next simulation step. Our work mainly focuses on the controller system, and treats the physics engine as a black box. Unless otherwize noted, “controller framework” or “framework” both refer to the controller system. Figure 3.1 provides an schematic overview of the control framework. Each component will be detailed in the following sections.  Figure 3.1: Control framework overview[16]  3.1.1  Gait Generator  The gait generator is probably the most important component in the framework, because it is responsible for regulating the gross control of the locomotion cycle. 25  This component is implemented by a finite state machine (FSM), where each state is associated with a specific gait or a special motion like standing still. The main function of the gait generator is loading parameter sets associated with specific gaits when appropriate and instantaneously updating the gait control parameters. When specific user control input, such as changing speed or choosing a different gait, necessitates a gait transition, the FSM transitions to the state associated with the new gait, and the new gait parameter set is loaded. Each parameter set includes a full specification for the gait it represents, and parameters used to control the desired states of CoM and leg frames. Each parameter set includes a gait graph. Figure 3.2 shows an example of walking gait graph in our implementation. For each foot, the swinging and stance phase are plotted along one complete gait cycle with phase range [0 − 1]. The dark areas indicate that a leg is in a swing phase, and the remaining areas indicate leg stance phases.  Figure 3.2: Walking gait graph The gait generator also tracks the phase progression during the gait cycles. The current phase in gait cycle can be calculated based on the current stride period. The cursor line in the gait graph indicates the current phase of the gait. The phase information is then used to evaluate several control parameter trajectories, and resulting control parameters will be output to other components of the controller framework, as depicted in Figure 3.1.  3.1.2  Dual Leg Frame Control  To simplify the task of controlling full body motions, we abstractly view the quadrupedal skeleton as two leg frames connected with an articulated spine, as shown in Figure 3.3. The front leg frame is represented by the local coordinate frame of the shoulders, and the rear leg frame is local coordinate frame of the hips. In our control framework, shoulders and hips are both simplified as a single link, to which 26  a pair of limbs are attached. The limbs stemming from shoulders link or hips link are often considered part of that leg frame. With this abstraction, the quadruped locomotion can be broadly controlled by regulating the positions and orientations of the leg frames throughout the gait cycle. The roots of the leg frames also serve as the base for all the virtual forces.  Figure 3.3: Leg frames abstraction of quadruped model  3.1.3  Virtual Force Control  Our control framework uses virtual force based control techniques, which provide a convenient method to specify the desired overall effects the controller needs to achieve. A virtual force F implicitly models an external force needed to act on part of an articulated figure, and can be translated into a coordinated set of internal torques by using the Jacobian transpose, τ = J T F[61]. A base link and an application link must be specified for each virtual force, and internal torques will be computed for the chain of joints connecting these two links. There are three types of virtual force control in our framework. First, during leg swing, virtual forces are used to compensate for gravity force on each link of the swing leg. This simplifies the foot planting and enables low-gain foot trajectory tracking. Secondly, in order to stabilize the motion in coronal plane, we require a leg frame to shift its weight to the side of stance leg prior to and during the swinging of the other leg. To achieve this, a lateral virtual force is applied to the center of mass of the leg frame, using the stance leg as base link. When both legs are in stance, the virtual force is evenly distributed to both legs. The third application of virtual force is to adjust the CoM speed of the gorilla. A virtual force is calculated according to the error between current CoM speed and its desired forward speed. The virtual force is applied to front and back leg frames. This is equivalent to asserting a forward pushing force to the two leg frames when the CoM speed is 27  lower than desired speed.  3.1.4  Desired Pose PD Control  As noted by zoologists, most terrestrial locomotion requires that animals elevate their torso above the ground surface and support their body weight using their limbs. While the gait generator guides the active locomotion control, being able to balance is also essential to simulate a realistic animal motion. Our balance control is realized by foot planning algorithm based on an Inverse Pendulum Model (IPM) [15].  Figure 3.4: Invert pendulum model diagram[15] Figure 3.4 shows the basic principles of IPM. The central idea is that the sum of kinematic and potential energy should be preserved, i.e., 12 mv2 + mgh = 21 mv 2 + mgh . The step length d is related to the two heights of the leg origin h and h by h2 + d 2 = h 2 , where h is the fully extended length of the leg. The velocity is assumed to be zero when the leg reaches the highest point. The required step length can then be solved. One assumption of the IPM is that the leg length is constant during the step. While this is not exactly accurate, it serves as a sufficient approximation to plan 28  the foot placement in order to maintain balance. In our implementation we apply the IPM to both sagittal and coronal planes. Even after the orientation of the stance hip and the location for foot placement is determined, the desired pose for the limb is still not fully determined. Since the limbs are modelled with two or three linked rigid bodies, fixing the endpoints still leaves many link configurations as possible solutions. The inverse kinematic component of our system ensures that the changes in joint angles are minimized from previous states. With the desired leg poses from inverse kinematics, and some control over the spine configuration, the desired pose for the whole character is known. PD controllers are used to drive the joints towards the desired angles. The control torques induced by applying the virtual forces are simply combined with the PD control torques to give the final input torques to the forward simulation.  3.2  Controller Modifications for Gorilla Morphology  Gorillas have a much larger body mass compared to that of a dog. Their body size is also much larger. Since we are controlling an articulated figure approximating a gorilla skeleton, morphological differences have a significant influence on the controller construction. Figure 3.5 shows the dog skeleton and the gorilla skeleton in comparison. There are three significant differences in their skeletal configurations. First, while the front legs and rear legs of a dog are roughly the same distance apart, the shoulders of a gorilla are further apart than the hips. When stepping with its arms, a gorilla tends to experience more lateral weight shifts. Second, the gorilla arms are longer than their legs, whereas the four limbs for dogs are about equal length. During stance or locomotion, the gorilla shoulders are elevated higher than the hips, causing the torso to be pitched upwards. Third, the way a gorilla’s hands and feet touch the ground are quite different from that of the dog paws. For the front limbs, gorilla uses the knuckle walking unique to primates, where the fingers curl so the knuckles and front portion of the fingers support the weight. With rear legs, the sole is completely in contact with the ground, whereas the dog counterpart for heels are generally arched up and away from touching the ground.  29  (a) Dog  (b) Gorilla  Figure 3.5: Comparison of dog skeleton(a)[75] and gorilla skeleton(b)  (a) Dog  (b) Gorilla  Figure 3.6: Comparison of dog model(a) and gorilla model(b)  30  With the differences mentioned above, various modifications are required to apply the quadrupedal controller framework to gorilla model. We progressively modify the control strategies developed for the dog for our gorilla model while observing how the simulation behaves.  3.2.1  Gorilla Standing Controller  Most legged locomotion on land requires the animal or character to support its own weight by propping its torso up using limbs, so achieving a standing pose serves as a foundation for locomotion of any kind. Another reason for using the standing pose as the starting point is that it serves as a sanity check for the PD controller coefficients throughout the model. Only when the PD gains are set to reasonable values matching the body weights, can the PD controller be applied in meaningful ways to control the poses of articulated figure. Since standing is composed of a static pose, not strictly a motion, the controller for standing is simple. The main task of the standing controller is to balance the gorilla on its four limbs, with a natural-looking pose. One note about the standing control is that, a quadrupedal articulated figure with joint limits can sometimes be propped up passively on its limbs when the joints on the limbs reach their limits. In this case, the static pose is not achieved with active control, but through passive joint constraint enforcement. In our implementation, our model has joint limits that allow for a wide range of motion, so the standing pose must be reached by active torque application. In the initial experiments, we observed that the gorilla could not maintain a standing pose and collapsed to the ground, as seen in Figure 3.7. It was clear that the torque generated by PD controllers could not support the gorilla body weight. To fix this, we scaled up the PD gains roughly according to how much larger the mass of gorilla model is compared to the dog model. After the PD coefficient adjustments, the gorilla can stand on its four feet stably. However, as seen in Figure 3.7, the standing pose of our gorilla model is very different from a real gorilla’s natural stand pose. With their natural standing pose, the front arms are almost fully extended and spread further apart. This requires the shoulders to raise higher and the torso to pitch up from horizontal position, as one  31  Figure 3.7: Gorilla standing with adjusted PD gains of the morphological differences mentioned above. To fix this problem, the desired pose for the standing state needs to be modified. To raise the upper body, we increase the desired height of the front leg frame, which is included in the leg frame properties. After the increase, the natural height of the shoulder leg frame is 1.2m, and the hips leg frame has a natural height of 0.8m. This height difference can roughly achieve the natural standing pose of a gorilla. The poses of individual limbs are determined by the root position of the leg frame the leg belongs to, and the foot placement locations. Spreading the legs further apart can be achieved by increase the stepping offsets of the front feet, or in our case, hands. With some trail and error, we found the front arms look natural when the foot planting location is about 1m apart. After the adjustments, the gorilla can stand in balance Figure 3.8  3.3  DS-walk Gait Controller  As mentioned in Chapter 2, the two most common gaits that gorillas adopt are the diagonal sequence walking gait and the trot-walking gait. We begin by designing a controller for the DS walk. Similar to the standing controller design, we adopt the basic control strategies from [16]. Emphasis in our description is given to the specific adaptations required to apply this control framework to our gorilla model.  3.3.1  Initial Modifications  As mentioned in the system overview section, the periodic locomotion is mainly regulated by the locomotion parameter set that the gait generator loads for a given 32  (a) real  (b) model  Figure 3.8: (a) Natural gorilla stance; (b)Simulated gorilla stance gait. Therefore, to control the gorilla model, the gait parameter set needs to be modified. Leg frame orientations: One of the most important factors controlling the gross posture of the quadruped model is the desired orientation of the front and rear leg frames, more specifically the orientations of the root links of the two leg frames. The orientation is decomposed into pitch, yaw, and twist angles, each controlled with a separate variable. The femur and humerus are the child links of shoulder joints and hip joints respectively, and they are oriented relative to their parents. The orientations of the leg frame roots have a significant influence on the leg poses. The orientational difference between the front and rear leg frame root also determines the shape of the spine, which evenly distributes the rotational difference between the spinal segments. These orientations are encoded as the deviations from the standard pose, where the femur and humerus are at right angle with a horizontally aligned spine. In the dog model, the front and rear leg frames are roughly at a right angle to the spine, whereas the gorilla needs to rotation the front and rear leg frame backwards so the upper body can be elevated during locomotion. A diagram of initial and actual pitch angles in standing mode is shown in Figure fig:leg frameOriens. Footfall patterns: To simulate the DS walking gait, we modify the footfall pattern graph according to the gait definition. We design the slow speed walking 33  (a) Standard pose  (b) Stable standing  Figure 3.9: (a) Leg frame orientations in standard pose; (b)Leg frame orientations for stable standing gait as a sequence of foot lift and foot placement. At any given time during the gait cycle, only one foot is in swing mode, with the other three planted on the ground. This style of walking is stable, but looks unnatural and became unstable with an increased speed. Observations from zoological studies suggest that the next foot lift usually occurs before the striking of the previous foot in the sequence. Therefore, we design another version of the footfall pattern for a higher walking speed, where the swinging phases overlap each other. The resulting synthesized footfall pattern is a linear interpolation between the slow and fast versions. This parameterizes the walking speed of the gorilla. Desired CoM position and offset: Compared to the dog model, the upper body of the gorilla is heavier than its lower body. As a result, the computed CoM is closer to the front than the geometry center of the model. The desired position of CoM is controlled by a weighted sum of foot planting locations. For the dog, where its body weight is more or less evenly distributed between upper and lower body, the desired position is just an average of the four foot placement positions. For the gorilla however, using averaged foot position will requires the body to shift backwards, and this often makes the standing pose unstable. We adjust this by  34  adding an offset towards the front in the sagittal direction, and reaching a more stable standing pose.  3.3.2  Center of Mass Control  When we tested the walking controller with the initial changes, the gorilla would only shuffle its steps backwards, and become unstable and fell down after several steps. This is a problem with the speed control on CoM. In our control framework, only the input torques to the articulated joints are controlled, so there is no direct mapping between the desired CoM velocity and the torques required. This problem is solved by applying a horizontal virtual force to the CoM, which is proportional to how much the current CoM speed deviates from the desired speed. This virtual force is then realized by requiring the front and rear leg frames to contribute the required force. This force is generated applying a special PD controller to the CoM. The proportional coefficient is set to zero, so the force generated is only determined by the difference in velocity. We experimentally set the derivative coefficient to kv = 300Ns/m.  3.3.3  Knuckle Walking  During initial testing, another detected problem is that the arms often continue to swing after the swing phase has ended. The swinging arm is not considered to have landed for a short period after it touches the ground. The controller framework considers that a limb has landed when there are significant contact forces between the ground and the particular ground-touching link. The contact forces of the landing arm were by default not registered by the control framework, causing the arm to continue the swing motion. Upon closer observations, the problem was identified to lie with the contact force summation. In the physics simulation, there are usually multiple contact points when two rigid bodies touch, and contact forces can be queried at these contact points. For the dog feet, two contact points were defined: the toe at the front of a foot, and the heel at the back. Since dogs mostly only land on the front of their paws, and arch their rear of their feet up, the contact force on the heel is  35  not included in computing the summed contact force. The morphology is different during the knuckle-walking for gorillas. We model the knuckle joints and represent the fingers below the knuckle as a flat box. The finger link curls inwards and serves as the main link touching the ground. Without modification, the contact points at the knuckle of the finger box was considered as “heels”. Therefore, when the gorilla hand lands but only contact force is generated at the knuckle, the force is ignored so that the combined contact force is zero, deeming the arm still has not landed. After finding the source of this problem, the fix was to simply include the contact force at “heel” when collecting contact force for checking arm landing. The arm is considered to have touched down when the knuckles touch the ground while the finger tips do not.  3.3.4  Foot Trajectory  Another problem uncovered during testing is that, toward the end of the swinging phase, the swing foot will fall rapidly and strike the ground hard. From the impact of the strike, the swinging leg will bounce up, and often bring the other leg in the leg frame into flight as well. This made the locomotion very unstable. Analysis revealed that one critical subcomponent was severely disrupting the stability of the gorilla walk. The desired height of the swinging foot is determined by a 1D trajectory. For the reference dog model, the base height of the foot trajectory is rather low, given the small dimensions of the paws. Without modification, applying the same trajectory to the gorilla foot essentially requires that the bottom of the feet pass beneath the ground surface. As the input to the IK calculations, the unreasonable low desired foot position results in a more straightened leg configuration, which was tracked by PD controllers on the joints. In actual simulation, this manifested as a large pushing down motion of the swinging foot, at the beginnings and ends of the swinging phases. The jumping motion generated before toe-off and right before touching down disturbs the overall balancing regulations, causing the gorilla to fall after several steps. Fixing this problem is straightforward. With the new height values in the foot trajectory, the IK results for the swinging leg switch smoothly from the stance  36  phase to the swinging phase, without much disturbance, and the gait becomes much more stable. Due to the different geometry of the knuckles and the feet for the front and rear limbs, the height trajectory for each needs to be designed separately. This is a good example of the difficulty of working with articulated character control. Without proper configuration, even a deceivingly trivial aspect of the controller system can greatly disrupt the overall behavior of the system, causing unexpected problems.  3.3.5  Shoulder Collapsing: Adding the Shoulder Twisting  When a leg is in swing phase, the controller framework drives the CoM of the leg frame in question towards the opposite leg. Therefore, a larger fraction of the weight would be supported by the stance leg, making the stepping motion more stable. However, when we test the gorilla walking, the shoulders often fall towards the side of the swinging leg, as seen in Figure 3.10.  Figure 3.10: Arm stepping failing from the shoulder weight In the original control framework, the desired position of the leg frame determines the virtual force that will be exerted on the leg frame CoM, and this virtual force only shifts the CoM. No pose control can be achieved by controlling this parameter. Due to the wide distance between the shoulders in the gorilla morphology, a control strategy purely based on shifting the CoM of the leg frame seems not to be sufficient, and thus some pose control is also needed. In the desired pose settings, the shoulder twist controls the lateral rolling of the shoulders, and can be controlled to lift the shoulder of the swing leg. Instead of be37  ing fixed to a default value, which induces no twisting, we modify it to follow a 1D trajectory depending on the phase in current gait cycle, where the evaluation of the trajectory is the desired amount of shoulder twisting. The trajectory is defined by several key data points, and data points are evaluated linearly along the trajectory. We experiment with the amount of maximum roll for the shoulder frame. If it is too small, the twisting does not sufficiently compensate for the falling motion; if it is too large, the the swing shoulder will be pushed higher than the stance shoulder, and the twisting of the shoulder frame will be passed through the spine and perturb the hip motion.  3.4  Trot Gait Controller  Trotting, originally defined for the horse, is a dynamic gait where the diagonal legs swing together, with a short airborne phase between stance phases. Gorillas adopt a less dynamic version of this gait without the in-air suspension between foot strikes. In this walking trot gait, there are short periods between the steps where all four feet are planted on the ground. With our representation, the foot pattern graph for walking trot looks like Figure 3.11.  Figure 3.11: A gait graph for trotting walk In a walking gait, there is only one leg in swing phase most of the time, except during the brief transition times when the previous leg is about to strike ground and the next swinging leg starts lifting-off. The pose of the leg frame with the swinging leg can be controlled by both the stance leg in that leg frame, and through the spine from the other leg frame with two legs both planted. Because a walking trot requires the two diagonal legs to swing at the same time, each leg frame has to rely on only its stance leg to adjust its posture. Therefore, trotting is less stable than the walking gait. In our previous experiments with walking, shorter swinging periods in the gait 38  cycle leave the legs more time to be planted and provide support, so generally produce a more stable motion. To begin the design of the trotting gait, we set the footfall pattern with short swinging periods, which is about a quarter of the gait period. However, the gait was not stable despite the short swinging periods. Although the controller applies virtual force to the stance leg in the rear leg frame, the leg frame still leans towards the swinging leg, causing swinging foot to step outwards, and the rear feet further and further apart. With some trail and error, we found that lowering the desired height for the front leg frame will improve the stability of the trotting walk. After the adjustment, the shoulders are still higher than the hips, but lower than the height for the walking gait. An explanation is that the diagonal stance legs are harder to balance with the torso at a large pitch angle. We also refine the footfall pattern for the trotting according to speed. The initial shorter swinging periods are used when the speed of the trotting is low. At a higher speed, the swinging periods will last longer. Therefore, we interpolate this swinging period between a maximum and minimum value, so that the gorilla spends more time swinging diagonal leg pairs, and less time gaining support from all four limbs at a higher speed. We find that it is more stable to start from a low speed, and gradually accelerate to a faster trot. Starting from a fast trot directly may result in falling after several strides.  3.5 3.5.1  Results Gorilla Model  The skeletal dimensions of our model are generated to match a given 3D model. The process of the model generation will be detailed in next chapter. The total weight of our model is 157kg, similar to the weight of a light-weight adult silverback gorilla. The shoulder height at a natural standing pose is 110cm, and the hip height is 70cm. As shown previously in Figure 3.12, the articulated gorilla model has 21 links in total. We used 4 links for both the arms and legs. The last link on the arm is a rigid body modelling the fingers of the gorilla, and this is the part touching the 39  Figure 3.12: Gorilla model joints ground in knuckle walking. Another note is that, while each arm has 3 links to reach the ground, each leg only has 2 links in vertical support. As in a realistic gorilla gait, the soles of their feet completely touch the ground. This mainly affect how IK is done for the limbs. Specifically, the arms needs 3-link IK whereas 2-link is sufficient for the legs. We simplify the 5 link spine used for the dog and use only 3 links to model the spine, where one link connects the roots of the front and rear leg frames. Here we approximate the effects of virtual springs in the dog spine model with desired pose based PD control. This simplified approach is effective for modeling slower walking gaits.  3.5.2  Gaits Variations  As mentioned earlier, we implemented the DS walking gait and walking trot gait. Examples of the gaits can be seen in the following figures, DS walking in Figure 3.13 and walking trot in Figure 3.15. The walking gait can be maintained robustly for a saggital velocity lower than 0.6m/s, and the walking trot is stable at any speed between 0 to 0.6m/s. The gorilla can start walking from standing still with either of these two gaits.  40  Figure 3.13: DS walking gait side view  Figure 3.14: DS walking gait front view Figure 3.17 shows the location of the foot planting locations during a slow and fast walking trot. As seen in the figures, the distance between the rear feet marks tend to be closer together than that of the front knuckles. To our knowledge, there has been no study on the relative positioning of a series of gorilla foot placements. Thus it is unclear how biologically accurate the foot planting in our simulation is.  41  Figure 3.15: Walking trot gait side view  Figure 3.16: Walking trot gait front view  3.5.3  Robustness  To test the robustness of our controllers, we apply perturbations with external forces on the gorilla model. To simplify the testing, we apply an external force to the pelvis link of our gorilla model, and restrict the duration to be 0.5s. The pushing force always aligns with the positive x-axis, which is to the left of the gorilla model in our testing environment. For the DS walking and trotting walk gaits, we experiment to find the maximum push force the gorilla can withstand under 42  (a) trackSlow  (b) trackFast  Figure 3.17: Comparison of foot planting locations during a slow trot(a) and fast trot(b)  Figure 3.18: External force for robustness testing various speeds. The results are shown in Table 3.1. Note that the force magnitude is sampled coarsely to give estimations of the maximum forces our controllers can withstand. When the listed amount of force is applied on a given gait and speed, the gorilla will reliably recover from the push. The results show that walking at a lower speed is more stable than at a higher speed. Also, the trotting walk is in general more robust to external push than the DS walk. Another criterion to measure the robustness is how well the controllers can handle a sudden change in velocity. During testing, we observe that as long as it is 43  Gaits DS-Walk Trotting Walk  0.1 200 220  Speed(m/s) 0.2 0.3 0.4 180 170 150 190 185 165  0.5 110 150  Table 3.1: Estimations of maximum push forces(N) for gaits at different speeds within the range of possible velocity variation, the gorilla can handle any amount of sudden velocity change. However, the actual gait speed gradually change to the new desired velocity rather than changing quickly. It usually take one or two gait cycles for the speed adjustments. For example, to speed up from 0.1m/s to 0.4m/s may take couple of seconds. This behavior is to be expected given the mechanics of our controller framework. As mentioned previously, the overall speed of the gorilla is regulated by a virtual force computed according to the error between the current CoM velocity and the desired velocity. This virtual force is then summed with the virtual force required for controlling the leg frames, giving the net virtual forces the leg frames should realize. Therefore, a sudden change in desired velocity will incur a larger velocity error, and increase the CoM virtual forces contributing to the leg frames. The leg frames will be propelled forwards more with the increased torques, resulting a gradual increase in the velocity.  44  Chapter 4  Character Rigging and Motion Pipeline In this chapter, we describe the export pipeline we developed in order to be able to take animation results from the gorilla simulations and apply them to a fully rigged 3D geometric model, which is then rendered in Maya. We purchased the 3D gorilla model from TurboSquid, a 3D model vendor[1]. Our gorilla model consists of a 3D skin mesh of 227658 polygons and an associated texture map, void of any underlying skeleton information. The skin mesh is shown in Figure4.1. Our task was to specify the skeleton controlling the motion of the gorilla mesh.  Figure 4.1: Static gorilla skin mesh in Maya  45  4.1  Rigging the Gorilla Skeleton  In order to export the synthesized motion from our simulation framework to Maya, it is necessary that the articulated figure in our framework has the same morphology as the given mesh geometry we will animate in Maya. Only then will the motion data generated from the simulation be meaningful for animating the Maya model. This problem may be approached in two ways. We could construct the gorilla skeleton in our C++ simulation framework, and create a Maya-rigged articulated figure mesh that confirms to the dimensions used in the simulation. In this case, a surface skin mesh corresponding to the Maya skeleton would have to be created as well. The other way of solving the morphology consistency problem is to create the skeleton for the given geometry in Maya, and then run control simulations on an articulated figure with the same dimensions. Carried out correctly, these two approaches can produce similar end results, so the choice depends largely on the ease of execution and the available resources. With the purchased gorilla model, we decided to adapt the simulated character dimensions accordingly. This process more closely approximates the animation work flow in practice, thus can test the viability of our system in assisting the animator.  4.1.1  Maya Joint Tool  In Maya, the building block for constructing an articulated character skeleton is a control element called “joint” tool. As seen in Figure 4.2, a joint tool in Maya represents the combination of a translation from the origin of the current coordinate frame, and a rotation to the next coordinate frame. In a skeleton representation, the translation vector from the parent joint to the child joint symbolize the bone link. Therefore the length of the bones are controlled by fixing the translation attributes for the joint tools. The attributes of a Maya joint includes angles around the major axis, and these attributes determine the rotation from the current coordinate frame to the child frame generated by the current joint. A skeleton composed of joints can be animated by keyframing the rotation attributes of its joints. While Maya provides many flexibilities about how 3D rotations are interpolated, without proper con46  Figure 4.2: Joint tool in Maya figuration the interpolation may produce undesirable effects. Maya allows both interpolation by Euler angles, and interpolation by quaternions. To achieve smooth rotating motions for the joints, we use the quaternion interpolation.  4.1.2  Rigging the Simplified Gorilla Skeleton  How we rig the gorilla skeleton largely depends on our goals. More joints will produce more detailed motions and smoother skin deformation for the Maya model, but the additional joints will increase the DoF for the articulated figure in simulation, and thus require more complex controller algorithm. For simplicity, we decide to specify a minimal number of joints in the Maya model, with an emphasis on the joints important for locomotion. To start rigging, the initial joint tools need to be created in one of the orthographic viewports, with one of the dimensions fixed. In our case, the joints along head and spine of the gorilla are the first set of joints we want to create. Maya provides perspective, side, top, and front viewports (Figure 4.3a, 4.3b, 4.4a, 4.4b) on the model. With the skin mesh aligned to the world coordinate axes, side view of the gorilla model displays the sagittal projection of the skin model, providing a natural point of view to position the joints along the central axis of the gorilla, as seen in Figure 4.3b. After constructing all the joint tools in the side viewport, the bones created were positioned on the sagittal plane by default. the joints for the limbs need to be shifted laterally into the proper position. It is often easier to select one joint in the side orthographic viewport, and then jump to the top or front view to move 47  (a) perspective  (b) side  Figure 4.3: Perspective view of one-side rig (a) and side view of one-side rig(b)  (a) top  (b) front  Figure 4.4: Top view (a) and front view (b) of one-side rig  48  the selected joint to fit the skin mesh, as seen in Figure 4.5. Figure 4.3a shows the results after positioning the joints to one side of the gorilla model. With one side of the skeleton rigged, we use the mirror skeleton operation to generate the other side of the skeleton, so the entire skeleton is symmetrical with respect to the sagittal plane.  4.1.3  Dummy Joints for Frontal Skin Support  There was one problem for the skeleton described so far to work with the gorilla mesh. In an anatomically accurate gorilla body, the front of chest and belly should be supported by the rib cage. Since the rib cage does not participate in the locomotion, we would like to simplify the model for upper torso and lower torso as rigid bodies. However, for skinning operations, deforming skin mesh should be controlled by joints in the proximity to get desirable effects. With the current rigged skeleton, the deformation of the frontal mesh on gorilla torso was incorrectly controlled by either the spine joints or the limb joints, whichever has the minimal distance. To solve this problem, we added several dummy joints stemming from the spine joints to just below the frontal torso mesh. These dummy joints would serve as the reference points in skinning operations, so the front of the torso does not collapse or deform erratically during locomotion. Figure 4.6 shows the rigged skeleton with the dummy joints. Later when we animate the Maya skeleton with output from our simulation, these dummy joints are left uncontrolled, which is the correct behavior if we treat the torso as a whole rigid body.  Figure 4.5: Move joint in coronal direction  49  Figure 4.6: Fully rigged skeleton with dummy joints At this point in the rigging process, one side of the skeleton is completely specified. Because the gorilla model is symmetrical, we simply mirrored the joints we created to the other side, forming a complete articulated skeleton for the gorilla mesh.  4.1.4  Assigning Physics Properties for Simulation  With the skeleton fully specified in Maya, we need to export it to the C++ framework in order to construct the articulated figure with identical structure and dimensions. While it is possible to automatically export the skeleton specifications to our framework with some scripting, for simplicity we decided to manually construct the data file based on the bone dimension data specified in Maya. Besides the dimensions of the bones, we also need to specify some physical properties, such as mass and moment of inertia (MOI), for the links in the articulated character so that them will behave accurately in the physics simulation. For the mass assignment, we assumed a uniform density for the gorilla body, so the mass of body parts is proportional to their volumes. The links of the gorilla figure were approximated with simplified geometry primitives, whose length and diameters were assigned so that the volumes of the geometry primitives fit the gorilla mesh as well as possible. The mass can then be calculated as the density times the volume of the geometry primitives. For MOI calculations, the geometry of the gorilla model is approximated using cuboids. In Figure 4.7, the three dimensions of the cuboid are denoted by height h, 50  Figure 4.7: MOI notations for a solid cuboid width w, and depth d. For each link, the scalar forms of MOI for rotation around each axis can be calculated with the well-known formula: 1 m(w2 + d 2 ) 12 1 Iw = m(h2 + d 2 ) 12 1 Id = m(h2 + w2 ) 12 Ih =  where m is the mass of the rigid body link. With the physical properties specified, the skeleton we rigged in Maya environment is now fully modeled in our C++ simulation framework. The control strategies and algorithms specified in Chapter 3 can be applied to this gorilla model to synthesize locomotion.  4.2  Skinning  To let the skin mesh move with the underlying skeleton, the skin mesh needs to be bound to the skeleton. In animation terminology this is called skinning, where the deformation of the character skin mesh is controlled by the position of the skeleton. Each mesh vertex is usually associated with several control points on the skeleton, and a weighted sum of the positions of the control points determines the mesh vertex position. Therefore, the task of skinning effectively consists of determining a subset of control points for each vertex, and assigning proper weights for the vertex position calculation. 51  The skin meshes for an articulated figure usually consists of thousands of vertices, therefore manually assigning vertices and weights for each vertex is clearly impractical. In modern animation software like Maya, this process is largely automated. The joints in the rigged skeleton serve as the control points to deform the skin mesh, and an initial binding assignment is given by running a built-in smooth binding function. In this default assignment, each vertex is positioned by a certain number of the controlling joints, according to parameter setup. Figure 4.8 shows the results of the default smooth binding.  Figure 4.8: Different views of gorilla model after binding By default, the selection of the control joint points is done purely based on the distance from each skin vertex. This may results in some undesirable effects. An example of this can be seen in Figures 4.9 and 4.10. Figure 4.9 shows the original skin mesh in binding pose. When the selected back joint rotated in Figure 4.10, a small portion of the skin on the leg protruded and moved with the torso, as indicated by the red arrow. This is because the dummy joint embedded in the torso is closer to the protruding part of the skin mesh, hence it has a bigger influence in determining the position of these skin vertices. This is clearly an artifact, since the skin on the thigh should be controlled by the corresponding hip and knee joints. Therefore, finer modification of the skin weights is needed in situations like this. 52  Figure 4.9: Skinning artifacts: before joint rotation  Figure 4.10: Skinning artifacts: after joint rotation Maya provides tools to visualize the influences of control joints to the skin vertices, and to modify the assignment and weights interactively. With problematic region selected, the joints having the largest weights can be identified (Figure 4.11a). An interactive tool similar to a paint brush can be used to increase or decrease the weights of control joints on the selected batch of mesh vertices, as shown in Figure 4.11b. Using this tool, we can finesse the set of joints that control regions of the skin. Figure 4.12 shows that the skin patch previously controlled by the dummy torso joint now deforms correctly with the skeleton.  53  (a) weightInf  (b) weightBrush  Figure 4.11: Visualization of joint influence(a) and skin weight brush tool(b)  Figure 4.12: Skinning artifacts: fixed  4.3  Motion Data Pipeline  To animate the articulated gorilla model, we need to export the motion data from our simulation framework, and bring it into Maya environment. The details of how the motion data pipeline bridging C++ simulation environment and Maya environment should be implemented depend on several aspects of the system setup. These include the encoding methods for joint orientation in our controller framework and Maya environment, the flow of program execution for our C++ simulation, and the capability of Maya to modify attributes. In our physics simulation framework, the joint orientation is represented as unit quaternions, while in Maya, the orientation of the joints are specified by Euler  54  angle attributes. Given a unit quaternion q = [q0 q1 q2 q3 ], the appropriate Euler angles are given by:     0 q1 +q2 q3 ) arctan 2 2(q 2 2 φ 1−2(q1 +q2 )      arcsin(2(q θ  =  0 q2 − q3 q1 ))  0 q3 +q1 q2 arctan 2 2(q ψ 1−2(q2 +q2 ) 2  3  where the [φ θ ψ] are the Euler angles. The conversion is carried out in the C++ simulation program, and the Euler angle values are written into a text file. p, p˙  F, τ → p, p˙ We develop a script in the Maya Scripting Language (MEL) to load the data and the assign the proper values to each joint in the gorilla skeleton. The MEL script is included in the appendix. Finally, we use the motion data imported into Maya environment to control the fully rigged gorilla model, and then render the frames of the gait simulations. Figure 4.13 shows rendered colour plates.  55  Figure 4.13: Diagonal sequence walking rendered in Maya  56  Chapter 5  Conclusions In this thesis, we have reviewed the knowledge and principles of primate quadrupedalism, and investigated how the quadrupedal controller framework previously designed for a dog model can be adapted for a gorilla model with significantly different morphology. We experimented by modifying the controller framework to control an articulated gorilla model rigged from a 3D surface mesh. Naturally occurring gorilla quadrupedal gaits were synthesized by the adapted controllers, and its motion data exported to Maya environment for rendering. Previous zoological studies provide us with insights into how primates, more specifically gorillas, walk on all fours, and directly influence how we design the controllers. We used the original dog character as a reference, and addressed the difference of a gorilla character in terms of morphology by modifying the relevant control parameters. With a much wider shoulder frame elevated higher by their longer fore limbs, there are more lateral offsets for the center of mass of the shoulder frame during walking, therefore more compensation by shifting the weight to the opposite direction is required to keep balance. And with the shoulders elevated higher than the hips, the orientations of the spinal links need to be modified. We regulate the shape of the spine by controlling the pitch angles for the roots of the shoulder and hip frames. We also model knuckle walking observed in gorilla gaits with knuckle joints that curl backwards, instead of the forward extending front paws for a dog. In our controller system, a centralized module generates desired poses accord57  ing to the relative phrase in the current gait. Instead of specifying angle trajectories for each joint, key properties of gait cycle are controlled, and the specific joint configuration is derived from inverse kinematics. Virtual force control is applied to fine tune the motion and to compensate for gravity and produce low-gain motions. Once the original framework was adapted to the gorilla model, we successfully devised the gait controllers for DS walking and trot walk. To validate the usefulness of our quadrupedal control framework in practice, we utilized the motion generated in the task of animating a gorilla model in Maya environment. A gorilla skin mesh was used as reference to develop a skeleton, which was then used to specify the articulated figure in C++ simulation. The motion data in the form of joint orientation time sequences were then loaded back into Maya by MEL scripting to animate the gorilla. Skinning techniques were also used so that the skin mesh deformed with the skeleton motions.  5.1  Limitations and Future Work  While the gorilla can walk at slow to medium speed in our simulation, the current system has many remaining limitations. The current gait controllers are manually designed, and the naturalness and robustness of the synthesized gait motions can clearly be improved. We feel that applying optimization techniques to automatically tune the controller parameters may significantly improve the robustness of the controllers. Currently the gorilla can walk along a straight line in the sagittal direction. Since gorillas in nature exhibit omni-directional locomotion behaviors, how to design controllers to achieve efficient and agile turning motion is still an open problem. For the gorilla skeleton, we modelled the spine with only 3 segments, where the dog used 5 links. We omitted the virtual springs attached to the spine links in the dog model. While this shows the controller framework produces plausible motions without the back flexing, the robustness of gorilla gaits may have been negatively impacted. While our work extended the domain of application of the original quadrupedal control framework by applying it to a gorilla character, there remains a large space where this problem can be further investigated. For the controlling strategy, there  58  are no direct feedback between the front limbs and the rear limbs, except through the relative positioning of the spine. Some full-body dynamic motions may call for coordination between the front and rear limbs. Investigating possible mechanism to achieve this is another interesting direction. Given the quadrupedal and bipedal capabilities of gorillas, we have only explored the most common quadrupedal locomotion gaits. Possible ways to incorporate a bipedal gait controller into this framework remains to be explored. Robustly transitioning between bipedal and quadrupedal gaits is another challenge. There is still much unknown about the relationship between form and function for animal motions. How to build a truly adaptive controller framework, which automatically adjusts the controller parameters according to input morphology, is still an open problem. Although much differs from the original dog model, the gorilla model we used in simulation still keeps a fixed morphology. The modified controllers in our work were designed to work with this fixed morphology. Nevertheless, given the increasing demand of virtual realism and the developments of more accessible controller frameworks, the physics based animation approach will continue to advance and create more believable animal characters.  59  Bibliography [1] Turbosquid.com. http://http://www.turbosquid.com. Accessed: 26/10/2010. → pages 45 [2] J. Aleotti, S. Caselli, P. Bracchi, and S. Gosi. Physically-based simulation of the spine in dog walking. In Intelligent Robots and Systems, 2008. IROS 2008. IEEE/RSJ International Conference on, pages 2283 –2288, 22-26 2008. → pages 17 [3] A. S. J. ALEXANDER, R. McN. A dynamic similarity hypothesis for the gaits of quadrupedal mammals. Journal of Zoology, 201(1):135–152, 1983. → pages 8, 9 [4] R. M. ALEXANDER. Estimates of speeds of dinosaurs. Nature, 261(5556): 129–130, 1976. → pages 9 [5] R. M. Alexander. The Gaits of Bipedal and Quadrupedal Animals. The International Journal of Robotics Research, 3:49–59, 1984. → pages viii, 4, 5 [6] R. M. Alexander and G. M. O. Maloiy. Stride lengths and stride frequencies of primates. Journal of Zoology, 202(4):577–582, 1984. ISSN 1469-7998. → pages 23 [7] R. M. Alexander, V. A. Langman, and A. S. Jayes. Fast locomotion of some african antelopes. Journal of Zoology, 183:291–300, 1977. → pages 10 [8] Autodesk Inc. Autodesk maya. → pages 2, 14 [9] Bethesda Softworks. Elder scrolls: Oblivion. → pages 1 [10] A. Bruderlin and L. Williams. Motion signal processing. In SIGGRAPH ’95: Proceedings of the 22nd annual conference on Computer graphics and interactive techniques, pages 97–104, New York, NY, USA, 1995. ACM. ISBN 0-89791-701-4. → pages 12 60  [11] H. H. F. Buchner, H. H. C. M. Savelberg, H. C. Schamhardt, and A. Barneveld. Inertial properties of dutch warmblood horses. Journal of Biomechanics, 30(6):653 – 658, 1997. ISSN 0021-9290. → pages 8 [12] M. Buehler, R. Battaglia, A. Cocosco, G. Hawker, J. Sarkis, and K. Yamazaki. Scout: a simple quadruped that walks, climbs, and runs. volume 2, pages 1707 –1712 vol.2, may. 1998. → pages viii, 19, 20 [13] M. E. BV. Home - motek entertainment. http://www.motekentertainment. com/index.php. → pages 12 [14] K. Byl, A. Shkolnik, S. Prentice, N. Roy, and R. Tedrake. Reliable dynamic motions for a stiff quadruped. In O. Khatib, V. Kumar, and G. Pappas, editors, Experimental Robotics, volume 54 of Springer Tracts in Advanced Robotics, pages 319–328. Springer Berlin / Heidelberg, 2009. → pages 22 [15] S. Coros, P. Beaudoin, and M. van de Panne. Generalized biped walking control. ACM Transctions on Graphics, 29(4):Article 130, 2010. → pages viii, 28 [16] S. Coros, A. Karpathy, B. Jones, L. Reveret, and M. van de Panne. Locomotion skills for simulated quadrupeds. ACM Trans. Graph., 30:59:1–59:12, August 2011. → pages viii, 2, 3, 6, 24, 25, 32 [17] W. Duncan. Physical similarity and dimensional analysis. London:Edward Arnold, 1953. → pages 6 [18] Electronic Arts Inc. Spore. → pages 13 [19] H. Elftman. Forces and energy changes in the leg during walking. Am J Physiol, 125(2):339–356, 1939. → pages 8 ´ [20] Etienne Jules Marey. Le vol des oiseaux. G. Masson, 1890. → pages 11 [21] L. Favreau, L. Reveret, C. Depraz, and M.-P. Cani. Animal gaits from video. In SCA ’04: Proceedings of the 2004 ACM SIGGRAPH/Eurographics symposium on Computer animation, pages 277–286, Aire-la-Ville, Switzerland, Switzerland, 2004. Eurographics Association. ISBN 3-905673-14-2. → pages 12 [22] R. Featherstone. The Calculation of Robot Dynamics Using ArticulatedBody Inertias. The International Journal of Robotics Research, 2(1):13–30, 1983. → pages 16  61  [23] R. Featherstone. Robot dynamics algorithms. Springer, 1987. → pages 16 [24] R. Fleischer. Out of the inkwell: Max Fleischer and the animation revolution. University Press of Kentucky, 2005. → pages 12 [25] D. Gibson, N. Campbell, and B. Thomas. Quadruped gait analysis using sparse motion information. In International Conference on Image Processing. IEEE Computer Society, September 2003. ISBN 0-7803-7751-6. → pages 12 [26] M. Girard. Interactive design of 3-d computer-animated legged animal motion. In I3D ’86: Proceedings of the 1986 workshop on Interactive 3D graphics, pages 131–150, New York, NY, USA, 1987. ACM. ISBN 0-89791-228-4. → pages viii, 14 [27] M. Girard and A. A. Maciejewski. Computational modeling for the computer animation of legged figures. In SIGGRAPH ’85: Proceedings of the 12th annual conference on Computer graphics and interactive techniques, pages 263–270, New York, NY, USA, 1985. ACM. ISBN 0-89791-166-0. → pages 14 [28] T. M. Griffin, R. Kram, S. J. Wickler, and D. F. Hoyt. Biomechanical and energetic determinants of the walk-trot transition in horses. J Exp Biol, 207 (24):4215–4223, 2004. → pages 8 [29] R. Grzeszczuk and D. Terzopoulos. Automated learning of muscle-actuated locomotion through control abstraction. In SIGGRAPH ’95: Proceedings of the 22nd annual conference on Computer graphics and interactive techniques, pages 63–70, New York, NY, USA, 1995. ACM. ISBN 0-89791-7014. → pages 15 [30] R. Grzeszczuk, D. Terzopoulos, and G. Hinton. Neuroanimator: fast neural network emulation and control of physics-based models. In SIGGRAPH ’98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques, pages 9–20, New York, NY, USA, 1998. ACM. ISBN 0-89791-999-8. → pages 15 [31] F. Hardarson. Locomotion for difficult terrain. Technical Report TRITAMMK 1998:3, Dept. of Machine Design, Royal Institute of Technology, S100 44 Stockholm, Sweden, Apr. 1998. ISSN 1400-1179, ISRN KTH/MMK– 98/9–SE. → pages 21  62  [32] C. Hecker, B. Raabe, R. W. Enslow, J. DeWeese, J. Maynard, and K. van Prooijen. Real-time motion retargeting to highly varied user-created morphologies. In Proceedings of ACM SIGGRAPH ’08, 2008. → pages 13 [33] N. C. Heglund, C. R. Taylor, and T. A. McMahon. Scaling stride frequency and gait to animal size: Mice to horses. Science, 186(4169):1112–1113, 1974. ISSN 00368075. → pages 9 [34] H. M. Herr, G. T. Huang, and T. A. McMahon. A model of scale effects in mammalian quadrupedal running. J Exp Biol, 205(7):959–967, 2002. → pages 10 [35] M. Hildebrand. Symmetrical gaits of primates. American Journal of Physical Anthropology, 26(2):119–130, 1967. ISSN 1096-8644. → pages 23 [36] G. Hornby, S. Takamura, O. Hanagata, M. Fujita, and J. Pollack. Evolution of controllers from a high-level simulator to a high dof robot. In J. Miller, A. Thompson, P. Thomson, and T. Fogarty, editors, Evolvable Systems: From Biology to Hardware, volume 1801 of Lecture Notes in Computer Science, pages 80–89. Springer Berlin / Heidelberg, 2000. → pages 20 [37] F. Iida, G. Gomez, and R. Pfeifer. Exploiting body dynamics for controlling a running quadruped robot. In Advanced Robotics, 2005. ICAR ’05. Proceedings., 12th International Conference on, pages 229 –235, 18-20 2005. → pages 19 [38] A. J. Ijspeert. Central pattern generators for locomotion control in animals and robots: A review. Neural Networks, 21(4):642 – 653, 2008. ISSN 08936080. Robotics and Neuroscience. → pages 6 [39] D. C. Kar. Design of statically stable walking robot: A review. Journal of Robotic Systems, 20:671 – 686, 2003. → pages 19 [40] C. A. Klein, K. W. Olson, and D. R. Pugh. Use of Force and Attitude Sensors for Locomotion of a Legged Vehicle over Irregular Terrain. The International Journal of Robotics Research, 2(2):3–17, 1983. → pages 20 [41] J. Z. Kolter, P. Abbeel, and A. Y. Ng. Hierarchical apprenticeship learning with application to quadruped locomotion. In J. C. Platt, D. Koller, Y. Singer, and S. T. Roweis, editors, Advances in Neural Information Processing Systems 20, Proceedings of the Twenty-First Annual Conference on Neural Information Processing Systems, Vancouver, British Columbia, Canada, December 3-6, 2007. MIT Press, 2007. → pages 22 63  [42] I. Koo, T. Kang, G. Vo, T. Trong, Y. Song, and H. Choi. Biologically inspired control of quadruped walking robot. International Journal of Control, Automation and Systems, 7:577–584, 2009. ISSN 1598-6446. → pages 20 [43] L. Kovar, M. Gleicher, and F. Pighin. Motion graphs. In SIGGRAPH ’08: ACM SIGGRAPH 2008 classes, pages 1–10, New York, NY, USA, 2008. ACM. → pages 12 [44] P. Kry, L. Reveret, F. Faure, and M.-P. Cani. Modal Locomotion: Animating Virtual Characters with Natural Vibrations. Computer Graphics Forum, 2009. URL http://hal.inria.fr/inria-00384202/en/. Proceedings of Eurographics 2009. → pages 15 [45] E. I. Kugushev and V. S. Jaroshevskij. Problems of selecting a gait for an integrated locomotion robot. In IJCAI’75: Proceedings of the 4th international joint conference on Artificial intelligence, pages 789–793, San Francisco, CA, USA, 1975. Morgan Kaufmann Publishers Inc. → pages 21 [46] J. Laszlo, M. van de Panne, and E. Fiume. Interactive control for physicallybased animation. In SIGGRAPH ’00: Proceedings of the 27th annual conference on Computer graphics and interactive techniques, pages 201–208, New York, NY, USA, 2000. ACM Press/Addison-Wesley Publishing Co. ISBN 1-58113-208-5. → pages 18 [47] D. V. Lee, J. E. A. Bertram, Rory, and J. Todhunter. Acceleration and balance in trotting dogs. Journal of Experimental Biology, 202:3565–3573, 1999. → pages 8 [48] S. Makita, N. Murakami, M. Sakaguchi, and J. Furusho. Development of horse-type quadruped robot. volume 6, pages 930 –935 vol.6, 1999. → pages 20 [49] S. Marks, W. Conen, T. Kollakowsky, and G. Lux. Evolving autonomous locomotion of virtual characters in a simulated physical environment via neural networks and evolutionary strategies. In Preceedings of 3IA 2006, 2006. → pages 18 [50] S. Marsland and R. Lapeer. Physics-based animation of a trotting horse in a virtual environment. In Information Visualisation, 2005. Proceedings. Ninth International Conference on, pages 398 – 403, 6-8 2005. → pages 17 [51] R. B. McGhee. Finite state control of quadruped locomotion. SIMULATION, 9(3):135–140, 1967. → pages viii, 18, 19 64  [52] R. B. McGhee. Some finite state aspects of legged locomotion. Mathematical Biosciences, 2(1-2):67 – 84, 1968. ISSN 0025-5564. → pages 5 [53] R. B. Mcghee and G. I. Iswandhi. Adaptive locomotion of a multilegged robot over rough terrain. Systems, Man and Cybernetics, IEEE Transactions on, 9(4):176 –182, apr. 1979. ISSN 0018-9472. → pages 21 [54] M. McKenna and D. Zeltzer. Dynamic simulation of autonomous legged locomotion. In SIGGRAPH ’90: Proceedings of the 17th annual conference on Computer graphics and interactive techniques, pages 29–38, New York, NY, USA, 1990. ACM. ISBN 0-89791-344-2. → pages 16 [55] M. Michalski, M. Kowalski, and D. Pazderski. Quadruped walking robot wr06 design, control and sensor subsystems. In K. Kozlowski, editor, Robot Motion and Control 2009, volume 396 of Lecture Notes in Control and Information Sciences, pages 175–184. Springer Berlin / Heidelberg, 2009. → pages 20 [56] E. Muybridge. Animals in motion / Eadweard Muybridge ; edited by Lewis S. Brown. London,, 1925. → pages 11 [57] F. H. Newman and V. H. L. Searle. Physical similarity and dimensional analysis. London:Edwward Arnold, 1957. → pages 6 [58] D. E. Orin and W. W. Schrader. Efficient Computation of the Jacobian for Robot Manipulators. The International Journal of Robotics Research, 3(4): 66–75, 1984. → pages 14 [59] P. Pal and K. Jayarajan. Generation of free gait-a graph search approach. Robotics and Automation, IEEE Transactions on, 7(3):299 –305, jun. 1991. ISSN 1042-296X. → pages 21 [60] L. R. Palmer and D. E. Orin. Control of a 3d quadruped trot. In Climbing and Walking Robots, pages 165–172. Springer Berlin Heidelberg, 2006. ISBN 978-3-540-26413-2 (Print) 978-3-540-26415-6 (Online). → pages 18 [61] R. Paul. Robot manipulators: mathematics, programming, and control: the computer control of robot manipulators. The MIT Press, 1981. ISBN 026216082X. → pages 27 [62] R. Playter, M. Buehler, and M. Raibert. Bigdog. volume 6230, page 62302O. SPIE, 2006. → pages viii, 1, 21  65  [63] I. Poulakakis, J. Smith, and M. Buchler. Experimentally validated bounding models for the scout ii quadrupedal robot. volume 3, pages 2595 – 2600 Vol.3, apr. 2004. → pages 19 [64] I. Poulakakis, E. Papadopoulos, and M. Buehler. On the Stability of the Passive Dynamics of Quadrupedal Running with a Bounding Gait. The International Journal of Robotics Research, 25(7):669–687, 2006. → pages 19 [65] M. H. Raibert and J. K. Hodgins. Animation of dynamic legged locomotion. In SIGGRAPH ’91: Proceedings of the 18th annual conference on Computer graphics and interactive techniques, pages 349–358, New York, NY, USA, 1991. ACM. ISBN 0-89791-436-8. → pages viii, 16, 17 [66] J. Rebula, P. Neuhaus, B. Bonnlander, M. Johnson, and J. Pratt. A controller for the littledog quadruped walking on rough terrain. In Robotics and Automation, 2007 IEEE International Conference on, pages 1467 –1473, april 2007. doi:10.1109/ROBOT.2007.363191. → pages viii, 22 [67] L. Ren and J. R. Hutchinson. The three-dimensional locomotor dynamics of African (Loxodonta africana) and Asian (Elephas maximus) elephants reveal a smooth gait transition at moderate speed. Journal of The Royal Society Interface, 5(19):195–211, 2008. → pages 9 [68] R. E. Ritzmann, R. D. Quinn, and M. S. Fischer. Convergent evolution and locomotion through complex terrain by insects, vertebrates and robots. Arthropod Structure and Development, 33(3):361 – 379, 2004. ISSN 1467-8039. Arthropod Locomotion Systems: from Biological Materials and Systems to Robotics. → pages 8 [69] H. Schamhardt. The mechanics of quadrupedal locomotion. ’how is the body propelled by muscles?’. European Journal of Morphology, 36(4/5): 272, 1998. ISSN 09243860. → pages 6 [70] S. Singh and K. Waldron. A hybrid motion model for aiding state estimation in dynamic quadrupedal locomotion. pages 4337 –4342, apr. 2007. → pages 20 [71] L. Skrba and C. O’Sullivan. Join the dots: Insights into motion of quadrupeds. In Eurographics 2009, 2009. → pages 12 [72] R. Smith. Open dynamics engine. → pages 16, 25 [73] M. A. Studios. Animal mocap. http://www.mastudios.com/services animal. html. → pages 12 66  [74] The Area. Customer story: Ubisoft assassin’s creed. → pages 15 [75] C. Thorne. The Waltham Book of Cat and Dog Behaviour. Pergamon Press, Oxford., 1992. → pages viii, 30 [76] N. Torkos and M. van de Panne. Footprint-based quadruped motion synthesis. In In Graphics Interface 98, 151160. ISBN, pages 0–9695338, 1998. → pages 15 [77] Ubisoft Entertainment. Assassin’s creed. → pages 1, 14 [78] M. van de Panne. Parameterized gait synthesis. Computer Graphics and Applications, IEEE, 16(2):40 –49, mar 1996. ISSN 0272-1716. → pages 17 [79] M. van de Panne. From footprints to animation. Computer Graphics Forum, 16(4):211–223, 1997. → pages 15 [80] J. A. Vilensky and S. G. Larson. Primate locomotion: Utilization and control of symmetrical gaits. Annual Review of Anthropology, 18:pp. 17–35, 1989. ISSN 00846570. → pages 23 [81] K. J. Waldron and N. Nordholt. Force and motion management in legged locomotion. volume 24, pages 12 –17, dec. 1985. → pages 20 [82] Walt Disney Pictures. The chronicles of narnia: The lion, the witch and the wardrobe, 2005. → pages 1 [83] K. Wampler and Z. Popovi´c. Optimal gait and form for animal locomotion. ACM Trans. Graph., 28(3):1–8, 2009. ISSN 0730-0301. → pages 17 [84] S. J. Wickler, D. F. Hoyt, E. A. Cogger, and G. Myers. The energetics of the trot-gallop transition. J Exp Biol, 206(9):1557–1564, 2003. → pages 9 [85] R. Widgery. Kinetic impulse - performance / motion capture supervisor and developer. http://www.kinetic-impulse.com/, 2004. → pages 12 [86] J. Wilhelms and A. V. Gelder. Interactive video-based motion capture for character animation. In Proceedings of IASTED Computer Graphics and Imaging Conference, 2002. → pages 12 [87] A. Witkin and Z. Popovic. Motion warping. In SIGGRAPH ’95: Proceedings of the 22nd annual conference on Computer graphics and interactive techniques, pages 105–108, New York, NY, USA, 1995. ACM. ISBN 0-89791701-4. → pages 12 67  [88] T. H. Witte, C. V. Hirst, and A. M. Wilson. Effect of speed on stride parameters in racehorses at gallop in field conditions. J Exp Biol, 209(21): 4389–4397, 2006. doi:10.1242/jeb.02518. → pages 8 [89] Z. Xiao, H. Nait-Charif, and J. J. Zhang. Real time automatic skeleton and motion estimation for character animation. Comput. Animat. Virtual Worlds, 20(5‐6):523–531, 2009. ISSN 1546-4261. → pages 13 [90] A. C. Zumwalt, M. Hamrick, and D. Schmitt. Force plate for measuring the ground reaction forces in small animal locomotion. Journal of Biomechanics, 39(15):2877 – 2881, 2006. ISSN 0021-9290. → pages viii, 7  68  Appendix A  MEL Script for Motion Data Import $filename = "C:/Temp/Research/MayaWork/Gorilla/jointTrajs.txt"; $file = ‘fopen $filename "r"‘; $done = 0; string $line; $timeFrame = 1; float $tempf; while ($done!= 1)  {  $line=‘fgetline $file‘; if (size($line) >0 ) { string $cleanline = strip($line); string $tokens[]; $toknum = ‘tokenize $cleanline " " $tokens‘; 69  if (‘strcmp $tokens[0] "**"‘== 0) { currentTime $timeFrame; $timeFrame += 2; $tempf = $tokens[1]; $tempf *= 100; setAttr "back_root.translateX" $tempf; $tempf = $tokens[2]; $tempf *= 100; setAttr "back_root.translateY" $tempf; $tempf = $tokens[3]; $tempf *= 100; setAttr "back_root.translateZ" $tempf; $tempf = $tokens[4]; setAttr "back_root.rotateX" $tempf; $tempf = $tokens[5]; setAttr "back_root.rotateY" $tempf; $tempf = $tokens[6]; setAttr "back_root.rotateZ" $tempf; setKeyframe -breakdown 0 -hierarchy none -controlPoints 0 -shape 0 {"back_root"}; } else { string $jname = $tokens[0]; $tempf = $tokens[1]; setAttr ($jname+".rotateX") $tempf; $tempf = $tokens[2]; setAttr ($jname+".rotateY") $tempf; 70  $tempf = $tokens[3]; setAttr ($jname+".rotateZ") $tempf; setKeyframe -breakdown 0 -hierarchy none -controlPoints 0 -shape 0 {$jname};  }; } else { $done = 1; }; }; fclose $file;  71  


Citation Scheme:


Citations by CSL (citeproc-js)

Usage Statistics



Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            async >
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:


Related Items