Closed uchihashikenshi closed 4 years ago
ここで -np.
になってるのはどういうことかわかってない🤔
https://github.com/shigeyukioba/matchernet/blob/599911aa0f026ccfb22e4f8d996cc0684459c567/matchernet_py_001/ekf.py#L283
z=mu0-mu1 なので、 mu0 による微分と、mu1 による微分とで、 符号が逆になります。
@shigeyukioba ありがとうございます。
メモ的に書いていたので説明不足だったのですが、以下のような疑問でした。
MatcherNetと拡張カルマンフィルタ を参考に進めているのですが、こちらを見ると dmu0
が正、dmu1
が負で、実装ではこれが逆になっているように思いました。
符号が異なるのは理解した上で、式と符号が逆になっているのはなにか意味があるのかな、というところです。
よろしくお願いします・・・!
全体(前後の処理)を見ないとわかりませんが、計算の挙動を見て符号を決めたかも。 数式ノートとコードの対応が付くように、両者をアップデートしておきたいです。
2019年12月10日(火) 9:50 uchihashi_k notifications@github.com:
@shigeyukioba https://github.com/shigeyukioba ありがとうございます。 メモ的に書いていたので説明不足だったのですが、以下のような疑問でした。 MatcherNetと拡張カルマンフィルタ https://scrapbox.io/MatcherNetDev/MatcherNet%E3%81%A8%E6%8B%A1%E5%BC%B5%E3%82%AB%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF を参考に進めているのですが、こちらを見ると dmu0 が正、dmu1 が負で、実装ではこれが逆になっているように思いました。 符号が異なるのは理解した上で、式と符号が逆になっているのはなにか意味があるのかな、というところです。 よろしくお願いします・・・!
— You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/shigeyukioba/matchernet/issues/25?email_source=notifications&email_token=AAAEM2HWYV7FDJBI5CUEIPDQX3RV3A5CNFSM4JQJBML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGLHMIQ#issuecomment-563508770, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAEM2BV4D67I5F2RH542K3QX3RV3ANCNFSM4JQJBMLQ .
@shigeyukioba 了解です。ここもmtgで話しておきたいですー
[bug report]
SI = np.matrix(S).I
が逆行列を取るために使われていて、それ以降計算結果がすべて np.matrix
となる仕様を確認。 np.matrix
の仕様上、(2, 2) * (2, )
の計算結果が (2, )
ではなく (1, 2)
になるようで、ここが原因で行列の仕様が少し歪んでいた(転置を取って計算順序を入れ替えるなど)と思われる。
matrix
か ndarray
かに統一しておくべきかと思っていて、
linalg.inv
でも取れるmatrix
は二次元配列専用matrix
では内積が *
に対応( ndarray
では dot
, @
)で間違いの元になるという理由で ndarray
でやってみようかと思います。
残った・新たに見えた修正点は以下。
warning
を消すmu
の修正は行ったが、Sigma
についても同様に修正が必要/demo
以下の brica 使用時の可視化にちょっとしたバグ。 s.step()
中も後もインスタンス変数を取り出すことができないので、例えば可視化したければ Bundle
などに直接可視化のスクリプトを書くとかログを書き込むとかするしかなさそうState
を dataclass
で実装
目的
ekf の demo を作成する
提案内容
/demo
以下にdemo_ekf.py
を作り、のようにして呼び出せるようにする。
タスク
関連