DOI: 10.21950/taigc4
title: SoftNeckCameraStabilization: Data and results of the identification and control of a soft neck

description: In order to obtain the model parameters, an identification experiment was performed to capture the plant input-output behavior. For this purpose, a step input was introduced in the plant, and the corresponding output was registered. Given that the system input is a velocity, but the neck inclination has a limited working range, a sign alternating input is needed to avoid the maximum inclination that would cause output saturation. For the same reason, the expected transfer function order is two, including a real pole and an integrator. After testing different modeling options, the most accurate result was obtained with the standard two-pole and gain control engineering model.&lt;/br&gt;
Four csv files are available that include the described information about the end effector orientation of the soft robot while varying the length of the tendons. The sets of data include:&lt;/br&gt;
 * I/O identification data for pitch motion.&lt;/br&gt;
 * I/O identification data for pitch motion at 50 Hz.&lt;/br&gt;
 * I/O identification data for roll motion.&lt;/br&gt;
 * I/O identification data for roll motion at 50 Hz.&lt;/br&gt;
In addition, the experiment results are also provided as datasets:&lt;/br&gt;
 * Step input experiment for different mass loads (FOPI) (pitch and roll).&lt;/br&gt;
 * Step input experiment for different mass loads (PID) (pitch and roll).&lt;/br&gt;
 * Camera stabilization experiment for 1 kg mass loads (FOPI).&lt;/br&gt;
 * Camera stabilization experiment for 1 kg mass loads (PID).&lt;/br&gt;
 * Disturbance experiment for 1 kg mass loads (FOPI).&lt;/br&gt;
 * Disturbance experiment for 1 kg mass loads (PID).&lt;/br&gt;
description: Matlab
description: Octave
description: QtCreator
description: The description of the soft robotic platform where the experiments are performed, the method of obtaining the identification through the data, the design of the controllers and the description of the trajectories can be found in the paper “Humanoid head camera stabilization using a soft robotic neck and a robust fractional order controller”.
Description of the project: 
A new approach for head camera stabilization of a humanoid robot head is proposed, based on a bio-inspired soft neck. During walking, the sensors located on the humanoid's head (cameras or inertial measurement units) show disturbances caused by the torso inclination changes inherent to this process. This is currently solved by a software correction of the measurement, or by a mechanical correction by motion cancellation. Instead, we propose a novel mechanical correction, based on strategies observed in different animals, by means of a soft neck, which is used to provide more natural and compliant head movements. Since the neck presents a complex kinematic model and nonlinear behavior due to its soft nature, the approach requires a robust control solution. Two different control approaches are addressed: a classical PID controller and a fractional order controller. For the validation of the control approaches, an extensive set of experiments is performed, including real movements of the humanoid, different head loading conditions or transient disturbances. The results show the superiority of the fractional order control approach, which provides higher robustness and performance.
Methodology:
- In order to obtain the robot identification dataset, step input actions are performed in an open loop and the results of the robot output are saved in a data file (.csv). The identifications were performed using the C++ code available in the following code repository:
https://github.com/rauldesantosrico/soft-neck-camera-stabilization

- Using a computer algebra system (Matlab or Octave), least squares transfer function model parameter estimation was obtained. The model folder available scripts “rollModel.m” and “pitchModel.m” automate this process.
- Controller parameters can be obtained with the transfer function model obtained previously and the scripts “isomFOCp.m”, “isomFOCr.m”, “isomPIDp.m” and “isomPIDr.m” available in the “calcs” folder.
- The experiments were performed using the C++ code available in the following code repository:
https://github.com/rauldesantosrico/soft-neck-camera-stabilization

- Visualize the experiment results in Matlab/Octave through files and functions such as "results/experiment1.m”, “figs/FOPIgraphs.m” and “figs/PIDgraphs.m”.