{"id":13710651,"url":"https://github.com/vss2sn/tello","last_synced_at":"2025-05-06T19:32:21.699Z","repository":{"id":54292809,"uuid":"241049721","full_name":"vss2sn/tello","owner":"vss2sn","description":"A C++ library for the Tello and Tello Edu. Features joystick control, command line control, command queues and SLAM.","archived":false,"fork":false,"pushed_at":"2021-02-19T04:35:11.000Z","size":6118,"stargazers_count":21,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-13T21:44:32.515Z","etag":null,"topics":["autonomous-quadcoptor","command-line","cpp","joystick","noros","openvslam","queue-commands","slam","slam-algorithms","tello","tello-drone","tellodrone","telloedu"],"latest_commit_sha":null,"homepage":"https://vss2sn.github.io/tello/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vss2sn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-17T07:54:55.000Z","updated_at":"2024-05-19T12:42:30.000Z","dependencies_parsed_at":"2022-08-13T11:10:35.774Z","dependency_job_id":null,"html_url":"https://github.com/vss2sn/tello","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vss2sn%2Ftello","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vss2sn%2Ftello/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vss2sn%2Ftello/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vss2sn%2Ftello/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vss2sn","download_url":"https://codeload.github.com/vss2sn/tello/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252753679,"owners_count":21798993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-quadcoptor","command-line","cpp","joystick","noros","openvslam","queue-commands","slam","slam-algorithms","tello","tello-drone","tellodrone","telloedu"],"created_at":"2024-08-02T23:00:59.353Z","updated_at":"2025-05-06T19:32:16.669Z","avatar_url":"https://github.com/vss2sn.png","language":"C++","readme":"# Tello #\n\n### This repository contains a C++ library that enables interaction with DJI/RYZE Tello and Tello Edu drones ###\n\n[![Build Status](https://travis-ci.com/vss2sn/tello.svg?branch=master)](https://travis-ci.com/vss2sn/tello)\n\n#### This README contains a quick overview of the repository. Please refer to the [documentation](https://vss2sn.github.io/tello/) for details. ####\n\n\u003ca name=\"toc\"\u003e\u003c/a\u003e\n#### Table of contents ####\n- [Table of contents](#toc)\n- [Overview](#overview)\n- [CMake Options](#cmake)\n- [Quickstart](#qs)\n- [Build and run with SLAM](#bslam)\n- [Default joystick mappings](#joy)\n- [Notes](#notes)\n- [References](#ref)\n- [Project paths (current \u0026 projected)](#pp)\n- [Troubleshooting](#ts)\n\n\u003ca name=\"overview\"\u003e\u003c/a\u003e\n#### Overview ####\n\nCommand/control methods\n1. Using a joystick\n2. Autonomously using a command queue\n3. Command line interface\n\nJoystick mode\n* The joystick is always active (though it's use can be safely removed by setting the CMake option `USE_JOYSTICK` to `OFF`)\n* Commands from the joystick are continuously sent to the drone without waiting for a response\n* Based on the controller used, the mappings might require modification\n* The default controller is gameSirT1s; key/axis to value mappings for PS3 and 360 controller have been provided, though the mappings between the values to the commands sent to the drone might need modification\n\nAutonomous mode\n* This queue is always overridden by the joystick as a safety measure\n* Using the joystick while the queue is executing pauses the queue, which will need to be restarted even when there is no longer additional input from the joystick\n* Queue execution can be safely paused and resumed\n* Commands can be dynamically added\n* This mode enables (optional) command retries when a command does not receive any response from the drone\n\nCommand line interface\n* A command line interface can be brought up by setting the CMake option `USE_TERMINAL` to `ON`\n* Like the joystick, the CLI will pause command queue execution\n* To send a command to the drone, the command format is `SDK command` (eg: land)\n* To modify the queue via the terminal, the command format is `queue \u003cfunction\u003e \u003ccommand\u003e` where\n  `function` : add, start, stop, addfront, clear, removenext, allowautoland, donotautoland\n  `command`  : (required argument for some, not all, of the above) `SDK command`\n  (eg: queue start, queue addfront takeoff)\n\nSLAM integration has been provided using the OpenVSLAM library.\n\n\u003ca name=\"cmake\"\u003e\u003c/a\u003e\n#### CMake options ####\n1. `SIMPLE`\n    - Default `OFF`\n    - When `OFF` the output to the screen will also print the line number and file number of the print statement as well as the log level (STATUS, DEBUG, INFO, WARN, ERR).\n2. `USE_JOYSTICK`\n    - Default `ON`\n    - When set to `ON` allows the use of a joystick to control the drone and exits if a joystick is not found at startup.\n3. `RECORD`\n    - Default `OFF`\n    - When set to `ON` records the video\n4. `RUN_SLAM`\n    - Default `OFF`\n    - When set to `ON` runs OpenVSLAM, creating a map of the area and localizing the drone\n5. `USE_TERMINAL`\n    - Default `OFF`\n    - When set to `ON` opens up an xterm that takes in lines and sends them as commands to the Tello (example: `command` , `takeoff`, etc)\n6. `USE_CONFIG`\n    - Default `OFF`\n    - When set to `ON` uses the config manager to create the Tello from the config file `config.yaml`\n\n\u003ca name=\"qs\"\u003e\u003c/a\u003e\n#### Quickstart ####\n    sudo apt install libasio-dev libopencv-dev\n    git clone https://github.com/vss2sn/tello.git  \n    cd tello  \n    mkdir -p build \u0026\u0026 cd build  \n    cmake ..\n    make -j4\n    ./tello\n\n\u003ca name=\"bslam\"\u003e\u003c/a\u003e\n#### To build and run with SLAM ####\n\nPlease refer to the [documentation](https://vss2sn.github.io/tello/building.html) for details\n\n\u003ca name=\"joy\"\u003e\u003c/a\u003e\n#### Default joystick mappings ####\n\nPlease note that mappings have been provided for PS3 and Xbox360 controllers as well, but they might require some tweaking. The default mapping is for the gameSirT1s.\n\nThe mappings include querying `battery`, `wifi`, etc as well as `stop`, `emergency`, and `flip` commands.\n\nPlease refer to the [documentation](https://vss2sn.github.io/tello/joystick_mapping.html) for details\n\n\u003ca name=\"notes\"\u003e\u003c/a\u003e\n#### Notes ####\n1. Due to the asynchronous nature of the communication, the responses printed to the command might not be to the command state in the statement (for example in case the joystick was moved after a land command was sent, the statement would read `received response ok to command rc a b c d` instead of `received response ok to command land`)\n2. Travis CI is run with `cmake -DRUN_SLAM ..` with the `install_openvslam.sh` script to ensure proper builds\n\n\u003ca name=\"ref\"\u003e\u003c/a\u003e\n#### References ####\n1. Joystick library - https://github.com/Notgnoshi/joystick\n2. h264decoder library - https://github.com/DaWelter/h264decoder\n3. OpenVSLAM - https://github.com/xdspacelab/openvslam\n\n\u003ca name=\"pp\"\u003e\u003c/a\u003e\n#### Project paths (current \u0026 projected) ####\nPlease refer to the [documentation](https://vss2sn.github.io/tello/ongoing.html) for details\n\n\u003ca name=\"ts\"\u003e\u003c/a\u003e\n#### Troubleshooting ####\nPlease refer to the [documentation](https://vss2sn.github.io/tello/troubleshooting.html) for details\n","funding_links":[],"categories":["SDK Wrappers"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvss2sn%2Ftello","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvss2sn%2Ftello","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvss2sn%2Ftello/lists"}