三、D++演算法與移動機器人之整合實作
3.1 系統架構
3.3.1 自製編碼器
本節說明本研究所使用之自製光學編碼器的工作原理及應用,它被 安裝在輪型機器人左右兩側車輪軸心上,當車輪轉動時將產生穩定的脈 衝輸出,在單位時間內計數脈衝個數可以轉換得知左、右車輪移動的距 離,進而得知機器人的方位及座標,並導引機器人到達期望的目標,這 種方法被稱為車輪測程法。
光學編碼器是由一組光遮斷器及齒輪狀之圓盤所組合而成(如圖三十 八),當固定在車輪上的圓盤轉動時,光遮斷器之光通過圓盤齒隙沒有被 阻擋的話,其輸出為高電位,藉由提升電阻拉為高電位。反之則輸出為 低電位。
圖三十八、本研究所使用之自製光學編碼器
51
本研究所使用的光學編碼器,圓盤上平均分配 30 個齒,每旋轉一周可產 生 30 個脈波或 60 個邊緣觸發,參考圖三十九所示。
圖三十九、本研究之自製編碼盤尺寸圖
若左右兩車輪的輪距為 2b,車輪半徑為 r,車輪每旋轉一周,編碼器送 出 N 個脈波,假設兩車輪同方向同步轉動了 n 個脈波,輪型機器人在直 線上移動的距離可計算如下:
d 2 nr N
(3.1)
以本研究所採用的輪型機器人及光學編碼器為例,車輪半徑為 30mm,每 轉一圈送出 60 個邊緣觸發,在輪胎不打滑的前提下,輪型機器人約向前 移動了 188.5 mm 的距離,每個邊緣處發信號的精度為 3.14mm。
由於從光遮斷器所獲取的訊號為弦波而不是方波,加上馬達轉動時 容易對週遭電路產生干擾,故若是我們直接擷取從光遮斷器來的訊號,
非常容易產生誤判的情形,造成編碼器嚴重的計數誤差。為了得到正確
52
的編碼器計數值,我們使用史密特觸發反相器 IC-HD74LS14(如圖四 十),將從光遮斷器擷取來的不穩定弦波訊號(輸入至A),透過反相器 來整形成穩定的方波訊號(由 Y 輸出),以獲得正確的編碼器計數值(如 圖四十一所示)。
圖四十、HD74LS14 之內部結構圖(來源:[54])
圖四十一、使用史密特觸發反相器穩定光遮斷器之訊號(來源:[55])
53 3.3.2 雙輪同動控制
如同本章第一節所提到,本研究所建立的移動機器人平台,具一個 萬向輪(前)與兩個驅動輪(左右)。萬向輪的作用僅為支撐機器人不翻倒,
真正令移動機器人的前進、後退、轉向為位於左右的驅動輪。左右驅動 輪同時向移動機器人前方轉動時,則移動機器人便往前進;反之左右驅 動輪同時向移動機器人後方轉動時,則移動機器人便會後退。若是左右 驅動輪一個向前、一個向後轉動,則移動機器人便會根據驅動輪轉動的 方向,而向左或向右轉向(如圖四十二所示)。
(a) (b)
(c) (d)
圖四十二、本研究移動機器人之運動控制邏輯(a)前進(b)後退(c)左轉(d) 右轉
54
55 誤差(Steady-state error)。
(2) 積分(I)控制:在積分控制中,控制器的輸出與輸入誤差信號的 積分成正比關系。積分項對誤差取決於時間的積分,隨著時間的 增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時 間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減 小,直到等於零。因此,比例+積分(PI)控制器,可以使系統在進 入穩態後無穩態誤差。
(3) 微分(D)控制:在微分控制中,控制器的輸出與輸入誤差信號 的微分(即誤差的變化率)成正比關系。比例項的作用僅是放大 誤差的幅值,而微分項能預測誤差變化的趨勢,這樣,具有比例 +微分的控制器,就能夠提前使抑制誤差的控制作用等於零,甚 至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或 滯後的被控對象,比例+微分(PD)控制器能改善系統在調節過程 中的動態特性。
在本研究的雙輪同動 PID 控制問題中,由於是我們使用 Arduino 板 上的 PWM 輸出功能來控制直流馬達的轉速,所以同動 PID 控制中的輸 入為預期左右驅動輪的馬達轉速,輸出為使用 PID 調整後的馬達轉速,
而回授訊號為左右驅動輪上的編碼器數值(如圖四十三所示)。
圖四十三、本研究雙輪同動 PID 控制方塊圖
56 值,Kd 為微分控制的參數值;pError、iError、dError 分別為比例、積 分、微分誤差。這三組誤差回授值,我們根據增量式 PID 理論來計算,
其計算公式分別如式(3-4)~(3-6)所式: