
質問失礼いたします。
半年前ほどからArduinoのプログラムを始めまして、現在ジャイロセンサーのMPU6050モジュールを扱っているのですが、2つ使用して指の角度を計測するときに、指の角度は変えず、腕(手首)を動かすと計算値が変わってしまうのですが原因が今ひとつわかりませんので、どうかご教授いただけたらと思います。
計算値とは1つ目のジャイロから2つ目のジャイロの数値を引き算した結果の数値です。
分かりづらくて恐縮ですが、画像が指の断面図で、赤色がジャイロモジュールの位置です。
③は①のように指の角度は変えず、手首や腕を動かした状態です。
③の状態で数値が変わってしまします。②、④も同様です。

No.2ベストアンサー
- 回答日時:
Copilot に聞いてみましたところ、それらしい回答が得られましたのでお伝えします。
参考まで。MPU6050モジュールを使用して指の角度を計測する際に、指の角度を変えずに腕を動かすと計算値が変わる問題については、ジャイロセンサーが腕の動きによる加速度や角速度の変化も検出してしまうために起こり得る現象です。ジャイロセンサーは、その性質上、動いている物体の角速度を測定するため、腕を動かすとセンサーがその動きを検出し、指の角度の計測値に影響を与える可能性があります。
この問題を解決するためには、センサーのデータをフィルタリングして、不要な動きによる影響を除去する必要があります。例えば、**Madgwickフィルター**や**カルマンフィルター**などのアルゴリズムを使用して、ジャイロセンサーと加速度センサーのデータを組み合わせ、より正確な角度計測を行うことができます¹[1]²[2]。
また、センサーの取り付け位置や固定方法を見直すことで、腕の動きがセンサーに与える影響を最小限に抑えることも重要です。センサーが指と同じ軸上にしっかりと固定されていることを確認し、腕の動きによる影響を受けにくい設計にすることが望ましいです。
具体的な対策としては、以下のステップを試してみてください:
1. センサーの取り付け位置を見直し、指と同じ軸上に固定する。
2. Madgwickフィルターやカルマンフィルターなどのアルゴリズムを実装して、センサーデータをフィルタリングする。
3. 実験を行い、腕を動かしたときに計算値がどの程度変わるかを確認し、必要に応じてフィルタリングのパラメータを調整する。
これらの対策により、指の角度の計測精度を向上させることが期待できます。もし、これで問題が解決しない場合は、センサーのキャリブレーションやプログラムの見直しも検討してみてください。さらに詳しい情報や実装例については、オンラインのフォーラムや専門の文献を参照すると良いでしょう¹[1]²[2]。
[1]: https://oshiete.goo.ne.jp/qa/13794977.html ""
[2]: https://shizenkarasuzon.hatenablog.com/entry/201 … ""
[3]: https://qiita.com/shinshin_kenkyuu/items/3076202 … ""
ソース: Bing との会話 2024/4/25
(1) ArduinoのジャイロモジュールMPU6050について - 教えて!goo. https://oshiete.goo.ne.jp/qa/13794977.html.
(2) とある科学の備忘録 - 【Arduino 】MPU-6050を使って姿勢角を .... https://shizenkarasuzon.hatenablog.com/entry/201 …
(3) 六軸センサーから姿勢角度算出 #Arduino - Qiita. https://qiita.com/shinshin_kenkyuu/items/3076202 …
No.1
- 回答日時:
>腕(手首)を動かすと計算値が変わってしまうのですが原因が今ひとつわかりません
各センサの誤差の累積でしょうね。
2つのセンサ間の相対位置が変わらなくても、それぞれのセンサの測定値が変化しますよね。
それぞれに測定誤差がありますので、測定値が変化すれば、両者のセンサ値の差が変化するのは当然と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで旧字体を異字体に一括で変...
-
モジュールとクラスの違いって...
-
ユーザー定義関数に#NAME?が返...
-
エクセルVBA クラスモジュール...
-
クラスモジュールについて
-
Excel VBA 定義されたプロージ...
-
VBA This Workbookモジュール...
-
ExcelでTelnetを動かしたい
-
モジュールとは何ですか
-
マクロについて教えてください。
-
VBAProjectのモジュ...
-
FreeBSDでperlモジュールをイン...
-
グラフのX,Y座標を取得したい
-
Form間の値の渡し方
-
ユーザー定義関数をEXCELに常駐...
-
モジュールの最大数はいくつな...
-
【vba】フォームに書いてあ...
-
VBA ユーザーフォーム Image1 ...
-
PCをWI-FI化(現在は有線)
-
'Range'メソッドは失敗しました
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
VBでグローバル変数を宣言するには
-
標準モジュールを削除したい。(...
-
vba userFormのSubを標準モジュ...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
VBAProjectのモジュ...
-
印刷後メッセージボックスを表...
-
Access VBA標準モジュールにつ...
-
VBAで旧字体を異字体に一括で変...
-
大量の標準モジュールを解放す...
-
Form間の値の渡し方
-
エクセルVBA クラスモジュール...
おすすめ情報