こんにちは、hayashiです。
今回は「HM-StarterKitの購入~迷路完走まで」の第12回、内容は「迷路完走とPIDゲインの調整」ということでついに、最終目標の「迷路完走」になります。
第1回~第11回までの内容を確認できていれば、なんと、迷路を走行、完走できるように本体がセットアップされています。
- マニュアルの確認
- 迷路
- 迷路を走らせる
- 迷路が完走できない
- PIDゲインの調整
- 並進方向のPIDゲイン調整
- Pゲインの調整
- parameter.hのIゲインとDゲインを0に変更 (1)
- Pゲインの数値を変え、プログラムを書き込み (2)
- 調整モード2番の「一区画前進」を実行 (3)
- マウスの電源を切らずに書き込み基板に繋ぎ、TeraTermを起動、接続 (4)
- 調整モード7番の「ログ出力」を実行 (5)
- 表示されたログをコピーし、表計算ソフトへペースト (6)
- 最初の4列を選択し、折れ線グラフを表示 (7)
- 車体が動かない、またはtar_speedよりspeedが遅い場合はPゲインを上げる (8)
- 車体がガクガクする、またはtar_speedよりspeedが速い場合はPゲインを下げる (9)
- tar_speedとspeedの値がある程度近づき、目で見てマウスが滑らかに走るまで2~9を繰り返す (10)
- ゲイン調整後
- まとめ
- お知らせ
マニュアルの確認
ダウンロードカードのURLからアクセスできる、「HM-StarterKit_パート3_取扱説明書_ソフトウェア解説編/1.7 Step7 迷路走行」と「HM_StarterKit_パート4_操作説明書/3.3 フィードバックゲインの調整」以降の内容になります。
※マニュアルのダウンロードページを開くにはHM-StarterKitに同梱されているダウンロードカードに記載のパスワードが必要になります。
迷路
今回の迷路は4×4といわれる、縦4マス横4マスのサイズになります。スタートとゴールが繋がるように壁を配置します。
今回は画像のように壁を配置しました。右下のスタートに本体を置いて、左上のゴールまで行ければ完走になります。
迷路を走らせる
迷路を走らせる最終準備を行います。マニュアル「パート4 /4. 迷路を走らせてみる /5. その他」を確認して下さい。
走らせるまでの流れは以下のようになります。
- ゴール地点の設定、プログラムの書き込み
- 走行モードの選択
- 迷路に置く
- 迷路走行
ゴール地点の設定、プログラムの書き込み
今回使用するプログラムを前回センサの閾値を設定したプログラムと同じものを使用します。
走行する迷路のゴール地点を設定します。マイクロマウス競技では事前に迷路のゴールの場所(座標)を教えてもらえます。
今回のゴール座標は(3,3)になるので、この値をparameters.h 60,61行目のGOAL_X,GOAL_Yに設定します。
//迷路関連のパラメータ #define GOAL_X 3 #define GOAL_Y 3
設定が完了したら、ビルドしてからプログラムを書き込んで、ケーブル外します。
走行モードの選択
モードに関しての詳細はマニュアル「パート3 /1.7 Step7 迷路走行 /1.7.2モード説明」に書いてあります。
ダウンロードできるプログラムに入っているモードは以下のようになっています。
1, 足立法
2, 最短走行
3~14, 空き
15, 調整モード
各モードに実装してある手法の解説は「HM_StarterKit_パート1_基礎知識編」に記載があるので、ご覧ください。
今回の走行はモード1にある足立法を使用します。本体の電源を「ON」にすると、ブザー音がなって、本体のLED D3が点灯します。この状態は、モード1足立法が選択されているので、準備完了です。
迷路に置く
本体のLED D3が点灯した状態で、本体を迷路のスタート位置に置きます。マニュアル「パート4 /5. その他 /5.1 本体を置く位置」のように、迷路の中央に置きます。
これで、センサの前に手をかざすとブザーがなって走行が開始します。
迷路走行
今までのブログの内容をこなすと動画のように走行してくれます。
見事完走できています。
ダウンロードできるサンプルプログラムに設定されているパラメータはHM-StarterKitに合わせて設定されているので、簡単な調整をすることで迷路を完走できます。
迷路が完走できない
迷路が完走できない場合は以下の内容を確認してください。
- センサ用パラメータの設定
- モータ、タイヤの回転
- PIDゲインの調整
センサ用パラメータの設定、モータ、タイヤの回転はそれぞれブログで解説されていますので、再度確認してみてください。
今回はPIDゲインの調整に関してマニュアル手順を確認して調整していきます。
PIDゲインの調整
マニュアル「パート4 /3. 実際に迷路を走らせる為の調整 /3.3 フィードバックゲインの調整 」の「3.3.2 並進方向のPIDゲイン調整」「3.3.4 回転方向のPIDゲイン調整」を行います。
PID制御や各PIDゲインの特性に関してはマニュアルや専門書などを確認して下さい。
並進方向のPIDゲイン調整
マニュアル「パート4 」のp12に記載してある方法で調整を行います。
今回は「並進方向のPIDゲイン調整」を行います。
例として、ゲインが調整できていない様子が下のようになります。
わかりづらいですが、走行が前後にガタガタしています。ゲイン調整することで、ガタガタを減らしきれいに加減速して走行できるようになります。
Pゲインの調整
parameter.hのIゲインとDゲインを0に変更 (1)
今回は並進方向のPIDゲインの調整なので、parameter.hの39,40行目のIとDゲインを0にします。IとDゲインを調整する場合はマニュアルを参考に設定してください。
//車体中心における並進方向速度に関するフィードバックゲイン #define SPEED_KP (5.0) //Pゲイン #define SPEED_KI (0.0) //Iゲイン #define SPEED_KD (0.0) //Dゲイン //車体中心における回転方向速度に関するフィードバックゲイン #define OMEGA_KP (20.0) //Pゲイン #define OMEGA_KI (0.2) //Iゲイン #define OMEGA_KD (0.0) //Dゲイン
Pゲインの数値を変え、プログラムを書き込み (2)
現状の確認のため数値は変更しませんが、調整の際は適切な値を設定してください。
調整モード2番の「一区画前進」を実行 (3)
ダウンロードできるソフトウェアでは、調整モード2番に「一区画前進」が実装してあります。アレンジなどをしている場合はその他の空モードに「一区画前進」を追加してください(調整モード一覧は下記の通りです)。「一区画前進」を実行し、マウスの動作が完了したら、再度実行などしないように注意してください。
調整モード一覧
- 車体状態(センサ値等)の出力
- 一区画前進
- 90度右に旋回
- 空き
- 空き
- E2フラッシュに保存されているマップの表示
- ログ出力
マウスの電源を切らずに書き込み基板に繋ぎ、TeraTermを起動、接続 (4)
動作が完了して、モード選択が可能な状態で、書き込み基板、PCに接続、TeraTermを起動します。このとき、書き込み基板のモードはどちらになっていても問題ありません。
調整モード7番の「ログ出力」を実行 (5)
TeraTermと接続している状態で、調整モード7番を実行すると、先ほどに「一区画前進」のログが表示されます。この時、TeraTermのバッファが1000以上であることを確認して下さい。
表示されたログをコピーし、表計算ソフトへペースト (6)
ログのコピーは、TeraTermのタブ「編集」/「全て選択」をクリックするとTeraTermの画面が白の選択状態になります。この状態でコピーは完了です。
エクセルなどの表計算ソフトを開いたら、セルを選択して「Ctrl + v」でログを貼り付けることができます。ログはコンマ区切りで一つのデータになっていますので、区切り位置を調整してください。
エクセルの場合、列を選択して、タブの「データ」/「区切り位置」を押すと、「区切り位置指定ウィザード」がポップアップします。「次へ」をおすと、区切り文字の項目がでるので、「コンマ」のチェックボックスにチャックを入れます。これで「完了」を押すと、セル毎にデータが並びます。
最初の4列を選択し、折れ線グラフを表示 (7)
time, len_mouse, tar_speed, speedの列を選択して、折れ線グラフを作成します。
車体が動かない、またはtar_speedよりspeedが遅い場合はPゲインを上げる (8)

