Madgwickライブラリの収束を速くする 【Arduino/MPU6050】

ArduinoでMPU6050などのジャイロを使うとき、Madgwickライブラリを使うと簡単に角度の推定ができますが、デフォルトの状態だと収束に少し時間がかかるようです。
多少ノイズが大きくなっても速く追従させたかったので、収束速度=ゲインを調整できるようにしてみました。

Madgwickライブラリ: https://github.com/arduino-libraries/MadgwickAHRS

Madgwickライブラリの使い方はここでは述べませんので以下を参照してください。

ArduinoのMadgwickライブラリの使い方
https://garchiving.com/how-to-madgwick-library-of-arduino/

【Arduino 】MPU-6050を使って姿勢角を算出 (MadgwickFilterを使用)
https://shizenkarasuzon.hatenablog.com/entry/2019/02/16/181342

Madgwickライブラリは1.2.0 (2022/12/3時点の最新版)を対象とします。

Madgwickライブラリのゲイン変更

Madgwickライブラリではゲインが0.1で固定されていますので、これを変更できるようにメソッドを追加してみます。

Madgwickライブラリをインストールすると、手元の環境では以下のディレクトリにインストールされていました。
C:\Users\xxxx\Documents\Arduino\libraries\MadgwickAHRS-master\src
(※xxxxはユーザー名)

MadgwickAHRS.h にsetGain()メソッドを追加します。 (begin()メソッドの下の行)

....
public:
    Madgwick(void);
    void begin(float sampleFrequency) { invSampleFreq = 1.0f / sampleFrequency; }
    void setGain(float gain) { beta = gain; }	// <- この行を追加
    void update(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz);
....

begin()を呼んだ後に、以下のようにsetGain(1.0)すると、ゲインを設定できます。

  MadgwickFilter.begin(100); // 100Hz
  MadgwickFilter.setGain(1.0);

デフォルトは0.1です。
1.0にすると、収束が速くなります。ただし、ノイズが大きくなりますので、用途に合わせて調整してください。


ぴよ将棋 リアルタイムヒント機能 【新機能】

ぴよ将棋にリアルタイムヒント機能を実装しました。(Ver4.9.7)
リアルタイムヒント機能とは、手を進めた時にヒントが自動的に動く機能です。
ヒントボタンや検討ボタンを押さなくても、形勢や最善手がわかります。

対局後の検討時にメニューの[リアルタイム ヒント ON]を選ぶと、、、

手を進めた時にヒントが自動的に動くようになります。

検討時の他に、対局設定画面の[棋譜入力モード](プレイヤー vs プレイヤーのみ)でも利用できます。

なお、対局後の検討時と棋譜入力モードでしか利用できませんので、通常の対局中には使用できません。

また、あわせて、ヒントの途中経過を表示する機能も実装しています。
ヒントのレベルを高めに設定していると時間がかかってしまいますが、途中経過が表示されるようになったので、最後まで待たなくてもある程度わかるようになりました。
(ヒントのレベルは設定画面で変更できます)

ぜひ、検討にお役立てください。


本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

【応募期間終了】抽選で20名様に『ぴよ将棋 広告非表示 30日間』キャンペーンコードをプレゼント

ぴよ将棋150万ダウンロード感謝!
抽選で20名様に『広告非表示 30日間』キャンペーンコードをプレゼントします。

【応募方法】
・@STUDIOKPONTA をフォロー
・対象のツイートをRT

応募期限:11月19日(金) 23:59まで

当選者にはDMにてコードをお送りします

※『広告非表示 30日間 キャンペーンコード』は ぴよ将棋の【アプリ版】が対象です。WEB版には使用できませんのでご了承ください。

【11月20日追記】
応募期間は終了しました。多数のご応募、ありがとうございました!


ぴよ将棋の【ぴよベンチ】について

「ぴよベンチ」とは

「ぴよベンチ」は端末に搭載されているCPUの処理速度を計測したもので、対戦成績画面の下部に表示されます。
対戦成績画面を開くたびに計測します。他のアプリやOSのバックグラウンドでの動作状況や端末の温度などによって若干変化します。

「ぴよベンチ」とAI棋力

「ぴよベンチ」が高いと同じ思考時間でも深くまで読めるようになるので、AIの棋力が上がります。
だいたいですが「ぴよベンチ」が2倍になると、R120程度強くなります。

ただし、Lv15以下は読む深さを制限しているため、「ぴよベンチ」が高くても棋力は殆ど変わりません。
Lv20以上での対局や高レベルでの棋譜解析では「ぴよベンチ」が高いと強く(精度が高く)なります。

「ぴよベンチ」の値は各AIレベルのR値や段位に反映されています。
したがってぴよ将棋では、端末のCPU性能によって各AIレベルの強さ(R値や段位)が異なるということです。
仮に将来ぴよ将棋の開発が終了してしまったとしても、端末のCPU性能が上がっていけばぴよ帝は強くなり続けます(笑)


ぴよ将棋やその他アプリの開発・お知らせ、ロボット・電子工作