Rigid Body Dynamics Library
FootPlacementEstimatorInfo Struct Reference

#include <BalanceToolkit.h>

Public Member Functions

 FootPlacementEstimatorInfo ()
 

Data Fields

double f
 
unsigned int iterations
 
double phi
 
Math::Vector3d r0F0
 
double projectionError
 
Math::Vector3d n
 
Math::Vector3d u
 
Math::Vector3d k
 
Math::Vector3d r0C0
 
Math::Vector3d v0C0
 
Math::Vector3d r0P0
 
Math::Vector3d HC0
 
Math::Matrix3d JC0
 
Math::Vector3d w0C0
 
Math::Vector3d HP0
 
Math::Matrix3d JP0
 
Math::Vector3d w0P0
 
double h
 
double nJC0n
 
double v0C0u
 
double v0C0k
 
double w0C0n
 
double w0F0nPlus
 
double l
 
double E
 
double Df_Dphi
 
double Df_Dw0C0n
 
double Df_Dh
 
double Df_Dv0C0u
 
double Df_Dv0C0k
 
double Df_DnJC0n
 
double Df_Dm
 
double Df_Dg
 
double Ds_Dl
 
double Ds_DnJC0n
 
double Ds_DE
 
double Ds_Dv0C0u
 
double Ds_Dv0C0k
 
double Ds_Dw0C0n
 
double Dphi_Dl
 
double Dphi_DnJC0n
 
double Dphi_DE
 
double Dphi_Dv0C0u
 
double Dphi_Dv0C0k
 
double Dphi_Dw0C0n
 

Detailed Description

This struct contains the location of the balance restoring step location evaluated by the 3DFPE algorithm described by Millard et al. and all of the additional information needed to judge if the assumptions of the FPE3D are being met, and if not, how much error is introduced. All quantities are expressed in MKS units. If you cannot get access to Millard et al., note that a similar derivation appears in Sloot et al. but that some variable names have changed (the u & v-directions in Millard et al. are the s & t directions in Sloot et al.).

Millard, M., McPhee, J., & Kubica, E. (2012). Foot placement and balance in 3D. Journal of Computational and Nonlinear Dynamics, 7(2), 021015.

Sloot LH, Millard M, Werner C, Mombaur K. Slow but Steady: Similar Sit-to-Stand Balance at Seat-Off in Older vs. Younger Adults. Frontiers in sports and active living. 2020;2.

A small apology for the terse variable names. These terse names are needed to do write these functions without making obvious errors. Nice human-readable variable names could have been used, however, time and memory would have to have been spent to copy these over. In case you need to modify the guts of this code a description of the variable convention appears below.

The variables follow a notation convention that is similar to that used in multibody-dynamics.

Global quantities : [ Descriptor ] [Resolved in frame] e.g. g0 : gravity vector in K0, the inertial frame

Single-point/body quantites : [ Descriptor ] [About Point ] [Resolved in frame] [optional operator] Two-point quantites : [ Descriptor ] [From Point ] [To Point ] [Resolved in frame] [optional operator]

Global descriptors g : gravity

Single Point/Body Descriptors

e : unit vector E : rotation matrix K : a frame: consists of a point in space and a rotation matrix J : inertia H : angular momentum

Direction Vectors (lower case) u : vector in the direction of a balancing step (See Fig. 6 of Millard et al.) v : vertical vector k : vector normal to the the plane

Two-Point Descriptors: r: position v: velocity w: angular velocity

Point C: the whole-body-center of mass (COM) P: the projection plane origin: the ground projection of the COM
0: the origin of the lab/inertial frame S: the contact surface frame origin

Frames 0: the lab/inertial frame S: the contact surface frame origin i: Body fixed frame

Operations: x : Cross-product matrix. For example r0C0 is the vector, r0C0x is the cross-product matrix of r0C0. u/v/x: Dot product. For example w0C0n is an angular velocity from the base frame (0) to the point (C) in coordinates of the base frame (0) in the (n) direction.

N.B. The ascii name convention should have something extra to distinguish operators, maybe an underscore: w0C0_n instead of w0C0n

