# Model-Based Real-Time Motion Tracking Using Dynamical Inverse Kinematics
## 2 Background
### Modeling  
The human is modeled as a multi-body mechanical system composed of \(n+1\) rigid bodies, called _links_, that are connected by \(n\)_joints_ with one _degree of freedom_ (DoF) each [31]. Additionally, the system is assumed to be _floating base_, i.e., none of the links has an a priori constant pose with respect to the inertial frame \(\mathcal{I}\). Hence, a specific frame, attached to a link of the system, is referred to as the _base frame_, denoted by \(\mathcal{B}\).  
The _model configuration_ is characterized by the position and the orientation of the _base frame_ along with the _joint positions_. Accordingly, the configuration space lies on the Lie group \(\mathbb{Q}=\mathbb{R}^{3}\times SO(3)\times\mathbb{R}^{n}\). An element of the configuration space \(q\in\mathbb{Q}\) is defined as the triplet \(q=(^{\mathcal{I}}p_{\mathcal{B}},^{\mathcal{I}}R_{\mathcal{B}},s)\) where \({}^{\mathcal{I}}p_{\mathcal{B}}\in\mathbb{R}^{3}\) and \({}^{\mathcal{I}}R_{\mathcal{B}}\in SO(3)\) denote the position and the orientation of the _base frame_, and \(s\in\mathbb{R}^{n}\) denotes the joints configuration representing the topology, i.e. shape, of the mechanical system. The position and the orientation of a frame \(\mathcal{A}\) attached to the model can be obtained via geometrical forward kinematic map \(h_{\mathcal{A}}(\cdot):\mathbb{Q}\to(SO(3)\times\mathbb{R}^{3})\) from the _model configuration_. The forward kinematics can be decomposed into position, i.e., \({}^{\mathcal{I}}p_{\mathcal{A}}=h_{\mathcal{A}}^{p}(q)\), and orientation, i.e., \({}^{\mathcal{I}}R_{\mathcal{A}}=h_{\mathcal{A}}^{p}(q)\), maps.  
Figure 1: Motion tracking of a human running on a treadmill using an human model, on the center, and a humanoid model, on the right.  
The _model velocity_ is characterized by the linear and the angular velocity of the _base frame_ along with the _joint velocities_. Accordingly, the configuration velocity space lies on the group \(\mathbb{V}=\mathbb{R}^{3}\times\mathbb{R}^{3}\times\mathbb{R}^{n}\). An element of the configuration velocity space \(\
u\in\mathbb{V}\) is defined as \(\
u=(^{\mathcal{I}}\
u_{\mathcal{B}},\dot{s})\) where \({}^{\mathcal{I}}\
u_{\mathcal{B}}=(^{\mathcal{I}}\dot{p}_{\mathcal{B}},^{ \mathcal{I}}\omega_{\mathcal{B}})\in\mathbb{R}^{3}\times\mathbb{R}^{3}\) denotes the linear and angular velocity of the _base frame_, and \(\dot{s}\) denotes the joint velocities. The velocity of a frame \(\mathcal{A}\) attached to the model is represented as \({}^{\mathcal{I}}\
u_{\mathcal{A}}=(^{\mathcal{I}}\dot{p}_{\mathcal{A}},^{ \mathcal{I}}\omega_{\mathcal{A}})\) where the two terms represent the linear and the angular velocity components respectively. The mapping between frame velocity \({}^{\mathcal{I}}\
u_{\mathcal{A}}\) and configuration velocity \(\
u\) is achieved through the _Jacobian_\(J_{\mathcal{A}}=J_{\mathcal{A}}(q)\in\mathbb{R}^{6\times(n+6)}\), i.e., \({}^{\mathcal{I}}\
u_{\mathcal{A}}=J_{\mathcal{A}}(q)\
u\). The _Jacobian_ is composed of a linear part \(J_{\mathcal{A}}^{\ell}(q)\) and an angular part \(J_{\mathcal{A}}^{a}(q)\) mapping the linear and the angular velocities respectively, i.e., \({}^{\mathcal{I}}\dot{p}_{\mathcal{A}}=J_{\mathcal{A}}^{\ell}(q)\
u\) and \({}^{\mathcal{I}}\omega_{\mathcal{A}}=J_{\mathcal{A}}^{a}(q)\
u\).