With the path-breaking progress in UAV technology, drones are now being readily adopted and deployed for several uses. Despite the advancement, many physically challenged people who wish to operate a drone are unable to do so due to certain limitations in maintaining drone stability in the air.
But now they too can fly a drone with the help of voice commands. And the best part is that the voice commands can be given in English or any other language.
For this fascinating project, I am using Raspberry Pi with Voice Bonnet as a ground control station (GCS). You can build the same with any Linux PC as well. This GCS/PC uses voice commands to control the Tello Drone. Once the drone system recognises the voice command, a connection is established with which the drone can be controlled.
Use Raspbian-based Raspberry Pi as it is portable, small and can be easily implemented for controlling the drone. Install the following modules:
The Speech_recognition and PyAudio modules help capture the voice and recognise the voice commands. Tello-Python is used for establishing connection with the Tello Drone. It also allows drone control and video capture.
Tello-Python facilitates the following functions.
- Drone takeoff using drone.takeoff()
- Drone navigation in the forward direction using drone.forward(cm)
- Rotating the drone to 90 degrees in clockwise or anti-clockwise direction using drone.cw(90)
- Forward, backward, left or right mid-air flips using drone.flip(‘l’)
- Live stream a video from the drone camera to the PC using drone.streamon()
- Land the drone using drone.land()
The AIY Voice Bonnet with help of speech recognition modules allows capturing and recognising of voice commands. To enable them, import the two associated libraries in the code.
To control the drone, next import the Tello-Python library in the code.
After doing all of the above, create a while loop (that will run continuously until stopped). This while loop assists in checking that if the bonnet button is pressed, the voice command gets processed.
To execute an action according to the command given by the user, create several if conditions. So suppose the user wishes the drone to start flying. By commanding it to ‘take off’, the request is matched with the if condition. If it matches the action set in the code, a signal is sent to the Tello Drone to start flying. Similarly, set here all the other functions that you command the drone to do corresponding with the actions to be executed.
First, switch on the drone control device (Raspberry Pi), connect it to an HDMI Display and then connect the drone to the Tello Wifi. After that, connect your phone with USB tethering. When all the connections have been made, run the code. A video of the drone surroundings is displayed on the Raspberry Pi Screen. Now press the bonnet button and command the drone to take off and start flying.
With this, you will now be able to command the drone to perform other functions and operate the drone – with no hands required.
Congratulations!! You have successfully completed the project and created a drone that can be controlled using voice commands.