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:
~cmd_vel
: geometry_msgs/Twist~fast_mode
: std_msgs/Empty~image_raw
: sensor_msgs/Image~takeoff
: std_msgs/Empty~throw_takeoff
: std_msgs/Empty~land
: std_msgs/Empty~palm_land
: std_msgs/Empty~flattrim
: std_msgs/Empty~flip
: std_msgs/Uint8
Parameters:
~tello_ip
~tello_cmd_port
~client_port
~connect_timeout_sec
$ 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.
This is by far the most ridiculous hard module to install xD
First thing you need to do is to install Ffmpeg version >= 4:
$ sudo apt update
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-4
$ sudo apt install ffmpeg
I know the next step is option but it made the thing work for me:$ sudo apt upgrade
Then check if its in the right version:$ ffmpeg -version
Now considering that we are using Python2 in ros, when using pip commands be sure to target python2.
Now run:
$ pip install av==7.0.0
I tried intalling the latest version of Av(8.0.2) but it is somehow not competible for python2
- 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
First check out the following and possibly adjust parameters / code / mappings:
Now run:
$ roslaunch tello_driver devel.launch
It is possible to connect to multiple Tello drones by using multiple USB WiFi dongles and a Docker container running UDP proxy servers.
- 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