the ability to fly"
Research on humanoids usually focuses on manipulation and bipedal terrestrial locomotion. However, we believe that for certain applications as, for example, disaster response, these robots could benefit from having also aerial locomotion skills, which is still an unexplored research direction for humanoids. Hence, we define aerial humanoid robotics as the outcome of the platforms having the following capacities:
- Aerial locomotion: to perform outdoor inspection and to move from one building to another;
- Contact locomotion: to perform indoor inspection and climb stairs;
- Manipulation: to open doors, move objects, close valves.
To implement the aerial humanoid robotics onto the humanoid robot iCub, we carry out research activities along with different directions.
CAD Design
We carry on our research activities with the flying humanoid robot iRonCub. We research how to improve the humanoid robot mechanical design to make it fly effectively.
We have designed a CAD model of the robot using PTC Creo, which is continuously improved based on feedback from real experiments. The current version is iRonCub-Mk3. From the CAD model, we use a semi-automatic URDF generation procedure to retrieve updated kinematics and dynamics information. We use the URDF model for planning, control, estimation and simulations.
iRonCub
We have two prototypes of iRonCub, built on top of iCub v2.5 and v3.0. Both versions are endowed with 4 jet engines, two of them mounted on the arms and the other two on a jetpack attached to the robot’s back. Currently, experiments are carried on with iRonCub version 3.
Modifications of the iCub hardware design were required to support the external engines, such as the development of a new spine in titanium and the addition of heat-resistant covers for heat protection.
iRonCub3 with jet engines weights about 70 kg. The turbines can provide a maximum thrust force of more than 1000N, and the exhaust temperature reaches over 600 degrees.
PLANNING AND CONTROL
Trajectory Planner
A challenging task in the context of Aerial Humanoid Robotics consists of planning both flight and walking trajectories, as well as tranisitions between walking and flight.
To address this problem, we designed a momentum-based trajectory planning algorithm with Python, implemented via direct multiple-shooting approach. The planner has been validated in simulation and it is going to be tested on the real robot.
Flight Control
We design control algorithms to regulate both the attitude and the position of the humanoid robot during flight. The control design is based on constrained Quadratic Programming optimization, and the theoretical soundness of the proposed algorithms is verified via Lyapunov analysis. The framework is generalized to work independently from the number of jet turbines installed on the robot, and ensures also satisfaction of some physical constraints associated with the robot and jet engines.
Simulations are carried out with C++ and Gazebo. The C++ controller is also tested during experiments with the real robot.
Base pose estimation
Robot localization in space plays a very important role for a flying robot like iRonCub. At the moment, we are developing a sensor fusion algorithm in C++ for the estimation of the robot position and orientation in space. We rely on the on-board IMU and Real Sense located on the robot chest.
Jet engines and thrust estimation
To efficiently test our flight control and planner during real robot experiments, we need to carry on research activities aimed at modeling and identification of the jet turbines. For this reason, we have developed a sophisticated test bench for identifying the input/output relationship of the jet engines. Thrust estimation and control is implemented based on the identified turbines models and feedback data received from the turbines, such as the Round Per Minute (RPM) and the pump voltage. We also aim at including robot sensors and model in our estimation algorithm to further improve thrust estimation during flight.
AERODYNAMICS
CFD simulation
The aerodynamics of a single rigid body is a complex matter. Consequently, dealing with the aerodynamics of a multi-body system - as a flying humanoid robot is - leaves little space for closed form expressions of the aerodynamic effects, and it is not what we aim to do. So, our approach to evaluate the aerodynamic effects on the flying humanoid robot is to perform CFD simulations using Ansys Fluent, and then extract a simplified model to use in the control design.
Experiments in a wind tunnel
We are performing experiments with the real iRonCub in a wind tunnel at Politecnico di Milano. The aim of this activity is to validate the CFD simulations and collect useful data. This is the first time a humanoid robot is tested in a wind tunnel.