Tello driver_ros_wrapper is a simple ROS metapackage that allows to control DJI Tello drone via ROS topics.
In order to communicate with the drone, the python library tellopy
is being used which can be found here.
At this moment, the pose of the drone is being published by the help of an optitrack system, where it is reading the information from the TF frame world to robot_base_link.
In case there is not such transform available no drone pose will be published.
In this ROS metapackage, there lies 2 ROS packages, the tello_driver and the tello_msgs. The tello_driver is the core, where the tello_msgs only contains custom messages specific to Tello, such as the flight data.
tello_takeoff_topic_name
- Default:
/tello/takeoff
- Purpose: Trigger the drone to takeoff.
- Use: Send an empty msg.
- Default:
tello_land_topic_name
- Default:
/tello/lang
- Purpose: Trigger the drone to land.
- Use: Send an empty msg.
- Default:
tello_image_topic_name
- Default:
/tello/camera/image_raw
- Purpose: Publish the camera image to a ROS topic.
- Default:
tello_flight_data_topic_name
- Default:
/tello/flight_data
- Purpose: Publish the drone flight data to a ROS topic, such as the battery percentage.
- Default:
tello_vel_cmd_stamped_topic_name
- Default:
/tello/cmd_vel_stamped
- Purpose: Topic to control the drones velocity.
- Default:
tello_collision_topic_name
- Default:
/tello/collision_detection
- Purpose: Topic that tells the tello driver if it is about to collide. If so controls will be blocked.
- Default:
tello_flip_control_topic_name
- Default:
/tello/flip_control
- Purpose: Triggers the drone to perform a flip. Refer to
tello_msgs/msg/FlipControl
to see the type of the message to send.
- Default:
tello_cmd_vel_topic_name
- Default:
/tello/cmd_vel
- Purpose: Publish the drone velocity.
- Default:
tello_frame_name
- Default:
robot_base_link
- Default:
tello_world_frame_name
- Default:
world
- Default:
connect_to_tello_wifi_auto
- Default:
true
- Default:
tello_ssid
- Only required if connect_to_tello_wifi_auto is set to true
tello_password
- Default: None
Note: you should place this repository inside the catkin_ws/src
folder!
- go to your catkin_ws and do
catkin_make
and source thecatkin_ws/devel
setup file (only needs to be done once) - To launch the tello driver and make it connect to the tello's wifi automatically, run this command:
roslaunch tello_driver tello_driver_ros.launch tello_ssid:=<the ssid of tello's wifi>
- To launch the tello driver and manually connect to the tello's wifi, run this command:
roslaunch tello_driver tello_driver_ros.launch connect_to_tello_wifi_auto:=false
In order to be able to use tello_ros_wrapper metapackage, some dependencies are needed.
- python3:
sudo apt install python3
- python3 pip:
sudo apt install python3-pip
- ROS noetic: Installation guide
- python libraries:
pip install requirements.txt