理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

マイクロマウス(2輪ロボット)の走行時間の近似推定

はじめに

今回の記事は

マイクロマウス Advent Calendar 2021 - Adventar

の23日目の記事になります。

前回は、SHIMOTORI,Harukさんの「GazeboとSimulinkでロボトレーサをシミュレートする」でした。

マウサーなら無償でMatlab・Simulink使え、ROSで使えて便利なGazeboも無償ですからいい時代ですよね。

こういったツールを縦横無尽に使いこなしてロボットを作り上げるのは理系人間の夢ですよね。 20年ぐらい前、研究室でMatlab・Simulink使えてたのでランサーとかマウスとかの計算それでやってたけど 大したロボットは作れなかった・・・もう少し使いこなしていればと今更ながら思いますね。

SHIMOTORI,Harukさんの記事を参考にして、年末年始休暇は遊んでみたいな(Simulinkの無償ライセンス正月まだ使えたかな?)

underbirdworks.blogspot.com

マイクロマウス Advent Calendar 2021を見ていると、おっさんな人たちは少しばかり体にガタがきているのか健康面の話が多いような気がします。

9月末に一過性全健忘になり午前中の出来事を全て忘れるという記憶喪失になったので、段々と何が起こるかわからない年齢(現在51歳)に なってきたかなと思います。

昔々陸上自衛隊で勤務していたので体は頑丈だろうと思っているとだめですねえ。 そんな中で小峰さんは吸引機構でずっとマウスを追求しててすごいなと思ったり、永遠のライバルのらしゃさんを真似して徒然な感じの記事にしようかと、迷ったりしばらく眺めてました。

今回は、こんな徒然ッとした部分と、前にブログにあったんだけど間違いがあったので消してしまった学生にロボット工学の授業で話している、マイクロマウス(2輪移動ロボット)の走行時間の近似推定について書こうかなと思います。

徒然

社会人で競技ロボットやり続けるのは結構大変です。

授業の持ちコマ数

ちなみに、高専の教員やってるんですが、もってる授業は一番多い時は 制御工学(1)、航空工学(1)、数値計算(1)、ロボット工学(1)ものづくり授業(2)、卒業研究(3)括弧内は週のコマ数なので、 全部で9コマでした。

週の時間数は1日4コマで全部で20コマであるのに対して9コマは正直きついです。

あと管理の業務や、担任をやってたりすることもあるので、学生や保護者と面談したり、学生をとっていただける企業の人と お話ししたり、会社を訪問したりして情報収集するなど、他の業務も目白押しです。研究もしたいけどほとんどできてなく悲しい状況です。 それと、企業との共同研究も細々ながら続けてやっています。

博士課程はたいへん

そうそう、僕は陸上自衛官から教職に着いたので、教職に着いた時は博士ではなく、これまでの間に大学院の博士課程に入校したりもしました。

博士課程入校と同時に機械科の科長になったんだけど(さすがに無茶な人事だった様な気がする)、博士課程が3年だけど、3年で終わらせられなくて、 1年延長しました、流石に精神的にも追い詰められて、最後の1年は学科長降ろしてもらいました。 (数年後に学科長には復帰したんだけど、平教員に戻りたいです・・・) 博士課程に入れたのも実はマイクロマウスの人の繋がりで実現しました。僕の博士号はマイクロマウスのお陰です。

博士課程の間も持ち駒数は減らずヒーヒー言いながら仕事してました。 ただ授業は数年かけて作っていくものなので、最初から0というものが無かったことは幸いでした。 0から始める授業ばかりだったら、無理ゲーだったと思います。

卒研指導もがんばった

卒業研究指導は大体、ロボット競技に参加してもらう感じが多いですね。 NHKロボコン、マイクロマウス、つくばチャレンジ(つくばチャレンジは競技会では無いです。)これに参加する学生を いっぺんに指導してた時期もありました。でも、これは30代の後半ぐらいまでです。流石に今はこんな事はできません。 最近は飛行ロボコンに参加してもらってます。

高専というのは大学と違って大学院の学生さんが研究室にいないので学生同士の継承というのはほぼありません。 毎年4月から0からスタートです。せっかく1年かけて色々できる様になった学生が卒業していなくなるのは残念です。 もちろん学生が卒業するのは嬉しいんですが、4年生ぐらいから研究室に配属できればお互い楽しい気がします。 ちなみにうちの学校は専攻科(大学の3、4年相当)はありません。

起きてから寝るまで

こんな社会人の1日は大体、朝起きてお弁当と朝ご飯づくりから始まります。

嫁さんを送り出して、自分も出勤。

出勤すると大体授業が1コマか2コマ、多い曜日は3コマはあるので授業前は軽く授業の確認。

大体毎日何らかの事務仕事があるので、長い時は午前中の半分ぐらいをそれに費やす。 学生を連れて出張する時などは出す書類がたくさんで大変です。

共同研究の計算や報告などをしだすと半日はつぶれ、ものづくり授業の段取りをしたりすると午後の半分ぐらいはそれで終わり。

昨今は放課後は補習をしているので学生とお付き合い、部活動があるとそちらも少しお付き合い。

そして、定例会議や突発的な会議があるとそれで軽く1時間以上は潰れる。

1日の仕事は8時間だとすると、あっという間に8時間過ぎていきます。

帰ると自分時間かと思うと、大体軽く残業してると退勤は19時過ぎるので 買い物とかして帰ると、自宅に着くのは20時過ぎです。

都会で電車通勤などをしている人は通勤時間もバカにならないかもしれません。

寝るのが一番

