姜 帆(重慶電子工程職業學院,重慶,401331)
?
基于“創意之星”平臺的機器人感知模塊設計與開發
姜 帆
(重慶電子工程職業學院,重慶,401331)
摘要:隨著科技的不斷發展,服務型機器人開始進入人們的生活,但國內較為缺乏通用開發平臺,共性軟件模塊也非常少,本文對此做了相應的研究與設計,具有一定的實際意義。
關鍵詞:機器人;視覺感知;共性軟件
從第3次工業革命以來,機器人就一直吸引著人們的目光,因為它承載著人類發展夢想。近年來,隨著計算機應用技術、自動化技術以及機械制造技術的不斷提高,服務型機器人得到了長足的發展,尤其是此中的教育娛樂機器人已經開始逐漸進入到人們的生活中??墒?,目前還缺乏比較統一的的開發平臺,此類機器人特性開發的共性軟件也非常少,因此無形中增大了開發成本,就極大的阻礙了服務型機器人的發展與推廣。所以,研究開發出一些服務型機器人的共性軟件,對我國機器人技術的推進與發展就非常有意義。
機器人共性技術的定義是在各類機器人研發、制造過程中均需要使用的通用技術。一般認為由傳感、驅動、機構、軟件四個方面組成。這里只論述軟件方面。機器人軟件系統的開發可以有定制軟件開發與共性軟件開發兩種情況。所謂定制軟件開發是針對機器人特定的功能而“量身定制”的開發軟件,這樣開發出來的軟件系統只有專用性而不具備共用性,明顯的缺點就是無法代碼復用。然而,對于機器人的軟件系統而言,其體系結構本身相對復雜,并且多少會有一些特定需求,所以開發出能夠相對通用的,能夠在所有機器人上應用的軟件系統也不實際。一種比較折中且有效的方法就是將機器人以及機器人的各項特征功能進行分類,針對某類機器人的某項特征功能進行通用軟件模塊開發,這樣才能解決上述問題。近年來,全世界許多公司或是研究機構耗費大量的財力、人力開發并推出自己的機器人共性軟件開發平臺。在文獻中[1]提到的Qmotor系統是由美國克萊姆森大學機器人研究院研制的一個基于PC的實 時控制系統。該系統被此研究院寄予極高的期望,希望它能通用于機器人控制、監控和子系統,同時能為機器人編程提供統一的環境與語言、機器人和遙控操作的順序模塊結構和圖形編程環境等。
目前,隨著我國乃至世界機器人產業的蓬勃發展,在研發過程中對共用性軟件的需求變得強烈。針對服務型機器人,特別是服務型機器人中的教育娛樂機器人的通用模塊開發出一些應用級的共性軟件顯得尤其意義重大。當其他開發者在進行類似開發時,可以直接使用該共性軟件模塊,能夠大大的節約時間成本,提高開發效率,實現代碼復用。并且這樣的開發模式也是在國外的一些開源平臺中所提倡的。然而,盡管此種共性軟件或是稱為中間件的開發模式的優勢十分明顯,但由于商業行為中存在著的規則,他們的行為大多是將其封閉起來。所以,機器人共性軟件模塊的研究與開發未能普及到商業領域,而更多出現在科研領域。
“創意之星”是我國使用廣泛的、比較典型的教育娛樂機器人軟硬件開發平臺,是由博創科技研發、推出的一套機器人模塊化套件,包含有多種可選配件,主要用于機器人的創新實驗。目前,最新的套件產品為“UP-InnoSTAR”,套件產品共有3個版本,本文使用的是其高級版?!皠撘庵恰睓C器人套件具備了多種基本“積木”構件,通過這些“積木”能夠把想象中的機器人模型構建出來。這些“積木”是數百種機構或者零件,有一個控制器,多種傳感器,多種執行用的舵機、電機和一些像電纜、電池這樣的配件。
在軟件方面,“創意之星”平臺擁有NorthSTAR圖形化機器人軟件IDE。集成開發環境采用了圖形化、可視化的快速編程方式,并同步生成C語言代碼,編譯執行。代碼跨處理器平臺,在一定程度上可實現軟硬件分離,有利于程序的移植,為機器人共性軟件開發提供了基礎。除此之外,IDE還具備集成3D仿真與虛擬示波器功能,可在程序執行時在PC機上以波形的方式對機器人的各項數據參數進行監控。
機器人視覺感知模塊的功能是使用本地攝像頭或者遠程攝像頭對圖像信息進行收集和處理。具體來講,首先是客戶端通過攝像頭對圖像信息進行捕獲,生成圖像數據后發送到服務器端,服務器端接受到數據后對圖像數據進行處理,然后將處理的結果回傳到客戶端,由客戶端完成執行相應動作。
根據此架構,開發時可將視覺感知模塊分為3部分:應用接口的定義、客戶端程序開發以及服務器端程序開發。具體思路是,首先定義出視覺感知模塊的應用接口IDL文件,并編譯后生成頭文件以供調用;然后分別針對客戶端與服務器端進行程序開發,開發時調用上一步的頭文件;最后對程序進行模塊測試與整機測試。
客戶端的功能在于圖像的采集,當通過攝像頭采集圖像完成后,客戶端就將圖像數據發送到服務器端。在開發時需要用2個線程來完成,并需要使用JRTPLIB 庫來實現。程序開發流程圖如下:
在客戶端的視頻流數據發送后,服務器端需要進行接收,接收的過程同樣需要用2個線程來完成。其中,線程1用于接收視頻流數據,當數據到達服務器端時,首先判斷緩沖區是否為滿狀態,如果FALSE,將數據送入緩沖區,如果TRUE,則對計時器的狀態標識進行判斷,來決定是對緩沖區刷新或是將數據丟棄,這種模式稱為“寫入-刷新-丟棄”,服務器端就是按照這樣的模式對數據進行接收;線程2相對簡單,用于解碼接收到的數據,而后將解碼后的視頻流數據發送到顯示設備。

根據上述程序開發流程圖編碼以及調試后,程序正常通過模塊測試,限于篇幅不列出程序清單。該共性軟件模塊能夠作為其它教育娛樂機器人的視覺感知功能開發的參考或應用,具有一定實際價值。
參考文獻
[1]M.S.Loffler, N.P.Costescu, D.M.Dawson. QMotor 3.0 and the QMotor robotic toolkit; a PC-based control platform[J] . Control Systems,IEEE,2002,22(3); 12-26.
[2]博創科技, 創意之星模塊化機器人套件完全介紹[S].
姜帆、1979.07.16、男、重慶、重慶大學、研究生、重慶電子工程職業學院、副教授、研究計算機軟件技術以及系統集成。
Design and development of robot perception module based on "Creative Star" platform
Jiang Fan
(Chongqing Electronic Engineering,Career Academy,Chongqing,401331)
Abstract:With the continuous development of science and technology,service robot began to enter people's life,but a lack of domestic general development platform,common software modules are also very few.In this paper,the corresponding research and design,has a certain practical significance.
Keywords:robot;visual perception;common software
作者簡介