All Projects → SMerrony → Tello

SMerrony / Tello

Licence: mit
The tello Go (golang) package is an unofficial, easy-to-use, standalone API for the Ryze Tello® drone.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Tello

Drone
🍰 The missing library manager for Android Developers
Stars: ✭ 512 (+725.81%)
Mutual labels:  drone, package
Easytello
An easy to use library to support DJI Tello scripting in Python 3
Stars: ✭ 58 (-6.45%)
Mutual labels:  drone
Fmt firmware
Embedded Code of FMT Autopilot
Stars: ✭ 49 (-20.97%)
Mutual labels:  drone
Espresso
🚚 Espresso is an express delivery tracking app designed with Material Design style, built on MVP(Model-View-Presenter) architecture with RxJava2, Retrofit2, Realm database and ZXing
Stars: ✭ 1,084 (+1648.39%)
Mutual labels:  package
Laravel Packager
A cli tool for creating Laravel packages
Stars: ✭ 1,049 (+1591.94%)
Mutual labels:  package
Laravel Reviewable
Adds a reviewable feature to your laravel app.
Stars: ✭ 57 (-8.06%)
Mutual labels:  package
Nasa Cli
🚀 Download NASA Picture of the Day from your terminal!
Stars: ✭ 45 (-27.42%)
Mutual labels:  package
Shield
The core shield package.
Stars: ✭ 60 (-3.23%)
Mutual labels:  package
Unityasync
Task and Async Utility Package for Unity. Start co-routines from anywhere.
Stars: ✭ 58 (-6.45%)
Mutual labels:  package
Skeleton Vue
A skeleton for building Spatie's Vue components
Stars: ✭ 55 (-11.29%)
Mutual labels:  package
Drone Slack
Drone plugin for sending Slack notifications
Stars: ✭ 52 (-16.13%)
Mutual labels:  drone
Pyinstaller
Freeze (package) Python programs into stand-alone executables
Stars: ✭ 8,679 (+13898.39%)
Mutual labels:  package
Eyantra drone
Metapackage to control the edrone via services and topics -https://www.youtube.com/watch?v=M-RYyMyRl9g
Stars: ✭ 57 (-8.06%)
Mutual labels:  drone
Npm Git Install
Clones and (re)installs packages from remote git repos. See npm/npm#3055
Stars: ✭ 49 (-20.97%)
Mutual labels:  package
Yolo Autonomous Drone
YOLO Autonomous Drone - Deep Learning Person Detection: The YOLO Drone localizes and follows people with the help of the YOLO Deep Network
Stars: ✭ 58 (-6.45%)
Mutual labels:  drone
Gosearch
🔍 Search the Go packages via command-line
Stars: ✭ 48 (-22.58%)
Mutual labels:  package
Ios Auto Replace Package
iOS自动打包脚本,并实现图片素材、文字资源、部分代码的替换和重签名,基于python实现。
Stars: ✭ 50 (-19.35%)
Mutual labels:  package
Github
a module for building, searching, installing, managing, and mining Stata packages from GitHub
Stars: ✭ 56 (-9.68%)
Mutual labels:  package
Atom Latex
The only LaTeX package you need for typesetting with Atom.
Stars: ✭ 60 (-3.23%)
Mutual labels:  package
React Native Markdown Editor
A markdown editor like github comment editor (contains preview, helper buttons)
Stars: ✭ 59 (-4.84%)
Mutual labels:  package

tello Go Package

This tello package provides an unofficial, easy-to-use, standalone API for the Ryze Tello® drone.

Disclaimer

Tello is a registered trademark of Ryze Tech. The author of this package is in no way affiliated with Ryze, DJI, or Intel.

The package has been developed by gathering together information from a variety of sources on the Internet (especially https://tellopilots.com) and by examining data packets sent to/from the Tello. The package will probably be extended as more knowledge of the drone's protocol is obtained.

Use this package at your own risk. The author(s) is/are in no way responsible for any damage caused either to or by the drone when using this software.

Features

The following features have been implemented...

  • Stick-based flight control, ie. for joystick, game-, or flight-controller
  • Drone built-in flight commands, eg. Takeoff(), PalmLand()
  • Macro-level flight control, eg. Forward(), Up()
  • Autopilot flight control, eg. AutoFlyToHeight(), AutoFlyToXY()
  • Video stream support
  • Enriched flight-data (some log data is added)
  • Picture taking/saving support
  • Multiple drone support - Untested

See ImplementationChart.md for full details of what functions are currently implemented.

Documentation should be available locally via godoc, or via godoc.org.

An example application using this package is available at telloterm.

Here is an example of just about the simplest use of the package...

package main
import (
  "log"
  "time"
  "github.com/SMerrony/tello"
)

func main() {
  	drone := new(tello.Tello)
  err := drone.ControlConnectDefault()
  if err != nil {
    log.Fatalf("%v", err) 
  }

  drone.TakeOff()
  time.Sleep(10 * time.Second)
  drone.Land()
  drone.ControlDisconnect()
}

Concepts

Connection Types

The drone provides two types of connection: a 'control' connection which handles all commands to and from the drone including flight, status and (still) pictures, and a 'video' connection which provides an H.264 video stream from the forward-facing camera.

You must establish a control connection to use the drone, but the video connection is optional and cannot be started unless a control connection is running.

Funcs vs. Channels

Certain functionality is made available in two forms: single-shot function calls and streaming (channel) data flows. Eg. GetFlightData() vs. StreamFlightData(), and UpdateSticks() vs. StartStickListener().

Use whichever paradigm you prefer, but be aware that the channel-based calls should return immediately (the channels are buffered) whereas the function-based options could conceivably cause your application to pause very briefly if the Tello is very busy; in practice, the author has not found this to be an issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].