Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is the tello_ros driver compatible with the ROS 2 Humble distro? #69

Open
H31T0RN3RY opened this issue May 25, 2023 · 5 comments
Open

Comments

@H31T0RN3RY
Copy link

I was using the driver to control DJI Tello on Ubuntu 20.04 using ROS 2 Foxy, but now I'm using Ubuntu 22.04 and ROS 2 Humble, so I would like to know if tello_ros can be used to control the drone on Humble?

@bchandaka
Copy link

bchandaka commented Sep 14, 2023

I could build all the packages except for tello_description on ros2 humble. I was still able to successfully control the drone with the tele-op launch script.

@clydemcqueen
Copy link
Owner

I spent a little time looking at how to port this to ROS2 Humble.

I was able to get tello_description to build by making these changes to the CMakeLists.txt file:

  • change minimimum to CMake 3.14: cmake_minimum_required(VERSION 3.14)
  • find Python3: find_package(Python3 COMPONENTS Interpreter Development)
  • replace PYTHON_EXECUTABLE with Python3_EXECUTABLE

I got stuck on tello_gazebo. The plugin was written for Gazebo Classic, which AFAICT isn't well supported on Humble. It looks like the options are:

  • build Gazebo Classic from source
  • update the plugin to use Gazebo Sim

I'm happy to entertain PRs!

@clydemcqueen
Copy link
Owner

#77

@TSoli
Copy link

TSoli commented Feb 28, 2024

Any update on this? I was using master branch since you made the changes in #77 but I still get errors as below when I build.

/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_joy_node.cpp:49:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
   49 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_joy_node.dir/build.make:76: CMakeFiles/tello_joy_node.dir/src/tello_joy_node.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:197: CMakeFiles/tello_joy_node.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 40%] Building CXX object CMakeFiles/tello_joy_main.dir/src/tello_joy_node.cpp.o
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_joy_node.cpp:49:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
   49 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_joy_main.dir/build.make:90: CMakeFiles/tello_joy_main.dir/src/tello_joy_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
[ 45%] Building CXX object CMakeFiles/tello_driver_node.dir/src/video_socket.cpp.o
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_driver_node.cpp:180:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
  180 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_driver_node.dir/build.make:76: CMakeFiles/tello_driver_node.dir/src/tello_driver_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
[ 50%] Building CXX object CMakeFiles/tello_driver_main.dir/src/tello_driver_node.cpp.o
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_driver_node.cpp:180:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
  180 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_driver_main.dir/build.make:90: CMakeFiles/tello_driver_main.dir/src/tello_driver_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
[ 54%] Linking CXX executable tello_emulator
[ 54%] Built target tello_emulator
gmake[1]: *** [CMakeFiles/Makefile2:249: CMakeFiles/tello_joy_main.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:223: CMakeFiles/tello_driver_main.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:145: CMakeFiles/tello_driver_node.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
--- stderr: tello_driver
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_joy_node.cpp:49:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
   49 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_joy_node.dir/build.make:76: CMakeFiles/tello_joy_node.dir/src/tello_joy_node.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:197: CMakeFiles/tello_joy_node.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_joy_node.cpp:49:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
   49 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_joy_main.dir/build.make:90: CMakeFiles/tello_joy_main.dir/src/tello_joy_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_driver_node.cpp:180:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
  180 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_driver_node.dir/build.make:76: CMakeFiles/tello_driver_node.dir/src/tello_driver_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/home/tariq/tello_ros_ws/src/tello_ros/tello_driver/src/tello_driver_node.cpp:180:10: fatal error: rclcpp_components/register_node_macro.hpp: No such file or directory
  180 | #include "rclcpp_components/register_node_macro.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tello_driver_main.dir/build.make:90: CMakeFiles/tello_driver_main.dir/src/tello_driver_node.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:249: CMakeFiles/tello_joy_main.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:223: CMakeFiles/tello_driver_main.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:145: CMakeFiles/tello_driver_node.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< tello_driver [16.4s, exited with code 2]

Summary: 3 packages finished [26.7s]
  1 package failed: tello_driver
  1 package had stderr output: tello_driver

And the gazebo library is quite broken too. I am not super experienced but if there is some way I can try to help port this I wouldn't mind trying to help. Might need a little guidance on where to start though.

I did try sudo apt install ros-humble-rclcpp-components and it was already installed. I am on Linux Mint 21.3 which is based on Ubuntu 22.04.

@clydemcqueen
Copy link
Owner

I fixed the tello_driver compiler error and pushed the commit.

Porting tello_gazebo from Gazebo Classic to Gazebo Sim (aka Ignition) will take some work. I'd start here: https://community.gazebosim.org/t/migration-from-gazebo-classic-to-ignition-gazebo/805

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants