A 64-mW DNN-Based Visual Navigation Engine for Autonomous Nano-Drones

Fully miniaturized robots (e.g., drones), with artificial intelligence (AI)-based visual navigation capabilities, are extremely challenging drivers of Internet-of-Things edge intelligence capabilities. Visual navigation based on AI approaches, such as deep neural networks (DNNs) are becoming pervasive for standard-size drones, but are considered out of reach for nano-drones with a size of a few cm2. In this paper, we present the first (to the best of our knowledge) demonstration of a navigation engine for autonomous nano-drones capable of closed-loop end-to-end DNN-based visual navigation. To achieve this goal we developed a complete methodology for parallel execution of complex DNNs directly on board resource-constrained milliwatt-scale nodes. Our system is based on GAP8, a novel parallel ultralow-power computing platform, and a 27-g commercial, open-source Crazyflie 2.0 nano-quadrotor. As part of our general methodology, we discuss the software mapping techniques that enable the DroNet state-of-the-art deep convolutional neural network to be fully executed aboard within a strict 6 frame-per-second real-time constraint with no compromise in terms of flight results, while all processing is done with only 64 mW on average. Our navigation engine is flexible and can be used to span a wide performance range: at its peak performance corner, it achieves 18 frames/s while still consuming on average just 3.5% of the power envelope of the deployed nano-aircraft. To share our key findings with the embedded and robotics communities and foster further developments in autonomous nano-unmanned aerial vehicles (UAVs), we publicly release all our code, datasets, and trained networks.

[1]  Robert J. Wood,et al.  Science, technology and the future of small autonomous drones , 2015, Nature.

[2]  Luca Benini,et al.  Enabling the heterogeneous accelerator model on ultra-low power microcontroller platforms , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Michele Magno,et al.  Target following on nano-scale Unmanned Aerial Vehicles , 2017, 2017 7th IEEE International Workshop on Advances in Sensors and Interfaces (IWASI).

[4]  Xianbin Cao,et al.  Offline and Online Search: UAV Multiobjective Path Planning Under Dynamic Urban Environment , 2018, IEEE Internet of Things Journal.

[5]  Hilbert J. Kappen,et al.  Efficient Optical Flow and Stereo Vision for Velocity Estimation and Obstacle Avoidance on an Autonomous Pocket Drone , 2016, IEEE Robotics and Automation Letters.

[6]  Jason Cong,et al.  Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks , 2015, FPGA.

[7]  Yi Lin,et al.  Autonomous aerial navigation using monocular visual‐inertial fusion , 2018, J. Field Robotics.

[8]  Davide Scaramuzza,et al.  Vision-based autonomous quadrotor landing on a moving platform , 2017, 2017 IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR).

[9]  Martial Hebert,et al.  Learning monocular reactive UAV control in cluttered natural environments , 2012, 2013 IEEE International Conference on Robotics and Automation.

[10]  Luca Benini,et al.  Extending the Lifetime of Nano-Blimps via Dynamic Motor Control , 2019, J. Signal Process. Syst..

[11]  Luca Benini,et al.  A fully-synthesizable single-cycle interconnection network for Shared-L1 processor clusters , 2011, 2011 Design, Automation & Test in Europe.

[12]  Luca Benini,et al.  Near-Threshold RISC-V Core With DSP Extensions for Scalable IoT Endpoint Devices , 2016, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[13]  Giuseppe Loianno,et al.  Special Issue on High‐Speed Vision‐Based Autonomous Navigation of UAVs , 2018, J. Field Robotics.

[14]  Luca Benini,et al.  Ultra low-power visual odometry for nano-scale unmanned aerial vehicles , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[15]  Carlos R. del-Blanco,et al.  DroNet: Learning to Fly by Driving , 2018, IEEE Robotics and Automation Letters.

[16]  Julian Förster,et al.  System Identification of the Crazyflie 2.0 Nano Quadrocopter , 2015 .

[17]  Mark Yim,et al.  Piccolissimo: The smallest micro aerial vehicle , 2017, 2017 IEEE International Conference on Robotics and Automation (ICRA).

[18]  Henk Corporaal,et al.  Memory-centric accelerator design for Convolutional Neural Networks , 2013, 2013 IEEE 31st International Conference on Computer Design (ICCD).

[19]  James Sean Humbert,et al.  Implementation of wide-field integration of optic flow for autonomous quadrotor navigation , 2009, Auton. Robots.

[20]  Davide Scaramuzza,et al.  Aggressive quadrotor flight through narrow gaps with onboard sensing and computing using active vision , 2016, 2017 IEEE International Conference on Robotics and Automation (ICRA).

