Sensor Fusion For Speed Estimation On Quadrupedal Robots
The goal of this project is to estimate the instantaneous velocity of quadrupedal robots in order to know if they get trapped, fall, are deviated or move as expected. Model-free techniques are used on data collected on two different robots: Oncilla and Pleurobot, which was simulated in Webots. The velocity estimation is done with the System Identification Toolbox of Matlab.
The velocities along x, y and z-axis of the Oncilla robot are first estimated using ARX and NLARX models with information from the robot’s sensors as inputs, especially the acceleration, and the position given by a Motion Capture System as ground truth. The data from the Motion Capture System are derived to obtain the velocity in the robot’s system of coordinates. Models are trained on a virtual experiment, runs during which the robot is swung manually in the air and runs during which its walks straight. An example of results is shown in Figure I.
Figure I: Oncilla
Fit ARX: −10.93%. Fit NLARX: 19.96%
As obtained estimations are not reliable, the identification of model is tested with noised derivative of simple functions as input and functions themselves as ground truth. As fit values are higher than 90%, the system identification is able to find good model for noisy data.
The identification of models is then done on Pleurobot simulation trying to make the identification easier. Only the forward velocity is thus estimated, using the accelerations, the forces and the frequency reference as inputs. The identification is made with more complex models as ARMAX and BJ, which are trained on several runs of few experiments. Nonlinear models are not tried as they are very expensive in time of computation. A hand-tuned BJ model is the most accurate to give good fit values over all experiments. The same models trained on two or three experiments have a similar accuracy. An example of results is shown in Figures II.
Figure II: Pleurobot, exp 4, run 4
The same BJ model is then tested on improved Oncilla data with the same inputs and with the lateral velocity as output. Some parameters are modified to obtain estimations which are visually similar to the measured output, even if there are some inexactitudes on amplitude causing low fit values which stay under 20%.
The report finally shows that unexpected behaviours of Pleurobot in simulations can be detected comparing the error between a multiple of the frequency reference and the estimation of velocity with a simple threshold. An example is shown in Figure III.
Figure III: Detection of unexpected behaviours
This method of detection should be implemented and tested in real time in Webots and adapted to Oncilla. Moreover, methods as systematic search or genetic algorithms should be tried to find optimal parameters of the models.