Skip to main content

Verification Optimization

Verification Optimization is a crucial module within Treatment Optimization that enhances the reliability and robustness of the predicted movement patterns generated by Tracking Optimization. It serves as a validation step to ensure that the control strategies obtained from Tracking Optimization can reproduce the experimental data accurately and reliably, even when the tracking of specific quantities is eliminated. By assessing the performance of the calibrated controllers in the absence of explicit tracking, Verification Optimization provides a comprehensive evaluation of the predictive capabilities of Treatment Optimization.

Problem Formulation

States:

Joint Angles  q\ q, Joint Velocities  u\ u, Joint Accelerations u˙\dot u

Controls:

Joint Jerk u¨\ddot u, Synergy Activations

Dynamics:

[quu˙]=[uu˙u¨]\begin{bmatrix} q \\ u \\ \dot u \end{bmatrix} = \begin{bmatrix} u \\ \dot u \\ \ddot u \end{bmatrix}

Cost Function Terms:

Coordinate Tracking: evaluates the difference between the predicted and experimental joint positions.
<RCNLCostTerm>
<type>coordinate_tracking</type>
<!-- coordinate name ex. hip_flexion_r, knee_angle_r -->
<coordinate></coordinate>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- Set in Radians -->
<max_allowable_error></max_allowable_error>
</RCNLCostTerm>
Controller Tracking: ensures that the predicted control strategy closely matches the control patterns found from Tracking Optimization.
<RCNLCostTerm>
<type>controller_tracking</type>
<!-- synergy activation, ex. synergy_activation1, synergy_activation2 (reference labels of controls file from tracking optimization) -->
<controller></controller>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- unitless -->
<max_allowable_error></max_allowable_error>
</RCNLCostTerm>
Joint Jerk Minimization: minimizes joint jerk (required for all joints).
<RCNLCostTerm>
<type>joint_jerk_minimization</type>
<!-- coordinate name ex. hip_flexion_r, knee_angle_r -->
<coordinate></coordinate>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- Set in Radians/m^3-->
<max_allowable_error></max_allowable_error>
</RCNLCostTerm>

Path Constraint Terms:

Bounding Root Segment Residuals: Residual forces and moments are experienced on the body segment connected to the ground, typically the pelvis. Limiting these residuals ensures that the net forces and torques acting on the root segment are close to zero, enforcing dynamic consistency.
<RCNLConstraintTerm>
<type>root_segment_residual_load</type>
<!-- residual load name ex. pelvis_tilt_moment, pelvis_tx_force -->
<load></load>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- set in Newtons or Newton meters, recommended setting: 0.1 Nm for residual moments and 1 N for residual forces -->
<max_error></max_error>
<!-- set in Newtons or Newton meters, recommended setting: -0.1 Nm for residual moments and -1 N for residual forces -->
<min_error></min_error>
</RCNLConstraintTerm>
Muscle-Produced Moments and Inverse Dynamic Moments Consistency: This constraint ensures that the moments produced by the muscles in the model align with the inverse dynamic moments calculated from the model. It ensures that the predicted movements are biomechanically possible. Apply to all joints actuated by muscles.
<RCNLConstraintTerm>
<type>muscle_model_moment_consistency</type>
<!-- load name ex. hip_flexion_r_moment, knee_angle_r_moment -->
<load></load>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- set in Newton meters, recommended setting: 0.1 Nm-->
<max_error></max_error>
<!-- set in Newton meters, recommended setting: -0.1 Nm-->
<min_error></min_error>
</RCNLConstraintTerm>

Terminal Constraint Terms:

State Position Periodicity: This constraint enforces the periodicity of joint positions, ensuring that the movement repeats in a cyclic manner.
<RCNLConstraintTerm>
<type>state_position_periodicity</type>
<!-- coordinate name ex. hip_flexion_r, knee_angle_r -->
<coordinate></coordinate>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- Set in Radians, recommended setting: 0.0087 Rad -->
<max_error></max_error>
<!-- Set in Radians, recommended setting: -0.0087 Rad -->
<min_error></min_error>
</RCNLConstraintTerm>
State Velocity Periodicity: This constraint enforces the periodicity of joint velocities.
<RCNLConstraintTerm>
<type>state_velocity_periodicity</type>
<!-- coordinate name ex. hip_flexion_r, knee_angle_r -->
<coordinate></coordinate>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- Set in Radians/s, recommended setting: 0.0175 Rad/s -->
<max_error></max_error>
<!-- Set in Radians/s, recommended setting: -0.0175 Rad/s -->
<min_error></min_error>
</RCNLConstraintTerm>
Root Segment Residual Load Periodicity: This constraint enforces the periodicity of root segment residual loads.
<RCNLConstraintTerm>
<type>root_segment_residual_load_periodicity</type>
<!-- residual load name ex. pelvis_tilt_moment, pelvis_tx_force -->
<load></load>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- set in Newtons or Newton meters, recommended setting: 0.1 N or 0.1 Nm -->
<max_error></max_error>
<!-- set in Newtons or Newton meters, recommended setting: -0.1 N or -0.1 Nm -->
<min_error></min_error>
</RCNLConstraintTerm>
External Force Periodicity: This constraint enforces the periodicity of external forces.
<RCNLConstraintTerm>
<type>external_force_periodicity</type>
<!-- external force name ex. ground_reaction_force_x, ground_reaction_force_y1 -->
<force></force>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- set in Newtons, recommended setting: 20 N -->
<max_error></max_error>
<!-- set in Newtons, recommended setting: 20 N -->
<min_error></min_error>
</RCNLConstraintTerm>
External Moment Periodicity: This constraint enforces the periodicity of external moments.
<RCNLConstraintTerm>
<type>external_moment_periodicity</type>
<!-- external force name ex. ground_reaction_moment_x, ground_reaction_moment_y1 -->
<moment></moment>
<!-- true or false -->
<is_enabled></is_enabled>
<!-- set in Newton meters, recommended setting: 10 Nm -->
<max_error></max_error>
<!-- set in Newton meters, recommended setting: 10 Nm -->
<min_error></min_error>
</RCNLConstraintTerm>