Personal tools

A Novel Execution Scheme for Ultra-tiny CNNs Aboard Nano-UAVs

From iis-projects

Revision as of 13:33, 17 May 2022 by Dpalossi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
DORY [4] layer routine example.

Description

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 dpalossi@iis.ee.ethz.ch
Supervisor: Prof. Dr. Luca Benini

Prerequisites

  • 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

Character

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

Meetings

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.

Literature

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

https://ieeexplore.ieee.org/abstract/document/8715489

Practical Details

↑ top