TinyVideoShootingOperator
概要
- 指定された座標に向かう。
- 到着した座標をより円周を飛行し撮影を行う。(今回はカメラ操作なし、飛行のみ。)
- 撮影後帰投する。
方式
- 向かう座標の指定、到着の判定はWaypointで行う。
- 丘陵等への衝突回避はTerrain Followingで行う。
- Mission Planer、QGCなどのGCSをドローンへ接続した状態で実行する。
- 撮影時の周回飛行はCircle Modeで行う。
手順
-
前準備
- settings.jsonに目的地の緯度経度、および飛行高度を設定する。
- targetLocation.lat : 目的地緯度
- targetLocation.lon : 目的地経度
- altitude : 飛行高度。Terrainからこの高さを保ちながら飛行し、この高さで撮影を行う。メートルで指定する。
- circleSettings.radius : 円周半径(パラメータCIRCLE_RADIUSに指定する値)
- circleSettings.rate : 角速度(パラメータCIRCLE_RATEに指定する値)
- settings.jsonに目的地の緯度経度、および飛行高度を設定する。
-
撮影
- スクリプトを起動する。
- 目的地の緯度経度、飛行高度、撮影時の円周半径および角速度が表示されるため良ければ'y'を入力して飛行開始。'n'を入力して中断。
- 目的地に到着すると"到着"の表示後、目的地周辺の周回飛行を開始。'R'が入力されるまで続ける。
- 'R'が入力されたら帰投する。
-
備考
-
テスト時は下記のコマンドでSITLを起動している。
sim_vehicle.py -v ArduCopter -N -w --custom-location=35.80005627,139.0842228,0,0
-
今回は撮影時の周回飛行をCircle modeで行ったがCircle modeの間、高度が保持されない現象が確認できた。
-
SITL固有の問題であるかは切り分けできなかったが、Circleは高度の変更を受け付けるmodeであるため、スロットルが低い状態になっていると類推し、Circle modeの間は属性リスナーのコールバックでrc overrideを用いスロットルを保持し続けるようにして回避している。
-
現状のArdupilotの仕様を考えるとCircleのように周回するWaypointを設定するのが妥当だと考える。今後そちらも試したい。
-