10 Inverse Simulation

10.3 Tracking controller structure and settings

10.3.1 Controller structure

Figure 10.12: Expanded navigation panel view of the tracking controller (named "tcon") and all its subcomponents, for the example InverseMuscleArm.

The tracking controller is a composite component, which contains the exciter list and the various cost and constraint terms as subcomponents. Some of these components are added as needed. They include the following, as described by their names:

exciters

A list of references to the exciters which have been added to the controller. Note that this is a list of references; the exciters themselves exist elsewhere in the model. Always present.

motionTerm

The MotionTargetTerm detailed in Section 10.2.2.1. Implements the motion cost term \phi_{m}({\bf a}) defined in (10.7), and the motion tracker of Figure 10.1. Allocates and maintains target components for motion sources, storing the targets in the subcomponent lists targetPoints and targetFrames, and references to the sources in the reference lists sourcePoints and sourceFrames. Always present.

forceEffectorTerm

The ForceEffectorTerm detailed in Section 10.2.6.1. Implements the force effector cost term \phi_{e}({\bf a}) defined in (10.11). Allocates and maintains target components for force effector sources, storing then in the subcomponent list forceTargets. Added on demand.

boundsTerm

Implements the actuator bounds {\bf a}_{\text{min}}\leq{\bf a}\leq{\bf a}_{\text{max}}, where {\bf a}_{\text{min}} and {\bf a}_{\text{max}} are nominally \bf 0 and \bf 1. Always present.

L2RegularizationTerm

Implements the cost term for L2 regularization (Section 10.2.3.1). Added on demand.

dampingTerm

Implements the cost term for excitation damping (Section 10.2.3.2). Added on demand.

10.3.2 Controller properties

The controller and its cost terms have a number of properties that can be used to adjust the controller’s behavior. They can be set interactively, either through the inverse controller panel created by the InverseManager (Section 10.4.3), or by selecting the relevant component in the navigation panel and choosing "Edit properties ..." from the context menu. The properties can also be set in code, using the accessor methods supplied by their host component. These methods will usually be named getXxx() and setXxx() for property xxx.Properties of the tracking controller itself include:

active

Controls whether or not the controller is active. Setting this to false turns the controller off. Default value is true.

normalizeCostTerms

Controls whether or not the cost terms are normalized. Normalizing the terms helps ensure that their weights (e.g., w_{m}, w_{e}, and w_{a} in (10.12) more accurately control the tradeoffs between terms. Default value is true.

computeIncrementally

Controls whether excitation values should be computed incrementally, as described in Section 10.1.5. Default value is false.

excitationBounds

Specifies the default excitation bounds for exciter components. Default value is [0,1].

targetsVisible

Controls the visibility of the motion target terms contained within the controller, as described in Section 10.2.2.2. Default value is true.

configExcitationColoring

If enabled, automatically configures exciters which support excitation coloring to vary from white to red as their excitation increases (Section 10.2.1.1). Default value is true.

probeDuration

Default duration of probes managed by the InverseManager class (Section 10.4). Default value is 1.0.

probeUpdateInterval

Default update interval of output probes managed by the InverseManager class (Section 10.4). Default value is -1, which means that the interval will default to the simulation step size.

useKKTFactorization

Uses a more computationally expensive but possibly more accurate method to compute the excitation response matrices matrices such as {\bf H}_{m} and {\bf H}_{e} (Section 10.1.3). Default value is false.

maxExcitationJump

Experimental property that limits the change in excitation during any time step. Default value is false.

useTimestepScaling

Experimental property which enables scaling of all the cost terms by the simulation time step. Default value is false.

debug

Enabled debugging messages. Default value is false.

10.3.3 Motion term properties

The motion target term (Section 10.2.2.1) exports a number of properties that control motion tracking:

enabled

Controls whether or not this term is enabled. Default value is true.

weight

Specifies the weight w_{m} of this term relative to the other cost terms. Default value is 1.0.

chaseTime

Specifies the chase time T used for chase control (Section 10.1.2.1). Default value is 0.01.

usePDControl

Controls whether or not PD control is used (Section 10.1.2.2). Default value is false.

Kp

Specifies the proportional terms for PD control (Section 10.1.2.2). Default value is 10000.

Kd

Specifies the derivative terms for PD control (Section 10.1.2.2). Default value is 100.

legacyControl

Controls whether or not legacy control is used. Default value is false.

10.3.4 Properties for other cost terms

All other cost terms, including the L2 regularization (Section 10.2.3.1), export the following properties:

enabled

Controls whether or not the term is enabled. Default value is true.

weight

Specifies the weight of this term relative to the other cost terms. Default value is 1.0.