Pゲインを5.0にしたときのグラフ
今回のグラフを見ると、tar_speedよりspeedが遅いことがわかります。そのため、Pゲインを上げる必要があることがわかります。
車体がガクガクする、またはtar_speedよりspeedが速い場合はPゲインを下げる (9)
今回は項目8になりましたが、グラフの状態によってPゲインを下げる必要もあります。適宜選択してください。
tar_speedとspeedの値がある程度近づき、目で見てマウスが滑らかに走るまで2~9を繰り返す (10)
適切なゲインになるまで、2~9に項目を行ってください。ゲイン調整はキリがないので、ある程度のところで妥協することをオススメします。
今回は例としてPゲインを20にした場合を確認してみます。

Pゲインを20.0にしたときのグラフ
tar_speedに対してspeedの値がある程度近づいています。これでPゲインの調整は完了です。
ゲイン調整後
そのほかの、IとDのゲインもそれぞれ調整を行います。下記のゲインを設定したときのグラフと「一区画前進」の様子になります。

PIDゲインをそれぞれ調整したグラフ
初期の走行の様子に比べて滑らかに動作できています。
これと同様に「回転方向のPIDゲイン調整」を行うことで、走行をより綺麗にすることができ、迷路完走が安定してできるようになります。
まとめ
- 最終課題の「迷路完走」を達成しました。
- 迷路完走ができない場合として、PIDゲイン調整の解説を行いました。
今回は4×4の迷路の走行でしたが、実際のマイクロマウスの大会では、16×16の迷路の完走が求められます。完走にはより一層のパラメータ調整などが必要になります。
また、マイクロマウスはゴールまでの時間を競う大会です。より速くゴールさせるために、加速度を上げたり、スラローム走行を導入したりすることで、タイムを短くできるかもしれません。
連載では主にサンプルプログラムの解説を行ってきましたが、HM-StarterKitでできることはもっとあります。ぜひ、色々な工夫をしてマイクロマウスを楽しんでいただけたらと思います。
お知らせ
学生マイクロマウスサークル限定のプレゼントキャンペーン実施!
学生マイクロマウスサークルに向けた期間限定のキャンペーンを実施します。実施していました。
先着順でアールティ製のマイクロマウスキット「HM-StarterKit」とハーフサイズ用の4×4迷路を無料でプレゼント!
※1サークルにつき3セットまで
※45セット限定・なくなり次第終了
特設ページで応募条件などをご確認の上、応募フォームよりサークル名など入力してお申込みください。
応募受付期間:2021年6月10日(木)~2021年8月31日(火)
45セットに達したため、受付を終了いたしました。
たくさんのご応募ありがとうございました。
誰でもご利用OKの割引キャンペーンも好評実施中!
学生・社会人問わず全員対象!
手のひらサイズのマイクロマウスキット「HM-StarterKit」を33%OFFの特別価格で販売しています。
製品ページはこちら

アールティロボットショップで購入する