轉彎在迷宮鼠的設計裡十分重要,
好的轉彎帶你上天堂,
讓你輕輕鬆鬆做出花樣百出的動作;
不好的轉彎帶你下地獄,
就算Try-error到天荒地老也還是繼續撞牆,
勝負有一半決定權就落在轉彎上,
如何讓老鼠在高速過彎時不因滑動造成事故,
在不討論滑動下都希望輪子能夠不離開地面,
促使車子能夠照著指定的軌跡行進,
畢竟不是甩尾比賽,正規的作法才是王道,
參考理論的概念,讓實作結果更有說服力,
想像迷宮鼠就是ㄧ台F1賽車,
除了最佳的控制之外,
最佳的移動軌跡也是需要被討論的,
如何控制才算得當,接著就來討論看看吧。
迷宮鼠的轉彎設定以一格為單位:
(移動軌跡如黑線所示)
主要項目:
Vc --> 車子的中心速度
VL --> 左輪速度
VR --> 右輪速度
Omega --> 車子的角速度
W --> 車寬
定義:
Vc=(vL+vR)/2
Omega=(vR-vL)/2W
Omega=Vc/R=vL/(R+W)=vR/(R-W)
左、右輪的速度:
vL=(R+W)/R*Vc
vR=(R-W)/R*Vc
左、右輪的理想速度命令曲線示意圖:
定義:
T1=theta/Omega=-0.5*pi/Omega
or
T1=R*theta/Vc= -W*pi/(vR-vL)
上圖的控制曲線太過於理想,
車子在轉彎的瞬間,
若是左、右輪瞬間的速度變化,
有機會造成輪子打滑、空轉的現象,
在轉彎的過程中盡可能會去避免。
為此我們在左、右輪的速度變化上做些改變,
促使在轉彎的瞬間不會因為過激烈的速度變化造成打滑,
將轉彎的角加速度加以限制: (如下圖所示)
加入緩啟動後將時間分成三段:
Omega*T1=(vR-vL)/2W*T1
=1/2W*((vLo-vRo)/2*T10+(vLo-vRo)*T20+(vLo-vRo)/2*T30)
佳速度與簡速度的絕對值一樣大小,T10=T30,因此
(vR-vL)*T1=(vLo-vRo)*T10+(vLo-vRo)*T20=W*pi
求T20,因此
T20=(W*pi-(vLo-vRo)*T10)/(vLo-vRo)
=(W*pi -2a *T10^2)/2*a/T10
在決定了轉彎的命令曲線後,
試著用MATLAB內建的Simulink模擬:
觀察90度轉彎~
理想命令曲線下所產生之軌跡:
VS
梯形命令曲線下所產生之軌跡:
接下來就是要拿這個理論所模擬出來的結果去實作,
觀察看看理論與實作是否能夠結合了,
有了這樣的理論依據,
避免實驗了卻不知道究竟是對還是錯,
在實作上更能夠有依據去說服自己。