Preliminary Implementation and Results
3.2 SIMBICON Type Controller Implementation
SIMBICON (Yin et al. 2007) was chosen as the basis for initial experimentation as, although the mechanics of the controller are relatively simple, it is quite effective and robust, and it is widely cited in existing work, with many researchers achieving good results with additional sophistication built on top of SIMBICON-style controllers (Yin et al. 2008, Coros et al. 2008, Wang et al. 2009, 2010, 2012). This section gives some more detail on the original SIMBICON paper and the development of a preliminary implementation integrated within NaturalMotion’s animation engine,
morpheme.
The original SIMBICON method is a joint based PD control approach, with torques for each joint calculated based on the discrepancy between desired and simulated values of the joint angle and angular velocity, scaled by gain parameters kp and kd respectively.
τ = kp(θd− θ) + kd( ˙θd− ˙θ) (3.1)
In the original SIMBICON method, desired joint orientations are defined by a finite state machine with a small set of target poses corresponding to phases of the loco-motion cycle, with transitions between phases triggered either by time or by heel strike events, and target angular velocities are set to zero.
For most of the joints, the PD control is applied in the joint’s local space as defined relative to its parent. In order to include information about the vertical direction which is relevant for balance, control for the torso, swing hip and stance hip joints is applied in world space. The torques for the swing hip and torso, τB and τtorso, are determined based on their desired orientations, and the torque for the stance hip, τA, is calculated to ensure that the net torque is zero.
τA= −τtorso− τB (3.2)
A balance mechanism is provided by modifying the target orientation for the swing hip with feedback based on the horizontal position of the COM relative to the stance ankle, d, and the COM velocity, v.
θd= θd0+ cdd + cvv (3.3)
Source code for a standalone implementation of SIMBICON was obtained from the authors’ website. This version used an update frequency of 2000Hz for the physics simulation, and was based on Open Dynamics Engine (ODE), which uses a matrix solver based approach to resolve constraints, which is highly accurate and robust but computationally expensive. Although real-time performance was achieved, the CPU utilization was very high, which would be unsuitable for applications such as games where character control must share resources with many other tasks. Ex-perimentation with the source code suggested that it was possible to lower this physics update rate somewhat, but the controller became completely unstable at around 750Hz. Likewise, Giovanni & Yin (2011) implement generalized biped
walk-ing control (Coros et al. 2010), a similar controller to SIMBICON, in several different simulation engines and find that the controller fails for time steps above 1-2ms for all the simulators considered.
Initial work focused on developing an implementation of a SIMBICON-style con-troller integrated into morpheme, with computational requirements more suitable for real-time applications. The default male character rig and example walking mo-tions from morpheme were used. The rig has 20 links with propormo-tions and mass distribution suitable for representing a human, although some minor changes are made to improve simulation characteristics, such as avoiding large mass ratios in chains. Twist and swing based joint limits are used to allow a realistic range of motion. The character’s feet are represented by rigid cuboids. The implementation was based on a modification of an existing morpheme physics node, which tracks target animations using a spring-damper based PhysX joint drive. A world space controller was added to calculate torques for the three joints associated with bal-ance, and the existing joint drive was disabled for these joints. Performance was improved by scaling torques for the balance joints based on the moments of inertia of their attached chains. The SIMBICON balance feedback terms were also added to modify the target orientation for the swing hip. Rather than using a small set of target poses, desired orientations for joints were determined based on a reference walking animation, with the aim of improving the naturalness and level of control over motion style compared to the original SIMBICON, which often appears robotic.
For each frame, it is necessary to identify which leg is the swing leg, and which is the stance leg. This was initially determined by retrieving footfall timings from the event information associated with the reference animation (events such as heel strike are marked up in the animation engine for reasons such as avoiding blending artefacts), but this was not found to be satisfactory due to latency between the simulated and target poses. A more effective approach involving contact information retrieved from the physics engine was implemented. The contact information could also be used to reset the phase of the target animation at each footstep to avoid losing synchronization.
As one of the aims of this project is to investigate whether locomotion control can be brought more in line with the performance requirements of real-time applications, the development and experimentation with the initial morpheme implementation was performed with a physics simulation rate of 60Hz.
With the initial implementation, the character was able to take one step, but ap-peared to lack sufficient momentum to propel itself over the new pivot foot and tended to fall backwards. An alternative feedback mechanism based on ensuring the COM had sufficient energy to pivot was investigated, but was no more successful.
The implementation here used a reference motion rather than a FSM containing a small set of target poses, so may not be directly comparable to the work by Yin et al. (2007) but, as noted above, similar FSM based approaches have also been found to fail with high time steps (Giovanni & Yin 2011).