Examples: r0F0 : (r) position vector (0) from the base frame origin (F) to the foot placement estimator location (0) resolved in the coordinates of the base frame

r0P0 : (r) position vector (0) from the base frame origin (P) to the foot placement estimator location (0) resolved in the coordinates of the base frame

JC0 : (J) inertia matrix (C) about the center-of-mass (CoM) (0) resolved in the coordinates of the lab frame

Definition at line 112 of file BalanceToolkit.h.

Constructor & Destructor Documentation

◆ FootPlacementEstimatorInfo()

Definition at line 248 of file BalanceToolkit.h.

Field Documentation

◆ Df_Dg

double Df_Dg

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. to the force of gravity

Definition at line 209 of file BalanceToolkit.h.

◆ Df_Dh

double Df_Dh

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. COM height

Definition at line 191 of file BalanceToolkit.h.

◆ Df_Dm

double Df_Dm

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. the total system mass

Definition at line 206 of file BalanceToolkit.h.

◆ Df_DnJC0n

double Df_DnJC0n

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. the whole body moment of inertia about the center of mass in the n direction

Definition at line 203 of file BalanceToolkit.h.

◆ Df_Dphi

double Df_Dphi

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. phi

Definition at line 184 of file BalanceToolkit.h.

◆ Df_Dv0C0k

double Df_Dv0C0k

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. the pre-contact COM velocity in the k direction

Definition at line 199 of file BalanceToolkit.h.

◆ Df_Dv0C0u

double Df_Dv0C0u

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. the pre-contact COM velocity in the u direction

Definition at line 195 of file BalanceToolkit.h.

◆ Df_Dw0C0n

double Df_Dw0C0n

Partial derivative of the FPE constraint equation
(Eqn. 45 of Millard et al.) f w.r.t. the pre-contact whole body angular velocity about the center of mass in the n direction

Definition at line 188 of file BalanceToolkit.h.

◆ Dphi_DE

double Dphi_DE

The sensitivity of the FPE angle phi w.r.t. small changes in E, the post-contact sytem energy

Definition at line 236 of file BalanceToolkit.h.

◆ Dphi_Dl

double Dphi_Dl

The sensitivity of the FPE angle phi w.r.t. small changes in l, the distance between the COM and the FPE location

Definition at line 230 of file BalanceToolkit.h.

◆ Dphi_DnJC0n

double Dphi_DnJC0n

The sensitivity of the FPE angle phi w.r.t. small changes in J, the moment of inertia of the body about the COM in the n direction

Definition at line 233 of file BalanceToolkit.h.

◆ Dphi_Dv0C0k

double Dphi_Dv0C0k

The sensitivity of the FPE angle phi w.r.t. small changes in v0C0 the velocity of the center of mass in k, the vertical direction

Definition at line 242 of file BalanceToolkit.h.

◆ Dphi_Dv0C0u

double Dphi_Dv0C0u

The sensitivity of the FPE angle phi w.r.t. small changes in v0C0 the velocity of the center of mass in the u-direction

Definition at line 239 of file BalanceToolkit.h.

◆ Dphi_Dw0C0n

double Dphi_Dw0C0n

The sensitivity of the FPE angle phi w.r.t. small changes in the whole body angular velocity about the center of mass in the n direction.

Definition at line 245 of file BalanceToolkit.h.

◆ Ds_DE

double Ds_DE

The sensitivity of the FPE step length w.r.t. small changes in E, the peak potential energy obtained by the system as it comes to balance over its foot after contact.

Definition at line 218 of file BalanceToolkit.h.

◆ Ds_Dl

double Ds_Dl

The sensitivity of the FPE step length w.r.t. small changes in the distance l between the COM and the FPE.

Definition at line 212 of file BalanceToolkit.h.

◆ Ds_DnJC0n

double Ds_DnJC0n

The sensitivity of the FPE step length w.r.t. small changes in J.

Definition at line 214 of file BalanceToolkit.h.

◆ Ds_Dv0C0k

double Ds_Dv0C0k

