• 沒有找到結果。

機器人定位系統硬體架構機器人系統

第四章 模擬與實驗結果

4.1 機器人定位系統硬體架構機器人系統

4.1.1 機器人系統

本論文以實驗室自行開發的機器人做為實驗平台,如圖 4-1 所示。其系統核 心為工業電腦,負責處理由各個感測器傳來的資訊並估測機器人的姿態,以及決 定機器人的運動控制命令並透過 RS232 介面傳送到 DSP 馬達控制系統。在感測 器方面,雷射掃儀是透過 RS422 介面將量測資訊傳送到工業電腦,同時亦接收 由工業電腦傳來的指令。圖 4-2 為機器人系統控制架構。

方塊說明:

1. 雷射掃描儀 2. 工業電腦

3. DSP 馬達控制卡

圖 4-1 機器人硬體裝置架構圖

1 3

2

IPC

DSP Motor Control Card

Laser Scanner (LMS 291-S05)

Left Wheel L298 Servo

Driver

Right Wheel L298 Servo

Driver

DC Servo Motor

DC Servo Motor Encoder Encoder

RS422

RS232 (vl,vr)

) , (ri φi

圖 4-2 機器人系統控制架構圖

在機器人之馬達控制系統部分採用實驗室學長所開發完成之 DSP 馬達控制 卡,再加上兩塊 L298 驅動電路,來做為機器人的兩輪移動控制(速度回授控制),

其與工業電腦端之訊息傳遞透過 RS232 介面來實現,並且資料傳輸鮑率為 19200bps。另外,兩個馬達各附有一組軸編碼器(Encoder),經由軸編碼器的回傳 資料可以得知兩輪的移動情形。

4.1.2 雷射掃描儀

本論文所使用的雷射掃描儀為 SICK 公司的 LMS291-S05,如圖 4-3,其規 格如下:

– 最大量測距離:80 公尺

– 角度量測範圍 : 0 ~ 180 度 – 角度解析度: 0.25 / 0.5 / 1 度 – 量測距離解析度 : 10 公釐

– 資料傳輸速率:9.6 / 19.2 / 38.4 / 500 k baud

圖 4-3 雷射掃描儀 圖 4-4 雷射掃描儀工作原理[11]

圖 4-5 雷射掃描儀角度掃描範圍[11]

在我們的使用上是將傳輸鮑率設成 38400,並使用 1 公分的距離解析度,0.5 度 的角度解析度,與 180 度的角度掃描範圍(如圖 4-5),所以在每一次掃描之後雷

射掃描儀可得到 0~180 度的 361 筆距離資料。

在雷射掃描儀的內部結構中,主要包含三個部分,分別是不斷旋轉的鏡面、

光學折射裝置與接收反射回來雷射光的接收器,如圖 4-4 所示。其工作原理為當 雷射光從雷射掃描儀發射出去後,經由光學折射裝置射向前方,待雷射光碰到物 體反射回雷射掃描儀,再經由折射裝置將反射回來的雷射光送到雷射光的接收 器,雷射掃描器便利用此雷射光往返的時間(time-of-flight)去計算出雷射掃描器 與障礙物間的距離。而不斷旋轉的鏡面則將雷射光打至 0~180 度之間不同的角 度,如此便可計算出每個角度與環境障礙物之間的距離。

另外,我們可以對 LMS 291-S05 雷射掃描儀下達不同的指令參數來對掃描 儀做不同的要求,但當我們給予的指令不是雷射掃描儀所能明白的格式,這時掃 描儀的輸出將不會有變化,也就是不會有訊號產生,而當我們所輸入的命令是雷 射掃描所能明白時,它會先輸出一個確認訊號(ACK,06H)表示雷射掃描器已經 收到命令,緊接在確認性號後的則是對應所下達命令的反應(Response)。

在 LMS 291-S05 雷射掃描儀的指令當中最常用到的是要求回傳量測值指令 (Requesting measured value, 30H),其指令格式如下表所示:

表 4-1 要求回傳量測值指令格式[11]

其中 STX 代表同步檢查碼,固定為 02H;Address 代表在使用多個雷射掃描儀的 系統中要對第幾個雷射掃描儀下命令(從 0 開始);Length 代表粗黑框框中 Command 與 Data 的長度,第 3 個 Byte 表示為低位元,第 4 個 Byte 表示為高位 元,在本例中 Command 與 Data 的總長度為兩個 Byte,因此第三個 Byte 為 02H,

第四個 Byte 為 00H;Command 代表所欲送出命令的代碼,30H 是代表要求雷射

掃描儀回傳量測值;Data 中的 01H 為 Command 30H 的參數,Checksum 表示檢 查碼。關於 Checksum 的部份,SICK 公司有其自己產生檢查碼的方式,詳細說 明可以參考[11]中第 104~105 頁所附之程式碼。

在送出上列指令後,LMS 會先回傳一個確認訊號 ACK(06H),然後再回傳如 下格式的反應:

表 4-2 要求回傳量測值命令之反應[11]

由上表可知在要求回傳量測值命令反應中,STX 不變;Address 變為 80H;Length 代表 Response 與 Data 的總長度;而 Response 裡的命令代號通常為所下達的命令 代號在加上 80H,所以 Response B0H 為 30H 增加 80H 後的結果;Data 欄內的資 訊即是我們所欲得的量測資料,稍後將進一步說明;LMS status 則代表在反應裏 Data 的結尾,以 10H 表示(固定為 10H);而 Checksum 同樣表示檢查碼。

在 Data 欄中(第 6 到第 729 個 Byte)共有 724 個 Byte,這是由於在原始設定 下雷射掃描儀的解析度預設為 0.5 度,因此在 0~180 度的範圍內將共有 361 組量 測資料,而每組量測資料都有兩個 Byte,因此便有 722 個 Byte,再加上一開始 的 2 個 Byte(在此例為 9H 與 61H,即十進制的 361,代表隨後有 361 組量測資 訊)便成為表 4-2 中 Data 欄內的 724 個 Byte。

接著使用上述的要求回傳量測值命令下達給雷射掃描儀來得到量測距離資 訊。為了要測試得到的量測距離資料是否正確,所以我們將得到的距離資料與經 由 SICK 公司提供的軟體(LMS-LMI400 user software V 5.11)取得的距離資料做比 對。經由這兩種方式得到同一環境的距離量訊資訊如下圖所示:

(a) (b)

圖 4-6 雷射掃描儀量測結果(a)經由 LMS-LMI400 user software V 5.11 (b)控制程式實際測試值

圖 4-6 中的(a)(b)兩圖所得到的環境距離量測結果是相同的,所以可以知道經由 直接給予要求量測值命令得到的距離資訊是正確的。