Quadrotors do some impressive things, but so far they haven't managed the trick of flying free and avoiding obstacles. Now we have a quadrotor that can do just this and using only a standard video camera.
Cornell's Ashutosh Saxena is using just one video camera on board a commercial quadrotor to allow it to obtain 3D data on the terrain it is flying over and use that data to avoid smashing into trees, poles and fences. If you take a look at the video you can't help but be impressed. However, what it really important about this demonstration is that it is all being done using a neural network that learned how to avoid obstacles. The network isn't a run of the mill feedforward network, but a linear-leak integrate and fire LLIF neuronal net.
The network was trained by being shown lots of 2D photos. Notice that no depth field cameras or stereo pairs of cameras were used - the network learned to understand depth cues present in a 2D photo.
At the moment the hardware is still being constructed and the quadrotor sent pictures back to a laptop that simulated the network. Network latency means that there is a lag between taking the picture and getting back a decision on where to fly. When the hardware is complete it should enable the quadrotor to fly on its own and avoid obstacles. Given the low power consumption and low cost it could give the ability to fly autonomously to almost anything. The potential uses in reconnaissance and rescue situations are obvious.
Take a look at it in action:
It even manages to avoid a complex looking stream of people, which given its size is probably a good thing. The final scene, where a student looks back at it in only slight amazement, does indicate the quadrotors must be a common thing on the Cornell campus.
It can even navigate inside buildings in corridors and stairwells as demonstrated in the next video:
If you remember Clippy then the idea that he is back might make your blood run cold - but this time it's different. Clippy, and his friends Merlin, Rover and Links, are back in the form of a JavaScrip [ ... ]