スラロームの設計について(補足)

(ひ)

この記事は「マイクロマウス (2) Advent Calendar 2024」 13日目の記事です。

現在、2024年12月13日 25時13分。24時を超えても次の日を迎えられない。


背景・目的

スラロームの設計に、比較的簡単にスラロームを実装できる方法が紹介されている。 この考え方に基づけばターン速度、ターン径、角度が異なってもその都度調整を行わなくて良い可能性がある。

ただ、その記事で暗黙のうちに仮定されている「角加速期間における横方向のずれを無視する」 というのが妥当なのか疑問が残る。 ずれが蓄積すれば、スラロームが連続するような走行では問題になる。

そこで、 角加速期間における横方向の移動距離 yy について検討する。

なお、角加速度一定の場合、この角加速期間における走行軌道はクロソイド曲線になる。

計算方法

横方向の移動距離を求めようとしてみる

機体の移動速度を vv, 角度を θ\theta とすると、 x方向, y方向それぞれの移動速度は vx=vcosθvy=vsinθ \begin{aligned} v_x &= v \cos\theta \\ v_y &= v \sin\theta \end{aligned} である。スラローム中 vv は一定であるとし、 スラローム開始時点では θ=0\theta = 0 とする。

円弧状態に移行するまでの時間を tt とする。

角度は角速度 ω\omega を積分して θ=0tωdt \theta = \int_0^t \omega dt であり、ω\omega は角加速度 α\alpha を積分して ω=0tαdt \omega = \int_0^t \alpha dt である。 一定の角加速度 α\alpha を与えて角加速する場合、 ω=αtθ=12αt2 \begin{aligned} \omega &= \alpha t \\ \theta &= \frac{1}{2} \alpha t^2 \end{aligned} となる。

よって、横方向の移動距離 yyy=0tvydt=v0tsin(12αt2)dt \begin{aligned} y &= \int_0^t v_y dt \\ &= v \int_0^t \sin\left(\frac{1}{2} \alpha t^2\right) dt \end{aligned} である。

ところが、残念ながら一般に sinx2\sin x^2 の積分は初等関数では表せないらしい。

近似する

そこで、まずは f(t)=sin(12αt2)f(t) = \sin\left(\frac{1}{2} \alpha t^2\right) を近似する。 t=0t=0 のまわりでテイラー展開すると f(t)=f(0)+f(0)t+f(0)2!t2+O(t3) f(t) = f(0) + f^\prime(0)t + \frac{f^{\prime\prime}(0)}{2!}t^2 + \Omicron(t^3) (文字 O\Omicron はオーダを表す記号であり、ランダウの記号というらしい。)

1階、2階微分は f(t)=αtcos(12αt2)f(t)=αcos(12αt2)α2t2sin(12αt2) \begin{aligned} f^\prime(t) &= \alpha t \cos\left(\frac{1}{2} \alpha t^2\right) \\ f^{\prime\prime}(t) &= \alpha \cos\left(\frac{1}{2} \alpha t^2\right) - \alpha^2 t^2 \sin\left(\frac{1}{2} \alpha t^2\right) \end{aligned} なので、 f(0)=0f(0)=0f(0)=α \begin{aligned} f(0) &= 0 \\ f^\prime(0) &= 0 \\ f^{\prime\prime}(0) &= \alpha \end{aligned} である。

t1t \ll 1 として3次以降の項 O(t3)\Omicron(t^3) を無視すると、 f(t)=sin(12αt2)12αt2 f(t) = \sin\left(\frac{1}{2} \alpha t^2\right) \simeq \frac{1}{2} \alpha t^2 と近似できる。

これは、x1x \ll 1 のときに sinxx\sin x \simeq x と近似できるということからもわかる。

積分する

近似した結果を使うと、 y=v0t12αt2dt y = v \int_0^t \frac{1}{2} \alpha t^2 dt となり、 y=16αvt3(1) y = \frac{1}{6} \alpha v t^3 \qquad \cdots (1) を得る。

角加速にかかる時間を見積もる

円弧状態に移行するまでにかかるおおよその時間 tt を考える。

半径 RR、速度 vv でスラローム走行するとき、必要な角速度 ω\omega は、だいたい ω=vR \omega = \frac{v}{R} であり、 ω=αt \omega = \alpha t であるから、 t=vαR(2) t = \frac{v}{\alpha R} \qquad \cdots (2) を得る。

横方向の移動距離を求める

式 (1) および 式 (2) より、円弧状態に移行する時点における横方向の移動距離は y=v46α2R3 y = \frac{v^4}{6 \alpha^2 R^3} となる。

計算例

具体的に2パターン考えてみる。 ここでは、探索走行を想定した遅いターンと、 最短走行を想定した速いターンを考える。

遅いターン

遅いターンとして、下記のパラメータでスラローム走行することを考える。

  • R=30R=30 mm
  • v=300v=300 mm/s
  • α=300\alpha=300 rad/s2^2

このとき、 y=0.56mm y = 0.56 \quad \text{mm} であり、1 mmも移動しないことがわかる。

速いターン

速いターンとして下記を想定する。

  • R=60R=60 mm
  • v=1500v=1500 mm/s
  • α=5000\alpha=5000 rad/s2^2

このとき、 y=0.16mm y = 0.16 \quad \text{mm} となり、やはり 1 mm も移動しないことがわかる。

まとめ

スラローム走行における角加速時の横方向の移動距離について検討した。 その結果、ほとんど横には移動しないことがわかった。

ということは、スラローム走行は「直線+円弧+直進」と捉えてもそれほど問題ない可能性がある。

(計算あってる???)