摘 要: 針對仿人機器人的人機交互問題,提出在無線網絡下,使用智能手機對配備有攝像頭的仿人機器人進行視頻監控。基于Linux系統,使用V4L2接口對攝像頭視頻信息進行采集,并使用JPEG算法對其進行壓縮,使用智能手機的Web瀏覽器顯示視頻信息,并通過瀏覽器頁面的按鈕向機器人發送控制命令。實驗結果表明,在無線局域網內,仿人機器人攝像頭拍攝到的視頻信息可以清晰、穩定、及時地傳輸到不同系統和品牌的智能手機Web瀏覽器上,用戶可根據需要向仿人機器人發送控制命令,操作方便簡單,便于使用。
關鍵詞: 仿人機器人;Wi-Fi技術;智能手機;Web瀏覽器;視頻監控
第一臺仿人機器人WABOT-1誕生以來,經過了40年的發展,仿人機器人已成為一個融合多門學科的高難度研究方向,也是各類新型控制理論和工程技術的研究平臺[1-2]。
從最初的工業機器人完全按照人類的指令進行工作,到現代具有較高智能的仿人機器人自主地融入人們的工作和生活,為實現成為人類的伙伴、與人類共存的目標,仿人機器人的交互功能和技術始終是機器人發展中的重點[3-4]。
在人機交互設備這一領域已有許多研究手持設備控制機器人的文獻,多數為專業的手持控制設備來操控小車機器人的移動,手持設備較專業,且不普遍,控制對象也較簡單,智能化程度較低。而智能化程度較高的系統需要高精度的傳感器設備以及多臺計算機作為服務器協調控制[5-7]。
綜合上述研究現況,結合目前大家普遍使用的智能手機,為加快仿人機器人走入人們的生活,本文提出使用智能手機作為手持設備與仿人機器人進行通信。結合參考文獻[8-10],決定采用Web瀏覽器進行視頻監控,可以最大限度地降低操作難度,實現真正意義上的跨平臺通信,可廣泛地應用在各種場合中 。
由參考文獻[11-13]可知,傳統的機器人研究通常使用CAN總線、網絡線等易兼容的連接線實現計算機與機器人的有線連接通信,但使用有線連接是仿人機器人走入人們日常生活的一大阻礙。無線AP(Access Point)數量的迅猛增長、低廉的價格以及無線網絡的方便與高效使Wi-Fi(Wireless Fidelity)技術得到了迅速的普及。在一定范圍內,可以使用無線連接將仿人機器人與智能手機組建在同一個無線局域網中。該方法有利于降低成本,減小操作難度。
1 系統結構
仿人機器人是體系結構中非常重要的一部分,本文采用DARwin-OP、1.6 GHz Intel Atom系列主板、Linux內核的Ubuntu9.10操作系統、自帶高清網絡自動聚焦的USB攝像頭(最大幀數為30幀)。Wi-Fi模塊支持802.11b/g/n,速率高達150 Mb/s,工作頻率為2.4 GHz智能手機。需具有無線Wi-Fi連接功能且含Web瀏覽器。
通過無線路由器,將仿人機器人與智能手機組建在一個局域網內。系統構成的主要部件如圖1所示。
仿人機器人與智能手機接入同一局域網,攝像頭將采集到的視頻信息通過無線局域網傳送到手機,手機也能將控制命令傳輸到機器人。
圖2是仿人Darwin機器人和智能手機間視頻傳輸系統的整體設計框圖。
攝像頭對視頻進行采集,采集后的圖片經壓縮后通過Wi-Fi無線傳輸模塊傳送到智能手機端,由手機的Web瀏覽器顯示視頻。這樣用戶就可以在手機的瀏覽器上通過訪問機器人的IP打開視頻圖像進行監控,也可通過瀏覽器頁面按鈕操作將控制命令傳輸到機器人端,對機器人進行控制。
Darwin機器人的攝像頭對視頻進行采集,采集后的圖片經壓縮后通過Wi-Fi無線網絡傳輸模塊經由無線路由傳送到智能手機視頻接收模塊,由手機的Web瀏覽器顯示視頻,用戶就可以在手機的瀏覽器上通過訪問機器人的IP打開視頻圖像進行監控。
2 系統實現
2.1 視頻采集
攝像頭視頻采集程序的設計與實現是視頻監控應用程序中比較關鍵的部分,在Linux下采用V4L2(Video For Linux two)對視頻進行采集。V4L2是 Linux系統下視頻設備驅動程序接口規范[10],為上層應用程序提供了一系列的接口函數,可實現對視頻設備的操作,進而完成視頻圖像的采集。
V4L2對設備文件的操作方法簡單直觀,表1中的函數可以在應用程序中直接調用,功能如下:V4L2接口提供兩種方式進行視頻數據采集,一種是 read直接讀取方式,這種方式使用較為方便,但占用大量的用戶內存空間;另一種是mmap內存映射方式,將申請到的內核緩沖區地址通過mmap函數映射到用戶空間,可以直接對內核緩沖區的數據進行處理,這種方式簡潔有效,故本文采用第二種內存映射方式。
2.2 視頻處理
與傳統的單幀圖片傳輸相比,視頻實時傳輸的關鍵問題是視頻圖像信息的數據量非常大,需要對采集的原始圖像進行壓縮。目前圖像壓縮方法比較成熟的是JPEG或MPEG技術。
原理上這兩種編碼方式基本相同,JPEG針對單獨的圖像圖片進行處理,而MPEG則利用了圖像序列間的相似性技巧,使MPEG的整體壓縮倍率要優于JPEG。但考慮到傳輸信道鏈路特點,JPEG一次誤碼最多損失圖像序列中的一幅,而MPEG將導致后續的多幅幀間編碼序列無法復現,所以,根據系統的可靠性需求,JPEG成為優選方案。
圖3是Darwin-OP的編程-框架數據流示意圖,分別是視覺部分與動作部分。
視覺處理模塊LinuxCamera類包含V4L2接口程序,完成對攝像頭進行設置以及圖片的存儲和處理。其中,LinuxCamera類、MinIni類讀取設置值;Mjpg_steamer類確認圖像,主要是將由攝像頭端采集而來的YUYV格式的圖片,經mjpg_streamer使用JPEG壓縮算法將圖片處理后轉換為jpeg圖片。部分代碼如下:
minIni *ini = new minIni(INI_FILE_PATH);
LinuxCamera::GetInstance()->Initialize(0);
LinuxCamera::GetInstance()->LoadINISettings(ini);
mjpg_steamer *streamer = new mjpg_streamer(Camera::WIDTH,
Camera::HEIGHT);
2.3 視頻傳輸與顯示
mjpg_streamer可以把經過視頻壓縮后得到的jpeg圖片以流的形式通過基于IP的網絡傳輸到瀏覽器。視頻服務器首先基于TCP協議建立Socket連接,監聽、接收客戶端請求,再進行分析請求、響應請求等操作。
視頻服務器建立TCP Socket套接字、bind綁定端口后,listen開始監聽,收到客戶端的連接請求后,保存相應信息并進行分析,給出相應處理或發送數據。
瀏覽器通過監控設備的IP地址打開視頻監控網頁,實現遠程視頻監控。
LinuxCamera類允許在Web瀏覽器端捕捉到mjpg_streamer流的幀,代碼如下:
while(1)
{
LinuxCamera::GetInstance()->CaptureFrame();
streamer->send_image(LinuxCamera::GetInstance()->
fbuffer->m_YUVFrame);
}
2.4 控制命令的實現
視頻傳輸到智能手機瀏覽器后,用戶可以根據視頻情況對機器人進行操作。首先使用動作編輯軟件action_editor對機器人進行動作編寫,將編寫好的動作存放在任務表中,瀏覽器頁面上用按鈕顯示相應功能鍵。
控制命令主要通過調用system函數實現,函數的具體形式為system(const char *cmdstr),其中cmdstr為字符串類型的輸入參數。system()先調用fork()函數產生一個子進程,然后通過這個子進程調用“/bin/sh-cmdstr”來執行參數cmdstr字符串所代表的命令。動作編輯完成后可以通過函數對動作頁進行調用,具體實現過程為:加載動作;構建LinuxCM730和CM730類以及對Motion類進行初始化和注冊Action類;對LinuxManagerTimer進行初始化和讓MotionManager使能;執行動作頁。
表2所示為任務表中編寫的基本動作。用戶即可通過頁面按鈕操作機器人的動作。
3 實驗結果與結論
實驗使用Android的LenovoA298t手機、UC瀏覽器、火狐瀏覽器、小米1s UC瀏覽器和iphone 4s safari瀏覽器。
圖4給出的是通過機器人頭部攝像頭拍攝到的畫面通過無線Wi-Fi網絡傳輸到手機端的畫面實況。
由實驗結果可知,視頻信息從攝像頭正常地傳輸到蘋果、小米和聯想不同品牌的智能手機,能在Android和IOS不同系統智能手機通過以上幾款不同的Web瀏覽器打開,視頻信息穩定;根據具體的實驗需求,可以通過手機控制機器人向前、向后、向左和向右4個方向的移動,便于機器人在不同的位置對實驗室鍋爐設備進行察看;頭部上下左右移動,可改變觀察時的角度,使機器人更全面、更清晰地察看實驗狀況,最大限度地提供盡量多的信息供用戶使用。
經過多次實驗,由圖5可知,通過手機向機器人發送頭部向上移動的命令到手機端接收到的視頻圖像發生變化的平均響應時間為2.1 s,比在計算機上接收視頻的平均響應時間1.5 s稍有延遲。但由于手機的便攜性更強,在日常生活的使用中,該延時還是可以接受的,與計算機相比有不可替代的優勢。
本文主要研究的是仿人機器人與智能手機之間運用Wi-Fi進行無線視頻傳輸,視頻傳輸成功后就像給了用戶一個遠程的眼睛,用戶只要拿著手機就能看到機器人能看到的范圍,該組合使其整個系統既新穎又易讓人接受,加速了仿人機器人走入人們的日常工作和生活中。
參考文獻
[1] 李明.機器人[M].上海:上海科學技術出版社,2013.
[2] NI L G,KARI D P,MUGANZA A.Wireless integration of tactile senging on the hand of a humanoid robot NAO[R].IEEE International Symposium on Robot and Human Inter-active Communication,Paris,France,2012.
[3] 肖南峰.仿人機器人[M].北京:科學出版社,2008.
[4] Wang Qian,Pan Wei,Li Mo.Robot’s remote real-time nav-igation controlled by smart phone[C].IEEE International Conference on Robotics and Biomimetics,Guangzhou,China,2012:2351-2356.
[5] KOBAYASHI S,TAMAGAWA S,MORITA T.Intelligenthumanoid robot with Japanese Wikipedia ontology and robotaction ontology introduction[C].IEEE International Conference,Lausanne,Switzerland,2011.
[6] FINKE A,HACHMEISTER N,RIECHMANN H.Riechmannthought-controlled robots-systems,studies and future challenges[C].IEEE International Conference on Robotics and Automationn,Karlsrube,Germany,2013.
[7] 李宗瑋,孫雷.基于智能手機的網絡機器人人機交互系統[J].計算機工程與應用,2011,47(15):64-68.
[8] TIBEMACINE C,KERDOUDI M L.Migrating component-based Web applications to Web services:towards consider-ing a “Web interface as a service”[C].2012 IEEE 19th International Coference on Web Services,Honolulu,2012:146-153.
[9] YEOH K J M,WONG H L.Web-based remote navigationalrobot for multiclass human-robot interaction[C].IEEE Con-ference on Sustainable Utization and Development in Engi-neering and Technology,Malaysia,2012.
[10] 劉艷嬌.基于嵌入式Linux的無線視頻監控系統設計與實現[D].哈爾濱:哈爾濱工業大學,2012.
[11] 黃時,劉健,王國權.AUV內部通訊總線設計[J].機器人,2004,26(4):342-345.
[12] 周煜嘯,羅仕鑒,朱上上.手持移動設備中以用戶為中心的服務設計[J].計算機集成制造系統,2012,2(18):243-253.
[13] Zhou Jianjun,Cao Mingang,Li Su.Remote monitoringand automatic navigation system for agricultural vehicles based on WLAN[C].2008 International Conference on Wireless Communications,Networking and Mobile Computing.Dalian,China,2008:1-4.