電動ジンバルSimpleBGCユーザー・スクリプト

電子工作に関連したフォーラムです
アバター
tankimono
記事: 337
登録日時: 2015年4月06日(月) 18:30
お住まい: 神戸市北区山田町上谷上

電動ジンバルSimpleBGCユーザー・スクリプト

投稿記事by tankimono » 2017年10月27日(金) 10:05

私の使用している、電動ジンバルのBeholder EC1は、SimpleBGC制御ボードで制御されています。
SimpleBGCではSimpleBGCのGUIユーザーマニュアルにも記載されていますが、ユーザースクリプトがサポートされています。
このスクリプトを利用すると、電動ジンバルを使用する上で調整や、撮影時に自分独自の便利な機能を実装できそうです。
この辺りの情報があまり、公開されていないようなので少し調査してみる事にしました。
  • スクリプト言語リファレンスの概略既に記載の電動スタビライザーBeholde EC1をスクリプトで制御する。で実際にスクリプトでどのような動作が実現出来るのか実験してみました。
  • SimpleBGCのユーザースクリプトでタイムラップス撮影用のユーザースクリプトでSimpleBGCのユーザースクリプトでタイムラップス撮影用のユーザースクリプトをスクリプト言語リファレンスマニュアルのExampleを参考に作成してみました。
  • 電動スタビライザーのBeholder EC1でタイムラプス撮影に必要な動作が行えるのか、電動スタビライザーのBeholder EC1でタイムラプス撮影が可能か?で実際に実行したときの不具合など使用に関して実験して見ました。
  • 実用になりそうなスクリプトを作成して実際に撮影してきました。

    この撮影のために作製し使用したスクリプト

    コード: 全て選択

    ########################################################
    # 下方に2度チルトし左右に45パン後に原点に戻るスクリプト
    ########################################################
    # 1. ジャイロスコープのキャリブレーションをリフレッシュする
    # モーターをOFFにして3秒間待って、振動を止めます。
    MENU_CMD CMD_ID(12) TIMEOUT(3)
    # ジャイロスコープのキャリブレーション
    MENU_CMD CMD_ID(9) TIMEOUT(4)
    # モーターをONにする
    MENU_CMD CMD_ID(11)
    # 2. フレームが静止していることをシステムに知らせ、ジャイロスコープのドリフトを補償する;
    # この操作を実行するには、'Above YAW'ポジションにフレームIMUがが実装されているか、またはエンコーダタイプのジンバルが必要です。
    SET_ADJ_VAR NAME(FRAME_HEADING_ANGLE) VALUE(0)
    # ドリフトをより良く補償するために、 'ジャイロトラスト'パラメータを十分に低く設定します
    SET_ADJ_VAR NAME(GYRO_TRUST) VALUE(60)
    # 3. カメラを希望の初期位置に移動する
    ANGLE PA(0) RA(0)
    # 5秒間一時停止する
    DELAY TIMEOUT(5)
    # YAWの原点をリセットする:現在の方位角で録画を開始する
    R
    # 動きのスムーズな開始と停止のための低加速設定
    CONFIG ACC_LIMIT_Y(1)
    CONFIG ACC_LIMIT_R(1)
    CONFIG ACC_LIMIT_P(1)
    # カメラを水平から2度下向けにします
    A RA(0) PA(2) YA(0)
    # 4. タイムラプス撮影を開始する
    # 0.02度/秒の速度で左にパンします。 45度、2250秒
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。
    INC YS(0.02) YA(-45) TIMEOUT(2500)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # 0.02度/秒の速度で右にパンします。 90度、4500秒
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。

    INC YS(0.02) YA(90) TIMEOUT(5000)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # 0.02度/秒の速度で左にパンします。 45度、2250秒 合計9006秒 150分(2時間半)
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。
    INC YS(0.02) YA(-45) TIMEOUT(2500)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # カメラを水平に向けます
    A RA(0) PA(0) YA(0)
    # ジンバルをプロファイル3(フォローモード)にして終了する。
    MENU_CMD CMD_ID(3) TIMEOUT(3)
    ### End of program ###