[21]  Flavio Vella,et al.  Multi-objective autotuning of MobileNets across the full software/hardware stack , 2018, ReQuEST@ASPLOS.

[22]  Zhu Han,et al.  Real-Time Profiling of Fine-Grained Air Quality Index Distribution Using UAV Sensing , 2017, IEEE Internet of Things Journal.

[23]  Peter I. Corke,et al.  Multirotor Aerial Vehicles: Modeling, Estimation, and Control of Quadrotor , 2012, IEEE Robotics & Automation Magazine.

[24]  Tarik Taleb,et al.  Low-Altitude Unmanned Aerial Vehicles-Based Internet of Things Services: Comprehensive Survey and Future Perspectives , 2016, IEEE Internet of Things Journal.

[25]  Nikolai Smolyanskiy,et al.  Toward low-flying autonomous MAV trail navigation using deep neural networks for environmental awareness , 2017, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[26]  Dario Floreano,et al.  Optic-Flow Based Control of a 46g Quadrotor , 2013 .

[27]  Abhinav Gupta,et al.  Learning to fly by crashing , 2017, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[28]  Daniel Cremers,et al.  Visual-Inertial Navigation for a Camera-Equipped 25g Nano-Quadrotor , 2014 .

[29]  Ran El-Yaniv,et al.  Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations , 2016, J. Mach. Learn. Res..

[30]  Roland Siegwart,et al.  Vision-Controlled Micro Flying Robots: From System Design to Autonomous Navigation and Mapping in GPS-Denied Environments , 2014, IEEE Robotics & Automation Magazine.

[31]  Stefan Carlsson,et al.  CNN Features Off-the-Shelf: An Astounding Baseline for Recognition , 2014, 2014 IEEE Conference on Computer Vision and Pattern Recognition Workshops.

[32]  Jian Sun,et al.  Deep Residual Learning for Image Recognition , 2015, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[33]  Shalini Batra,et al.  MVO-Based 2-D Path Planning Scheme for Providing Quality of Service in UAV Environment , 2018, IEEE Internet of Things Journal.

[34]  Luca Benini,et al.  Optimal Tiling Strategy for Memory Bandwidth Reduction for CNNs , 2017, ACIVS.

[35]  Luca Carlone,et al.  Navion: A Fully Integrated Energy-Efficient Visual-Inertial Odometry Accelerator for Autonomous Navigation of Nano Drones , 2018, 2018 IEEE Symposium on VLSI Circuits.

[36]  Hilbert J. Kappen,et al.  Local histogram matching for efficient optical flow computation applied to velocity estimation on pocket drones , 2016, 2016 IEEE International Conference on Robotics and Automation (ICRA).

[37]  Soonhoi Ha,et al.  C-GOOD: C-code Generation Framework for Optimized On-device Deep Learning , 2018, 2018 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[38]  Luca Benini,et al.  An IoT Endpoint System-on-Chip for Secure and Energy-Efficient Near-Sensor Analytics , 2016, IEEE Transactions on Circuits and Systems I: Regular Papers.

[39]  Sergey Levine,et al.  (CAD)$^2$RL: Real Single-Image Flight without a Single Real Image , 2016, Robotics: Science and Systems.

[40]  Vikas Chandra,et al.  CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs , 2018, ArXiv.

[41]  Gopalakrishna Hegde,et al.  CaffePresso: An optimized library for Deep Learning on embedded accelerator-based platforms , 2016, 2016 International Conference on Compliers, Architectures, and Sythesis of Embedded Systems (CASES).

[42]  Sebastian Scherer,et al.  River mapping from a flying robot: state estimation, river detection, and obstacle mapping , 2012, Auton. Robots.

[43]  Xinwen Fu,et al.  HAWK: An Unmanned Mini-Helicopter-Based Aerial Wireless Kit for Localization , 2012, IEEE Transactions on Mobile Computing.

[44]  James Sean Humbert,et al.  Erratum to: Implementation of wide-field integration of optic flow for autonomous quadrotor navigation , 2009, Auton. Robots.

[45]  Luca Benini,et al.  Smart Energy-Efficient Clock Synthesizer for Duty-Cycled Sensor SoCs in 65 nm/28nm CMOS , 2017, IEEE Transactions on Circuits and Systems I: Regular Papers.

[46]  Luca Benini,et al.  μDMA: An autonomous I/O subsystem for IoT end-nodes , 2017, 2017 27th International Symposium on Power and Timing Modeling, Optimization and Simulation (PATMOS).