Personal tools

Difference between revisions of "A Novel Execution Scheme for Ultra-tiny CNNs Aboard Nano-UAVs"

From iis-projects

Jump to: navigation, search
Line 1: Line 1:
[[Category:Hot]] [[Category:Energy Efficient Autonomous UAVs]] [[Category:UAV]] [[Category:Software]] [[Category:Digital]] [[Category:PULP]] [[Category:Available]] [[Category:Semester Thesis]] [[Category:Master Thesis]] [[Category:Dpalossi]]
[[Category:Hot]] [[Category:Energy Efficient Autonomous UAVs]] [[Category:UAV]] [[Category:Software]] [[Category:Digital]] [[Category:PULP]] [[Category:Available]] [[Category:Semester Thesis]] [[Category:Master Thesis]] [[Category:Dpalossi]]
[[File:dory_ex.png|thumb|right|700px|DORY [4] layer routine example.]]
[[File:dory_ex.png|thumb|right|900px|DORY [4] layer routine example.]]

Latest revision as of 13:33, 17 May 2022

DORY [4] layer routine example.


Autonomous unmanned aerial vehicles (UAVs) are increasingly getting smaller and smarter, up to the so-called nano-sized UAVs -- a few tens of grams in weight. Their tiny form factor can be a game-changer in many practical applications such as aerial inspection or assistance in natural disaster areas, to name a few. This project follows the trail of the PULP-Dronet research project [1,2], deep learning-based autonomous navigation engines for nano-drones. This shallow convolutional neural network (CNN) runs aboard a 27-grams drone being fed with images and outputting a steering angle (regression problem) and a probability of collision (classification problem). This project aims to enhance the autonomous navigation capabilities aboard a Crazyflie 2.1 nano-drone [3] by optimizing the onboard execution of minimal variants of the PULP-Dronet baseline model: Tiny-PULP-Dronet -- up to 50x smaller and 30x faster. The candidate will work on the State-of-the-Art open-source framework DORY [4], which is in charge of translating high-level PyTorch models into the final C implementation deployed on the nano-drone. A key aspect of this project is the final in-filed testing, which offers the possibility of deploying the overall pipeline in a real-life demonstrator and assessing its actual performance on the ground.

Status: Available

Available as Master/Semester Thesis (milestones and project's goals will be adjusted accordingly)
Tutor: Dr. Daniele Palossi
Supervisor: Prof. Dr. Luca Benini


  • Familiarity with C programming.
  • Knowledge of basic python programming and deep learning frameworks (e.g., PyTorch)
  • Basic knowledge of parallel programming and Host/Accelerator paradigm, or willing to learn
  • Basic knowledge/experience in embedded programming favorable


15% Literature and theory study, familarization with existing code
10% Python programming, CNN architecture design
50% C embedded programming (STM MCU and PULP programming/optimization)
15% In-field test and verification
10% Report writing


Weekly meetings will be held between the student and the assistants. The exact time and location of these meetings will be determined within the first week of the project. These meetings will be used to evaluate the status and progress of the project. Besides these regular meetings, additional meetings can be organized to address urgent issues as well.


  • [1] D. Palossi et al., "A 64-mW DNN-based visual navigation engine for autonomous nano-drones," in IEEE IoT Journal, 2019.

Practical Details

↑ top