I started this week trying to figure out the issue with keeping the drone stable after taking off. We thought of using multi-threading to solve the issue. However, since I had never worked with multi-threading before, especially with python, it took me a while to learn and implement it. I wasn’t able to solve the issue using the technique, so instead, I stepped back and looked for ways I could solve this issue without using any complicated concepts. Then, I found out that there were multiple libraries for the Tello drone apart from the official one that I used earlier. I found easyTello to be the most efficient and flexible library to use. Although it didn’t have a lot of documentation and tutorials on its functionality, it was pretty straightforward. I used it and could finally pass other commands such as go left, land, etc.
My next task was to add more advanced commands. I was able to add some commands but the processing speed of the commands was quite low. I thought the problem might be in the transfer speed of the adapter I was using. To verify this, I tried using an ethernet cable to get internet access and tried connecting my laptop to the drone’s wifi. However, I wasn’t able to do so so we went back on using the adapter for the drone connection. I added some more commands, did some testing and debugging by referring to the API documentation and everything seemed to work fine.
Then, I started working on making my program more flexible in terms of how commands are passed. At that time, I had to wait until a command was executed before I could pass another command. But, I wanted to be able to pass a command sequence and have the drone follow it one by one. I did so by breaking the command sequence into smaller command segments using different keywords such as go or move. Then, I extracted integers from the command sequence and passed it to the drone so that it can execute commands passing any distance or speed according to the choice of the user. My plan for next week is to polish the speech recognition interface and move on to the object recognition part of the project.