• 9

    TakJP様
    変換ありがとうございます。ジャンプ地点の前後のみではなくジャンプ位置を特定せずにフライト全域で移動平均するイメージでした。この場合、正常なリボン図も鈍るので滑らかさの妥協点を探すことになります
    (機速や旋回半径と関係ありそうです)。
    当方もpythonをかじり始めましたが未だ辞書型って何?といったところで停滞中です。
    ご無理を言って恐縮ですが全域移動平均のリボン図を試して頂けると嬉しいです。

    また、TakJP様が以前仰っていたようにEKF_パラメータでフィルタの調整ができそうですが、カルマンフィルターの知識が無い上に翻訳機の問題なのかパラメータの意味と効果が良く分かりません。ジャンプの再現性もほぼ無いのでこちらは手がついていません。

  • 10

    soramon様
    フライト全域で移動平均した結果を下図に示します。
    画像1
     これは1回移動平均操作をした結果で、前回の投稿でお示しした結果とほぼ同等です。ジャンプの入口でリボン図が折れ曲がっています。また、フライト全体を見ますと、全体的に飛行軌跡が滑らかとなっています。
    画像1
     次にこの図は全域での移動平均操作を2回実施した結果で、今度はリボン図の折れ曲がりは見られず滑らかなループになっています。全体を見ますと、更に飛行軌跡は滑らかとなっており、曲技の角は取れてRのようになっています。例えば、トライアングルの三角形は角が取れてループのようになります。
    画像1
     これは、NED座標のNの時間変化を修正のあるなしで比較したもので、修正無しより1回目の修正、更に2回目の修正で角が取れて変化が滑らかになる様子が分かります。
     以上の解析から、もしリボン図のジャンプを、JSONファイル上のNED座標値の移動平均で修正する場合は、修正はジャンプの前後に限る方が良いと思います。
     以上、ご報告でした。

  • 11

    TakJP様
    再試行ありがとうございました。

  • 12

    下図に、修正前とジャンプ域のみ単純移動平均操作を2回実施した修正後のリボン図を示します。ループの中程(修正操作の入口,赤矢印)とループの出口(修正操作の出口,赤矢印)に多少不自然さが残りますが、修正前と比較すると、修正精度は抜きにしてある程度見た目上ジャンプの修正ができたのではないかと思います。
    画像1
    画像1

  • 13

    TakJP 様
    アドバイスしていただいたPythonで自動変換プログラムを書いてみました。
    JSONファイルから、3軸それぞれの位置移動を2回微分して加速度をもとめそのベクトルの大きさが閾値(機体の移動・旋回性能?)を超えたところをジャンプ場所として自動抽出しました。
    自動抽出したジャンプ場所を中心に100データの区間をサンプル数31個の移動平均を2回実施しました。ここでTakJP 様と同様に移動平均区間の開始と終了個所で多少不自然さが残ったので、全域をサンプル数11個の移動平均を行ったものが以下のものになります。
    画像1

    Python便利ですね。素人でもJSONファイルの読み書きができました。アドバイスありがとうございました。

  • 15

    soramon様
    ゼロから始めてもうプログラムが組めるとは、感服致しました。私の場合は、プログラムが組めるようになるには学び始めてから半年以上かかりました。Pythonには、移動平均やカルマンフィルターなどのデータ解析や辞書型データのJSON型データへの変換などのモジュールが揃っていますので、プログラミングが楽になります。
     さて、ジャンプ場所の特定ですが、私の場合は当該時刻の移動距離と前時刻の移動距離の比が閾値を超えた場合としました。データ間の時間間隔が一定ですので、soramon様の場合と同じことになりますね。ところで、私のフライトデータでは、JSONファイルの位置情報の移動平均を取った場合ジャンプ位置前後のデータの影響が残ってしまい、不自然な飛行軌跡となっていました。そこで、ジャンプ時刻までは正常な値で、ジャンプした後徐々に正常な値に漸近するようなケースに限って、ジャンプ時の値とジャンプ後数秒後の値を直線で結び、これに移動平均操作を施しました。ジャンプ後何秒後の値を直線で結ぶかはリボン図を見て適切な値を与える必要があります。このような操作を行った結果を下図に示します。なお、細かな凹凸はカルマン平滑化法で取り除きました。
    画像1
     修正後のリボン図に直線部分が少し残ってしまいました。移動平均する個数やジャンプ後の直線近似するデータ数などのパラメータをもう少し吟味する必要があります。このケースでは、ジャンプ後はジャンプ前の飛行軌跡に沿った飛行軌跡になりますので、適切なパラメータさえ与えることができれば、私のケースではこの修正方法は妥当と思われます。NED座標のN値の時間変化も示します。この手法の考え方が分かるかと思います。今回のケースのようにジャンプ後に正常な値に漸近するようなケースには、この修正方法は有用ではないでしょうか。
    画像1
     次に変換ソフトの一般公開についてですが、私は少し懸念を持っています。といいますのは、soramon様や私が行っている方法は、Flight Coachが作成したJSONファイルを書き換えて使用していますので、著作権に抵触する可能性があるのでは、と思っています。修正の考え方を公開するのは問題ないと思いますが、その手法をプログラミングしたものを一般公開するには、少なくともFlight Coachの作成者の了解を得る必要があるのではないでしょうか。著作権につきましては、私は素人ですので慎重になりすぎているのかもしれません。この分野に詳しい方がおられましたらご教示頂ければ幸いです。

  • 16

    前回投稿しました方法と同様に、リボン図のジャンプの状況として、ジャンプ時刻までは正常な値で、ジャンプした後徐々に正常な値に漸近すると判断される場合に限って、ジャンプ時の値とジャンプ後数秒後の値を直線で結び、これに移動平均操作を施しました。前回のケースで、パラメータを吟味して与えた結果ジャンプのあったループのリボン図が下記のようになりました。移動平均したままですと多少凹凸が残りますので、前回と同様カルマン平滑化操作で凹凸を取り除きました。修正前のリボン図と合わせて示します。
    画像1
    画像1
    画像1
     今回は前出のパラメータを吟味する前のリボン図と比較してかなり滑らかになり、不自然なところはありません。また、ジャンプ後の飛行軌跡もジャンプ前の飛行軌跡に沿った形になり、ジャンプ前後の移動平均操作を行った前出の場合と比較してジャンプの影響が見られず、実際にフライトした時の印象から判断してより実際に近い飛行軌跡になっているものと思われます。ただし、ジャンプ後の位置情報について直線近似後移動平均操作を行っていますので、その修正精度につきましては保証できません。ジャンプ前後の領域で飛行軌跡に大きな変化をもたらすようなプロポ操作を行った場合は、参考程度にお考え頂ければと思います。
     このように、ジャンプ時刻までは正常な値で、ジャンプした後徐々に正常な値に漸近すると判断される場合に限れば、今回の修正方法は有用な方法であると考えます。

  • 17
    denkado 2022/09/04 (日) 10:27:40 修正

    BBSへの書き込みありがとうございます。
    私は専門的な知識が無いので良くわからないのですが、
    著作権等に関わって来る可能性のある内容については、修正や削除のご配慮を頂きたいと思っています。
    その結果をみて、このトピックの取り扱いを決めさせて頂きます。

  • 18

    denkado様
    ご検討頂き、ありがとうございました。
     著作権につきましては私も素人ですので、著作権に抵触せずにどこまで許されるのか分かりません。私は、皆様が困っているリボン図のジャンプについて、その修正方法に関する自分の考え方を公にするのは問題ないと考えています。しかし、この分野の専門の方が著作権に抵触する可能性有りと判断、あるいは管理人様がこのトピックを削除した方が良いと判断されるのであれば、トピックを立ち上げた者として私は管理人様のご判断を尊重致します。

  • 19
    denkado 2022/09/04 (日) 18:28:26

    今回の件は、個人利用の範囲での議論なので、管理人としての判断で問題無しとします。
    色々な意見やアイデアを出し合って頂ければ、更なる発展も期待できますので、引き続いての投稿もお願いします。