THIS IS ALPHA SOFTWARE. IT HAS NOT BEEN WELL TESTED, AND THE INPUTS HAVE NOT BEEN FINE TUNED. I TAKE NO RESPONSIBILITY FOR ANY DAMAGE THAT OCCURS TO YOUR TELLO WHILE USING THIS SOFTWARE. MAKE SURE TO VALIDATE INPUT VALUES IN FLIGHT CONTROLLER COMPONENT BEFORE TAKEOFF
This project would not be possible without the hard work put into these two libraries.
: A c# library that allows the tello
to be controlled via windows. It also exposes the underlying API which contains the positioning data.
: Modifies TelloLib to work in Unity, including the video feed.
So I completely reworked this project from the ground up. I optimized and simplified everything, added tracking from takeoff, re-added rift support, and completely reworked the autopilot system. Instead of giving the tello
a target point to fly to, the tello
's only job is to try and match a target tello
's position(Blue quad in the video). It's my theory that this will be easier for the PIDs to handle because there is a smaller range of inputs to deal with.
With the tello
flying itself you are free to move the target with either the gizmos, my fly-to-target system, or via a custom script. The simulator has also been updated so you can test complex autopilot features without destroying your tello
or waking the neighbors.
I have spent little time tuning the autopilot PIDs, so there is a lot of room for improvement there. The autopilot loads a PID profile which can be found in the hierarchy. You can update those values or create your own PIDProfile component. You can also swap PID profiles in flight for different situations. The tellos performance in the simulator will not match the real thing, so don't use the simulator to tune the pids.
What you see in the video above is the same project in the github repo. 'T' and 'L' to takeoff and land, 'P' to toggle autopilot on and off. (Any input to the flight controls will also deactivate the autopilot). With the autopilot active you can either move the target with the editor gizmo, or drag a point into the Autopilot component. Autopilot will also automatically deactivate when tracking is lost. YOU MUST BE FOCUSED ON A GAME WINDOW FOR INPUT TO WORK
FPV supported for the Rift and VIve. Rift can use touch controllers but Vive will need joystick or keyboard inupt. To use VR, you need to enable it in the project settings.
INPUT MANAGER (TUNING & JOYSTICK SUPPORT)
All inputs go through the input manager. This is where you can fine tune your selected input. This provides a way to tune your keyboard input, or set up a flight stick. Sensitivity and Deadzone are self explanitory. Gravity is only for the keyboard, and determines how quickly the value returns to 0. Feel free to suggest input values you find. Input manager can be found at Edit - Project Settings - Input. Right now the only flightstick supported is the thrustmaster 1600m and throttle. If you have a joystick you would like to use, I can let you know how to set it up.
Download Unity Editor 2018.3
Download UnityControllerForTello HERE
Open Unity and select open project. Navigate to folder you just downloaded.
Allow Unity through firewall via inbound rules Image Example
Connect to tello
Press play in editor
Perform pre-flight checks
Wait for video feed
Flight instructions located top left corner