# Inertial Parameter Identification in Robotics: A Survey
## 8 Introducing the BIRDy Matlab Toolbox: A Benchmark for Identification of Robot Dynamics
### Experiment Data Generation and Pre-Processing  
Identifying the dynamic parameters of a robot manipulator requires the collection of appropriate measurements in terms of joint angles \(\mathbf{q}\) and torques \(\mathbf{\tau}\) over a predefined time horizon. Such data can be collected when a robot--_real or simulated_--tracks an exciting trajectory. As depicted in Figure 6, BIRDy provides a set of simulation routines, allowing the previously generated robot models to be used for this purpose. The data collection process in the case of a simulated robot is depicted in Figure 7. The direct dynamic model (DDM) of the robot, computed according to Equation (3), is subjected to a control torque \(\mathbf{\tau}\). BIRDy contains implementations of multiple friction models, in particular the _Viscous-Coulomb_, _Stribeck_ and _LuGre_ models, allowing for more realistic data generation (c.f. [103]). The resulting joint acceleration signal \(\mathbf{\tilde{q}}\) is integrated twice, using a fixed-step Runge-Kutta method (RK1, RK2 or RK4) before a zero-mean Gaussian noise \(n_{\sigma_{q}}\) with a standard deviation \(\mathbf{\sigma}_{q}\) is added to it. The resulting signal \(\mathbf{\tilde{q}}\) is then derived and eventually fed back into the controller without filtering. This allows better accounting for the effects of the numerical differentiation process occurring on real digital controllers, in terms of amplification of the measurement noise. The control algorithm itself is described in Equation (16). The robot tracks the reference trajectory \((\mathbf{q}_{d},\mathbf{\dot{q}}_{d})\) at an update frequency \(f_{c}\). The data sampling process occurs at a frequency \(f\leq f_{c}\), both for \(\mathbf{\tilde{q}}\) and for the torque measurement \(\mathbf{\tilde{\tau}}\) (namely the torque signal \(\mathbf{\tau}\) corrupted by a zero-mean Gaussian noise \(n_{\sigma_{q}}\) with a standard deviation \(\mathbf{\sigma}_{\tau}\)). Please note that the reference trajectory files created by BIRDy can also be used to generate desired behaviors directly on a real robot manipulator. However, in this case, the data collection process is achieved independently using the robot communication interface. Unlike the BIRDy simulation interface, which provides direct feedback in terms of joint position and torque, the real robot interface often provides feedback only in terms of joint position \(\mathbf{\tilde{q}}\) and drive currents \(\mathbf{\tilde{t}}\). Nevertheless, a reliable prior knowledge of the robot drive gains \(\mathbf{K}_{\tau}\) of (16) makes it possible to reconstruct the torque signal \(\mathbf{\tilde{\tau}}\). In practice, the robot drive gains can be identified following a dedicated Least-Squares method such as that proposed by [104; 105]. The \"raw\" signals \(\mathbf{\tilde{q}}_{m},\mathbf{\dot{q}}_{m},\mathbf{q}_{m},\mathbf{\tau}_{m}\) used for identification purpose, are eventually built from \(\mathbf{\tilde{q}}\), \(\mathbf{\tilde{\tau}}\) by sequential time duration followed by a parallel-decimation step in order to eliminate torque ripple and high-frequency noise components. The term \"raw\" here refers to the fact that the signals used for identification are not necessarily filtered. This makes it possible to test the robustness of the different identification algorithms to measurement or numerical differentiation noise. The parallel-decimation process in BIRDy is carried out with a zero-shift low-pass Tchebyshev filter, implemented using the _decimate_ Matlab function. Similar to [2; 6] the cutoff frequency \(f_{dec}\) is set to be approximately one order of magnitude higher than the joint bandwidths. The decimation ratio \(n_{d}\) by which the input data are being sub-sampled is defined as \(n_{d}=\lfloor 0.8f/2f_{dec}\rceil\) where \(f\) is the sampling frequency.