考え方についての質問です。
現在加速度センサーを使用したモーション判定のアプリ(円を描く、四角を描くなど)を作成しようと考えているのですが、x,y,z軸の値は取れるのですが、円を描いた時に円を描いたと判定するにはこの値をどのように計算すればモーションの判定が出来るのでしょうか?

回答3件
あなたの回答
tips
プレビュー
Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。
Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。
Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。
Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。
0グッド
0クリップ
投稿2016/04/12 04:16
考え方についての質問です。
現在加速度センサーを使用したモーション判定のアプリ(円を描く、四角を描くなど)を作成しようと考えているのですが、x,y,z軸の値は取れるのですが、円を描いた時に円を描いたと判定するにはこの値をどのように計算すればモーションの判定が出来るのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
計算方法だけ提示されても間違いなく実用にはならないので、まずは物理(空間と運動の関係)と数学を勉強する必要があります。
加速度を積分すると速度が計算できます。それをさらに積分すると移動距離が出ます。加速度を微分すると動き始め、終わりが判定できます。1軸で直線運動ならまだ簡単です。
Androidの加速度センサの軸は端末の向きなので、同じ方向に動かしても端末の向きによってどの軸に値が出てくるかは変わります。斜めになっていれば複数の軸に値が出てきます。
さらに、動かしてる途中で端末の向きが変わることも考慮したほうがよいかもしれません。座標系を変換して世界座標(東西南北高さの座標)にしてから考える場合もあります。行列計算の知識が必要です。
円運動などということになると、「空間中で物体が円運動する」というのはどういうことかを数学的に理解しておかなければなりません。x^2+y^2=aとか、これを時間(t)を媒介変数にして表した方程式とか、ああいうやつです。これを3次元で考えるのです。で、取得した加速度センサーの値とこの運動がどう結びつくのかを理解して、やっと「運動を判定」にたどり着くことが出来ます。
AndroidのAPIにこのあたりの計算を支援してくれるものもあるようですが、これらを理解してないとリファレンスに書いてあることが理解できません。
ということで頑張ってください。
投稿2016/04/12 05:29
総合スコア1449
0
理論としては先の方の解答を参考にされたらいいと思います。
ご存知でしたら失礼ですが、
加速度センサから得られるセンサ情報は、当たり前ですがノイズやら手ブレやらが入るため、ローパスフィルタがないと精度的に厳しいかもしれませんので、頭の隅にでも置いておいて下さい。
(といっても、この部分の実装は簡単です。)
投稿2016/04/12 05:54
編集2016/04/12 06:05総合スコア907
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。