The sensitivity of the FPE step length w.r.t. small changes in v0C0 the velocity of the center of mass in k, the vertical direction

Definition at line 224 of file BalanceToolkit.h.

◆ Ds_Dv0C0u

double Ds_Dv0C0u

The sensitivity of the FPE step length w.r.t. small changes in v0C0 the velocity of the center of mass in the u direction

Definition at line 221 of file BalanceToolkit.h.

◆ Ds_Dw0C0n

double Ds_Dw0C0n

The sensitivity of the FPE step length w.r.t. small changes in the whole body angular velocity about the center of mass in the n direction.

Definition at line 227 of file BalanceToolkit.h.

◆ E

double E

The post-contact system energy of the FPE model

Definition at line 181 of file BalanceToolkit.h.

◆ f

double f

Numerical 3DFPE constraint error (Eqn. 45 of Millard et al.)

Definition at line 115 of file BalanceToolkit.h.

◆ h

double h

Height of the center-of-mass

Definition at line 164 of file BalanceToolkit.h.

◆ HC0

Whole body angular momentum about the center of mass

Definition at line 151 of file BalanceToolkit.h.

◆ HP0

Whole body angular momentum about the center of mass

Definition at line 157 of file BalanceToolkit.h.

◆ iterations

unsigned int iterations

Number of iterations used by the root solving method to numerically solve Eqn. 45 of Millard et al.

Definition at line 119 of file BalanceToolkit.h.

◆ JC0

Whole body moment of inertia the center of mass

Definition at line 153 of file BalanceToolkit.h.

◆ JP0

Whole body moment of inertia about the center of mass ground projection

Definition at line 160 of file BalanceToolkit.h.

◆ k

Vertical direction vector

Definition at line 143 of file BalanceToolkit.h.

◆ l

double l

The leg length of the FPE model: the distance from the COM to the FPE

Definition at line 179 of file BalanceToolkit.h.

◆ n

Direction vector that is normal to the projection plane (Eqn. 43), and is parallel to the horizontal component of HP0.

Definition at line 138 of file BalanceToolkit.h.

◆ nJC0n

double nJC0n

Whole body moment of inertia about the center of mass in the n direction

Definition at line 167 of file BalanceToolkit.h.

◆ phi

double phi

The foot contact angle: the angle between the gravity vector and the vector between the CoM and the contact location (See Fig. 6)

Definition at line 123 of file BalanceToolkit.h.

◆ projectionError

double projectionError

The percentage of HP0 (the angular momentum of the whole body when evaluated by the center-of-mass ground projection point) that is in the vertical direction. Momentum in this direction is assumed to be zero by the FPE.

Definition at line 133 of file BalanceToolkit.h.

◆ r0C0

Vector to the COM

Definition at line 145 of file BalanceToolkit.h.

◆ r0F0

The location of the foot-placement-estimator in the base frame.

Definition at line 126 of file BalanceToolkit.h.

◆ r0P0

Vector to the COM ground projection

Definition at line 149 of file BalanceToolkit.h.

◆ u

Direction vector defined by n cross k, where k is the vertical direction vector.

Definition at line 141 of file BalanceToolkit.h.

◆ v0C0

Vector to the COM ground projection

Definition at line 147 of file BalanceToolkit.h.

◆ v0C0k

double v0C0k

Velocity of the COM in the k direction

Definition at line 171 of file BalanceToolkit.h.

◆ v0C0u

double v0C0u

Velocity of the COM in the u direction

Definition at line 169 of file BalanceToolkit.h.

◆ w0C0

Average angular velocity of the center of mass in the n direction

Definition at line 155 of file BalanceToolkit.h.

◆ w0C0n

double w0C0n

Whole body angular velocity in the n direction

Definition at line 173 of file BalanceToolkit.h.

◆ w0F0nPlus

double w0F0nPlus

Post-contact whole body angular velocity in the n direction about the foot placement estimator location

Definition at line 176 of file BalanceToolkit.h.

◆ w0P0

Average angular velocity about the center-of-mass ground projection

Definition at line 162 of file BalanceToolkit.h.


The documentation for this struct was generated from the following file: