RSS

Category Archives: Programming

Programmed RYZE Tello Drone Flight

Tello drone and battery charging array

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.

Program code executing a sequence of commands from command.txt
This python class sends the commands and receives the responses from the Tello drone

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.

Sample commands

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.

Raspberry Pi device

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.

Quick preview of Jenkins on Pi. Pulls code from BitBucket to fly the drone. Raspberry Pi here becomes the non-human controller of the drone’s flight path.

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.

Very early years ground robot
 
Leave a comment

Posted by on August 16, 2019 in Programming

 

Tags: , ,