再びスクリプトの変更とSONY撮影アプリ・ソフト PlayMemories Camera Apps タイムラプス で撮影にチャレンジしてみました。

  • このタイムラプス撮影の為に作製したスクリプトです。
    作製前にGoogleMapでターゲットのポートタワーまでの距離とビーナスブリッジの標高160mからCADで見下ろし角度を測定した所2度ほど見下げた角度のようです。
    そこでピッチを水平から2度見下ろし、カメラの内臓電池の連続撮影可能な範囲で左右36度で毎秒0.02度で最初は日没方向の右へ36度、その後左へ72度で最後にスタート時の右に36度パンしカメラを水平にした後にプロファイルを3のフォローモードに変更して修了するようにスクリプトを作成しました。

    コード: 全て選択

    ########################################################
    # 下方に2度チルトし右左に36パン後に原点に戻るスクリプト
    ########################################################
    # 1. ジャイロスコープのキャリブレーションをリフレッシュする
    # モーターをOFFにして3秒間待って、振動を止めます。
    MENU_CMD CMD_ID(12) TIMEOUT(3)
    # ジャイロスコープのキャリブレーション
    MENU_CMD CMD_ID(9) TIMEOUT(4)
    # モーターをONにする
    MENU_CMD CMD_ID(11)
    # 2. フレームが静止していることをシステムに知らせ、ジャイロスコープのドリフトを補償する;
    # この操作を実行するには、'Above YAW'ポジションにフレームIMUがが実装されているか、またはエンコーダタイプのジンバルが必要です。
    SET_ADJ_VAR NAME(FRAME_HEADING_ANGLE) VALUE(0)
    # ドリフトをより良く補償するために、 'ジャイロトラスト'パラメータを十分に低く設定します
    SET_ADJ_VAR NAME(GYRO_TRUST) VALUE(60)
    # 3. カメラを希望の初期位置に移動する
    ANGLE PA(0) RA(0)
    # 5秒間一時停止する
    DELAY TIMEOUT(5)
    # YAWの原点をリセットする:現在の方位角で録画を開始する
    R
    # 動きのスムーズな開始と停止のための低加速設定
    CONFIG ACC_LIMIT_Y(1)
    CONFIG ACC_LIMIT_R(1)
    CONFIG ACC_LIMIT_P(1)
    # カメラを水平から5度下向けにしますビーナス-ポートタワー
    A RA(0) PA(5) YA(0)
    # 4. タイムラプス撮影を開始する
    # 0.02度/秒の速度で右にパンします。 36度、1800秒
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。
    INC YS(0.02) YA(36) TIMEOUT(2000)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # 0.02度/秒の速度で左にパンします。 72度、3600秒
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。

    INC YS(0.02) YA(-72) TIMEOUT(4000)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # 0.02度/秒の速度で左にパンします。 36度、1800秒 合計7206秒 120分(2時間)
    # ターゲットに達する前にコマンドの中断を防ぐのに十分な大きさのタイムアウトを設定します。
    INC YS(0.02) YA(36) TIMEOUT(2000)
    # フリーズを3秒間置く。
    D TIMEOUT(3)
    # カメラを水平に向けます
    A RA(0) PA(0) YA(0)
    # ジンバルをプロファイル3(フォローモード)にして終了する。
    MENU_CMD CMD_ID(3) TIMEOUT(3)
    ### End of program ###
  • 残念ながら日没時間は確認して撮影を開始しましたが、日没方向へのパンを行うには後30分ほど前に撮影開始するスクリプトを作製しなければ成らない事が撮影していてわかりました。
    電池の持続時間を考慮して現在よりパン速度を上げると益々ジャギー的な動きになってしまいます。
    この様な長時間撮影を可能とする様に現在ジンバルに搭載可能なカメラの外部電源の作成を検討準備しています。
以上参考にして頂ければ嬉しいです。
御自分用にカスタマイズされてみては如何でしょうか?

アバター
tankimono
記事: 337
登録日時: 2015年4月06日(月) 18:30
お住まい: 神戸市北区山田町上谷上

Sonyのタイムラプスアプリで露出トラッキング問題で悪戦苦闘

投稿記事by tankimono » 2017年11月12日(日) 20:32

Sonyのタイムラプスアプリで露出がトラッキングしない問題で悪戦苦闘しています。

今まで電動ジンバルでのユーザースクリプトで撮影テストを行ってきましたが、露出のトラッキングが上手く行えず、夕刻などの時間的に露光状態が変動していく被写体ではトラッキングしてくれない為、画像が露出不足となりまともな映像は撮影出来ずに最大枚数の990枚以降の次の先頭と上手く繋がりません。
今回もまた撮影テストに出発する前に、悩んだ結果、Sonyのユーザーサポートに相談してみました。
色々とアドバイス頂き、ISO感度の上限・下限の設定などを教わりその場でテストしましたがトラッキングしているようです。
そこで、以下のように撮影テストを行ってきましたが結果は御覧のように失敗です。

そこで、自宅で被写体とビデオライトの距離を1mから6mまで、50cm刻みで変更しながらタイムラプスアプリで撮影テストを行いましたがやはりトラッキングは行えていなく、スタート時の露光条件で最後まで撮影されています。
色々考えてみましたが、Sonyさんに相談した時点でトラッキングが行えたときと、上手く動作しない時の条件で異なるのは以下の条件です。
  • トラッキングが成功する場合:カメラのシャッターボタンでタイムラプス・アプリをスタートさせた場合
  • 失敗する場合:赤外線リモコンでタイムラプス・アプリをスタートさせた場合

この条件のことをSonyのカスタマーサービスに説明してSonyでもテストを行って頂いた所、確かに背面液晶ではトラッキングしていないように、画像や露光状態の数値の変更はされていないが撮影された、JPGファイルのヘッダーインフォメーションには、トラッキングされ変動していく条件其々のファイルに記録されており赤外線リモコンでも正常にトラッキングされて撮影されるという事でした。

