焦丹丹,那宏壯,曹傳德,丁 銳
(黑龍江省科學院高技術研究院,哈爾濱 150001)
工業制造技術和智能化技術的發展極大地推動了機器人的開發生產,越來越多的機器人廣泛應用于實際生產生活中。地質測量工作中應用的測量機器人具有目標識別、跟蹤及ATR補償等優勢,可以廣泛應用于地質變形監測和精密工程測量。借助開放性的指令集可以幫助用戶制訂各種程序控制儀器,以實現高精度的數據采集工作。安卓系統具有強大的功能,已成為應用最為廣泛的移動端操作系統。基于安卓系統開發的測量程序也越來越多,其操作原理是通過藍牙串口向機器人發送各種指令完成測量工作。自動化數據采集工作一方面為測量用戶提供了更加靈活、科學的體驗,另一方面保證了測量數據成果的真實性和有效性。
基于安卓系統開發的徠卡測量機器人的測控主要是通過CeoCOM接口實現測量。CeoCOM是地理數據通信接口技術,這種新型的接口技術是基于SUN公司開發的遠程調用協議而建立的,屬于點對點的通信協議。在CeoCOM接口幫助下,測量機器人的基本通信方式由客戶端的請求和應答以及服務器組成,而客戶端通常是指控制計算機,服務器是指全站儀。
CeoCOM接口是一個封裝了用戶和徠卡全站儀進行通信交互時調用儀器上的子系統所需的客戶端調用接口函數庫,實際應用過程中用戶不需要對函數庫內函數的具體應用進行分析,只需要對已經設置好的程序進行控制調用即可,程序以低級模式和高級模式兩種模式為主。基于安卓平臺開發的地質測量程序主要是通過ASCII協議實現通信目標控制。ASCII協議的工作流程是依據線性通信協議,由計算機控制系統將請求信號傳達至全站儀,等待全站儀控制器的應答和回復。除了ASCII協議,測量機器人工作過程中還需要借助RFCOMM通信方式的支持。選擇應用RFCOMM通信方式的原因是其可以和傳統串口應用相兼容。最重要的是,RFCOMM通信方式完全支持安卓平臺開發的測量機器人所開展的一系列測量工作,測量用戶可以利用安卓系統的API調用函數對測量機器人進行程序控制,進而完成各種地質測量工作。
利用CeoCOM接口技術的優勢,可以通過藍牙通信端口向測量機器人發出各種指令,測量機器人收到控制系統發出的信息后可以立即進行分析和應答。通過客戶端和服務器的協同作用可以實現CeoCOM初始化、儀器連接、測量以及端口測控等工作,并根據事先設計的數據測量程序和流程對測量機器人操作進行優化組合,以實現整個地質測量工作的自動化[1]。
基于安卓平臺開發的測量機器人從事的測量工作實質是一系列ASCII指令組織、發送和解析的過程,在這個過程中,測量機器人執行的測量任務主要包括定向、棱鏡搜索、精瞄、測量以及測量結果獲取這五個動作。圖1為測量機器人自動化測量的流程圖。

圖1 自動化測量流程圖Fig.1 Flow chart of automation measurement
為了確保整個自動化測量工作的順利進行,安卓平臺在設計應用過程中首先要考慮確保藍牙通信下的ASCII指令得到最快的發送和解析,而RFCOMM通信方式具有一令一答的功能,在一個指令發送完成后,儀器可以在最快的時間內進行解析并獲取結果,客戶端可以根據字符串的解析確定下一條指令。在整個指令發送和解析過程中,Send And Recieve Data發揮著重要的作用,作為字符串發送和解析的應用函數,Send And Recieve Data可以利用ASCII指令實現一系列的測量操作動作。測量機器人的ASCII關鍵操作指令主要有以下幾方面:利用安卓藍牙端口RFCOMM協議將測量儀器和安卓設備連接起來,這一步執行命令為:bt Device=bt Adaper.get Remote Device(MyAd-dress);bt Soket=bt Device.create Rfcomm Socket To Service Record(MY-UUID);bt Soket.connet()。測量前期準備工作完成后,接下來需要做的是定向,定向工作依據的指令函數主要是:String Command=″ % R1Q,9027,3:″+HZ+″,″V+″,″+Pos Mode+″,″+Atr Mode+″,″+Atr Mode+″,0 ″;String strR= Send And Recieve Data(Command,3)。定向工作完成后,就需要在指定位置處尋找目標棱鏡,這一測量操作的指令為:String Command=″ % R1Q,9029,4:″+HZ+″,″+V+″,0 ″;String strR=Send And Recieve Data(Command,4)。棱鏡目標搜索完成后,要進行精準瞄準,精準瞄準的具體指令為:String Command=″ % R1Q,9037,5:″+HZ+″,″+V+″,0 ″;String strR=Send And Recieve Data(Command,5)。上述工作完成后,就可以進行測量任務的批量操作了,批量操作環節的指令為:String Command=″ %R1Q,2008,6:1,1 ″;String strR=Send And Recieve Data(Command,6)。批量操作完成后,可以直接獲取測量成果,在最后操作環節中,必須對“是否為最后一點”進行復核,如果不是最后一點則要重新進行整個測量任務,當限差合格時就可以關閉數據端口,斷開儀器,結束本次測量工作。此環節所應用的指令為:String Result=″ %R1Q,2108,7∶1000,1 ″;String strR=Send And Recieve Data(Command,7)。
安卓系統構架按照從高到低的排序方式依次是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層。其中,四大組件分別為:活動,在安卓系統構架中主要發揮表現的功能。服務,是整個運行過程中所涉及的后臺運行服務。廣播接收器,用于接收測量過程中的各種廣播信息。內容提供商,相當于數據庫,可以對發送和接收的信息數據進行讀取和存儲,具有方便安全和開放的特點。測量工作中借助的平臺除了安卓,還有一種基于安卓環境下開發的平臺——Android Studio,其與Eclipse ADT插件功能相似。因為Android Studio是Google的IDE,所以可以為安卓應用程序的各項開發提供技術支持,提供的工具技術支持主要包括布局編輯器、代碼編輯和分析、工具調試、模擬器及構建系統的模擬建設等[2]。
目前,通過ASCII指令的發送和解析已經充分實現了機器人測量的自動化操作,安卓系統中對機器人測量操作的程序模塊主要以工程管理、學習測量、參數設置、自動測量及成果輸出為主。在地質測量的自動化過程中,應根據應用界面提示,在工程管理模塊選擇工程文件,如果事先沒有進行學習測量,則在測量開始前要先進行學習測量,完成后再根據測量要求和需要對測量參數進行設置,確保測量輸出結果的真實性。在自動測量方式選擇設置過程中,測量工作完成后可以對測量結果數據進行輸出處理,并做好相關數據的記錄和保存。
隨著科學技術的不斷發展,機器人自動化測量地質工作成為發展的必然趨勢,將機器人自動測量技術和無人機測繪技術相結合,可以更快地獲取測量數據,對節約測量資金具有重要的意義。基于安卓平臺開發的測量程序在實現自動化測量的同時,可以增強客戶的使用體驗。在安卓平臺上進行機器人測量具有廣闊的應用前景,需要技術人員堅持創新,不斷提升技術水平,確保地質測量工作的高質量開展。