//Logo Image
作者:謝佩均(2005-07-19);推薦:徐業良(2005-07-20)
附註:本文為九十四學年度元智大學機械工程研究所謝佩均碩士論文「具基礎自主行為能力之遠端臨場機器人之研發」第五章。

具基礎自主行為能力之遠端臨場機器人—網路瀏覽器介面之整合

遠端使用者透過網路瀏覽器連接網際網路,登入到遠端臨場機器人,便可控制機器人行動,並獲得遠端影音訊號。本文將配合凱迪威公司需求所設計的網路瀏覽器介面。

1.     網路瀏覽器介面與操作方式

使用者要首先在電腦上打開瀏覽器,鍵入機器人的IP位置,瀏覽器顯示如圖1的歡迎畫面,請使用者輸入帳號與密碼,輸入正確即進入主控制畫面如圖2所示,錯誤則導入凱迪威公司網站首頁。

1. 登入畫面

如圖2,瀏覽器網頁畫面總共分成四區,右上是系統資訊區,右下是IP CAM控制區,左上是IP CAM傳回現場的畫面,左下是系統控制區。現場影像區是IP CAM回傳的即時影像,且使用者可以透過IP CAM控制區的控制按鈕控制IP CAM上下左右、放大縮小、與調整鏡頭移動速度,方便觀看現場畫面,且可透過此畫面聆聽到回傳的廠房環境聲音,或與現場人員對話。

2. 網路瀏覽器介面主控制畫面

在控制系統區使用者可以進行自動巡邏模式、手動巡邏模式、與充電模式三個模式的切換。如圖3,當系統在自動巡邏模式時,系統資訊區會顯示目前在自動巡邏模式,且顯示系統目前的剩餘電量。如圖4,當使用者切換成手動巡邏模式時,系統控制區會出現所要觀察的區域,系統資訊區也會顯示使用者所輸入的區域並且顯示一倒數計時器,提醒當使用者15分鐘內沒有再輸入想要觀察的機台,系統會自動切換成巡邏模式。如圖5,當使用者切換成充電模式時,系統雖然在充電,但是使用者還是可以透過系統控制區的定點觀察位置,觀看現場情況,且系統資訊區會顯示系統剩餘的充電時間,與目前使用者正在觀看的定點。而當使用者想停止系統繼續前進,網路瀏覽介面控制系統區也有一停止模式,點選此停止模式,系統即會停止前進,直到使用者點選回其他模式系統才會作動。

3. 自動巡邏模式瀏覽器介面示意圖

4. 手動巡邏模式瀏覽器介面示意圖

5. 充電模式瀏覽器介面示意圖

2.     網路瀏覽器介面撰寫

為達成上述之規劃,程式撰寫包括PIC_SERVERC程式以及網頁程式兩部分。PIC_SERVERC程式流程如圖6,主要在接受遠端指令後切換系統模式,在沒有使用者輸入訊號時,機器人維持自主巡邏模式,而當使用者輸入訊號後,系統會停留在使用者點選的機台旁觀看機台,而如果使用者15分鐘內都沒有再點選要觀看的機台,系統會自動回到自主巡邏模式。而當機器人電源不足時,系統會進入充電模式充電,此時系統會停留在充電區,直到150分鐘充電完成後,系統再次回到巡邏模式,但使用者還是可以點選所要觀看機台停止點,讓機器人離開充電區到指定的停止點。

6. PIC_SERVERC程式流程

在網頁撰寫的部分,要顧及PIC SERVER傳送檔案封包有1.47Kbytes的容量大小限制,且沒有支援動態網頁如ASPPHP的技術,因此要達到一些進階的功能時,必須仰賴HTML搭配JAVA script語言來編寫成。目前系統仰賴HTML搭配JAVA script語言所寫成的網頁有,登入確認帳號與密碼的登入網頁、送出控制IP CAMPIC SERVER指令的控制網頁、倒數計時更新畫面、與同時送出指令的系統資訊區網頁。

7為登入網頁程式碼,其是應用JAVA script的邏輯判斷來做簡單的登入與密碼過濾,在第10行的text1text2即分別是設定密碼與帳號,輸入完後利用邏輯判斷當輸入正確時,網頁會引導到第17行所寫的連結網頁,輸入錯誤時會引導到第21行所寫的連結網頁。

7. 登入網頁程式碼

8為建構點選按鈕同時送出控制字串的網頁程式碼,此是利用JAVA script語言的開啟網頁location.href的功能,只是在參數上定義其開啟的方式如第15行所示,parent.control.location.href為更新頁面中名為control的頁面,且利用control()當一個字串函數,讓點選不同按鈕時,能順勢送出此函數裡的字串。例如程式碼第3到第5行,點選按鈕1時,會將

http://140.138.139.111/command/ptzf.cgi?visca=8101043f0200ff

放入control()函數中,如此即可讓使用者在點選按鈕時,開啟control這個頁面並送出指令控制碼。而在框架網頁程式碼(圖9),也要有如第6行這個名為control的隱藏頁面,如此才能順利的開啟頁面進而送出指令。

8. 點選按鈕同時送出控制字串的網頁程式碼

9. 框架網頁程式碼

而要能倒數計時並且在時間到時更新網頁與送出指令的系統資訊區網頁,應用JAVA script開啟網頁的location.href功能,與能夠計時的setTimeout功能。其程式碼如圖10所示,在第5行設定一變數time先為10(也就是要設定倒數的秒數),利用setTimeout功能計算時間,如第6行的1000即表示1秒,利用邏輯運算當time大於0時,使用setTimeout(countdown(), 1000)倒數,而當time值為0時,即執行第17與第18開啟網頁的指令。第17行的window.location.href是開啟一個新頁面取代原本頁面的指令,而第18行也就是開啟一個名為command的頁面,當然框架網頁也要對應,如此就能在倒數時間到後開啟一個新頁面與同時送出指令了。

10. 倒數時間到後更新網頁與送出指令網頁程式碼