goo blog サービス終了のお知らせ 
見出し画像

もんく [とある南端港街の住人になった人]

MicroPythonにはカルマンフィルタ無いのか?(修正)

この週末は金曜日休みなので3連休なのだけれど、自分の課題が一段落したので忙しくやる事が無いのが惜しい気もする。1つやる事考えてたんだけど、やっぱりやめた。仕事の質が上がらないとわかったから。まともにやると1ヶ月かかりそうだし。なので、完全にOFFかなぁ?

MicroPythonの1つ足りないところを見つけた。

それは、エッジデバイスでアナログや数値入力があるのにその入力に適用できるフィルタのライブラリが充実していない事。簡単に言うと入力に含まれるノイズを除去したい場合があるのだけれど、そのライブラリが大きいので通常Pythonではあるのだけれど、MicroPythonには無い。1つローパスフィルタは見つけだけれどそれはpyboard専用で使えなかった。

と言うわけで普通は移動平均を使うようなことになる。まあ、それでも役には立つのだけれど外れ値が入ってた時にずれると言う問題が出てくるので計算に使う値の数を増やさないといけない。それでいろいろ調べたのだけれど、カルマンフィルタと言うのがあって、これはライブラリを使わなくても、ある程度環境が固定されていればできる感じらしい。

https://logics-of-blue.com/kalman-filter-concept/

あくまでも「らしい」。と言うのはカルマンフィルタ自体がどう言うものなのかがネットで検索して調べた程度しかわかってないから。

それでもとりあえず書いてみた。
こう言う使い方で良いのかわからないが、あのページの中でRで書いてるのをPythonに変換してみた。



例では予め用意しておいたデータセットを使っているところ、これは秤からシリアル通信で送られて来る値を使っている。
これで大丈夫かどうかまだテストしていないが、そのうちにやってみる。

<プログラムに間違いがあったので修正>


一応フィルタとして働いているらしい。が、パラメータの設定等の詳細は未だ不明。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「マレーシアでニャー2020」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事