DJI Telloのフロントカメラのcamera_calibration


DJI Tello等ドローンの自律飛行を実現するには、3D環境でナビゲーション経路を計画としてOMPL(Open Motion Planning Library)を試してみます。

目次

  1. OMPLのインストール
  2. OMPLの基礎
  3. OMPL.appの入門
  4. OMPLの使用
  5. DJI Telloの使用
    1. DJI Telloのフロントカメラのcamera_calibration ← いまココ
    2. Visual SLAM ORB_SLAM2 用のカメラキャリブレーションYamlファイルの作成
    3. DJI Telloのカメラ でVisual-SLAMのORB-SLAM2 を動かしてみた
  6. navigationスタックの使い方
    1. Turtlebot3 NavigationをGazebo Simulationで動かしてみた
    2. Turtlebot3 Navigationでmap_fileの代わりにSLAMを使用
    3. ARdroneのシミュレーターをGazeboで動かす
    4. AirSimのシミュレーターを動かす
    5. octomapのインストール
    6. 単眼カメラでORB_SLAM2から3D point clouodの生成
    7. point_cloud2から3D octomapの生成
  7. OMPLで3D 経路計画
    1. 状態空間環境のセットアップ

動作環境

  • Ubuntu 18.04
  • ROS Melodic
  • Tello EDU

DJI Telloのフロントカメラのcamera_calibration

DJI TelloのROSドライバを利用して、フロントカメラのcamera_calibrationを行います。

  • キャリブレーション用のプレートをダウロード
    check-108.pdf

  • check-108.pdfをA4で印刷

  • tello_driverを起動

# ros2 launch tello_driver teleop_launch.py
  • camera_calibrationを実行

square: 印刷したA4プレートの市松模様の1辺の長さ(0.0245m)

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/tello/image_raw
  • camera_calibrationの結果を保存

saveすると、/tmp/calibrationdata.tar.gzが生成されます。

calibrationdata.tar.gzを解凍、calibration結果のost.yamlを開く

image_width: 960
image_height: 720
camera_name: narrow_stereo
camera_matrix:
  rows: 3
  cols: 3
  data: [941.157225, 0.000000, 452.917655, 0.000000, 941.828857, 365.688689, 0.000000, 0.000000, 1.000000]
distortion_model: plumb_bob
distortion_coefficients:
  rows: 1
  cols: 5
  data: [-0.004306, 0.075005, 0.000249, -0.007162, 0.000000]
rectification_matrix:
  rows: 3
  cols: 3
  data: [1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
projection_matrix:
  rows: 3
  cols: 4
  data: [949.711426, 0.000000, 447.736415, 0.000000, 0.000000, 956.075378, 365.760827, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

Next: 5.2. Visual SLAM ORB_SLAM2 用のカメラキャリブレーションYamlファイルの作成
Prev: 4. OMPLの使用