ROSにTello_driver導入 (メモ書き)


初めに

DJI Tello EDUを使う機会があり,試しにTello_driverを導入しようとしたのだがめちゃくちゃ苦戦した.
もし,私と同じで「導入できねぇ!!」という人がいた時のために,この記事を作成した.

なお,私はLinuxもROSも初心者で「全部わかんねぇ!!」という状態だったが,なんとか導入できた.
私ができたのだから,みんな出来るはず.ROSわかんねぇ.

導入環境

今回はVirtualBoxを使用し,Windows10上で仮想マシンを稼働させて行った.

  • OS : Linux Ubuntu 20.04
  • ROS ver : noetic

いるかわからないけど,パソコンの構成も記載します.

  • CPU : Intel Core-i5 8250U 1.60GHz (CoffeeLake)
  • Memory : 8GB (仮想マシンでは2.0GB割り当て)

導入手順

まず,ROSがなければ話が進まないので,ROSの導入法についてはGoogle先生に聞いてほしい.
おすすめはこのページ:Ubuntu18.04にROSをインストールしてみた

上記のページではROS melodicの導入法を紹介している.もし,Kineticあるいはnoeticを導入する場合は,"melodic"と書かれている箇所をそれぞれのROS verの名前に変えたらよい.

というわけで,導入できた前提で進めていく.
基本的には,tello_driver-ROS Wikiに載っている方法に準拠するが,少々手順を追加しなければならないところがある.

まず,ターミナルで以下のコマンドを実行する.

$ cd catkin_ws/src 
$ git clone --recursive https://github.com/appie-17/tello_driver.git

ここまでは,ROS Wikiと同じ手順である.

しかし,このまま以下のコマンドを実行するとcatkin buildでエラーが発生する.

$ cd ..
$ catkin_make

このときに発生するエラーの原因としては,"camera_info_manager_py"のPackageがROSにインストールされていないことがあげられる.

インストールされていない場合,「じゃあ,camera_info_managerを導入するか~」となって以下のコマンドでインストールするかもしれない.

ex1
$ sudo apt-get install ros-noetic-image_common
ex2
$ sudo apt-get install ros-noetic-camera-info-manager

実は,このコマンドで導入した"camera_info_manager"と,必要な"camera_info_manager_py"は全くの別物である.
詳しく説明すると

なので,今回実行するコマンドはこちら↓

~/catkin_ws/src
$ git clone --recursive https://github.com/ros-perception/camera_info_manager_py

これで,~/catkin_ws/src に"camer_info_manager_py"と"tello_driver"があれば完璧.天才.やったね.

あとは,最後に

$ cd ..
$ catkin_make
$ source devel/setup.bash

これで,Tello_driverの導入は完了です.お疲れ様でした.

終わりに

私がこの導入法にたどりついた原因として,GitHubのros-perception/camera_info_manager_pyに以下のことが書いてあったのを見つけたからである.

This ROS package defines a Python camera_info_manager interface, providing sensor_msgs/CameraInfo support for camera drivers written in Python.

ROS wiki documentation: camera_info_manager_py.

This interface is similar to that of the C++ camera_info_manager package, but not identical.

この記事によって,「tello_driverが導入できねぇ!!」という人たちが一人でも救われることを祈る.