What makes the Tello drone so amazing is the ability to programmatically send commands to it. The drone has an on-board camera and can stream both photos as well as videos. It does not have built in GPS and uses VPS instead to determine it’s flight stability routines. None the less, it is interesting to have an ability to “compute” and “actuate”. This can then become a robot UAV that could have some machine learning algorithms coupled with it to determine its own flying path including obstacle avoidance. In a way, the combination would give rise to an autonomous flying UAV.
I’m no where close to that with this Tello drone, but definitely inching towards it. As a first step, I worked on getting the drone to follow a programmed flight path based on fixed parameter values. I’ll cover the details of how I did this a little later in this article. You can view the output first.
This flight proceeded on it’s own, getting instructions via a python program over a wifi connection with the drone. The code is simple and involves sending UDP messages to the Tello over port 8889. Here is a view of the code with the key request / response commands highlighted.
The command.txt just has a list of commands from the Tello SDK, except delay, which is custom code. Here is a sample of the contents of a command.txt file.
From my iPad Pro, I did SSH into a RaspberryPi device and ran the python code that flew the drone in the video above. Here is the action happening in the console.
That’s it for now. In my next blog article related to further development around these experiments, I will cover how I extended this to use the Raspberry Pi display, wireless USB dongle, wifi repeater, Intel Neural compute stick and running a Jenkins instance on the device.
The Tello drone is a remarkable device and allows for many possibilities. My main area of interest is autonomous flying UAVs, which like Shakey in the early 70s, could maneuver around obstacles in it’s path.