一種有音視頻監視的遙控機器人系統的製作方法
2023-06-04 17:37:56 2
本發明涉及一種有音視頻監視的遙控機器人系統,屬於機器人領域。
背景技術:
隨著時代的發展,機器人監控與遙控在越來越多的領域裡發揮了不可替代的作用,如遠程的病房監控、核反應堆內部的管理等,都可以見到遠程機器人的身影,而服務機器人也成為遠程機器人中不可或缺的一員。針對無處不在的網際網路,世界範圍內出現了各種各樣的基於web的遙控機器人設計方案,為客戶提供良好的控制和音視頻體驗。
如何使機器人更好的融入網際網路為人類服務,就需要在網絡中為機器人提供完善的控制策略和流暢清晰的音視頻傳輸策略。對於移動機器人的運動控制可以使用勢場法來實現。而基於tcp的socket通信可以完全勝任在廣域網上控制信號和傳感器反饋信號的傳輸問題。對
於流媒體傳輸,flash是現在廣域網上最常用的流媒體傳輸策略。但是,由於flash的傳輸方法並不包含網絡情況的監測,當實時流媒體傳輸不適應當前的網絡狀況時,就會給遙控者帶來不好的音視頻體驗性。因此,需要根據機器人的場景和網絡情況的檢測,使得傳輸帶寬小於傳輸鏈路的可用帶寬。
遙控機器人系統的設計是多種多樣的,mitro利用ros平臺搭建控制系統,實現了基於網頁的控制,而音視頻傳輸採用了第三方軟體,如skype、vgo利用自主開發的遙控控制端軟體,實現了對遙控機器人的控制和流媒體傳輸,並且實現了速度矢量的實時顯示及自充電、無線切換等功能;qb則利用開發的瀏覽器插件,實現了基於網頁的控制和音視頻傳輸。pr2利用html5和javascript技術實現了基於網頁的控制信號和流媒體的傳輸,控制信號用websocket傳遞,流媒體傳輸使用的是html的視頻微件來實現。pa-10robot實現了基於web的遙控機械臂系統,客戶端使用flash實現,獲取機器人端的視頻和力反饋信號,由於機械臂運動緩慢,沒有考慮機器人的運動對用戶的體驗性產生的影響,而且沒有考慮網絡情況;otorob和drrobotx80考慮了遙控機器人的所處場景,根據機器人的速度或檢測到障礙物的距離來改變視頻解析度或幀率,來達到節省帶寬和增強遙控者體驗性的目的。
技術實現要素:
本發明提供一種有音視頻監視的遙控機器人系統,該機器人系統通過攜帶的攝像頭、麥克風等設備採集環境的音視頻信息,利用流媒體伺服器和控制伺服器搭建通信平臺,通過基於通訊網絡傳輸流媒體信號、可用帶寬信號和機器人傳感器反饋信號的傳輸,實現了機器人現場環境的音視頻監控系統,並可以根據網絡情況和機器人所處場景調節流媒體信號的傳輸帶寬,增強了遙控者的音視頻體驗性。
本發明解決其技術問題所採用的技術方案是:
一種有音視頻監視的遙控機器人系統,包括機器人端、控制端、控制伺服器、流媒體伺服器和客戶端;機器人端對現場環境進行音視頻數據採集,通過控制伺服器進行編碼、解碼後發送至客戶端,客戶端得到控制端指令,再通過控制伺服器對機器人端發送指令,進行驅動執行,其中,機器人端和客戶端發出的音視頻數據通過流媒體伺服器進行交換;
作為本發明的進一步優選,所述的客戶端包括第一音視頻的捕捉與傳輸模塊、控制信號捕捉模塊、傳感器反饋信號和流媒體數據顯示模塊和可用帶寬計算模塊,第一音視頻的捕捉與傳輸模塊獲取客戶端中攝像頭的視頻流及麥克風的音頻流並且整合成流媒體信號後,傳輸給流媒體伺服器;控制信號捕捉模塊捕捉鍵盤和滑鼠的控制輸入,並將這些控制信號傳輸給控制伺服器;傳感器反饋信號和流媒體數據顯示模塊將從流媒體伺服器獲取的流媒體數據進行解碼顯示;可用帶寬計算模塊計算出當前到控制伺服器的可用帶寬,並且將計算出的可用帶寬信號傳輸至控制伺服器;
作為本發明的進一步優選,所述的機器人端包括第二音視頻的捕捉與傳輸模塊、音視頻信號顯示模塊、最佳解析度和幀率判定模塊和運動控制模塊,運動控制模塊將機器人的運動速度和角速度傳輸至最佳解析度和幀率判定模塊,第二音視頻的捕捉與傳輸模塊接收由最佳解析度和幀率判定模塊傳輸的解析度和幀率的值,同時接收由控制伺服器傳輸的可用寬帶數據,進行編碼後向流媒體伺服器傳輸;第二音視頻的捕捉與傳輸模塊獲取客戶端中攝像頭的視頻流及麥克風的音頻流後,通過由控制伺服器傳送的數值進行編碼後,向流媒體伺服器傳輸;音視頻信號顯示模塊從流媒體伺服器獲取客戶端的流媒體信號進行解碼顯示;
作為本發明的進一步優選,客戶端的界面和機器人端的界面均基於web伺服器,且均由flash編寫,並搭建了控制伺服器和流媒體伺服器,控制伺服器完成機器人端和客戶端的控制信號和傳感器反饋信號的傳輸,其中傳感器反饋信號由傳感器傳輸至傳感器信號模塊,流媒體伺服器使用flashmediaserver搭建,完成機器人端和控制端的流媒體信號傳輸;
作為本發明的進一步優選,客戶端的控制程序包括flash控制端程序、flash音視頻傳輸和顯示程序和網絡狀況監測程序,flash控制端程序主要完成控制信號的檢測與傳輸、傳感器信號和可用帶寬信號的顯示;flash音視頻傳輸主要完成流媒體信號的傳輸和解碼顯示;網絡狀況監測程序主要完成網絡狀況的檢測和可用帶寬信號的傳輸。
通過以上技術方案,相對於現有技術,本發明具有以下有益效果:
本發明是一種基於控制伺服器和流媒體伺服器的機器人遙控系統,控制伺服器採用vc++搭建,實現控制信號、機器人傳感器反饋信號和可用帶寬信號的傳輸,流媒體伺服器採用fms(flashmediaserver)搭建,實現機器人端和控制端的雙向音視頻傳輸,並在控制端html中編寫javascript腳本,獲取網絡參數rtt,再根據機器人的運動狀態和場景,調節流媒體傳輸帶寬,提高了流媒體傳輸的實時性和客戶端的體驗性。
附圖說明
下面結合附圖和實施例對本發明進一步說明。
圖1是本發明的結構模型和信號傳輸流程示意圖。
具體實施方式
現在結合附圖對本發明作進一步詳細的說明。這些附圖均為簡化的示意圖,僅以示意方式說明本發明的基本結構,因此其僅顯示與本發明有關的構成。
如圖1所示,本發明的一種有音視頻監視的遙控機器人系統,包括機器人端、控制端、控制伺服器、流媒體伺服器和客戶端;機器人端對現場環境進行音視頻數據採集,通過控制伺服器進行編碼、解碼後發送至客戶端,客戶端得到控制端指令,再通過控制伺服器對機器人端發送指令,進行驅動執行,其中,機器人端和客戶端發出的音視頻數據通過流媒體伺服器進行交換;
作為本發明的進一步優選,所述的客戶端包括第一音視頻的捕捉與傳輸模塊、控制信號捕捉模塊、傳感器反饋信號和流媒體數據顯示模塊和可用帶寬計算模塊,第一音視頻的捕捉與傳輸模塊獲取客戶端中攝像頭的視頻流及麥克風的音頻流並且整合成流媒體信號後,傳輸給流媒體伺服器;控制信號捕捉模塊捕捉鍵盤和滑鼠的控制輸入,並將這些控制信號傳輸給控制伺服器;傳感器反饋信號和流媒體數據顯示模塊將從流媒體伺服器獲取的流媒體數據進行解碼顯示;可用帶寬計算模塊計算出當前到控制伺服器的可用帶寬,並且將計算出的可用帶寬信號傳輸至控制伺服器;具體的為第一音視頻流的捕捉和傳輸模塊:獲取客戶端的攝像頭和麥克風的流媒體信號,通過設定解析度、幀率、最大帶寬和保真度,經壓縮後向流媒體伺服器傳輸;控制信號捕捉模塊:客戶登陸後,本地html與控制伺服器建立socket連接,捕捉鍵盤和滑鼠的控制輸入,轉化為機器人執行機構的運動矢量,並將這些控制信號傳輸給控制伺服器;傳感器反饋信號和流媒體數據顯示模塊:將傳感器反饋信號以餅狀圖的形式顯示出來,表示機器人離周圍障礙物的距離;同時將從流媒體伺服器獲取的流媒體數據進行解碼顯示;可用帶寬計算模塊:首先與控制伺服器建立socket連接,由獲取到的rtt計算出來當前到控制伺服器的可用帶寬,將可用帶寬的數據傳輸給控制伺服器;客戶端的html通過定時加載控制伺服器端的對象,通過返回時間近似得到rtt,由帶寬的吞吐量公式:由於數據量小所以近似不考慮丟包率l,mtu是傳輸所採用的最大傳輸單元,為一定值,故可用帶寬c=k1/rtt,將該數值通過socket傳輸到機器人端;控制伺服器主要完成的是控制信號的傳遞、傳感器反饋信號的傳遞以及可用帶寬數值的傳遞。建立socket伺服器,等待客戶端的socket連接,傳輸控制信號和可用帶寬的數值,同時將傳感器的反饋信號傳輸給客戶端;建立socket客戶端,與機器人建立socket連接,傳輸控制信號和可用帶寬的數值,同時接收機器人發送過來的傳感器反饋信號;流媒體伺服器主要完成機器人和客戶端的流媒體傳輸,採用fms搭建,兩端分別向流媒體伺服器傳輸和獲取流媒體數據。
作為本發明的進一步優選,所述的機器人端包括第二音視頻的捕捉與傳輸模塊、音視頻信號顯示模塊、最佳解析度和幀率判定模塊和運動控制模塊,運動控制模塊將機器人的運動速度和角速度傳輸至最佳解析度和幀率判定模塊,第二音視頻的捕捉與傳輸模塊接收由最佳解析度和幀率判定模塊傳輸的解析度和幀率的值,同時接收由控制伺服器傳輸的可用寬帶數據,進行編碼後向流媒體伺服器傳輸;第二音視頻的捕捉與傳輸模塊獲取客戶端中攝像頭的視頻流及麥克風的音頻流後,通過由控制伺服器傳送的數值進行編碼後,向流媒體伺服器傳輸;音視頻信號顯示模塊從流媒體伺服器獲取客戶端的流媒體信號進行解碼顯示;具體的為主要完成控制信號的執行、機器人的運動控制和音視頻數據和傳感器數據採集、傳輸和顯示。機器人端程序用vc++搭建,採用基於flash的界面顯示,機器人端建立tcp的server,接收控制伺服器發送來的控制信號並驅動相應執行機構,在運動的同時,根據機器人端傳感器採集環境信號,進行機器人的運動速度控制,並將實時的傳感器信號發送給控制伺服器。
其中:第二音視頻流的捕捉和傳輸模塊:獲取客戶端的攝像頭和麥克風的媒體流,通過由控制伺服器傳遞來的可用帶寬和機器人的場景計算出來的最佳解析度和幀率的數值,編碼後向流媒體伺服器傳輸;
音視頻信號顯示模塊:從流媒體伺服器獲取客戶端的音視頻流進行解碼顯示;
最佳解析度和幀率判定模塊:根據獲取的可用帶寬得到流媒體數據流的上限值,再根據機器人的場景來進行壓縮比的近似判斷:主要考慮機器人的運動速度和獲取圖像相鄰幀之間的差異,從而得到在該可用帶寬下的最佳解析度和幀率的數值。由於flash流媒體編解碼不開源,故需要估算當前的壓縮比。機器人端獲取當時機器人本體的運動速度vel和角速度rvel數值,若vel≠0或rvel≠0,則機器人處於運動場景,壓縮比較小,則壓縮比α=f(vel,revl)。若vel=0且rvel=0,則機器人處於非運動場景,則壓縮比與編碼圖像之間的差異有關。定義δ=∑(fnij-fkij)2/n,f1ij、f2ij、…fnij為n幀圖像的像素值,f′ij為n幀圖像像素值的平均值,δ越大,壓縮比越小,壓縮比α=k4*δ,則c=k5*resolution*frame*α,則resolution*frame=c/(k5*α),確定合適的解析度和幀率的值,作為最佳解析度和幀率的值進行傳輸。
運動控制模塊:根據控制信號和傳感器檢測到的障礙物信號,進行機器人的運動控制,同時向最佳解析度和幀率的計算模塊提供當前機器人的運動速度和角速度的信息。
作為本發明的進一步優選,客戶端的界面和機器人端的界面均基於web伺服器,且均由flash編寫,並搭建了控制伺服器和流媒體伺服器,控制伺服器完成機器人端和客戶端的控制信號和傳感器反饋信號的傳輸,其中傳感器反饋信號由傳感器傳輸至傳感器信號模塊,流媒體伺服器使用flashmediaserver搭建,完成機器人端和控制端的流媒體信號傳輸;
作為本發明的進一步優選,客戶端的控制程序包括flash控制端程序、flash音視頻傳輸和顯示程序和網絡狀況監測程序,flash控制端程序主要完成控制信號的檢測與傳輸、傳感器信號和可用帶寬信號的顯示;flash音視頻傳輸主要完成流媒體信號的傳輸和解碼顯示;網絡狀況監測程序主要完成網絡狀況的檢測和可用帶寬信號的傳輸。
其次,介紹一下網絡帶寬檢測和流媒體數據的自適應算法,由於客戶所處位置情況各異,而且帶寬檢測會受到客戶端防火牆的影響,所以本次帶寬檢測算法寫到客戶端的html中,用來獲取客戶端到控制伺服器的網絡情況,作為帶寬調節的依據,客戶端下載html後通過javascript加載控制伺服器對象,來獲取客戶端到控制伺服器的rtt,由吞吐量公式近似計算客戶端到控制伺服器的可用帶寬,並將計算的數值通過socket傳遞給控制伺服器,再通過相同手段傳遞給機器人,根據機器人所處不同場景視頻數據壓縮比不同,近似判斷壓縮比,隨後得到在該場景下的最佳解析度和幀率的數值,完成在可用帶寬之內的流媒體傳輸。
本技術領域技術人員可以理解,除非另外定義,這裡使用的所有術語(包括技術術語和科學術語)具有與本申請所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語應該被理解為具有與現有技術的上下文中的意義一致的意義,並且除非像這裡一樣定義,不會用理想化或過於正式的含義來解釋。
本申請中所述的「和/或」的含義指的是各自單獨存在或兩者同時存在的情況均包括在內。
本申請中所述的「連接」的含義可以是部件之間的直接連接也可以是部件間通過其它部件的間接連接。
以上述依據本發明的理想實施例為啟示,通過上述的說明內容,相關工作人員完全可以在不偏離本項發明技術思想的範圍內,進行多樣的變更以及修改。本項發明的技術性範圍並不局限於說明書上的內容,必須要根據權利要求範圍來確定其技術性範圍。