Coder Social home page Coder Social logo

tello_driver's Introduction

tello_driver Build Status

1. Overview

Communicating with the Tello drone can be done either using official Tello SDK or one of the unofficial libraries. The unofficial libraries originated from the reverse-engineering the raw packages broadcasted by the Tello. This ROS package is build on top of the unofficial TelloPy library. The TelloPy library is used at this moment since it offers more functionalities than the official Tello SDK or any other unofficial library.

Developing of the tello_driver ROS package is inspired by tello_driver, which by now diverged considerately from the original work. Furthermore, development of this ROS package pursues not to modify the TelloPy library, but instead apply any modification or addition to the ros_driver package in an encapsulated manner. This prevents breaking functionalities when updating the TelloPy library.

Some notes on drone control

  • Explanatory drawing of the reference frames

  • Twist of /tello/cmd_vel topic is expressed in {body} frame
  • Odometry of /tello/odom topic is expressed in {odom} frame

Installation

ROS distribution

Binary release from the ROS repository:

  • Kinetic: $ sudo apt install ros-kinetic-tello-driver

Build from source

  • $ cd <CATKIN_WS/SRC>
  • $ git clone --recursive https://github.com/kirillin/tello_driver.git
  • $ cd ..
  • $ catkin build
  • $ source devel/setup.bash

Launch

  • Turn on Tello drone
  • Connect to drone's WiFi access point (TELLO_XXXXXX)
  • $ roslaunch tello_driver tello_node.launch
  • $ roslaunch tello_driver joy_teleop.launch

2. Nodes

2.1 tello_driver_node

Main node running as interface for the TelloPy library

Subscribed topics

Published topics

Services

TODO

Parameters

  • ~/tello_driver_node/connect_timeout_sec
  • ~/tello_driver_node/fixed_video_rate
  • ~/tello_driver_node/local_cmd_client_port
  • ~/tello_driver_node/local_vid_server_port
  • ~/tello_driver_node/stream_h264_video
  • ~/tello_driver_node/tello_cmd_server_port
  • ~/tello_driver_node/tello_ip
  • ~/tello_driver_node/vel_cmd_scale
  • ~/tello_driver_node/video_req_sps_hz
  • ~/tello_driver_node/altitude_limit
  • ~/tello_driver_node/attitude_limit
  • ~/tello_driver_node/low_bat_threshold

2.2 gamepad_teleop_node

Converting gamepad input controls from joy_node to commands for tello_driver_node

Subscribed topics

Published topic

Services

None

Parameters

2.3 joy_node

Receive input from gamepad controller and publish into sensor_msgs/Joy message

Subscribed topics

None

Published topics

Services

None

Parameters

  • ~/joy_node/deadzone
  • ~/joy_node/dev

3. Troubleshooting

  • No more video output after reconnect
    Relaunch the tello_driver_node to continue the video stream after WiFi reconnection. Only an issue when using PyAV to decode h264 video instead of ROS codec_image_transport.

4. Notes

  • Stream raw video
    Depends on PyAV package: $ pip install av --user

    Installation of PyAV on Ubuntu 16.04 requires ffmpeg of at least version 3:

    $ sudo add-apt-repository ppa:jonathonf/ffmpeg-3
    $ sudo apt update && sudo apt install ffmpeg

5. Work-in-progress

6. License

tello_driver's People

Contributors

anqixu avatar jordy-van-appeven avatar kirillin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.