こんにちは、shotaです。
社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かしています。
前回はテキトーなパラメータを設定してスラローム走行をしました。
今回は、スラローム走行の制御パラメータを計算します。
角速度の台形指令シミュレーションは次回の記事に書きます。
Pi:Co Classic3の基本情報
まず、Pi:Co Classic3の基本情報を確認します。
タイヤの直径は48mmで、タイヤ間の距離(トレッド長)は65 mmです。
モータにはステッピングモータを使っており、タイヤと直結しています。400パルスでタイヤが1回転します。
タイヤの円周は48π mm≒150.8 mmです。そのため、モータに400パルスを送信して進む距離は150.8mmになります。
パルスを速く送信する≒速く走行するという関係ですが、どんなに速く走っても・遅く走っても、送信パルス数が同じであれば移動距離も同じです。
※タイヤがスリップしたり、モータが脱調した場合は走行距離が変わります。
角を曲がるための情報
スラローム走行は、前に進みながら角を曲がる動作のことです。角を曲がるためには、ロボットの情報だけではなく迷路の情報も必要です。
マイクロマウスクラシック競技の迷路は1区画180 mmの正方形で構成されています。
Pi:Co Classic3が区画の中心を走行する場合、半径90 mmの円弧を走ることになります。このときの移動距離は約141.4 mmです。
下図のように角を時計回りで走る場合は、右タイヤよりも左タイヤの方が長い距離を移動します。
まず、左右のタイヤそれぞれの旋回半径を計算します。ロボット中心の旋回半径が90 mmなので、左タイヤ旋回半径はそこからトレッド長の半分を足した90 + 65/2 mm、右タイヤの旋回半径は90 – 65/2 mmとなります。
次に旋回半径をもとに、左右のタイヤそれぞれの移動距離を計算します。左タイヤは192.4 mm、右タイヤは90. 3 mmとなります。
最後に、曲がるために必要モータのパルス数を計算します。400パルスで150. 8 mm進むという関係は分かっているので、それをもとに計算できます。左タイヤは510パルス、右タイヤは240パルス必要です。
それでは実際に走らせてみます。
1秒で角を曲がりたいので、左タイヤの速度は192 mm/sec・右タイヤの速度は90 mm/secとします。
送信パルス数が左:510、右:240を超えるまで走らせます。
実際に走らせると、約1秒でピッタリ90度曲がったように見えます。
動画にはありませんが、タイヤ速度を2倍にしても半分にしても走行距離は変わりませんでした。
送信パルス数が同じであれば移動距離も同じということが分かります。
初速度がある場合のスラローム走行
先ほどの走行では、初速度0で角を曲がりました。しかし、スラローム走行では前に進みながら角を曲がるため、曲がる直前に停止しません。理想としては、前進と同じ速度で角を曲がりたいです。
今のプログラムでは400 mm/secで前進しています。そこで、次は400 mm/secで角を曲がる方法を計算します。
まず確認として、先ほどの走行の角速度を計算してみます。1秒で90度の角を曲がったので、角速度=90°/secとなるのが理想です。
下記のページを参考に計算しました。
計算すると、角速度ω = 1.57 rad/sec ≒ 90 °/sec となります。先ほどの走行と一致しています。
それでは、速さ400 mm/secで角を曲がるための、左右のタイヤ速度を計算します。
まず、速さ400 mm/secで走るときの角速度を求めます。下図のとおり4.44 rad/secとなります。
これをもとに左右のタイヤ速度を計算すると、右タイヤ速度は256 mm/sec、左タイヤ速度は544 mm/secとなります。
最後に、実際に走らせます。初速度が必要なので、角を曲がる前に半区間だけ走行させます。
動画の前半は角を曲がる走行、後半では実際に迷路を走らせています。
前半はうまく走ったように見えますが、迷路走行では壁にぶつかり失敗しています。
前進中に、急に大きな角速度を与えたことが失敗の原因だと思います。
次回やること
角速度の台形指令を計算し、迷路走行を成功させます!