/tello_driver

ROS driver for DJI/Ryze Tello drones

Primary LanguagePythonApache License 2.0Apache-2.0

tello_driver

DISCLAIMER: This package is an work-in-progress. I take no responsibility for any consequences of you using this software. The documentation might be broken, and features and API are considered VOLATILE presently.

ROS driver wrapper for DJI/Ryze Tello drone

Node: src/tello_driver_node.py

Topics:

Parameters:

  • ~tello_ip
  • ~tello_cmd_port
  • ~client_port
  • ~connect_timeout_sec

Installation

  • $ cd <CATKIN_WS/SRC>
  • $ git clone https://github.com/anqixu/TelloPy.git
  • $ cd TelloPy
  • $ sudo -H pip2 install -e .
  • $ cd ..
  • $ git clone https://github.com/anqixu/h264_image_transport.git
  • $ git clone https://github.com/anqixu/tello_driver.git
  • $ cd ..
  • $ rosdep install h264_image_transport
  • skip this step: $ # rosdep install tello_driver # not working currently
  • $ catkin build tello_driver

Optionally, install the following udev rules for PS3 gamepads; see instructions in comments on top of file.

Running the driver

  • turn on drone and wait for its front lights to blink amber
  • connect WiFi to drone's access point (e.g. TELLO_######)
  • $ roslaunch tello_driver launch/tello_node.launch

To see the camera:

  • $ rosrun rqt_image_view rqt_image_view /tello/image_raw/compressed

Tele-operate the drone using a wired DualShock 3 gamepad

First check out the following and possibly adjust parameters / code / mappings:

Now run:

  • $ roslaunch tello_driver devel.launch

Connecting to multiple drones

It is possible to connect to multiple Tello drones by using multiple USB WiFi dongles and a Docker container running UDP proxy servers.

Known bugs

  • Sometimes, perhaps when taking off without moving gamepad analog sticks / sending commands to /tello/cmd_vel, further cmd_vel will not work; fix by restarting node, moving gamepad analog sticks / send a message to /tello/cmd_vel FIRST, then takeoff