50代と30代とではだいぶ違うのですが、30代の頃は元気で徹夜もできたのですが 50代になると1日の疲労感を感じます。夜帰ってくると、嫁さんと今日の出来事を話します。 これで夜の時間はあっという間に過ぎて、眠くなってくるし、ぼーっとしたくなってきます。 あまり、趣味の活動に費やす時間が取れないのが現実かなあと思います。

そこで、夜がだめなら、朝早く起きようと言うことになりました。 朝は頭もクリアでいいです。難しいことにも立ち向かおうと言う気力が少しだけ昼間や夜より高い気がします。

トータルの睡眠時間を確保するのも大事です。パフォーマンスを発揮したかったら寝ることです。 だんだん人生短く感じられるから、寝てる時間もったいなく感じるんですけど、 睡眠時間を削ると、その分のダメージが大きい様な気がします。 これも若い頃は平気だったから、今とのギャップに戸惑いますね。心は20代、体は50代以上になっちゃったから。

まあ、そんな感じで、がんばって働いて、家に帰ると疲れ果てて、土日も案外職場におり 中々ロボット作れない今日この頃です。

マイクロマウスの走行時間の近似推定

マイクロマウスのアドベントカレンダーなので、独り言みたいな事じゃなくて 少しは有用な事でも書ければ良いのですが、もともとヘタレマウサーなので 良いことは書けないのですが「どのくらいのタイムで走れるか」と言うのが大体読めると 基本的には自分との闘いである「マウスづくり」にも張り合いが出るのではないかと考え、 ロボット工学の授業で移動ロボットの走行時間を計算してみる話をしてみたので その話をこちらに転載します。

この話は一度ブログに上げてたんですが、間違いが見つかったので記事は削除していました。 今回のは、その間違いを修正したものでは無く、新たに書き直してみました。

マイクロマウスの迷路と直進と旋回の内訳

マイクロマウスの迷路の一例
マイクロマウスの迷路の一例

マイクロマウスの迷路の最短コースの中の直進部分と旋回部分を数えてみると、図の例では直進63、旋回22になります。

ここでは90度旋回が連続するところは180度旋回とは数えず、90度旋回が2回と数えます。

最短走行のパターンを考えてみると

  • スタート
  • 直進
  • 90度旋回
  • ゴール

で走りが構成されていることが判ります。

スタートとゴールは逆再生のようなものなのでかかる時間は同じだと考えます。

直進はフルスピードで駆け抜けます。

旋回では、旋回速度に減速し、旋回が終わればフルスピードまで加速します。 実際は不可能ですが、旋回は円弧軌道を描くと近似します。

それぞれの速度変化(速度プロファイル)を図にしてみると次のようになると思います。

スタート・ゴールの時間
スタート・ゴールの時間

図よりスタート(ゴール)にかかる時間は以下


\begin{eqnarray}
t_1 &=& \frac{v_s}{a}\\
t_2 &=& \frac{l}{2 v_s} - \frac{v_s}{2 a}
\end{eqnarray}

スタートとゴールがあるので上記の時間の2倍の時間になります。

旋回の時間
直進の時間

図より旋回一回分の時間は以下


\begin{eqnarray}
t_1 &=& \frac{(1-\alpha) v_s}{a}\\
t_2 &=& \frac{\pi l}{4 \alpha v_s} - \frac{\pi(1-\alpha^2) v_s}{4 \alpha a} \\
t_3 &=& t_1
\end{eqnarray}

直進の時間
直進の時間


\begin{eqnarray}
t_s &=& \frac{l}{v_s}
\end{eqnarray}

それぞれ回数をかけて足し合わせると次のようになります。

総走行時間
総走行時間

図に示されている様に、摩擦係数 {\mu} や加速できる距離、及び旋回時に遠心力にタイヤが負けないなどの制約によって直進速度が次のように制限を受けます。


\begin{eqnarray}
v_s \leq \sqrt{\frac{\mu g l}{1+\alpha^2}}
\end{eqnarray}

ここで\alphaは直進速度と旋回速度の比で


\begin{eqnarray}
 v_t = \alpha v_s
\end{eqnarray}

として、旋回速度を直接決める代わりに直進速度の何倍にするかで決めるものです。

上記の式から、摩擦係数\mu\alphaを設計者が決め、 迷路の直進数と旋回数がわかれば、走行時間が決定します。

2018年の迷路の例で色々な摩擦係数に対して直進速度と旋回速度の比\alphaを変えるとどうなるが図で示します。

色々な摩擦係数に対しての速度比と総走行時間との関係
色々な摩擦係数に対しての速度比と総走行時間との関係(摩擦小)

5秒を切るためには摩擦係数を9以上にする工夫が必要です。実際はこの摩擦係数は重力加速度の何倍の加速をさせるかと言事を表していて吸引機構を駆使する場合は特に設計パラメータです。

吸引機構無の場合は10秒台でも早い方だと思います。

それと、計算してみて驚いたのは、旋回と直進の速度比は減速しない1が最もパフォーマンスが良いわけではない答えが出ていることです。

これは \alphaを大きくするという事は全体として直進速度の上限を小さくすることになるので、 1が最適パラメータでは無くなっています。 グラフから大体わかりますが 0.35が最適値です。

おわりに

今回の計算では、スラロームのみで、180度旋回は考慮していません旋回では必ず90度ごとに減速と加速を繰り返す想定なので無駄があります。 斜め走行などを入れるともう少し早く走れるかもしれません。

入門段階ではこの近似的な総走行時間の算出で、大体の走行時間の目安を意識して、調整を行うと良いのではないでしょうか。

明日はtosonさんの学生大会の振り返りという事です。お楽しみに。

adventar.org