the ability to fly"
Research on humanoids usually focuses on manipulation and bipedal terrestrial locomotion. However, we believe that these robots could also benefit from aerial locomotion skills for specific applications such as disaster response, 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, and close valves.
We carry out research activities in different directions to implement aerial humanoid robotics onto the humanoid robot iCub.
CAD Design
We carry on our research activities with the flying humanoid robot iRonCub. We research how to improve the humanoid robot's 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 actual experiments. The current version is iRonCub MK3. We use a semi-automatic URDF generation procedure from the CAD model 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 have four jet engines, two mounted on the arms and two on a jetpack attached to the robot’s back. Currently, experiments are carried out with iRonCub MK3.
Modifications of the iCub hardware design were required to support the external engines, such as developing a new spine in titanium and adding heat-resistant covers for heat protection.
iRonCub MK3 with jet engines weighs about 70 kg. The turbines can provide a maximum thrust force of more than 1000N, and the exhaust temperature reaches 600 degrees.
PLANNING AND CONTROL
Trajectory Planner
A challenging task in Aerial Humanoid Robotics consists of planning flight and walking trajectories and transitions between walking and flight.
To address this problem, we designed a momentum-based trajectory planning algorithm with Python, implemented via a direct multiple-shooting approach. The planner has been validated in simulation and will be tested on the real robot.
Flight Control
We design control algorithms to regulate the humanoid robot's attitude and position 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. It also ensures the 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 is essential for a flying robot like iRonCub. Currently, we are developing a sensor fusion algorithm in C++ to estimate the robot's position and orientation in space. We rely on the onboard IMU and Real Sense located on the robot chest.
Jet engines and thrust estimation
To efficiently test our flight control and planner during actual robot experiments, we need to conduct research activities to model and identify the jet turbines. For this reason, we have developed a sophisticated test bench for determining the input/output relationship of the jet engines. Thrust estimation and control are implemented based on the identified turbine models and feedback data from the turbines, such as the Round Per Minute (RPM) and the pump voltage. We also aim to include robot sensors and models in our estimation algorithm to improve thrust estimation during flight further.
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 evaluating 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 experimenting with the real iRonCub in a wind tunnel at Politecnico di Milano. This activity aims to validate the CFD simulations and collect valuable data. This is the first time a humanoid robot is tested in a wind tunnel.