本發明涉及機器人控制領域,尤其涉及一種機器人控制方法、機器人裝置及機器人設備。
背景技術:
當前機器人應用相對還處于相對初級階段,大多以對話聊天為主,即使有部分機器人能夠執行其他任務,體驗也并不是很好。
發明人發現相關技術至少存在以下問題:以用戶要求機器人取一個東西為例,機器人只能通過語音識別得知用戶要的是什么東西,大概在什么位置,然后去尋找用戶所說的物品。如果所處空間較大的話,搜索范圍也較大,失敗率較高,用戶體驗較差。另一方面,用戶很多時候并不希望詳細的描述這個物品在哪兒,什么樣子,而只是指一下和望一眼,而當前機器人顯然無法獲知用戶的視線,也就無法知道用戶所看的到底是什么物體。
技術實現要素:
本發明針對現有技術的機器人根據用戶較簡單的語音指示去尋找目標,存在搜索范圍較大,失敗率較高,用戶體驗較差的技術問題,以及現有技術的機器人由于無法獲知用戶的視線,也就無法知道用戶所看的到底是什么物體的技術問題,提供一種機器人控制方法、機器人裝置及機器人設備,技術方案如下:
本發明實施例提供一種機器人控制方法,包括:
建立參照坐標系;
捕捉用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;
機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。
本發明實施例還提供一種機器人裝置,包括:
坐標系建立模塊,用于建立參照坐標系;
捕捉和計算模塊,用于捕捉指示目標的用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;
掃描模塊,用于機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。
本發明實施例還提供一種機器人設備,包括至少一個處理器;以及,
與所述至少一個處理器通信連接的存儲器;其中,
所述存儲器存儲有可被所述至少一個處理器執行的指令程序,所述指令程序被所述至少一個處理器執行,以使所述至少一個處理器能夠執行上述的方法。
本發明實施例還提供一種包括軟件代碼部分的計算機程序產品,所述軟件代碼部分被配置用于當在計算機的存儲器中運行時執行上述的方法步驟。
本發明實施例的有益效果在于,本發明實施例提供的機器人控制方法包括:建立參照坐標系;捕捉用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;至少一個機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。相對于現有技術的機器人根據用戶較簡單的語音指示去尋找目標,本發明實施例提供的方法中機器人平滑掃描所述注視平面來搜索指示目標,搜索范圍較小,搜索失敗率較低,提升搜索準確率,用戶體驗較好;而且相對于現有技術的機器人由于無法獲知用戶的視線,本發明實施例提供的方法中機器人可以捕捉用戶注視方向,并實時計算所述注視方向相對所述參照坐標系的注視平面,通過掃描所述注視平面從而可以獲知用戶所注視的到底是什么目標,搜尋所述指示目標的成功率較高,用戶體驗更好。
附圖說明
一個或多個實施例通過與之對應的附圖中的圖片進行示例性說明,這些示例性說明并不構成對實施例的限定,附圖中具有相同參考數字標號的元件表示為類似的元件,除非有特別申明,附圖中的圖不構成比例限制。
圖1是本發明實施例提供的機器人設備的應用環境圖;
圖2a、2b和2c是本發明實施例提供的機器人控制方法的場景俯視圖;
圖3是本發明實施例提供的機器人控制方法的流程示意圖;
圖4是本發明另一實施例提供的機器人控制方法的流程示意圖;
圖5是本發明又一實施例提供的機器人裝置的結構框圖;
圖6是本發明實施例提供的機器人裝置的結構框圖;
圖7是本發明實施例提供的機器人設備的結構框圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
除非另有定義,本說明書所使用的所有的技術和科學術語與屬于本發明的技術領域的技術人員通常理解的含義相同。本說明書中在本發明的說明書中所使用的術語只是為了描述具體的實施方式的目的,不是用于限制本發明。本說明書所使用的術語“和/或”包括一個或多個相關的所列項目的任意的和所有的組合。
此外,下面所描述的本發明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。
近年來,隨著計算機技術、信息技術、通訊技術、微電子技術的飛速發展,移動機器人技術得到了廣泛的應用,例如掃地機器人、餐館傳菜機器人以及可與人對話聊天的機器人等。機器人在向目標跟蹤移動的過程中,可通過全球衛星導航系統(globalnavigationsatellitesystem,gnss)和超寬帶(ultrawideband,uwb)與預先布設的網絡節點共同完成定位,通過gnss和uwb的定位方式,機器人能夠獲知精度持續穩定的位置信息,可實現復雜環境下較高精度地定位。當然,也可以采用其他機器人定位方式,本發明實施例對此不做限制。
機器人上一般搭載一個或多個攝像頭,例如,在機器人的臉部設置攝像頭,相當于人的眼睛。光軸,即光學系統的對稱軸,攝像頭的光軸為通過鏡頭中心的線,光束(光柱)的中心線,光束繞此軸轉動,不應有任何光學特性的變化。
相對于相關技術的機器人根據用戶較簡單的語音指示去尋找目標,用戶很多時候并不希望詳細的描述這個物品在哪兒,什么樣子,而只是指一下和望一眼,而相關技術的機器人顯然無法獲知用戶的視線,也就無法知道用戶注視的到底是什么物品。另一方面,在兩人或多人談論一樣物品時,時常也會出現只是指一下看一下來指示的情況,機器人對這種情況因為不知道到底指的哪一樣東西,就無法將語音信息與對應的物品做關聯,自然也就很難收集到用戶談論物品的有效信息。
因此,如果本發明實施例提供一種機器人控制方法,旨在使機器人獲知用戶在注視的是什么,或者至少獲知用戶的視線,則可以大幅縮小范圍,較容易獲悉目標。
圖1為本發明實施例提供的機器人控制方法的應用環境。如圖1所示,該應用環境包括:用戶100、機器人200和物品300。當用戶100在和機器人200交談過程中或者和其他人交談過程中,提到并注視附近的某樣物品300時,對機器人說道“tom,幫我把那本書遞過來”,該機器人200需要得到用戶100的視線方向來更準確的知道用戶要求的書是哪一本。
圖2a、2b為本發明實施例提供的機器人控制方法的場景環境的俯視圖。am直線為機器人視線角度,具體為機器人視線光軸。假設用戶100所處空間俯視圖如圖2a、2b所示,以左下角位置為參照坐標系的坐標(0,0)點,用戶處于c點,對機器人s說:“tom,幫我把那本書遞過來”,一邊說著一邊望向并指向處于位置t的一本書。機器人此時刻可能正直視用戶,也可能之前正在處理別的工作,此刻正將頭轉向用戶但還沒完全直視用戶,只是用戶出現在了視野范圍內。
這個時刻,如果聽到呼叫的機器人自身視角中能夠看到用戶的臉,則可通過具體臉部識別分析算法確定其面向方向(面向正方向)與機器人光軸的夾角(也可通過其他算法,只要得到此數據即可),進而也就可計算出用戶面向方向在當前坐標系中的絕對方向。下面具體闡述機器人控制方法。
如圖3所示,本發明實施例提供的機器人控制方法包括:
步驟101、建立參照坐標系;
可以采用上述機器人定位方式,對室內環境定位,設立真實空間的某個點為坐標原點(0,0)點。根據室內定位,機器人任何時刻都可獲取自身位置,計算自身所處的坐標。
步驟102、捕捉指示目標的用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面。
所述注視平面在三維空間中為垂直于地面的平面,俯視所述注視平面得到用戶注視方向所在直線。即為圖2a、2b所示的cb直線。圖2a與圖2b的不同之處在于,在參照坐標系中,圖2a的機器人位于圖中所示用戶的右側,圖2b的機器人位于圖中所示用戶的左側。
進一步地,機器人視線角度為機器人視線光軸。根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面具體包括:
根據所述機器人位置計算所述機器人在參照坐標系的坐標(m,n)并計算所述機器人視線光軸與所述參照坐標系x軸的夾角γ;根據所述機器人視線角度、機器人位置和用戶位置計算用戶位置和機器人位置的連線所在直線與所述機器人視線光軸的夾角β;計算所述用戶位置和機器人位置的連線所在直線與用戶注視方向所在直線的夾角α;根據所述機器人視線光軸與參照坐標系x軸的夾角γ、所述用戶位置和機器人位置的連線所在直線與所述機器人視線光軸的夾角β、所述用戶位置和機器人位置的連線所在直線與用戶注視方向所在直線的夾角α和所述機器人與用戶之間的直線距離實時計算所述注視方向相對所述參照坐標系的注視平面。
如圖2a、2b所示,所述用戶位置為c點,指示目標的位置為b點,所述機器人位置為a點,沿用戶位置c點畫與所述參照坐標系y軸平行的縱向線,沿機器人位置a點畫與所述參照坐標系x軸平行的橫向線,橫向線與縱向線垂直相交于d點,橫向線與用戶注視方向所在直線相交于e點,根據三角形內角和定理的推論:三角形的一個外角等于和它不相鄰的兩個內角和,通過如下算式,計算ace三角形在e點的外角θ:
θ=α+β+γ;
值得說明的是,圖2a中θ=α+β+γ;、圖2b中,θ=α-β+γ。β的取值,機器人視線角度逆時針轉動夾角β到用戶位置時,則定義β的值為正數;機器人視線角度順時針轉動夾角β到用戶位置時,則定義β的值為負數。
在三角形acd中,通過如下算式,計算ad和cd:
ad=d*cos(180°-β-γ)=-d*cos(β+γ);
cd=d*sin(180°-β-γ)=d*sin(β+γ);
在所述參照坐標系中,o為原點,橫向線與y軸相交于f點,機器人位置a點坐標為(m,n),可知m=fa;n=of;用戶位置c點坐標為(j,k),可知j=fa-ad,k=of+cd,將ad、cd、m和n代入,可得c點坐標(m+d*cos(β+γ),n+d*sin(β+γ));
將用戶注視方向所在直線設定為一次方程y=k*x+b;此處k=tanθ=tan(α+β+γ);
代入如上c點坐標(m+d*cos(β+γ),n+d*sin(β+γ)),可得:
b=y–k*x=n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ));
所述用戶注視方向所在直線一次方程為:
y=tan(α+β+γ)*x+n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ));
所述注視平面為以(m+d*cos(β+γ),n+d*sin(β+γ))為起始點,沿著一次方程y=tan(α+β+γ)*x+n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ))向前的方向并且垂直于地面的平面。
在一些實施例中,捕捉用戶注視方向,可根據所述用戶注視方向生成搜尋用戶指示目標的信號;根據所述搜尋用戶指示目標的信號獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離。
用戶在與其他人交談過程中,用戶注視了指示目標,此時,機器人可以主動捕捉用戶注視方向,也可以根據用戶的指令,例如上文中用戶跟機器人的對話:“tom,幫我把那本書遞過來”,這種語音指令,而捕捉用戶注視方向。機器人可以主動捕捉用戶注視方向時,并不需要用戶發出指令。
如果用戶發出了指令,則機器人接收由用戶發出的搜尋目標指令,根據搜尋目標指令捕捉用戶注視方向。
步驟103、機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。
具體地,機器人的數量可為一個或多個。可選地,間隔預設時長平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。間隔預設時長具體為0.1秒-5秒,結合機器人視角以及機器人攝像頭拍攝圖像的分辨率等設定。
具體地,控制至少一個機器人的攝像頭焦點落在所述注視平面在所述用戶位置到所述用戶指示目標之間的部分平面內,以搜尋用戶注視方向上的指示目標。
更具體地,機器人搜尋用戶注視方向上的指示目標,并不一定需要移動過去,如果機器人站立的位置剛好位于所述注視平面上,則機器人只需沿著注視平面前進或后退即可。如果機器人站立的位置剛好可以很清晰的捕捉到所述注視平面,以及可平滑掃描所述注視平面,則機器人只需轉動頭部即可。此時,則控制至少一個機器人視線光軸從所述用戶位置往所述用戶指示目標偏轉并獲取偏轉后視線光軸;根據所述機器人在參照坐標系的坐標計算所述偏轉后視線光軸與所述參照坐標系x軸的夾角γ′;根據所述機器人位置計算所述機器人在參照坐標系的坐標;根據所述機器人在參照坐標系的坐標、所述偏轉后視線光軸與參照坐標系x軸的夾角γ′和所述注視平面計算偏轉后攝像頭的對焦距離;根據所述偏轉后視線光軸和所述偏轉后攝像頭的對焦距離控制所述機器人的攝像頭的焦點落在所述注視平面在所述用戶位置到所述用戶指示目標之間的部分平面內,以搜尋所述用戶指示目標。
本發明實施例的有益效果在于,本發明實施例提供的機器人控制方法包括:建立參照坐標系;捕捉用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;至少一個機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。相對于現有技術的機器人根據用戶較簡單的語音指示去尋找目標,本發明實施例提供的方法中機器人平滑掃描所述注視平面來搜索指示目標,搜索范圍較小,搜索失敗率較低,提升搜索準確率,用戶體驗較好;而且相對于現有技術的機器人由于無法獲知用戶的視線,本發明實施例提供的方法中機器人可以捕捉用戶注視方向,并實時計算所述注視方向相對所述參照坐標系的注視平面,通過掃描所述注視平面從而可以獲知用戶所注視的到底是什么目標,搜尋所述指示目標的成功率較高,用戶體驗更好。
如果機器人所處位置不佳,需要移動以靠近注視平面,找到可以清晰的捕捉到所述注視平面,以及可平滑掃描所述注視平面的位置,需要控制機器人移動。
隨著機器人或人的位置變化或視線角度變化,如上的m,n,d,α,β,γ都會變化,因此不管是人在運動還是機器人在運動,該計算應取用戶注視方向的那一刻的所有數據作為計算參數,因為這條一次方程的直線是不會變的,只取決于用戶指示的那一刻。
得到用戶注視方向所在直線的一次方程,機器人只要追蹤這條線上的點即可。不管自身位置在哪兒,都可以得到自身視線與此線的距離,也就是攝像頭的對焦距離。機器人可以站在某處一邊轉動頭部一邊實時計算對焦距離,以使頭部轉動過程中始終使對焦點保持在這條線上(在俯視圖中是一條線,在三維空間中是一個垂直于地面的平面,使頭部轉動過程中始終使對焦點保持在注視平面上),當然,機器人也可能根據地形變化,障礙物遮擋等原因不得不在移動過程中找尋之前用戶視線上的物體,但同樣只要實時計算即可。如下圖所示,機器人將在自身運動過程中平滑掃描從c點開始的cb直線,以搜尋用戶所指示目標。
在一些實施例中,機器人控制方法還包括:
步驟105、在機器人自身運動過程中獲取自身實時位置和實時視線角度,確定機器人實時視線角度與所述注視平面的交線以及對焦距離,在移動過程中,根據對焦距離圖像掃描所述交線周圍區域,直至識別出所述注視平面上用戶注視的指示目標。
進一步地,機器人通過圖形搜索法平滑掃描所述交線周圍區域;當搜尋到至少兩個符合用戶指示目標圖形的目標時,發出請求確認的請求;如果用戶對請求確認的請求給予響應,給出確認結果,則機器人根據所述請求確認的請求返回的確認結果選取其中一個符合用戶指示目標圖形的目標作為所述戶指示目標。
具體地,機器人實時視線角度為機器人實時視線光軸。所述在機器人自身運動過程中獲取自身實時位置和實時視線角度,確定機器人實時視線角度與所述注視平面的交線以及對焦距離包括:
圖2c是本發明實施例提供的機器人控制方法的中機器人移動過程中的場景示意圖。在圖2c中,在機器人自身運動過程中獲取自身實時位置為a′點,根據所述機器人實時位置計算機器人在參照坐標系的實時坐標(p,q)并計算機器人實時視線光軸與所述參照坐標系x軸的夾角γ″;所述機器人實時視線光軸與所述用戶注視方向所在直線的交點為h,則可知a′h的距離為所述對焦距離;
將a′h所在直線設定為一次方程y=k*x+b,此處k=tanγ″,代入k和x、y,可得:
b=y–k*x=q–tan(γ″)*p;
繼而得到a′h所在直線的一次方程為:
y=tan(γ″)*x+q–tan(γ″)*p;
聯合求解a′h所在直線和用戶注視方向所在直線的二元方程:
y=tan(α+β+γ)*x+n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ));
y=tan(γ″)*x+q–tan(γ″)*p;
求解出的(x,y)即為機器人攝像頭實時視線光軸與所述用戶注視方向所在直線的交點h點坐標;
根據h點坐標和a點坐標計算a′h的距離,為所述對焦距離:
因為機器人在移動過程中或者攝像頭轉動時,p,q,γ″都可能改變。因此,該計算應該是隨著機器人的移動或轉動實時進行的,如每秒30次(實際次數取決于機器人的移動或轉動速度,計算頻率越高則越準確,但計算量也將增大,具體計算頻率在此不做限定)。
上述確定機器人實時視線角度與所述注視平面的交線以及對焦距離的過程,與識別出所述注視平面上用戶注視的指示目標之后移動過去取到指示目標的移動過程是分開控制的。識別出指示目標后,根據對焦距離,也就是機器人位置與指示目標的距離,機器人的姿態等,控制機器人往指示目標行進,即可去取指示目標。再提供獲取機器人位置,計算機器人坐標,獲取機器人與用戶之間的直線距離,結合室內靜態環境、動態障礙物等,規劃機器人行走路徑,將指示目標拿給用戶。
確定機器人實時視線角度與所述注視平面的交線以及對焦距離的過程,與識別出所述注視平面上用戶注視的指示目標之后移動過去取到指示目標的移動過程也可以一起控制,此時,控制機器人移動,在移動過程中,根據對焦距離圖像掃描所述交線周圍區域,直至識別出所述注視平面上用戶注視的指示目標,再控制機器人往對焦距離(對焦指示目標的對焦距離)為零的位置上移動,即可到達指示目標。
本發明實施例的有益效果在于,本實施例提供的機器人控制方法,在機器人自身運動過程中獲取自身實時位置和實時視線角度,確定機器人實時視線角度與所述注視平面的交線以及對焦距離。以此實現控制機器人的攝像頭焦點落在所述注視平面,以此拍攝到清晰的可能包含指示目標的圖像,該圖像具體為交線周圍區域的圖像。在移動過程中,可根據對焦距離圖像掃描所述交線周圍區域,直至識別出所述注視平面上用戶注視的指示目標,需要的參數均可實時獲取,可較快捷且準確地識別出指示目標,用戶體驗較好。
上述技術方案是通過對用戶的面部角度分析得到一個和機器人視線光軸的角度α,而如果一個機器人聽到呼叫時看到的是用戶的背面,則通過臉部識別與分析的技術將無法確定用戶面向的方向與光軸間的角度,這種時候應先轉到用戶的前方或側方,只要能看到用戶的臉即可(有可能需要用戶重新指示一下剛才的命令,重新確定一下用戶的面部朝向與視線光軸的夾角)。另一方面,如果有其他的算法能夠通過圖像識別的方式從用戶后方也能判定出用戶面部正對的方向與光軸的夾角。再或者,用戶周圍有其他機器人能夠獲取到用戶位置和機器人位置的連線所在直線的一次方程,同樣也可以同步給被命令的機器人。具體地,機器人控制方法還包括:
步驟104、所述機器人包括用于與同一坐標系下的機器人聯網的網絡模塊,所述網絡模塊用于共享所述注視平面的數據。
本發明實施例的有益效果在于,通過機器人的網絡模塊與同一坐標系下的機器人聯網,共享所述注視平面的數據,機器人控制服務器可根據多個機器人當前處理任務的狀態,結合機器人的位置,面向角度等,通過計算或分析,控制其中一個機器人去搜尋用戶注視方向上的指示目標,可整體上讓多個機器人協調工作,提高工作效率,快速滿足用戶需求,提升用戶體驗。其中,同一坐標系為所述參照坐標系。
在又一實施例中,如圖4所示,機器人搜尋到用戶注視方向上的指示目標后,還可有進一步的處理。所述機器人控制方法還包括:
步驟106、提取所述指示目標的目標特征信息,存儲所述目標特征信息至目標目錄。
機器人控制服務器上,或者機器人自動的存儲器上,可設置目標目錄來存儲目標特征信息。
目標特征信息可以為目標的各種屬性,如名稱、所處位置、歸屬、形狀、大小、顏色、價格、用戶的喜歡程度、購買途徑或購買原因等等。
提取所述指示目標的目標特征信息具體為通過圖形搜索方法提取,視頻特征提取,也可以通過用戶的語音數據提取。具體地,在一些實施例中,如圖4所示,所述機器人控制方法還包括:
步驟107、獲取用戶的語音數據與視頻數據,識別所述用戶的語音數據與視頻數據的關鍵信息,將目標特征信息與所述關鍵信息進行匹配得到關聯的關鍵信息,在目標目錄中存儲所述關聯的關鍵信息至對應的目標特征信息下以更新目標特征信息。
在目標目錄中,目標特征信息字段有多個屬性,通過目標特征信息與關鍵信息進行匹配得到關聯的關鍵信息,然后給對應的目標特征信息增加關聯的關鍵信息的屬性列,這樣,目標特征信息字段的屬性增加了,相對于更新了目標特征信息。
例如,機器人控制方法還可以在兩人或多人對話時,更好的幫助機器人收集信息。如機器人在閑置狀態或者還有能力通過聽覺和視覺關注周圍人時,如果聽到且看到多人正在對話,且過程中出現某人向另外一個人或多個人指示了某物時,機器人依然可以應用此方法知道大家在談論什么(通過獲取用戶的語音數據與視頻數據),對該物體的評論如何(識別所述用戶的語音數據與視頻數據的關鍵信息),甚至可以加入討論,也就是將聽覺信息和視覺信息得以關聯(將目標特征信息與所述關鍵信息進行匹配找出關聯的關鍵信息),繼而也就收集了相關用戶信息,之后可以借此與用戶更加智能的聊天。比如,兩人正在討論一個家里裝飾的瓷花瓶,主人可能邊注視花瓶邊對客人說:“看這個怎么樣?我超級喜歡”,客人可能回答:“這個花紋確實很漂亮,不錯不錯,在哪兒買的?”……按照傳統的方法,機器人能夠聽到兩方的對話,但并不一定能得知正在討論的是什么物品,也就造成收集的語音信息是完全沒有用處的。而結合本實施例的機器人控制方法,機器人有更大的概率通過視覺得知用戶討論的物品,并將語音信息與視覺上的該物體做關聯,得知用戶非常喜歡這個花瓶,購買地點,購買金額等等信息,使機器人對用戶的了解更多,借此為用戶提供更理想更智能的服務。
在再一個實施例中,體現機器人與用戶聊天,或機器人參與多人之間的討論。如圖4所示,所述機器人控制方法還包括:
步驟108、所述機器人在判斷用戶聊天后,收集用戶聊天的語音數據和視頻數據,識別所述用戶聊天的語音數據和視頻數據的主題信息,將更新后目標特征信息與所述主題信息進行匹配,根據匹配結果完成與用戶的語音與視頻交流。
機器人與用戶進行語音與視頻交流時,機器人判斷到用戶在于其聊天,例如捕捉到用戶的視線落在自身的頭部,或者用戶掃視了機器人并喊出機器人的名字等,則判斷為用戶在與機器人聊天。機器人先獲取用戶聊天的語音數據和視頻數據,識別出述用戶聊天的語音數據和視頻數據的主題信息,調用更新后目標目錄的目標特征信息,將更新后目標特征信息與所述主題信息進行匹配,以輸出與用戶交流的內容,可以輸出語音或動作,機器人更加智能化,可為用戶提供更理想更智能的服務,提升用戶體驗。
本發明實施例還提供一種機器人裝置400,如圖5所示,機器人裝置400包括坐標系建立模塊401、捕捉和計算模塊402和掃描模塊403。
坐標系建立模塊401,用于建立參照坐標系;
捕捉和計算模塊402,用于捕捉指示目標的用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;
掃描模塊403,用于機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。
需要說明的是,本發明實施例提出的機器人裝置400與本發明方法實施例提出的機器人控制方法基于相同的發明構思,方法實施例與裝置實施例中的相應技術內容可相互適用,此處不再詳述。
本發明實施例的有益效果在于,本發明實施例提供的機器人控制方法包括:建立參照坐標系;捕捉用戶注視方向,獲取機器人視線角度,獲取機器人位置,獲取機器人與用戶之間的直線距離,根據所述機器人視線角度、所述機器人位置以及所述機器人與用戶之間的直線距離實時計算所述用戶注視方向相對所述參照坐標系的注視平面;至少一個機器人平滑掃描所述注視平面,以搜尋用戶注視方向上的指示目標。相對于現有技術的機器人根據用戶較簡單的語音指示去尋找目標,本發明實施例提供的方法中機器人平滑掃描所述注視平面來搜索指示目標,搜索范圍較小,搜索失敗率較低,用戶體驗較好;而且相對于現有技術的機器人由于無法獲知用戶的視線,本發明實施例提供的方法中機器人可以捕捉用戶注視方向,并實時計算所述注視方向相對所述參照坐標系的注視平面,通過掃描所述注視平面從而可以獲知用戶所注視的到底是什么目標,搜尋所述指示目標的成功率較高,用戶體驗更好。
如果機器人所處位置不佳,需要移動以靠近注視平面,找到可以清晰的捕捉到所述注視平面,以及可平滑掃描所述注視平面的位置,需要控制機器人移動。在一些實施例中,如圖6所示,機器人裝置400還包括:
確定和識別模塊405,用于在機器人自身運動過程中獲取自身實時位置和實時視線角度,確定機器人實時視線角度與所述注視平面的交線以及對焦距離,在移動過程中,根據對焦距離圖像掃描所述交線周圍區域,直至識別出所述注視平面上用戶注視的指示目標。
本發明實施例的有益效果在于,本實施例提供的機器人裝置400,在機器人自身運動過程中獲取自身實時位置和實時視線角度,確定機器人實時視線角度與所述注視平面的交線以及對焦距離。以此實現控制機器人的攝像頭焦點落在所述注視平面,以此拍攝到清晰的可能包含指示目標的圖像,該圖像具體為交線周圍區域的圖像。在移動過程中,可根據對焦距離圖像掃描所述交線周圍區域,直至識別出所述注視平面上用戶注視的指示目標,需要的參數均可實時獲取,可較快捷且準確地識別出指示目標,用戶體驗較好。
進一步地,所述機器人視線角度為機器人視線光軸,所述捕捉和計算模塊402還用于:
根據所述機器人位置計算所述機器人在參照坐標系的坐標(m,n)并計算所述機器人視線光軸與所述參照坐標系x軸的夾角γ;根據所述機器人視線角度、機器人位置和用戶位置計算用戶位置和機器人位置的連線所在直線與所述機器人視線光軸的夾角β;計算所述用戶位置和機器人位置的連線所在直線與用戶注視方向所在直線的夾角α;
所述注視平面在三維空間中為垂直于地面的平面,俯視所述注視平面得到用戶注視方向所在直線,設定為一次方程y=k*x+b,所述注視平面具體通過如下算式計算:
y=tan(α+β+γ)*x+n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ));
式中,d為機器人與用戶之間的直線距離;
所述注視平面為以(m+d*cos(β+γ),n+d*sin(β+γ))為起始點,沿著一次方程y=tan(α+β+γ)*x+n+d*sin(β+γ)-tan(α+β+γ)*(m+d*cos(β+γ))向前的方向并且垂直于地面的平面。
進一步地,所述機器人實時視線角度為機器人實時視線光軸,所述確定和識別模塊405還用于:
根據所述機器人實時位置a′點計算機器人在參照坐標系的實時坐標(p,q)并計算機器人實時視線光軸與所述參照坐標系x軸的夾角γ″;所述機器人實時視線光軸與所述用戶注視方向所在直線的交點為h,則可知a′h的距離為所述對焦距離;將a′h所在直線設定為一次方程y=k*x+b,所述對焦距離具體通過如下算式計算:
y=tan(γ″)*x+q–tan(γ″)*p;
聯合求解a′h所在直線和用戶注視方向所在直線的二元方程,解出的(x,y)即為機器人實時視線光軸與所述用戶注視方向所在直線的交點h點坐標;
根據h點坐標和a′點坐標計算a′h的距離,為所述對焦距離:
上述技術方案是通過對用戶的面部角度分析得到一個和機器人視線光軸的角度α,如果用戶周圍有其他機器人能夠獲取到用戶位置和機器人位置的連線所在直線的一次方程,同樣也可以同步給被命令的機器人。
具體地,所述機器人包括用于與同一坐標系下的機器人聯網的網絡模塊,所述網絡模塊用于共享所述注視平面的數據。
本發明實施例的有益效果在于,通過機器人的網絡模塊與同一坐標系下的機器人聯網,共享所述注視平面的數據,機器人控制服務器可根據多個機器人當前處理任務的狀態,結合機器人的位置,面向角度等,通過計算或分析,控制其中一個機器人去搜尋用戶注視方向上的指示目標,可整體上讓多個機器人協調工作,提高工作效率,快速滿足用戶需求,提升用戶體驗。其中,同一坐標系為所述參照坐標系。
在又一實施例中,機器人搜尋到用戶注視方向上的指示目標后,還可有進一步的處理。所述機器人裝置400還包括:
提取和存儲模塊406,用于提取所述指示目標的目標特征信息,存儲所述目標特征信息至目標目錄。
提取所述指示目標的目標特征信息具體為通過圖形搜索方法提取,視頻特征提取,也可以通過用戶的語音數據提取。具體地,在一些實施例中,如圖6所示,所述機器人裝置400還包括:
識別和匹配模塊407,用于獲取用戶的語音數據與視頻數據,識別所述用戶的語音數據與視頻數據的關鍵信息,將目標特征信息與所述關鍵信息進行匹配得到關聯的關鍵信息,在目標目錄中存儲所述關聯的關鍵信息至對應的目標特征信息下以更新目標特征信息。
例如,機器人裝置400還可以在兩人或多人對話時,更好的幫助機器人收集信息。識別和匹配模塊407用于獲取及識別所述用戶的語音數據與視頻數據的關鍵信息,將目標特征信息與所述關鍵信息進行匹配找出關聯的關鍵信息并存儲更新。目標特征信息與所述關鍵信息進行匹配,機器人有更大的概率通過聽覺或視覺得知用戶討論的物品,并將語音信息與視覺信息與該物體做關聯,找出關聯的關鍵信息,也即使機器人對用戶的了解更多,使機器人更加智能化。
在再一個實施例中,體現機器人與用戶聊天,或機器人參與多人之間的討論。如圖6所示,所述機器人裝置400還包括:
匹配和交流模塊408,用于機器人在判斷用戶聊天后,收集用戶聊天的語音數據和視頻數據,識別所述用戶聊天的語音數據和視頻數據的主題信息,將更新后目標特征信息與所述主題信息進行匹配,根據匹配結果完成與用戶的語音與視頻交流。
機器人與用戶進行語音與視頻交流時,先獲取用戶聊天的語音數據和視頻數據,識別出述用戶聊天的語音數據和視頻數據的主題信息,調用目標目錄的更新后目標特征信息,將更新后目標特征信息與所述主題信息進行匹配,以輸出與用戶交流的內容,可以輸出語音或動作,使機器人更加智能化,提升用戶體驗。
圖7是本發明實施例提供的機器人設備的硬件結構示意圖。該機器人設備可以是任何合適執行機器人控制方法的機器人設備800。該機器人設備800還可以具有一個或者多個動力裝置,用以驅動機器人沿特定的軌跡移動。
如圖7所示,該設備包括:一個或多個處理器810以及存儲器820,圖7中以一個處理器810為例。
處理器810、存儲器820可以通過總線或者其他方式連接,圖7中以通過總線連接為例。
存儲器820作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執行程序以及模塊,如本發明實施例中的機器人控制方法對應的程序指令/模塊(例如,圖5所示的坐標系建立模塊401、捕捉和計算模塊402和掃描模塊403,圖6所示的坐標系建立模塊401、捕捉和計算模塊402、掃描模塊403、確定和識別模塊405、提取和存儲模塊406、識別和匹配模塊407和匹配和交流模塊408)。處理器810通過運行存儲在存儲器820中的非易失性軟件程序、指令以及模塊,從而執行服務器的各種功能應用以及數據處理,即實現上述方法實施例機器人控制方法。
存儲器820可以包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需要的應用程序;存儲數據區可存儲根據機器人裝置的使用所創建的數據等。此外,存儲器820可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態存儲器件。在一些實施例中,存儲器820可選包括相對于處理器820遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至機器人裝置。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
所述一個或者多個模塊存儲在所述存儲器820中,當被所述一個或者多個處理器810執行時,執行上述任意方法實施例中的機器人控制方法。
專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。所述的計算機軟件可存儲于計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體或隨機存儲記憶體等。
最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;在本發明的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現,并存在如上所述的本發明的不同方面的許多其它變化,為了簡明,它們沒有在細節中提供;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。