Visual SLAM ORB_SLAM2 用のカメラキャリブレーションYamlファイルの作成


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

Visual SLAM ORB_SLAM2 用のカメラキャリブレーションYamlファイルの作成

ORB_SLAM2を動かすには、カメラのキャリブレーション設定Yamlファイルがあります。
ORB_SLAM2で使用するYamlファイルのフォーマットがROSのcamera_calibrationの出力Yamlファイルと違いますので、対応関係を説明します。

# rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml

TUM1.yamlをコピーして、tello.yamlファイルを作成します。
ROSのcamera_calibrationの出力Yamlファイルから
fx, cx, fy, cy、k1, k2, p1, p2, k3の値を取得してtello.yamlに更新します。

ROSのcamera_calibrationの出力Yamlファイル
camera_matrix:
  rows: 3
  cols: 3
  data: [fx , 0, cx, 0, fy, cy, 0, 0, 1]

distortion_coefficients:
  rows: 1
  cols: 5
  data: [k1, k2, p1, p2, k3]
tello.yaml
# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 921.170702
Camera.fy: 919.018377
Camera.cx: 459.904354
Camera.cy: 351.238301

Camera.k1: -0.033458
Camera.k2: 0.105152
Camera.p1: 0.001256
Camera.p2: -0.006647
Camera.k3: 0.000000

Next: 5.3. DJI Telloのカメラ でVisual-SLAMのORB-SLAM2 を動かしてみた
Prev: 5.1. DJI Telloのフロントカメラのcamera_calibration