  Nano-sized unmanned aerial vehicles (UAVs) are ideal candidates for flying
Internet-of-Things smart sensors to collect information in narrow spaces. This
requires ultra-fast navigation under very tight memory/computation constraints.
The PULP-Dronet convolutional neural network (CNN) enables autonomous
navigation running aboard a nano-UAV at 19 frame/s, at the cost of a large
memory footprint of 320 kB -- and with drone control in complex scenarios
hindered by the disjoint training of collision avoidance and steering
capabilities. In this work, we distill a novel family of CNNs with better
capabilities than PULP-Dronet, but memory footprint reduced by up to 168x (down
to 2.9 kB), achieving an inference rate of up to 139 frame/s; we collect a new
open-source unified collision/steering 66 k images dataset for more robust
navigation; and we perform a thorough in-field analysis of both PULP-Dronet and
our tiny CNNs running on a commercially available nano-UAV. Our tiniest CNN,
called Tiny-PULP-Dronet v3, navigates with a 100% success rate a challenging
and never-seen-before path, composed of a narrow obstacle-populated corridor
and a 180{\deg} turn, at a maximum target speed of 0.5 m/s. In the same
scenario, the SoA PULP-Dronet consistently fails despite having 168x more
parameters.