Sonyさんのアドバイスとしては、カメラのアプリなどは全て削除してカメラを初期化して再度、アプリをインストールして確認してくださいとの事でした。
そこでアドバイスを受けたとおり、全てのアプリを削除して、カメラの初期化を行った後にタイムラプスアプリのみをインストールしてテストして見ました。
ところがまたまた失敗です。トラッキングされていません。
撮影テスト結果(露光トラッキング設定:Mid)
  1. 赤外リモコンシャッター操作撮影
    • 照明距離1m(ISO感度:100 露出時間 :1/160 秒 絞り F5.0)
      画像
    • 照明距離3.5m(ISO感度 :100 露出時間 :1/160 秒 絞り :F5.0)
      画像
    • 照明距離6m(ISO感度 :100 露出時間 :1/160 秒 絞り :F5.0)
      画像
  2. カメラシャッターボタン操作撮影
    • 照明距離1m((ISO感度 :100 露出時間 :1/160 秒 絞り :F5.0))
      画像
    • 照明距離3.5m(ISO感度 :100 露出時間 :1/100 秒 絞り :F4.0)
      画像
    • 照明距離6m(ISO感度 :640 露出時間 :1/100 秒 絞り :F2.8)
      画像
そこで、所有していたカメラのコントロール端子に接続する有線リモコンでもテストしてみましたが、上手く動作します。
これ等の違いは、カメラのシャッターボタンの押下や有線リモコンでのシャッター操作は、最初にフォーカス設定の半押し状態の信号がONとなり、その後シャッターの信号はONとなります。
赤外線リモコンの場合は、この半押し状態の信号なしにいきなりシャッタ操作信号がカメラに伝わります。

私が考えるには、この半押し状態時にカメラやタイムラプス・アプリはスタート時の露出状態やアプリのトラッキングパラメータをレジスタに退避しシャーター信号のスタート後の露出決定は、以前の露光履歴と現在の露光状態のデータとを比較しながらレジスタに退避しているパラメータとで演算しながら、不自然にならない様に今回の露出条件を決定して撮影していると判断しています。
赤外線リモコンでの撮影時には、この半押し信号が無い為レジスタの退避を行わず毎回の露出決定時にレジスタに退避したパラメータが正常でない為に露出決定出来ずにスタート時の露出定数での撮影が継続しているのではないかと判断しています。

ただし、私の赤外線リモコンがSonyのRMT-835、互換品の簡易型(S,2Sボタン)、JJCのRMT-DSRL2相当品?でテストしています。
念のため、Sonyさんがテストした現在も生産・販売が行われている純正のRMT-DSRL2を手配しました。

赤外線リモコンの赤外線信号は、スタート信号のあと、メーカーIDのカスタマーコードの後、シャッタター動作のコマンドコードが誤り検出用の判定信号やCRCを送っています。
カメラ側は、このメーカーIDで自分宛の制御信号と認識し誤り検出が正常に行えた場合には、この制御信号であるシャッター動作を行うのです。
この動作は、互換リモコンであれ純正リモコンであれ違いは有りません。

新しいリモコンで何かの改善が行われ、新シャッタ動作モードが追加され、α7R2ではどちらのモードでもシャッタ動作している可能性も否定できない為に、今回手配した、純正のRMT-DSRL2でも正常に動作しないことが判明しました。
確認時のバージョン:
  • カメラα7R2(ILCE-7RM2)ファームウェア:Ver.4.00
  • PlayMemories Camera Apps タイムラプス:Ver. 3.40(2016年11月17日)

11月15日 Sonyに問い合わせましたが、仕切りなおしになりました。
以下の理由でSonyの技術部門で詳細調査いただけることとなりました。
  1. 私の検証では赤外線リモコンで操作する限り現在までの検証全て露出のトラッキングが出来ず固定露出だある。
  2. 先日の11月11日のSonyの検証では背面液晶ではトラッキングしないが撮影ファイルのJpgファイルのファイルヘッダー情報での露光データ確認ではトラッキングされている。
  3. 本日11月15日のSonyの検証では背面液晶及び撮影ファイル共に正常にトラッキングされている。
以上のように三通りの検証結果が出ておりカメラの条件により動作が安定しない疑いがあり、Sonyの関連技術部門での詳細検証を頂き技術部門からの詳細検討結果を踏まえて正式回答及び対策方法を11月下旬までに連絡いただくこととなりました。

2017.11.24 Sonyから正式回答を頂けました。
本件に関してのSonyで詳細に確認した所、私のこれまでの検証どおりカメラの前面受光のRMT-DSLR2等の赤外線リモコンでタイムラプスアプリをスタートさせるとカメラの露光がスタート時に固定され被写体の明暗変化にトラッキングしない事が現在のSonyのタイムラプスアプリの仕様であるとの正式回答をいたきました。
そこで、私としてはSonyのカメラにはタイムラプス用の複数回のシャーッター機能が搭載されておらず、タイムラプスアプリでシャッター動作させられない事から、赤外線リモコンでタイムラプス用のインターバルシャーッターを作製しました。


電子工作へ戻る

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]