# Inertial Parameter Identification in Robotics: A Survey
## 5 The Output Error (OE) and Input Error (IE) Identification Approaches
### Direct Dynamics Identification Model (DDIM) and Nonlinear Kalman Filtering (NKF)  
Widely used for state estimation purpose, Kalman filtering techniques can also be exploited in the context of parameter identification. As explained in [77], identification can be carried out in two different manners, denoted respectively as _dual method_ (c.f. [78; 79]) and _joint method_ (c.f. [7; 14; 80; 81]). In the first approach, the system state and parameters are identified separately, within two concurrent Kalman filter instances, while in the second one, state and parameters are estimated simultaneously, within a single Kalman filter featuring an augmented state representation. With the notable exception of [79], approaches to robot dynamic parameters identification found in the scientific literature are usually based on the joint filtering paradigm. Since this approach allows accounting for the statistical coupling between the state and the parameters, as suggested by [82], it is, therefore, expected to be significantly more robust than the dual filtering method. In the joint filtering approach, at time \(t_{k}\), the state vector \(\mathbf{x}_{k}=\left[\mathbf{\dot{q}}(t_{k})^{\top}\ \mathbf{q}(t_{k})^{\top}\right]^{\top}\in \mathbb{R}^{2\cdot n}\) and the current estimate of base parameters \(\mathbf{\dot{\beta}}_{KF}^{k-1}\) are stacked column-wise into a higher-dimensional state vector \(\mathbf{z}_{k}=\left[x_{k}^{\top}\ \mathbf{\dot{\beta}}_{KF}^{k-1\top}\right]^{\top} \in\mathbb{R}^{2n+b}\) resulting into the following set of update equations:  
\[\mathbf{z}_{k+1} = \mathbf{\Gamma}(\mathbf{z}_{k})+\mathbf{v}_{k}\,, \tag{47a}\] \[\mathbf{y}_{k} = \mathbf{S}\mathbf{z}_{k}+\mathbf{w}_{k}\,, \tag{47b}\]  
where \(\mathbf{v}_{k}=\left[\mathbf{n}_{k}^{\top}\ \mathbf{r}_{k}^{\top}\right]^{\top}\sim \mathcal{N}(\mathbf{0}_{2\cdot n+b)\times 1}\), \(\mathbf{Q})\) is the process noise; \(\mathbf{w}_{k}\sim\mathcal{N}(\mathbf{0}_{n\times 1},\mathbf{R})\) is the measurement noise; \(\mathbf{Q}\in\mathbb{R}^{(2\cdot n+b)\times(2\cdot n+b)}\), \(\mathbf{R}\in\mathbb{R}^{n\times n}\) are respectively the process-noise and measurement-noise covariance matrices; \(\mathbf{S}=\left[\mathbf{0}_{n\times n}\ \mathbf{1}_{n\times n}\ \mathbf{0}_{n\times b}\right]\in \mathbb{R}^{n\times(2\cdot n+b)}\) is a selection matrix; \(\mathbf{1}_{n\times n}\) denotes the \((n\times n)\) identity matrix, and \(\mathbf{0}_{n\times b}\) the \((n\times b)\) zero matrix. As with [7], the nonlinear state transition function \(\mathbf{\Gamma}(\mathbf{z}_{k})\) is given by the robot direct dynamic model (DDM) as  
\[\text{DDM}(\mathbf{z}_{k}) = \mathbf{M}^{-1}(\mathbf{\dot{\beta}}_{KF}^{k-1},\mathbf{q}(t_{k}))(\mathbf{ \tau}(t_{k})-\mathbf{h}(\mathbf{\dot{\beta}}_{KF}^{k-1},\mathbf{q}(t_{k}),\mathbf{\dot{q}}(t_ {k}))) \tag{48a}\] \[\mathbf{\Gamma}(\mathbf{z}_{k}) = \underbrace{ \begin{bmatrix}\mathbf{\dot{q}}(t_{k})\\ \mathbf{q}(t_{k})\\ \mathbf{\dot{\beta}}_{KF}^{k}\end{bmatrix} }_{\mathbf{z}_{k}}+\underbrace{ \begin{bmatrix} \text{DDM}(\mathbf{z}_{k})\\ \mathbf{\dot{q}}(t_{k})\\ \mathbf{0}_{b\times 1}\end{bmatrix} }_{\mathbf{\dot{z}}_{k}}\cdot\delta t\,. \tag{48b}\]  
Figure 4: Block diagram of the DIDIM identification method. In [79], the authors used a different state representation, assuming that the noise level in the joint encoders was negligible, and that the joint motion derivatives could therefore be computed independently. In this context, the state update Equation (48) can be simplified into \(\mathbf{\Gamma}(\mathbf{z}_{k})=\mathbf{\hat{\beta}}_{KF}^{k}\), with \(\mathbf{z}_{k}=\mathbf{\hat{\beta}}_{KF}^{k-1}\) while the measurement prediction equation consists of the IDM, computed using the Recursive Newton Euler (RNE) algorithm (c.f. [83]). Note that this is not the exact formulation of [79], as the authors use sigmoid barrier functions to enforce physical consistency. This aspect is discussed in greater details in Section 7. In practice, the DDM nonlinearity in (47) and (48) can be addressed in several different manners.