專利名稱:機器人設(shè)備、機器人設(shè)備的控制方法和機器人設(shè)備用玩具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及最好適用于娛樂機器人的機器人設(shè)備,控制機器人設(shè)備的方法和機器人設(shè)備用玩具,其中借助圖像識別處理,機器人設(shè)備具有識別能力,并且能夠用嘴發(fā)出咆哮,搬運物體和玩耍,所述方法涉及機器人設(shè)備的控制。
背景技術(shù):
“機器人”意味著通過電或磁操作,產(chǎn)生和人類動作類似的動作的機械設(shè)備?!皉obot”的語源被認為是斯拉夫語“ROBOTA(苦役機器)”。在日本,機器人從六十年代末開始流行。這些機器人中的大多數(shù)都是針對工廠的生產(chǎn)工作中的自動化和無人操作的工業(yè)機器人,例如機械手,傳送機器人等。
近年來,在有腿機器人,例如模仿諸如狗、貓、熊之類四足動物的身體機構(gòu)或者它們的動作的寵物機器人,和模仿諸如猿、人類之類兩足動物的身體機構(gòu)的人形機器人的結(jié)構(gòu)和穩(wěn)定行走控制方面,做了許多研究,取得了一些發(fā)展。出現(xiàn)實際使用這些機器人的前景。這些有腿機器人比爬行機器人更不穩(wěn)定,并且存在姿態(tài)控制和行走控制方面的困難。但是這些機器人更優(yōu)秀,因為這些機器人能夠?qū)崿F(xiàn)靈活行走和跑動,例如機器人能夠爬樓和爬坡。
類似于固定于特定位置使用的機械手的固定機器人只在用于組件裝配工作和選擇工作的固定局部工作空間工作。相反,移動機器人的工作空間不受限制,移動機器人沿著預(yù)定路線或者無路線地自由移動,代替執(zhí)行預(yù)定的或者任何人類工作,或者代替人類、狗或任何其它生物提供各種服務(wù)。
有腿機器人的一種應(yīng)用是代替執(zhí)行工業(yè)和生產(chǎn)活動中的各種艱苦工作。例如,代替執(zhí)行危險服務(wù)和艱苦工作,例如原子能電廠,熱電廠和石化廠中的維護服務(wù),制造工廠中的搬運和裝配服務(wù),高層建筑的清潔,火災(zāi)或其它災(zāi)難中的營救等。
有腿機器人的另一應(yīng)用不是如上所述的輔助服務(wù),而是一種與人類生活的密切配合,即與人類的“共生”或者“娛樂表演”。這種機器人高度逼真地重復(fù)有腿動物,例如人類,狗(寵物),熊,或者相對智能的其它有腿動物的動作機構(gòu)。另外,這種機器人不僅被要求高度逼真地執(zhí)行預(yù)先輸入的模式化動作,而且被要求動態(tài)實現(xiàn)對用戶的單詞和姿態(tài)(“贊揚”,“責(zé)罵”,“打擊”等)的生動響應(yīng)的表達。
本申請人在日本專利申請?zhí)卦S公開No.2001-191280和其它材料中公開一種執(zhí)行動作的控制方法,其中具有兩只或更多腿的機器人設(shè)備識別粉色球,走到球前并踢球。
但是,上面描述的機器人設(shè)備不能把球咬在嘴中或夾持在類似部位中,或者在球被咬在其嘴中的情況下移動或玩耍,雖然該機器人設(shè)備能夠通過踢球或拾球,把球移開。如果機器人設(shè)備能夠舉起或搬運咬在其嘴中的玩具,或者在夾持玩具的同時滾動玩具,那么能夠表現(xiàn)更豐富更生動的動作。
發(fā)明內(nèi)容
鑒于上述情形,做出了本發(fā)明,本發(fā)明的目的是提供一種通過舉起或搬運咬在其嘴中的玩具,或者在夾持玩具的同時滾動玩具,能夠執(zhí)行豐富并且生動的動作的機器人設(shè)備,所述機器人設(shè)備的控制方法,和所述機器人設(shè)備用玩具。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明一個方面的機器人設(shè)備根據(jù)外部環(huán)境,自主做出動作,所述機器人設(shè)備包括拾取外部環(huán)境中的物體的圖像的圖像拾取裝置;根據(jù)圖像拾取裝置拾取的圖像,計算包括在圖像數(shù)據(jù)中的標記的圓度的計算裝置;和根據(jù)計算裝置計算的圓度,區(qū)分物體的特征部分的區(qū)分裝置,其中當所述物體是具有將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分,和分別在其兩端形成的,基本上均呈三角形的二個側(cè)面部分(所述可咬部分介于這兩個側(cè)面部分之間)的玩具時,計算裝置計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,區(qū)分裝置根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
計算裝置計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,區(qū)分裝置根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
另外,為了實現(xiàn)上述目的,根據(jù)本發(fā)明另一方面的機器人設(shè)備的控制方法用于根據(jù)外部環(huán)境,自主做出動作的機器人設(shè)備,所述方法包括拾取外部環(huán)境中的物體的圖像的圖像拾取步驟;根據(jù)在圖像拾取步驟中拾取的圖像,計算包括在圖像數(shù)據(jù)中的標記的圓度的計算步驟;和根據(jù)在計算步驟中計算的圓度,區(qū)分物體的特征部分的區(qū)分步驟,其中當所述物體是具有將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分,和分別在其兩端形成的,基本上均呈三角形的二個側(cè)面部分(所述可咬部分介于這兩個側(cè)面部分之間)的玩具時,在計算步驟中計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,在區(qū)分步驟中,根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
在計算步驟中,計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,在區(qū)分步驟中,根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
另外,為了實現(xiàn)上述目的,根據(jù)本發(fā)明另一方面的機器人設(shè)備用玩具用于根據(jù)外部環(huán)境,自主做出動作的機器人設(shè)備,所述玩具包括將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分,和分別在玩具兩端形成的,基本上均呈三角形的二個側(cè)面部分,所述可咬部分介于這兩個側(cè)面部分之間,其中機器人設(shè)備的圖像識別處理用和標記一起施加的顏色分別對可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域著色,計算標記的圓度,并根據(jù)圓度,把所述可咬部分和所述兩個側(cè)面部分區(qū)分開。
按照根據(jù)本發(fā)明的機器人設(shè)備,計算裝置計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,區(qū)分裝置根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。于是,機器人設(shè)備能夠識別特殊的玩具,咬住并保持該玩具,在咬住玩具的同時搬運該玩具,在把玩具咬在嘴里的同時滾動該玩具。從而,能夠執(zhí)行更豐富更生動的動作。
按照根據(jù)本發(fā)明的機器人設(shè)備的控制方法,在計算步驟中,計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,在區(qū)分步驟中,根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。于是,能夠識別特殊的玩具,咬住并保持該玩具,在咬住玩具的同時搬運該玩具,在把玩具咬在嘴里的同時滾動該玩具。從而,能夠執(zhí)行更豐富更生動的動作。
根據(jù)本發(fā)明的機器人設(shè)備用玩具具備將被在機器人設(shè)備的頭部單元中形成的嘴部咬住并保持的棒狀可咬部分,和分別在玩具兩端形成的,基本上均呈三角形的二個側(cè)面部分,所述可咬部分介于這兩個側(cè)面部分之間。機器人設(shè)備的圖像識別處理用對標記施加的顏色分別對可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域著色。計算標記的圓度,以便把所述可咬部分和所述兩個側(cè)面部分相互區(qū)分開,從而機器人設(shè)備能夠咬住玩具或者搬運叼在嘴里的玩具。
圖1是表示機器人設(shè)備的外形的透視圖;圖2是表示機器人設(shè)備的電路結(jié)構(gòu)的方框圖;圖3A-圖3D表示玩具(骨頭)的外形;圖4是說明圓形的表格;圖5A和圖5B表示玩具(骨頭)的真實圖像和粉紅色表面積的計算結(jié)果;圖6是說明基于圓度的識別的圖表;圖7A和圖7B表示球的真實圖像和粉紅色表面積的計算結(jié)果;圖8A和圖8B表示玩具(骨頭)的側(cè)面部分和可咬部分的真實圖像和粉紅色表面積的計算結(jié)果;
圖9A和9B說明補償處理和擴充處理;圖10是識別骨頭,球和粉紅色的整個圖像識別處理程序的流程圖的一部分;圖11是識別骨頭,球和粉紅色的整個圖像識別處理程序的流程圖的剩余部分;圖12是表示關(guān)于骨頭,球和粉紅色的標記處理程序的流程圖的一部分;圖13是表示關(guān)于骨頭,球和粉紅色的標記處理程序的流程圖的剩余部分;圖14是骨棒細節(jié)處理程序的流程圖;圖15是中性帶1細節(jié)處理程序的流程圖的一部分;圖16是中性帶1細節(jié)處理程序的流程圖的剩余部分;圖17是骨頭側(cè)面細節(jié)處理程序的流程圖的一部分;圖18是中性帶2細節(jié)處理程序的流程圖的一部分;圖19是中性帶2細節(jié)處理程序的流程圖的剩余部分;圖20是球細節(jié)處理程序的流程圖;圖21是例外細節(jié)處理程序的流程圖;圖22A和圖22B是整個骨頭的真實圖像和圖像處理結(jié)果;圖23A和圖23B是骨頭的可咬部分的真實圖像和圖像處理結(jié)果;圖24A和圖24B是直立骨頭的真實圖像和圖像處理結(jié)果;圖25A和圖25B是球的真實圖像和圖像處理結(jié)果;圖26A和圖26B是球和骨頭的真實圖像和圖像處理結(jié)果;圖27是表示咬骨控制算法的處理程序的流程圖的一部分;圖28是表示咬骨控制算法的處理程序的流程圖的剩余部分;圖29A-圖29C表示咬住水平放置的骨頭的機器人設(shè)備的一個交互作用例子;圖30A-圖30E表示咬住直立骨頭的機器人設(shè)備的一個交互作用例子;圖31A-圖31D表示機器人設(shè)備的另一交互作用例子;
圖32是說明用于咬住骨頭的機器人設(shè)備的嘴(顎)的結(jié)構(gòu)的側(cè)視圖;圖33是說明用于咬住骨頭的機器人設(shè)備的嘴(顎)的結(jié)構(gòu)的前視圖;圖34是說明用于咬住骨頭的機器人設(shè)備的嘴(顎)的結(jié)構(gòu)的透視圖;圖35是說明用于咬住骨頭的機器人設(shè)備的嘴(顎)的主要部分的側(cè)視圖;圖36是說明用于咬住骨頭的機器人設(shè)備的嘴(顎)的主要部分的側(cè)視圖;圖37是咬住檢測/控制單元的方框圖;圖38是表示咬住檢測/控制單元的處理程序的流程圖;圖39是表示機器人設(shè)備的軟件結(jié)構(gòu)的方框圖;圖40是表示機器人設(shè)備的軟件結(jié)構(gòu)中的中間件層的結(jié)構(gòu)的方框圖;圖41是表示機器人設(shè)備的軟件結(jié)構(gòu)中的應(yīng)用層的結(jié)構(gòu)的方框圖;圖42是表示機器人設(shè)備的軟件結(jié)構(gòu)中的應(yīng)用層中的動作模型庫的結(jié)構(gòu)的方框圖;圖43說明確定概率自動機(automaton),確定概率自動機是用于確定機器人設(shè)備的動作的信息;和圖44表示為確定概率自動機的每個節(jié)點準備的狀態(tài)遷移表。
具體實施例方式
下面參考附圖,說明本發(fā)明的一個實施例。該實施例和響應(yīng)環(huán)境(或外部刺激)或者內(nèi)部條件,執(zhí)行自主動作的自主機器人設(shè)備相關(guān)。特別地,該機器人設(shè)備恰當?shù)仳?qū)動其四條腿,相對于地面移動它的身體。
該機器人設(shè)備借助由CPU(中央處理器)執(zhí)行的圖像識別處理算法,咬骨頭控制算法和咬住檢測算法(后面說明),識別特殊的玩具(后面說明)。隨后,機器人設(shè)備做出前往該玩具,把玩具保持在嘴里,在咬住玩具的同時行走的動作。
下面首先說明機器人設(shè)備的結(jié)構(gòu)。
如圖1中所示,根據(jù)本實施例的機器人設(shè)備1是四足行走型有腿機器人。腿部單元3A、3B、3C和3D在身體單元2的左右兩側(cè)與身體單元2的前后部分連接,頭部單元4與身體單元2的前端連接。頭部單元4具有能夠咬住并保持作為根據(jù)本發(fā)明的玩具的一個具體例子的骨頭形玩具(下面簡稱為骨頭)的嘴(顎)部。嘴部具有上顎部和下顎部,并采用咬骨頭200的可咬部分203的結(jié)構(gòu)牢固地咬住該骨頭。嘴部的結(jié)構(gòu)將在后面更詳細地說明。
如圖2中所示,身體單元2包含控制部分16和作為機器人設(shè)備1的電源的電池17,在控制部分16中,CPU 10,DRAM(動態(tài)隨機存取存儲器)11,閃速ROM(只讀存儲器)12,PC(個人計算機)卡接口電路13,和信號處理電路14通過內(nèi)部總線15相互連接。另外,身體單元2包含檢測機器人設(shè)備1的定向和運動加速度的角速度傳感器18和加速度傳感器19。
在頭部單元4中的預(yù)定位置,設(shè)置檢測環(huán)境亮度的CCD(電荷耦接器件)照相機20,測量到前方任何物體的距離的距離傳感器22,收集外部聲音的麥克風(fēng)23,輸出各種聲音的揚聲器24,和等同于機器人設(shè)備1的“眼睛”的LED(發(fā)光二極管)(未示出)。
此外,腿部單元3A-3D的關(guān)節(jié)部分,腿部單元3A-3D和身體部分2之間的連接部分,和頭部單元4和身體單元2之間的連接部分都配有致動器261-26n之一和電位計271-27n之一。例如,在其自身結(jié)構(gòu)中,致動器261-26n均包括一個伺服電動機。通過驅(qū)動伺服電動機,控制腿部單元3A-3D轉(zhuǎn)變成目的姿態(tài)或操作。當然,行走動作由腿部單元3A-3D相對于地面的自由動作構(gòu)成。
此外,包括角速度傳感器18,加速度傳感器19,觸覺傳感器21,距離傳感器22,麥克風(fēng)23,揚聲器24和電位計271-27n的各種傳感器,以及LED和致動器261-26n分別通過對應(yīng)的集線器(hub)281-28n與控制部分16的信號處理電路14連接。CCD照相機20和電池17均直接與信號處理電路14連接。
信號處理電路14有序地接收從上述傳感器供給的傳感器數(shù)據(jù),圖像數(shù)據(jù)和音頻數(shù)據(jù),并分別通過內(nèi)部總線15,把數(shù)據(jù)保存在DRAM 11中的預(yù)定位置。本實施例中,信號處理電路14對CCD照相機20獲得的物體的圖像信號進行預(yù)定的視頻信號處理,并將其作為圖像數(shù)據(jù)保存在DRAM 11中的預(yù)定位置。信號處理電路14有序接收從電池17供給的表示剩余電量的剩余電量數(shù)據(jù),并把該數(shù)據(jù)保存在DRAM 11中的預(yù)定位置。
當CPU隨后執(zhí)行機器人設(shè)備1的操作控制時,使用保存在DRAM 11中的傳感器數(shù)據(jù),圖像數(shù)據(jù),音頻數(shù)據(jù)和剩余電量數(shù)據(jù)。利用以表征本發(fā)明的圖像識別處理算法,咬骨頭控制算法和咬住檢測算法為基礎(chǔ)的程序(即圖像識別處理程序,咬骨頭檢測程序和咬住檢測程序),控制CPU10進行的操作控制。這些算法將在后面詳細說明。
實際上,在接通機器人設(shè)備1的電源之后的初始階段中,CPU 10直接或者通過PC卡接口電路13讀取保存在插入身體部分2的PC卡插槽(未示出)中的存儲卡29或閃速ROM 12中的用于上述控制處理的程序。CPU 10把程序保存到DRAM 11中。
另外,CPU 10根據(jù)如上所述,信號處理電路14有序保存在DRAM11中的傳感器數(shù)據(jù),圖像數(shù)據(jù),音頻數(shù)據(jù)和剩余電量數(shù)據(jù),確定機器人設(shè)備自身的狀況,環(huán)境情況,是否存在來自用戶的指令和動作。
CPU 10還根據(jù)確定結(jié)果做出判斷,另外根據(jù)上述程序,驅(qū)動致動器261-26n中必需的一些致動器。從而使機器人設(shè)備動作,例如把骨頭咬在其頭部單元4的嘴部中,頭部單元4點頭或擺動,或者驅(qū)動腿部單元3A-3D行走。
此時,在需要的情況下,CPU 10產(chǎn)生音頻數(shù)據(jù),并通過信號處理電路14,把該數(shù)據(jù)作為音頻信號供給揚聲器24,從而向外輸出基于音頻信號的聲音,或者打開/關(guān)閉或閃爍LED。從而,機器人設(shè)備1被構(gòu)造成響應(yīng)自身的狀況,環(huán)境情況和來自用戶的指令和動作,自主動作。
圖3A和圖3D表示了玩具的外形,在把該玩具咬在嘴中時,機器人設(shè)備1玩弄該玩具。該玩具的形狀類似于骨頭,通常使人們想象狗正在玩弄它嘴中的骨頭。圖3A表示了穩(wěn)定放置在地面上的玩具。圖3B表示直立在地面上的玩具。圖3C是表示穩(wěn)定放置在地面上的玩具的前視圖。圖3D是穩(wěn)定放置在地面上的玩具的側(cè)視圖。該骨頭形玩具具有在棒形可咬部分203兩端的基本上呈三角形的側(cè)面部分201L和201R??梢Р糠?03的顏色為粉紅色。在側(cè)面部分201L和201R的外側(cè)上設(shè)置有Y形粉紅色區(qū)202。形成從外圓周到可咬部分203逐漸加厚的側(cè)面部分201L和201R的內(nèi)側(cè)204L和204R。可咬部分203足夠長,可被機器人設(shè)備1的頭部單元4的嘴部咬住并保持在嘴中。從而形成從外圓周到可咬部分203逐漸加厚的內(nèi)側(cè)204L和204R。于是,如果機器人設(shè)備咬住和任一側(cè)面部分接近的一部分,那么厚度的斜面使咬住位置移向中央部分。
機器人設(shè)備1借助CCD照相機20獲得玩具200的圖像,利用信號處理電路14處理圖像的信號,并把圖像數(shù)據(jù)保存到DRAM 11中。機器人設(shè)備1從DRAM 11獲得圖像數(shù)據(jù),根據(jù)CPU 10執(zhí)行的圖像識別處理程序,識別它自己的玩具。通過識別可咬部分203與側(cè)面部分201L和201R的粉紅色區(qū)的形狀,能夠?qū)崿F(xiàn)基于圖像的識別。通過識別粉紅色區(qū)的形狀,能夠確定可咬部分203的定向,和機器人設(shè)備1是否能夠咬住并保持玩具。根據(jù)可咬部分203上的標記的定向,能夠檢測骨頭的角度。
下面說明機器人設(shè)備1識別玩具的識別方法。雖然根據(jù)圖像識別處理程序執(zhí)行該方法,不過將從識別方法的原理開始說明。機器人設(shè)備1根據(jù)CCD照相機20獲得的圖像數(shù)據(jù),計算粉紅色區(qū)的圓度,并利用圓度值識別玩具。機器人設(shè)備區(qū)分作為玩具的特征部分的可咬部分和側(cè)面部分。根據(jù)粉紅色區(qū)的面積和其周長(boundary length),利用下面的表達式獲得圓度R。
R=4π面積/(周長*周長)(1)可對粉紅色區(qū)進行擴充處理和補償處理,以提高識別性能。
圖4表示就“圓”、“正方形”和“正三角形”來說的面積,周長和圓度。圖5A和5B表示表現(xiàn)玩具和粉紅色球的真實圖像,及其圖像處理結(jié)果(表示粉紅色表面積的計算結(jié)果)。
實際上,機器人設(shè)備1根據(jù)表達式(1)獲得的圓度,以及短時期內(nèi)保存的數(shù)據(jù),對獲得的對象分類。如圖6中所示,當形狀接近圓形時,圓度從0.0增大到1.0。換句話說,當形狀越來越不同于圓形時,圓度降低。
例如,如果圓度R在0.7-1.0的范圍內(nèi),那么識別其實際圖像和圖像處理結(jié)果示于圖7A和圖7B中的粉紅色球。如果圓度R在0.55-0.6的范圍內(nèi),那么識別其實際圖像和圖像處理結(jié)果示于圖8A和圖8B中的玩具的側(cè)面部分201L或201R。如果圓度R在0.15-0.5的范圍內(nèi),那么識別其實際圖像和圖像處理結(jié)果示于圖8A和圖8B中的玩具的可咬部分203。
0.0-0.15的圓度R表示噪聲帶。0.5-0.55的圓度R表示中性帶1。0.6-0.7的圓度R表示中性帶2。根據(jù)照明條件和視角,圓度R可隨著時間而變化。即使圓度R落入噪聲帶中,只要粉紅色區(qū)具有恒定的面積或更大面積,對象就被歸類為未經(jīng)確認的粉紅色對象。雖然當前帶度R落入中性帶1內(nèi),不過只要記憶了圓度R曾經(jīng)落入可識別可咬部分203的范圍0.15-0.5內(nèi),就識別為可咬部分203。類似地,只要記憶了圓度R曾經(jīng)落入范圍0.55-0.6內(nèi),就識別為側(cè)面部分201。如果沒有類似記憶,那么識別為未經(jīng)確認的粉紅色對象。另外,雖然圓度R當前在中性帶2內(nèi),不過只要記憶了圓度R曾經(jīng)落入可識別粉紅色球的范圍0.7-1.0內(nèi),就識別為粉紅色球。類似地,如果記憶了圓度R曾經(jīng)落入范圍0.55-0.6內(nèi),那么就識別為側(cè)面部分201。如果不存在類似記憶,那么識別為未經(jīng)確認的粉紅色對象。
通過根據(jù)圓度R和短期記憶進行分類,能夠消除玩具(骨頭200)與粉紅色球的誤識別。此外,還能夠響應(yīng)環(huán)境穩(wěn)健性。
下面,參考圖9A和圖9B,說明提高識別性能的補償處理和擴充處理的原理。在照明的影響下,在揀取的(pick)球或玩具的各個部分產(chǎn)生白光(white-out)斑點102和陰影105,從而球或玩具看起來部分碎裂。從而,圓度的測量值會和邏輯值不一致,導(dǎo)致形狀的錯誤識別。于是,沿橫向方向和縱向方向掃描標記(label)的內(nèi)部,并且把標記強制分配給在兩個橫向端點和在兩個縱向端點之間,未被標記的那些象素。附圖標記103表示以橫向掃描為基礎(chǔ)的補償,附圖標記104表示以縱向掃描為基礎(chǔ)的補償。用和標記相同的顏色過度著色(over paint)白光斑點102的各個部分和陰影105的暗色部分。從而,補償標記的圓度接近邏輯值,從而提高識別準確性。在一些情況下,仍有不能通過補償處理彌補的部分106。當然,通過花費較長的時間進行傾斜掃描,能夠更強制地應(yīng)用該程度。另一方面,可執(zhí)行用相同的顏色過度著色8個周圍象素的擴充處理。在擴充處理中,粉紅色區(qū)被擴展到虛線所示的區(qū)域。
下面,參考圖10-21,說明通過由CPU 10執(zhí)行圖像識別處理程序,機器人設(shè)備1執(zhí)行的圖像識別處理的流程。首先,在圖10中的步驟S1中獲得圖像數(shù)據(jù)。該圖像數(shù)據(jù)是CCD照相機20拾取的,經(jīng)過信號處理電路14的視頻信號處理,并且保存在DRAM 11中的圖像。隨后,從顏色數(shù)據(jù)表(CDT)獲得粉紅色通道的數(shù)據(jù)。硬件能夠計算圖像的哪些部分是粉紅色。于是,如果獲取粉紅色通道的圖像,那么由x方向的任何數(shù)量的象素和y方向的任何數(shù)量的象素確定的象素是否是粉紅色可被檢測為由1或0表示的數(shù)據(jù)。例如,如果該象素是粉紅色,那么數(shù)據(jù)為1。否則,數(shù)據(jù)為0。
流程圖表示自步驟S2的分支處理,其中如后所述,頻繁噪聲環(huán)境處理被打開或關(guān)閉。在步驟S3中,對CDT的粉紅色通道的數(shù)據(jù)只進行一次擴充處理。前面已參考圖9A和圖9B說明了擴充處理。該擴充處理是把環(huán)繞位于邊界部分的粉紅色象素的8個周圍象素同樣涂成粉紅色,從而彌補在受照明影響下產(chǎn)生的白光斑點的處理。步驟S2之后是步驟S4~S6,這里省略對它們的說明。
隨后,在步驟S7中,進行標記處理。標記處理是獲得一個圖像中存在多個粉紅色群集的方法。例如,如果如圖8B中所示,存在對應(yīng)于玩具的可咬部分203的粉紅色群集,和對應(yīng)于側(cè)面部分201R的粉紅色群集,那么存在兩個粉紅色群集。
在步驟S8中,進行補償處理。上面已參考圖9A和圖9B說明了補償處理,這里不再贅述。補償處理將填補甚至不能由步驟S3中執(zhí)行的擴充處理彌補的那些白光斑點。
但是,如果由于從步驟S1中的圖像數(shù)據(jù)的獲取到關(guān)于粉紅色通道的數(shù)據(jù)獲取處理的色溫等的緣故,機器人設(shè)備1錯誤地把木地板和膚色識別成粉紅色,那么在稍后的擴充處理,標記處理和補償處理中必須進行大量的數(shù)據(jù)處理。為了避免這種情況,當機器人設(shè)備1進入頻繁產(chǎn)生噪聲的環(huán)境中時,進行縮減??s減是與擴充相反的處理。如果象素不是粉紅色,那么用不同于粉紅色的顏色著色環(huán)繞該象素的8個周圍象素。按照這種方式,能夠消除較小的噪聲,能夠減少標注的數(shù)目。
于是,在步驟S9中,檢查標記的數(shù)目是否是常數(shù)或者更大。如果標記的數(shù)目被確定為常數(shù)(10)或更大,那么開始頻繁噪聲環(huán)境處理(步驟S10)。另外,當獲得下一圖像數(shù)據(jù)時,在步驟S2中確定頻繁噪聲環(huán)境處理已被開啟。處理進入步驟S4,并執(zhí)行縮減處理,以消除小噪聲。通過該縮減,粉紅色區(qū)被縮減成更小。于是,在步驟S5中計算縮減釋放值,在步驟S6中執(zhí)行兩次擴充處理。
當在步驟S4中進行縮減時,在步驟S5中,計算表示從縮減前的狀態(tài),縮減粉紅色區(qū)多少的差值。計算縮減處理之后不是粉紅色的象素的累積。在噪聲由粉色點組成的情況下,通過縮減,噪聲的顏色被改變成不同的顏色。如果粉紅色噪聲消失,并且環(huán)境照明改變,以致只顯露粉紅色球,那么通過縮減,只改變粉紅色球的輪廓。從而,和在粉紅色噪聲的情況下相比,粉紅色區(qū)被縮減的數(shù)量總體較小。從而,步驟S5是執(zhí)行計算通過縮減,粉紅色象素被過度著色的百分率的處理。
如果在步驟S9中確定標記的數(shù)目仍然大于常數(shù),那么當獲得下一圖像數(shù)據(jù)時,在步驟S4中進行縮減處理。否則,如果在步驟S9中確定標記的數(shù)目小于常數(shù),并且如果在步驟S11中確定頻繁噪聲環(huán)境處理開啟,那么處理進入步驟S12。在步驟S12中,確定是否能夠清除縮減釋放條件。如果能夠,那么在步驟S13中關(guān)閉頻繁噪聲環(huán)境處理。
圖22A和圖22B~圖26A和26B表示骨頭和球的圖像處理結(jié)果。這些是通過直到圖10中步驟S13的處理過程獲得的圖像處理結(jié)果。根據(jù)這些圖像處理結(jié)果,如后所述,執(zhí)行圖11中步驟S14-S19的處理過程。圖22A表示整個骨頭的圖像。圖22B表示圖像處理結(jié)果。從圖中可看出,可咬部分和側(cè)面部分的粉紅色部分被稍微擴展。圖23A是從基本上前面觀察的骨頭的可咬部分的圖像??砂l(fā)現(xiàn)白光。圖23B表示其中由于執(zhí)行補償處理和擴充處理的結(jié)果,白光斑點被消除的圖像處理結(jié)果。圖24是直立的骨頭的圖像。圖24B表示其中由于對側(cè)面部分進行補償處理的結(jié)果,三角形的底邊基本變成直線的圖像處理結(jié)果。圖25A是球的圖像。由于來自照明的影響,產(chǎn)生白光。根據(jù)圖25B的圖像處理結(jié)果,發(fā)現(xiàn)補償處理和擴充處理消除了白光斑點,并且粉紅色區(qū)被擴充。圖26A是一起表示骨頭和球的圖像。根據(jù)圖26B的圖像處理結(jié)果,每個粉紅色部分經(jīng)歷補償處理和擴充處理。
隨后,過程進入圖11中的步驟S14。如步驟S14中所寫,計算每個標記,例如玩具(骨頭)的可咬部分(棒)和側(cè)面部分,球,粉紅色的未經(jīng)確定的物體的標記,在圖像上的面積,質(zhì)心,周長,圓度和傾角。根據(jù)上面描述的信息和歷史(過去的記憶),各個標記被歸入骨頭的可咬部分,骨頭的側(cè)面部分,粉紅色球,粉紅色的未經(jīng)確定的物體,和噪聲。圖11中的步驟S14中的標記處理具有如圖12中所示的子例程。
在圖12中的子例程中,根據(jù)所有標記的處理是否已完成,步驟S21形成分支。如果已處理標記的數(shù)目還未達到全部標記的數(shù)目,那么在步驟S22中計算圖像上,每個標記S的面積,質(zhì)心(x,y),周長L,圓度R=4πS/(L*L),和傾角θ(二次矩方法)。
此外,在步驟S22中獲得的上述信息被用于檢查圓度R的值是否落入玩具(骨頭)的棒狀部分的范圍內(nèi)。例如,如果確定圓度R為0.4,落入圖6中的棒狀部分的范圍內(nèi),那么過程進入步驟S24,并執(zhí)行骨棒(bone-stick)細節(jié)處理。步驟S24中的骨棒細節(jié)處理將在后面說明。
如果在步驟S23中確定標記的圓度值不在骨頭的棒狀部分的范圍內(nèi),并且如果在步驟S25中確定該值在中性帶1的范圍之內(nèi),那么過程進入步驟S26,執(zhí)行中性帶1細節(jié)處理。步驟S26中的中性帶1細節(jié)處理也將在后面說明。
如果在步驟S25中確定圓度值不在中性帶1的范圍內(nèi),并且如果在步驟S27中確定圓度值在骨頭的側(cè)面部分的范圍內(nèi),那么過程進入步驟S28,執(zhí)行骨頭側(cè)面部分處理。步驟S28中的骨頭側(cè)面部分處理也將在后面說明。
如果在步驟S27中確定標記的圓度值不在骨頭的側(cè)面部分的范圍內(nèi),并且如果在步驟S29中確定圓度值在中性帶2的范圍之內(nèi),那么過程進入步驟S30,執(zhí)行中性帶2細節(jié)處理。步驟S30中的中性帶2細節(jié)處理也將在后面說明。
如果在步驟S29中確定標記的圓度值不在中性帶2的范圍內(nèi),并且如果在步驟S31中確定圓度值在球的范圍之內(nèi),那么過程進入步驟S32,執(zhí)行球細節(jié)處理。步驟S32中的球細節(jié)處理也將在后面說明。
如果在步驟S29中確定標記的圓度值不在中性帶2的范圍內(nèi),并且如果在步驟S31中確定圓度值不在球的范圍之內(nèi),那么過程進入步驟S33,執(zhí)行例外細節(jié)處理。步驟S33中的例外細節(jié)處理也將在后面說明。
當完成步驟S24中的骨棒細節(jié)處理,步驟S26中的中性帶1細節(jié)處理,步驟S28中的骨頭側(cè)面部分細節(jié)處理,步驟S30中的中性帶2細節(jié)處理,步驟S32中的球細節(jié)處理,和步驟S33中的例外細節(jié)處理時,執(zhí)行圖13中的步驟S34、S35、S36和S37,過程隨后返回步驟S21。如果在步驟S21確定已完成所有標記的處理,那么關(guān)于每個標記的處理結(jié)束。
圖14表示步驟S24中的骨棒細節(jié)處理的子例程。首先,在步驟S2401中,確定標記面積等于或大于區(qū)別(distinctive)面積(預(yù)定閾值)的條件,或者在前一幀中已識別骨棒的條件是否被滿足。雖然已計算了標記面積S,意圖根據(jù)標記面積S是否等于或大于預(yù)定閾值(例如50象素,100象素等),保證更高的可靠性。如果物體遠離機器人設(shè)備,那么對于機器人設(shè)備來說,物體看起來較小。此時,球和骨頭被錯誤識別。實際上,已事先得到當物體距離40或50厘米時,象素如何呈現(xiàn)。其值被用作閾值,以便確定標記面積S是否等于或大于閾值。從而,準備一種不會導(dǎo)致錯誤識別的情形。隨后,標記被識別成骨頭的棒狀部分(步驟S2402)。另一方面,能夠使用表明物體過去被識別成骨頭的過去數(shù)據(jù)(短期記憶)。從而,可假設(shè)之后某人可能揀起該骨頭,并把骨頭從機器人設(shè)備那里移開。這種情況下,標記面積較小。如果記憶了過去該物體曾經(jīng)被識別成骨棒,那么即使該物體目前較小,它也應(yīng)被識別成棒狀物。
在步驟S2403中,確定標記面積是否等于或大于除被識別成棒狀物的標記面積之外的任何其它標記面積。其目的是如果多個標記均被識別成骨頭的棒狀部分,那么比較當前進行識別處理的標記的面積和已處理標記的面積,并保留較大的一個。如果當前進行識別處理的標記較大,那么在步驟S2404中,用當前標記的數(shù)值更新在骨頭的棒狀部分圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S2401中確定標記面積S不等于或大于區(qū)別面積,或者在前一幀中未識別出任何骨棒,那么過程進入步驟S2405。在步驟S2405中,確定標記面積是否等于或大于最小的可檢測面積,或者在前一幀中是否看到粉紅色(未經(jīng)確認的粉紅色物體)。例如在步驟S2401中識別出50個象素,并且最小可檢測面積是10個象素的情況下,如果當前觀察的標記的面積是20個象素,那么確定結(jié)果為是。隨后,過程進入步驟S2406,該面積不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。其面積小于10個象素的標記被處理成噪聲。至多在離照相機80厘米的距離內(nèi)能夠識別粉紅色。這是以當粉紅色區(qū)逼近照相機,例如離照相機40-50厘米時,粉紅色區(qū)能夠被明確地識別成骨頭或球的前提條件為基礎(chǔ)。此外,在步驟S2407中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。其目的是如果多個標記均被識別成未經(jīng)確認的粉紅色物體,那么比較當前進行識別處理的標記的面積和已處理標記的面積,并保留較大的一個。如果當前進行識別處理的標記較大,那么在步驟S2407中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
下面,參考圖15和圖16說明步驟S26中的中性帶1細節(jié)處理的子例程。首先,確定標記面積是否等于或大于區(qū)別面積(預(yù)定的閾值),或者在前一幀中是否識別出骨棒或側(cè)面部分。確定標記面積是否等于或大于區(qū)別面積,以便準備其中不發(fā)生任何錯誤識別的情形。另外,由于和步驟S2401類似的原因,確定在前一幀中是否識別出骨棒或側(cè)面部分。即,如果記憶了過去該區(qū)域曾經(jīng)被識別成骨棒或者側(cè)面部分,那么即使該區(qū)域目前較小,它也應(yīng)被識別成骨棒或側(cè)面部分。
在步驟S2602中,確定在前一幀中是否識別出骨棒。如果是,那么過程進入步驟S2603,把該標記識別成骨棒。在步驟S2604中,確定標記面積是否等于或大于除被識別成骨棒的標記面積之外的任何其它標記面積。其目的是如果多個標記均被識別成骨頭的棒狀部分,那么比較當前進行識別處理的標記的面積和已處理標記的面積,并保留較大的一個。如果當前進行識別處理的標記較大,那么在步驟S2405中,用當前標記的數(shù)值更新在骨頭的棒狀部分的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S2601中確定標記面積S不等于或大于區(qū)別面積,或者在前一幀中既沒有識別出骨棒,也沒有識別出側(cè)面部分,那么過程進入圖16中的步驟S2606。隨后,確定標記面積是否等于或大于最小可檢測面積,或者在前一幀中是否觀察到粉紅色。如果在步驟S2606中確定標記面積等于或大于最小可檢測面積,或者在前一幀中觀察到粉紅色,那么過程進入步驟S2607,該標記不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。在步驟S2608中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。其目的是如果多個標記均被識別成未經(jīng)確認的粉紅色物體,那么比較當前進行識別處理的標記的面積和已處理標記的面積,并保留較大的一個。如果當前進行識別處理的標記較大,那么在步驟S2609中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S2602中確定在前一幀中未識別出骨棒,那么過程進入步驟S2610,確定是否識別出骨頭的側(cè)面部分。如果在前一幀中識別出骨頭的側(cè)面部分,那么過程進入步驟S2611,標記被識別成骨頭的一個側(cè)面部分。在步驟S2612中,確定標記面積是否等于或大于除被識別成側(cè)面部分的標記面積之外的任何其它標記面積。其目的是如果多個標記均被識別成側(cè)面部分,那么比較當前進行識別處理的標記的面積和已處理標記的面積,并保留較大的一個。如果當前進行識別處理的標記較大,那么在步驟S2613中,用當前標記的數(shù)值更新在骨頭的側(cè)面部分的圖像上的面積,質(zhì)心,圓度和傾角。如果步驟S2605、S2609和S2613中的處理被完成,或者如果在步驟S2601、S2604、S2606、S2608、S2610和S2612中的每個分支處理中確定結(jié)果為否,那么結(jié)束中性帶1細節(jié)處理。
下面,參考圖17說明步驟S28中的骨頭側(cè)面部分細節(jié)處理的子例程。首先,在步驟S2801中,確定標記面積是否等于或大于區(qū)別面積(預(yù)定的閾值),或者在前一幀中是否識別出側(cè)面部分。由于和步驟S2401類似的原因,確定標記面積是否等于或大于區(qū)別面積,以便準備其中不發(fā)生任何錯誤識別的情形。另外,由于和步驟S2401類似的原因,確定在前一幀中是否識別出骨頭的側(cè)面部分。即,如果記憶了過去該區(qū)域曾經(jīng)被識別成骨頭的側(cè)面部分,那么即使該區(qū)域目前較小,它也應(yīng)被識別成側(cè)面部分。
在步驟S2802中,該標記被識別成骨頭的側(cè)面部分。在步驟S2803中,確定標記面積是否等于或大于除被識別成側(cè)面部分的標記面積之外的任何其它標記面積。這是當多個標記均被識別成側(cè)面部分時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S2804中,用當前標記的數(shù)值更新在骨頭的側(cè)面部分的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S2601中確定標記面積S不等于或大于區(qū)別面積,或者在前一幀中沒有識別出骨頭的側(cè)面部分,那么過程進入步驟S2805。隨后,確定標記面積是否等于或大于最小可檢測面積,或者在前一幀中是否觀察到粉紅色。如果在步驟S2805中確定標記面積等于或大于最小可檢測面積,或者在前一幀中觀察到粉紅色,那么過程進入步驟S2806,該標記不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。在步驟S2807中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。這是當多個標記均被識別成未經(jīng)確認的粉紅色物體時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S2808中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
下面,參考圖18和圖19說明步驟S30中的中性帶2細節(jié)處理的子例程。首先,在步驟S3001中,確定標記面積是否等于或大于區(qū)別面積(預(yù)定的閾值),或者在前一幀中是否識別出骨頭的側(cè)面部分。
在步驟S3002中,確定在前一幀中是否識別出骨頭的側(cè)面部分。如果是,那么過程進入步驟S3003,標記被識別成骨頭的一個側(cè)面部分。在步驟S3004中,確定標記面積是否等于或大于除被識別成骨頭的側(cè)面部分的標記面積之外的任何其它標記面積。這是當多個標記均被識別成骨頭的側(cè)面部分時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3005中,用當前標記的數(shù)值更新在骨頭的側(cè)面部分的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S3001中確定標記面積S不等于或大于區(qū)別面積,或者在前一幀中既沒有識別出骨頭的側(cè)面部分,又沒有識別出球,那么過程進入圖19中的步驟S3006。隨后,確定標記面積是否等于或大于最小可檢測面積,或者在前一幀中是否觀察到粉紅色。如果在步驟S3006中確定標記面積等于或大于最小可檢測面積,或者在前一幀中觀察到粉紅色,那么過程進入步驟S3007,該標記不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。在步驟S3008中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。這是當多個標記均被識別成未經(jīng)確認的粉紅色物體時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3009中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S3002中確定在前一幀中未識別出任何骨頭的側(cè)面部分,那么過程進入步驟S3010,確定在前一幀中是否識別出球。如果在前一幀中識別出球,那么過程進入步驟S3011,標記被識別成球。在步驟S3012中,確定標記面積是否等于或大于除被識別成球的標記面積之外的任何其它標記面積。這是當多個標記均被識別成球時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3013中,用當前標記的數(shù)值更新在球的圖像上的面積,質(zhì)心,圓度和傾角。如果步驟S3005、S3009和S3013中的處理被完成,或者如果在步驟S3001、S3004、S3006、S3008、S3010和S3012中的每個分支處理中確定結(jié)果為否,那么結(jié)束中性帶2細節(jié)處理。
下面,參考圖20說明步驟S32中的球細節(jié)處理的子例程。首先,在步驟S3201中,確定標記面積是否等于或大于區(qū)別面積(預(yù)定的閾值),或者在前一幀中是否識別出球。由于和步驟S2401類似的原因,確定標記面積是否等于或大于區(qū)別面積,以便準備其中不發(fā)生任何錯誤識別的情形。另外,由于和步驟S2401類似的原因,確定在前一幀中是否識別出球。即,如果記憶了過去該區(qū)域曾經(jīng)被識別成球,那么即使該區(qū)域目前較小,它也應(yīng)被識別成球。
在步驟S3202中,該標記被識別成球。在步驟S3203中,確定標記面積是否等于或大于除被識別成球的標記面積之外的任何其它標記面積。這是當多個標記均被識別成球時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3204中,用當前標記的數(shù)值更新在球的圖像上的面積,質(zhì)心,圓度和傾角。
如果在步驟S3201中確定標記面積S不等于或大于區(qū)別面積,或者在前一幀中沒有識別出球,那么過程進入步驟S3205。隨后,確定標記面積是否等于或大于最小可檢測面積,或者在前一幀中是否觀察到粉紅色。如果在步驟S3205中確定標記面積等于或大于最小可檢測面積,或者在前一幀中觀察到粉紅色,那么過程進入步驟S3206,該標記不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。在步驟S3207中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。這是當多個標記均被識別成未經(jīng)確認的粉紅色物體時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3208中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
下面,參考圖21說明步驟S33中的例外細節(jié)處理的子例程。在步驟S3301中,確定標記面積是否等于或大于最小可檢測面積,或者在前一幀中是否觀察到粉紅色。如果在步驟S3301中確定標記面積等于或大于最小可檢測面積,或者在前一幀中觀察到粉紅色,那么過程進入步驟S3302,該標記不被識別成球或骨頭,而是被識別成未經(jīng)確認的粉紅色物體。在步驟S3303中,確定標記面積是否等于或大于除被識別成未經(jīng)確認的粉紅色物體的標記面積之外的任何其它標記面積。這是當多個標記均被識別成未經(jīng)確認的粉紅色物體時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S3304中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。
如上所述,骨棒細節(jié)處理(圖12中的步驟S24),中性帶1細節(jié)處理(步驟S26),骨頭側(cè)面部分細節(jié)處理(步驟S28),中性帶2細節(jié)處理(步驟S30),球細節(jié)處理(步驟S32)和例外細節(jié)處理(步驟S33)均被完成,從而標記面積被歸入這些類別中的任何一種中。隨后,過程進入圖12中的步驟S34。在步驟S34中,確定標記面積是否等于或大于除被識別成等于或大于最小可檢測面積和為粉紅色的標記面積之外的任何其它標記面積。這是當多個標記均被識別成未經(jīng)確認的粉紅色物體時執(zhí)行的處理。如果當前進行識別處理的標記較大,那么在步驟S35中,該標記被識別成未經(jīng)確認的粉紅色物體,并且在步驟S36中,用當前標記的數(shù)值更新在未經(jīng)確認的粉紅色物體的圖像上的面積,質(zhì)心,圓度和傾角。步驟S34-S37的處理適用于發(fā)出簡單跟蹤粉紅色物品的指令的情況。這僅僅取決于粉紅的顏色,而和與形狀無關(guān)。此外,在步驟S37中,標記的索引被遞增,過程返回步驟S21中的處理。
在返回圖11之后,執(zhí)行始于步驟S15的處理。首先,在步驟S15中,執(zhí)行基于時間滯后的開/關(guān)處理。當在圖像幀中觀察到骨頭時,在該時刻對骨頭的該觀察沒有通知應(yīng)用軟件側(cè)。引起時間滯后。例如,假如從未觀察到任何骨頭的情形逐漸觀察到骨頭。在連續(xù)的三幀或更多幀中持續(xù)觀察到骨頭之前,沒有通知觀察到骨頭。反過來,假設(shè)骨頭已從被觀察到的情況消失。在骨頭消失之后繼續(xù)三幀或更多幀之后,通知骨頭的消失。例如,幀速率為30fps,這種情況下幀速率較快,或者幀速率為15fps,這種情況下CPU正在執(zhí)行另一處理。三幀被用于滯后現(xiàn)象。
隨后在步驟S16中,根據(jù)其面積,棒狀物和側(cè)面部分的計算結(jié)果被合成到一根骨頭。這是使用棒狀物和側(cè)面部分中具有較大面積的一個來識別骨頭的處理。在步驟S17中,骨頭,球和未經(jīng)確認的粉紅色物體都被轉(zhuǎn)換到照相機坐標系統(tǒng)和機器人坐標系統(tǒng)上。進行轉(zhuǎn)換以致能夠明顯地了解高度方向,有利于確定骨頭,球和物體是如何被放置在地板上的。
隨后在步驟S18中,根據(jù)高度信息,確定骨頭是否被直立放置。由于步驟S17中的轉(zhuǎn)換處理是該確定的基礎(chǔ),因此能夠確定骨頭是被直立放置還是被水平放置。“直立”意味著圖3B中所示的狀態(tài),“水平”意味著圖3A、圖3C或圖3D中所示的狀態(tài)。在分別表示水平放置的圖3A、圖3C和圖3D中,相對于機器人設(shè)備傾斜地,橫向地和縱向地放置骨頭。于是,根據(jù)骨頭處于圖3A和圖3D中的哪種狀態(tài),機器人設(shè)備改變其行為,例如持續(xù)行走,追蹤,咆哮等。此外,在步驟S19中,骨頭,球和未經(jīng)確認的物體的識別結(jié)果被提供給應(yīng)用軟件。
應(yīng)用軟件包括靠近,跟蹤,用頭去頂,踢倒和咬在嘴里的處理。本實施例中,這一系列的處理將一起被描述成咬住骨頭的控制算法。該咬骨頭控制算法包括咬住檢測算法。
下面參考圖27和圖28,說明咬骨頭控制算法,機器人設(shè)備根據(jù)該算法發(fā)現(xiàn)骨頭,走近并跟蹤骨頭,用頭去頂骨頭,踢倒骨頭,或者咬可咬部分203。接收根據(jù)圖像識別處理過程識別骨頭,球和未經(jīng)確認的粉紅色物體的結(jié)果,執(zhí)行自步驟S41開始的處理。首先,在步驟S41中確定是否觀察到骨頭。如果未觀察到骨頭,那么過程進入步驟S50,確定是否觀察到未經(jīng)確認的粉紅色物體。否則,如果觀察到骨頭,那么在步驟S51中進行跟蹤。這是追逐將在圖像中心捕捉到的觀察到的東西的控制。隨后,機器人設(shè)備靠近未經(jīng)確認的粉紅色物體(步驟S52),并返回步驟S41。
如果在步驟S41中觀察到骨頭,那么在步驟S42中,機器人設(shè)備跟蹤骨頭,并靠近骨頭,同時把骨頭保持在圖像的中心。在步驟S43中,確定骨頭的垂直方向是否接近于機器人設(shè)備的地面。這是檢測骨頭是否被放置在高度基本上與機器人設(shè)備的行走平面相同的平面上的處理。如果骨頭被放置在高度基本相同的平面上,那么過程進入步驟S44,確定到骨頭的距離是否短到足以咬住骨頭。否則,如果在步驟S43中,確定骨頭未被放置在高度基本上與機器人設(shè)備的行走平面相同的平面上。那么機器人設(shè)備在步驟S54中等待,或者在步驟S55中請求“給我一根骨頭”。根據(jù)概率選擇步驟S54和S55中的處理。根據(jù)過去進行的處理,計算概率,并根據(jù)概率進行選擇。
如果在步驟S44中確定到骨頭的距離短到足以咬住骨頭,那么過程進入步驟S45,確定骨頭的水平方向(長軸方向)是否(相對于機器人設(shè)備的正面方向)處于橫向方向。如果確定骨頭的水平方向基本上處于橫向,那么過程進入圖28中的步驟S46。如果在步驟S45中,確定骨頭的水平方向并不基本上處于橫向,那么機器人設(shè)備在步驟S57中旋轉(zhuǎn)身體部分,從而圍繞身體部分的側(cè)轉(zhuǎn)軸轉(zhuǎn)向,或者在步驟S58中,側(cè)移并轉(zhuǎn)變機器人設(shè)備它自己的方向,該過程隨后返回步驟S41。根據(jù)概率選擇步驟S57和S58中的處理。
隨后,在圖28中的步驟S46中,確定骨頭是否被垂直放置。如果確定骨頭被垂直放置,如圖3B中的狀態(tài),那么機器人設(shè)備在步驟S59中咬住并保持直立的骨頭,或者在步驟S60中用頭或腿放倒骨頭。在機器人設(shè)備在步驟S59中咬住并保持直立的骨頭之后,過程進入后面說明的步驟S49。另一方面,如果在步驟S60中用頭或腿放倒骨頭,那么過程返回步驟S41。同樣根據(jù)概率選擇步驟S59和S60中的處理。
如果在步驟S46中確定骨頭未被直立放置,那么過程進入步驟S47,確定骨頭的可咬部分的傾向在屏幕上是否基本水平。即,確定骨頭是否處于圖3C中所示的狀態(tài)。如果確定可咬部分在屏幕上基本水平,那么過程進入步驟S48,機器人設(shè)備咬住橫向放置的骨頭。否則,如果在步驟S47中確定在屏幕上,可咬部分不是水平的,那么在步驟S61中用頭或腿調(diào)整傾向。另一方面,機器人設(shè)備在步驟S62中圍繞骨頭轉(zhuǎn)變方向,過程隨后返回步驟S41。根據(jù)概率選擇步驟S61和S62中的處理。
在于步驟S48中咬住水平放置的骨頭之后,或者在于步驟S59中咬住直立的骨頭之后,在步驟S49中,確定是否識別出被咬住的骨頭。這種咬住檢測處理將在后面詳細說明。
下面,參考圖29A-圖29C,圖30A-圖30E和圖31A-圖31D,說明由上述控制算法執(zhí)行的機器人設(shè)備的交互作用的具體例子。
在第一個例子中,機器人設(shè)備走近水平(和橫向)放置的骨頭(圖29A),蹲下并咬住骨頭(圖29B)。從而機器人設(shè)備成功地咬住水平放置的骨頭(圖29C)。為了沿著圖27和圖28中所示的流程圖說明該例子,在步驟S45中,骨頭的水平方向被確定為基本是橫向的。隨后在步驟S46中,該骨頭被確定為不是直立的。在步驟S47中,確定骨頭的可咬部分不是傾斜的,而是基本水平的(即相對于機器人設(shè)備是橫向的)。在步驟S48中,機器人設(shè)備蹲下并咬住水平放置的(即相對于機器人設(shè)備是橫向的)骨頭。此外,在步驟S49中,通過咬住檢測處理,該骨送被識別成已被咬住,過程結(jié)束。
如果骨頭被直立放置在地板上,那么機器人設(shè)備扭動它的身體(圖30A),靠近直立的骨頭(圖30B),并從側(cè)面咬住直立的骨頭(圖30C)。在咬住骨頭之后,機器人設(shè)備恢復(fù)它的身體(圖30D),從而成功地咬住直立的骨頭(圖30E)。這是另一具體例子。為了說明該例子,沿著圖27和圖28中所示的流程圖,在步驟S45中,骨頭的水平方向被確定為基本是橫向的。在步驟S46中,確定該骨頭被直立放置。隨后在步驟S59中,咬住直立的骨頭。在步驟S49中,通過檢測處理,識別該骨頭被已被咬住,過程結(jié)束。
在交互作用的另一具體例子中,如圖31A-31D中所示,在咬住骨頭之后,機器人沒備可采取下述動作。即,機器人設(shè)備可用腿調(diào)整骨頭(圖31A),用腿去摩擦骨頭的側(cè)面部分(圖31B),或者轉(zhuǎn)動骨頭(在計時匹配情況下的圖31C或圖31D)。
另一方面,在咬住骨頭之后,機器人設(shè)備可做出走近某人并傳遞骨頭的動作。采用語音識別來識別諸如“拿來”,“揀起”,“給我”之類單詞和短語。通過走向聲音源,借助圖像處理檢測面部,挨近該面部,并檢測聲音“好”,敲擊(接觸),可取的距離等,執(zhí)行傳遞骨頭的一系列處理。
另一方面,可使骨頭直立在行走平面上,或者通過身體反應(yīng)或用腿扔掉骨頭。還可用咬住的骨頭擊打球,咬住骨頭之后滾動骨頭,或者把骨頭從嘴里吐出并用一只手(或兩只手)抓住骨頭。
下面,說明機器人設(shè)備1的頭部單元4的嘴(顎)的結(jié)構(gòu)。當機器人設(shè)備1做出叼骨頭200的可咬部分203的動作時,嘴的結(jié)構(gòu)具有某一技術(shù)特征。如圖32-圖34中所示,機器人設(shè)備具有位于頭部單元4的前下端的可垂直轉(zhuǎn)動的下顎部151。下顎部151具有適合于托住骨頭的可咬部分203的凹進部分152。凹進部分152配有橡膠材料,于是具有高的摩擦系數(shù),以避免托住的骨頭容易落下。另一上顎部154配有同樣由橡膠材料制成的按壓部分,從而當放置骨頭的下顎部151閉合時,能夠安全地擠壓骨頭的可咬部分203。如圖35中所示,骨頭的可咬部分203被放置在凹進部分152中,隨后閉合下顎部151。骨頭能夠牢固地由按壓部分153和凹進部分152夾住。如圖36中所示,即使可咬部分203曾經(jīng)被放置到下顎部151的過于上面的部分,如果骨頭被移回并放置在凹進部分152中,那么骨頭也不易于落到地板上。
下面將說明在圖28中的步驟S49中的咬住檢測處理中使用的咬住檢測算法。圖2中所示的機器人設(shè)備的CPU 10根據(jù)PWM,嘴關(guān)閉角速度和角加速度,計算作用于嘴部關(guān)節(jié)的外部轉(zhuǎn)矩的大小和方向。當沿著咬住骨頭的方向施加大于某一大小的轉(zhuǎn)矩時,CPU確定某物被咬住。如果確定某物被咬住,那么CPU 10釋放增益(gain),以保護人的手指等免受傷害。根據(jù)此時的關(guān)節(jié)角度,確定是咬住骨頭還是任何其它物體。如果咬住任何其它物體,那么關(guān)閉增益,以防止發(fā)生傷害。如果確定咬住骨頭,那么把增益改變成適合于使骨頭保持被咬住的值,以便保護電動機。
于是,機器人設(shè)備1具有咬住檢測/控制單元,該單元具有如圖37中所示的結(jié)構(gòu)。咬住檢測/控制單元具有命令裝置160,控制裝置161和保持檢測裝置162。該結(jié)構(gòu)可被表述成當CPU 10執(zhí)行咬住檢測算法時執(zhí)行的功能。從命令裝置160發(fā)出的關(guān)節(jié)(joint)命令值被發(fā)送給控制裝置161和保持檢測裝置162。根據(jù)來自保持檢測裝置162的檢測結(jié)果,命令裝置160改變關(guān)節(jié)命令值。
控制裝置161根據(jù)關(guān)節(jié)命令值,向驅(qū)動裝置163和保持檢測裝置162提供控制信號。驅(qū)動裝置163根據(jù)控制信號產(chǎn)生驅(qū)動力,驅(qū)動操作單元164。
當檢測到某物被嘴咬住時,保持檢測裝置162把檢測結(jié)果發(fā)送給命令裝置160。命令裝置160根據(jù)檢測結(jié)果產(chǎn)生關(guān)節(jié)命令值,并把命令值發(fā)送給控制裝置161。
控制裝置161根據(jù)PWM占空比,嘴關(guān)節(jié)角速度和角加速度,計算對嘴關(guān)節(jié)施加的外部轉(zhuǎn)矩的大小和方向。此外,當沿著咬住骨頭的方向施加一定大小或者更大的轉(zhuǎn)矩時,控制裝置161確定某物被咬住。如果控制裝置161確定某物被咬住,那么控制裝置161立即向驅(qū)動裝置發(fā)送釋放增益的控制信號。這是為了保護人的手指等免受傷害。根據(jù)此時的關(guān)節(jié)角度,控制裝置161確定是咬住骨頭還是任何其它物體。如果咬住任何其它物體,那么關(guān)閉增益,以便防止發(fā)生傷害。如果確定咬住骨頭,那么把增益改變成適合于使骨頭保持被咬住的值,以便保護電動機。
圖38表示咬住檢測/控制單元中的處理的過程。咬住機構(gòu)是圖32-圖36中所示的嘴部結(jié)構(gòu)。即,通過沿著朝著上顎單元154閉合的方面轉(zhuǎn)動下顎單元151,夾住物體。關(guān)節(jié)確定上顎單元154和下顎單元151之間的角度。電動機產(chǎn)生轉(zhuǎn)動下顎單元151的驅(qū)動力。
首先,控制裝置161接收關(guān)節(jié)命令值和PWM信號(占空比)(步驟S70)。在步驟S71中,根據(jù)關(guān)節(jié)命令值,計算連接質(zhì)量(link mass)和關(guān)節(jié)摩擦的影響。隨后,在步驟S72中,根據(jù)電動機型號,計算邏輯PWM占空比。根據(jù)增益和在步驟S71中計算的連接質(zhì)量和關(guān)節(jié)摩擦的影響,進行該計算。
在步驟S73中,控制裝置161計算邏輯PWM占空比和控制信號之間的差值。利用在步驟S72中獲得的邏輯PWM占空比和事先接收的控制信號的PWM信號(占空比),進行該計算。在步驟S74中,根據(jù)在步驟S73中獲得的PWM信號之間的差值的大小,代碼和持續(xù)時間,評估作用于關(guān)節(jié)的負載。
隨后,在步驟S75中,控制裝置161根據(jù)步驟S74評估的負載,確定負載是否沿著咬住物體的方向被施加。如果負載沿著咬住物體的方向被施加,那么過程進入步驟S76,確定驅(qū)動裝置163的電動機增益是否大于預(yù)定值。該預(yù)定值是提供的產(chǎn)生不會導(dǎo)致疼痛的作用力,防止對人造成傷害的閾值。如果確定電動機增益較大,那么在步驟S77中,向驅(qū)動裝置163提供減小電動機增益的控制信號,以便不會傷害到人。否則,如果確定電動機增益不大于預(yù)定值,那么過程進入步驟S78,根據(jù)上顎部154和下顎部151之間的關(guān)節(jié)角度,確定是否咬住目標物體或骨頭。
如果在步驟S79中確定咬住目標物體,那么過程進入步驟S80,電動機增益被設(shè)置成即使在持續(xù)咬住并保持物體之后,也不會損害電動機的值。否則,如果確定未咬住目標物體,那么過程進入步驟S81,電動機增益被設(shè)置成0,從而人不會受到傷害。在步驟S82中通報結(jié)果,之后結(jié)束處理。
如上所述,根據(jù)本實施例的機器人設(shè)備1執(zhí)行圖像識別處理過程,咬骨檢測過程,和咬住檢測程序,從而識別特殊玩具,走近放置玩具的地方,咬住玩具,把玩具叼在嘴里,或者在咬住骨頭的同時滾動骨頭。從而能夠做出更豐富更生動的動作。
下面,說明包括機器人設(shè)備1執(zhí)行的上述程序的軟件結(jié)構(gòu)。機器人設(shè)備1中的軟件結(jié)構(gòu)如圖39中所示。圖39中,設(shè)備驅(qū)動器層30被置于程序的最下層,由包括多個設(shè)備驅(qū)動器的設(shè)備驅(qū)動器組31構(gòu)成。這種情況下,設(shè)備驅(qū)動器是均被允許直接訪問普通計算機中使用的硬件的對象,例如,CCD照相機20(圖1和圖2),定時器等。設(shè)備驅(qū)動器響應(yīng)來自對應(yīng)硬件的中斷,執(zhí)行處理。
機器人服務(wù)器對象32置于設(shè)備驅(qū)動器層30之上,由虛擬機器人33,電源管理器34,設(shè)備驅(qū)動器管理器35和設(shè)計的機器人36組成,虛擬機器人33由提供訪問諸如前述各種傳感器,致動器251-25n之類硬件的接口的多組軟件程序組成,電源管理器34由管理電源等的開關(guān)的多組軟件程序組成,設(shè)備驅(qū)動器管理器35由管理其它各種設(shè)備驅(qū)動器的多組軟件程序組成,設(shè)計的機器人36由管理機器人設(shè)備1的機構(gòu)的多組軟件程序組成。
管理器對象37由對象管理器38和服務(wù)管理器39組成。對象管理器38由管理包括在機器人服務(wù)器對象32,中間件層40和應(yīng)用層41中的軟件程序的啟動和終止的多組軟件程序組成。服務(wù)管理器39由根據(jù)在保存于存儲卡29(圖2)中的連接文件中描述的對象之間的連接信息,管理各個對象的連接的多組軟件程序組成。
中間件層40置于機器人服務(wù)器對象層32之上,由提供諸如機器人設(shè)備1的圖像處理或音頻處理之類基本功能的多組軟件程序組成。
另外,應(yīng)用層41置于中間件層40之上,由根據(jù)構(gòu)成中間件層40的多組軟件程序處理的處理結(jié)果,決定機器人設(shè)備1的動作的多組軟件程序構(gòu)成。
中間件層40和應(yīng)用層41的具體軟件結(jié)構(gòu)分別示于圖40和圖41中。
如圖40中所示,中間件層40由識別系統(tǒng)60和輸出系統(tǒng)69構(gòu)成,識別系統(tǒng)60包括用于噪聲檢測,溫度檢測,亮度檢測,音階識別,距離檢測,姿態(tài)檢測,咬住檢測,運動檢測和顏色識別的信號處理模塊50-58,和輸入語義轉(zhuǎn)換器模塊59等,輸出系統(tǒng)69包括輸出語義轉(zhuǎn)換器模塊68,用于姿態(tài)控制,跟蹤,動作再現(xiàn),行走,絆倒恢復(fù),照明開和音頻再現(xiàn)等的信號處理模塊61-67。
識別系統(tǒng)60中的信號處理模塊50-58接收機器人服務(wù)器對象32的虛擬機器人33從DRAM 11(圖2)讀取的傳感器數(shù)據(jù),圖像數(shù)據(jù)和音頻數(shù)據(jù)中的對應(yīng)數(shù)據(jù)。這些模塊隨后根據(jù)接收的數(shù)據(jù),執(zhí)行預(yù)定處理,并把處理結(jié)果提供給輸入語義轉(zhuǎn)換器模塊59。這種情況下,虛擬機器人33構(gòu)成根據(jù)預(yù)定的通信規(guī)則,傳送/接收或轉(zhuǎn)換信號的部分。
特別地,如前參考圖37所述,在確定某物被咬住之后,咬住檢測模塊56立即釋放增益。這是為保護人的手指等不受傷害。根據(jù)此時的關(guān)節(jié)角度,確定是咬住骨頭還是咬住任何其它物體。如果咬住任何其它物體,那么增益被關(guān)閉,以防止發(fā)生傷害。如果確定咬住骨頭,那么增益被改變成適合于持續(xù)把骨頭叼在嘴里的值,以便保護電動機。
輸入語義轉(zhuǎn)換器模塊59根據(jù)從信號處理模塊50-58提供的處理結(jié)果,識別機器人設(shè)備1自身的條件和環(huán)境條件(內(nèi)部和外部條件),例如“吵鬧”,“熱”,“明亮”,“檢測到球”,“檢測到絆倒”,“受到撫摸”,“擊打”,“聽到音階“多”、“米”和“索””,“檢測到移動物體”,“檢測到障礙物”,“咬住物體”等,另外還識別來自用戶的命令和動作。輸入語義轉(zhuǎn)換器模塊59隨后把識別結(jié)果輸出給應(yīng)用層41(圖40)。
如圖41中所示,應(yīng)用層41由五個模塊,即動作模型庫70,動作轉(zhuǎn)換模塊71,學(xué)習(xí)模塊72,情感模型模塊73和本能模型模塊74。
如圖42中所示,動作模型庫70具備分別與事先選擇的幾種條件項,例如“剩余電量低”,“絆倒恢復(fù)”,“避開障礙物”,“表達情感”,“檢測到球”,“咬住水平放置的骨頭”,“咬住直立的骨頭”,“用頭放倒直立的骨頭”等情況對應(yīng)的獨立動作模型701-70n。
此外,當從輸入語義轉(zhuǎn)換器模塊59提供識別結(jié)果時,或者當自從最后一次提供識別結(jié)果以來,已過去恒定的一段時間時,如果需要,動作模型701-70n分別參考情感模型模塊73保持的對應(yīng)情感的參數(shù)值,和本能模型模塊74中保持的對應(yīng)欲望的參數(shù)值,確定后續(xù)動作,如后所述。確定結(jié)果被輸出給動作轉(zhuǎn)換模塊71。
就該實施例來說,每個動作模型701-70n使用稱為確定概率自動機的算法作為確定下一動作的方法,其中根據(jù)關(guān)于彼此之間,連接節(jié)點NODE0-NODEn的弧線ARC1-ARCn設(shè)置的遷移概率P1-Pn,以概率方式確定如圖43中所示的節(jié)點NODE0-NODEn(狀態(tài))之一如何遷移到這些節(jié)點中的任何一個其它節(jié)點。
更具體地說,動作模型701-70n被分別分配給形成它們自己的動作模型701-70n的節(jié)點NODE0-NODEn。為NODE0-NODEn中的每個節(jié)點提供如圖44中所示的狀態(tài)遷移表80。
在狀態(tài)遷移表80中,按照優(yōu)先權(quán)順序,在“輸入事件名”一欄中引用輸入事件(識別結(jié)果),所述輸入事件是在NODE0-NODEn的遷移條件,并在“數(shù)據(jù)名稱”欄和“數(shù)據(jù)范圍”欄中的相應(yīng)各行中寫入涉及遷移條件的其它條件。
于是,如果識別結(jié)果“球的發(fā)現(xiàn)(BALL)”被給予其遷移表80示于圖44中的NODE100,那么遷移到任何其它節(jié)點需要滿足和識別結(jié)果一起通報的“球的大小(SIZE)”在“0-1000”的范圍內(nèi)的條件。另一方面,如果提供識別結(jié)果“障礙物的發(fā)現(xiàn)(OBSTACLE)”,那么遷移到任何其它節(jié)點需要滿足到該障礙物的“距離(DISTANCE)”在“0-100”的范圍內(nèi)的條件。當然,如果提供識別結(jié)果“骨頭的發(fā)現(xiàn)(OBSTACLE)”,“粉紅色的發(fā)現(xiàn)”和“咬住物體的發(fā)現(xiàn)”,那么遷移到任何其它節(jié)點需要滿足和識別結(jié)果一起提供的“距離”,“面積”和“增益”分別在預(yù)定范圍內(nèi)的條件。
在節(jié)點NODE100,即使當未輸入任何識別結(jié)果時,如果在動作模型701-70n定期查閱的由情感模型模塊73和本能模型模塊74保持的情感和欲望參數(shù)之中,情感模型模塊73保持的參數(shù)值“喜悅(JOY)”,“驚訝(SURPRISE)”和“悲傷(SADNESS)”中的任何一個在范圍“50-100”之內(nèi),那么也能夠允許遷移到任何其它節(jié)點。
在狀態(tài)遷移表80中,可從NODE0-NODEn中的任何節(jié)點遷移到其的節(jié)點的名稱被寫入“到其它節(jié)點的遷移概率”欄中的“遷移目的地節(jié)點”一行中。遷移到當寫入“輸入事件名”,“數(shù)據(jù)值”和“數(shù)據(jù)范圍”中所有條件都被滿足時,均允許遷移的NODE0-NODEn中的其它節(jié)點的概率分別被寫入“到其它節(jié)點的遷移概率”欄中的對應(yīng)位置。當遷移到NODE0-NODEn中的其它節(jié)點時要輸出的動作分別被寫入“到其它節(jié)點的遷移概率”欄中的“輸出動作”行中?!暗狡渌?jié)點的遷移概率”欄中每一行中的到其它節(jié)點的遷移概率的總和為100(%)。
于是,如果作為識別結(jié)果,提供的“球的發(fā)現(xiàn)(BALL)”和球的“大小(SIZE)”在“0-1000”的范圍內(nèi),那么在圖44中所示的狀態(tài)遷移表80中表示的節(jié)點NODE100,遷移到“NODE120(節(jié)點120)”的概率為“30(%)”。此時,輸出動作“ACTION1”。
通過連接均按照狀態(tài)遷移表80書寫的節(jié)點NODE0-NODEn中的數(shù)個節(jié)點,構(gòu)成每個動作模型701-70n。當從輸入語義轉(zhuǎn)換器模塊59給出識別結(jié)果時,每個動作模型701-70n利用節(jié)點NODE0-NODEn中的一個對應(yīng)節(jié)點的狀態(tài)遷移表,以概率方式確定下一動作,并把確定結(jié)果輸出給動作轉(zhuǎn)換模塊71。
圖42中所示的動作轉(zhuǎn)換模塊71從動作模型庫70的動作模型701-70n輸出的動作中,選擇具有預(yù)定最高優(yōu)先權(quán)的動作,并向中間件層40中的輸出語義轉(zhuǎn)換器模塊68輸出表示執(zhí)行動作的任務(wù)的命令(下面稱為動作命令)。在本實施例中,按照朝著圖42的底部的順序,動作模型701-70n的優(yōu)先權(quán)被設(shè)置成越來越高。
根據(jù)從輸出語義轉(zhuǎn)換器模塊68提供的動作完成信息,動作轉(zhuǎn)換模塊71把對應(yīng)動作的完成通知學(xué)習(xí)模塊72,情感模型模塊73和本能模型模塊74。
同時,學(xué)習(xí)模塊72輸入從輸入語義轉(zhuǎn)換器模塊59提供的識別結(jié)果中,作為來自用戶的動作而接收的那些指令識別結(jié)果,例如“擊打”,“撫摸”等。
根據(jù)這種識別結(jié)果和來自動作轉(zhuǎn)換模塊71的通知,例如在“擊打(被責(zé)罵)”的情況下,學(xué)習(xí)模塊72進一步降低對應(yīng)動作的發(fā)生概率。另一方面,在“被撫摸(受表揚)”的情況下,增大對應(yīng)動作的發(fā)生概率。學(xué)習(xí)模塊72從而改變動作模型庫70中的動作模型701-70n的對應(yīng)遷移概率。
另一方面,情感模型模塊73保持表述關(guān)于6種情感“喜悅”,“悲傷”,“憤怒”,“驚訝”,“厭惡”和“恐懼”的情感強度的參數(shù)。此外,情感模型模塊73根據(jù)從輸入語義轉(zhuǎn)換器模塊59提供的諸如“擊打”,“撫摸”之類特定的識別結(jié)果,過去的時間,來自動作轉(zhuǎn)換模塊71的通知等,周期地更新情感參數(shù)值。
更具體地說,在ΔE[t]是根據(jù)從輸入語義轉(zhuǎn)換器模塊59提供的識別結(jié)果,該時刻機器人設(shè)備1的動作,自最后一次更新以來過去的時間,依據(jù)預(yù)定的計算公式計算的情感的波動,E[t]是情感的當前參數(shù)值,Ke是表示情感的敏感性的系數(shù)的情況下,情感模型模塊73利用下面的表達式(2),計算下一循環(huán)中,情感的情感參數(shù)值E[t+1]。該參數(shù)值代替當前的情感參數(shù)值E[t],從而更新情感的參數(shù)值。另外,情感模型73按照類似的方式,更新全部情感參數(shù)值。
E[t+1]=E[t]+Ke×ΔE[t](2)預(yù)先確定識別結(jié)果和來自輸出語義轉(zhuǎn)換器模塊68的通知對情感的參數(shù)值的波動ΔE[t]的影響有多大。例如,識別結(jié)果“擊打”極大地影響所述波動。情感“憤怒”的參數(shù)值的ΔE[t],和識別結(jié)果“撫摸”極大地影響情感“喜悅”的參數(shù)值的波動ΔE[t]。
來自輸出語義轉(zhuǎn)換器模塊68的通知是所謂的反饋信息(動作完成信息),即,表示動作發(fā)生結(jié)果的信息。情感模型模塊73根據(jù)這種信息,改變情感。這意味著,例如由動作“咆哮”引起的憤怒情感水平的降低。來自輸出語義轉(zhuǎn)換器模塊68的通知還被輸入前述學(xué)習(xí)模塊72,學(xué)習(xí)模塊72根據(jù)通知,改變動作模型701-70n中的對應(yīng)遷移概率。
注意可根據(jù)來自動作轉(zhuǎn)換模塊71的輸出(例如,伴隨有情感的動作),產(chǎn)生動作結(jié)果的反饋。
另一方面,本能模型模塊74保持分別表述彼此獨立的四種欲望“鍛煉”,“好感”,“食欲”和“好奇”的強度的參數(shù)。本能模型模塊74根據(jù)從輸入語義轉(zhuǎn)換器模塊59提供的識別結(jié)果,過去的時間,和來自動作轉(zhuǎn)換模塊71的通知等,周期地更新這些欲望參數(shù)。
更具體地說,就“鍛煉”,“好感”和“好奇”來說,在ΔI[k]是根據(jù)識別結(jié)果,過去的時間,和來自輸出語義轉(zhuǎn)換器模塊68的通知,依據(jù)預(yù)定的運算公式計算的,該時刻的欲望的波動,I[k]是欲望的當前參數(shù)值,ki是表示欲望的敏感性的系數(shù)的情況下,本能模型模塊74在預(yù)定的循環(huán)中,利用下面的表達式(3),計算下一循環(huán)中,欲望“鍛煉”,“好感”和“好奇”的參數(shù)值I[k+1],并代替欲望的當前參數(shù)值I[k]的計算結(jié)果,從而,更新欲望的參數(shù)值。另外,本能模型模塊74按照類似的方式,更新除欲望“食欲”之后的每種欲望的參數(shù)值。
I[k+1]=I[k]+ki×ΔI[k](3)預(yù)先確定識別結(jié)果和來自輸出語義轉(zhuǎn)換器模塊68的通知對欲望的參數(shù)值的波動ΔI[k]的影響有多大。例如,來自輸出語義轉(zhuǎn)換器模塊68的通知極大地影響“疲勞”的參數(shù)值的波動ΔI[k]。
在機器人設(shè)備1中,控制情感和欲望(本能)的參數(shù)值在0-100的范圍內(nèi)波動。對每種情感和本能設(shè)置系數(shù)ke和ki的值。
另一方面,如圖40中所示,中間件層40中的輸出語義轉(zhuǎn)換器模塊68把如前所述,從應(yīng)用層41中的動作轉(zhuǎn)換模塊71提供的諸如“前進”,“喜悅”,“尖叫”,“跟蹤(球)”之類抽象動作命令,提供給輸出系統(tǒng)69的信號處理模塊61-67中的一個對應(yīng)信號處理模塊。
此外,當提供動作命令時,這些信號處理模塊61-67產(chǎn)生將被提供給做出動作所需的對應(yīng)致動器251-25n的命令值,將從揚聲器24(圖2)輸出的聲音的音頻數(shù)據(jù),和將提供給“眼睛”的LED,并且以提供的動作命令為基礎(chǔ)的驅(qū)動數(shù)據(jù)。順序通過機器人服務(wù)器對象32的虛擬機器人33和信號處理電路14(圖2),模塊61-67有序地把這些數(shù)據(jù)項發(fā)送給對應(yīng)的致動器251-25n,揚聲器24或LED。
本發(fā)明中使用的圖像識別處理,控制處理和咬住檢測處理由上述中間件層40,應(yīng)用層41和虛擬機器人33建立。
中間件層40中的識別系統(tǒng)60中的用于噪聲檢測,溫度檢測,亮度檢測,音階檢測,距離檢測,姿態(tài)檢測,咬住檢測,運動檢測和顏色識別的信號處理模塊50-58把處理結(jié)果提供給輸入語義轉(zhuǎn)換器模塊59。
輸入語義轉(zhuǎn)換器模塊59根據(jù)從這些信號處理模塊50-58提供的處理結(jié)果,識別機器人設(shè)備自身的狀況和環(huán)境條件(內(nèi)部和外部條件),例如“吵鬧”,“熱”,“明亮”,“檢測到球”,“檢測到絆倒”,“受到撫摸”,“擊打”,“聽到音階“多”、“米”和“索””,“檢測到移動物體”,“檢測到障礙物”,“物體被咬住”等,另外還識別來自用戶的命令和動作。輸入語義轉(zhuǎn)換器模塊59隨后把識別結(jié)果輸出給應(yīng)用層41(圖40)。
應(yīng)用層41中的五個模塊,即動作模型庫70,動作轉(zhuǎn)換模塊71,學(xué)習(xí)模塊72,情感模型模塊73和本能模型模塊74對應(yīng)于動作控制系統(tǒng)100中的動作選擇單元。
特別地,當從輸入語義轉(zhuǎn)換器模塊59供給識別結(jié)果時,如果需要,動作模型庫70參考保持在情感模型模塊73中的對應(yīng)情感的參數(shù)值,和保持在本能模型模塊74中的對應(yīng)欲望的參數(shù)值,確定下一動作。動作模型庫70隨后把確定結(jié)果輸出給動作轉(zhuǎn)換模塊71。更具體地說,例如,當從輸入語義轉(zhuǎn)換器模塊59供給識別結(jié)果時,通過利用NODE0-NODEn中的對應(yīng)節(jié)點的狀態(tài)遷移表,動作模型701-70n以概率方式確定下一動作。動作模型701-70n隨后把確定結(jié)果輸出給動作轉(zhuǎn)換模塊71。
例如,在前述圖像識別處理識別骨頭之后,機器人設(shè)備1走向放置該骨頭的地方。此時,機器人設(shè)備表達喜悅的感情,或者改變行走速度。另一方面,在機器人設(shè)備根據(jù)前面說明的咬骨控制算法和咬住檢測算法,咬住骨頭之后,確定滾動骨頭,用手抓住骨頭(以BANZAI的形式),或者用腿觸摸咬住的骨頭的動作,如圖31A-31D中所示。
權(quán)利要求
1.一種根據(jù)外部環(huán)境,自主做出動作的機器人設(shè)備,所述機器人設(shè)備包括拾取外部環(huán)境中的物體的圖像的圖像拾取裝置;根據(jù)圖像拾取裝置拾取的圖像,計算包括在圖像數(shù)據(jù)中的標記的圓度的計算裝置;和根據(jù)計算裝置計算的圓度,區(qū)分物體的特征部分的區(qū)分裝置,其中當所述物體是具有將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分,和分別在其兩端形成的,基本上均呈三角形的二個側(cè)面部分的玩具,且所述可咬部分介于這兩個側(cè)面部分之間時,計算裝置計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,區(qū)分裝置根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
2.按照權(quán)利要求1所述的機器人設(shè)備,具有按照預(yù)定的行走模式被驅(qū)動的多個腿部。
3.按照權(quán)利要求1所述的機器人設(shè)備,其中根據(jù)棒狀可咬部分檢測玩具的放置角度。
4.按照權(quán)利要求1所述的機器人設(shè)備,其中區(qū)分裝置根據(jù)短期記憶,把可咬部分和兩個側(cè)面部分相互區(qū)分開。
5.按照權(quán)利要求1所述的機器入設(shè)備,其中計算裝置計算通過執(zhí)行補償處理獲得的標記的圓度。
6.按照權(quán)利要求1所述的機器人設(shè)備,其中在機器人設(shè)備的頭部單元中形成的嘴部包括上顎部和相對于上顎部移動的下顎部,在下顎部中形成容納可咬部分的凹進部分,具有高摩擦系數(shù)的材料被用于幫助夾住玩具。
7.按照權(quán)利要求1所述的機器人設(shè)備,還包括執(zhí)行咬住檢測算法,以檢測嘴部咬住的物體的控制裝置,其中評估對上顎部和下顎部之間的關(guān)節(jié)的負載,當評估的負載沿夾住物體的方向工作時,調(diào)整移動下顎部的致動器的增益。
8.按照權(quán)利要求7所述的機器人設(shè)備,其中當致動器的增益被確定為大于預(yù)定值時,控制裝置降低致動器的增益。
9.按照權(quán)利要求8所述的機器人設(shè)備,其中根據(jù)上顎部和下顎部之間的關(guān)節(jié)角度,控制裝置確定嘴部是否已咬住目標物體。
10.一種根據(jù)外部環(huán)境,自主做出動作的機器人設(shè)備的控制方法,所述方法包括拾取外部環(huán)境中的物體的圖像的圖像拾取步驟;根據(jù)在圖像拾取步驟中拾取的圖像,計算包括在圖像數(shù)據(jù)中的標記的圓度的計算步驟;和根據(jù)在計算步驟中計算的圓度,區(qū)分物體的特征部分的區(qū)分步驟,其中當所述物體是具有將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分,和分別在其兩端形成的,基本上均呈三角形的二個側(cè)面部分的玩具,且所述可咬部分介于這兩個側(cè)面部分之間時,在計算步驟中計算以涂于所述可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域的顏色為基礎(chǔ)的標記的圓度,在區(qū)分步驟中,根據(jù)圓度,把可咬部分和側(cè)面部分相互區(qū)分開。
11.按照權(quán)利要求10所述的控制方法,其中在計算步驟中,計算通過執(zhí)行補償處理獲得的標記的圓度。
12.按照權(quán)利要求10所述的控制方法,還包括執(zhí)行咬住檢測算法,以檢測嘴部咬住的物體的控制步驟,其中評估對上顎部和下顎部之間的關(guān)節(jié)的負載,當評估的負載沿夾住物體的方向工作時,調(diào)整移動下顎部的致動器的增益。
13.按照權(quán)利要求12所述的控制方法,其中在控制步驟中,當致動器的增益被確定為大于預(yù)定值時,降低致動器的增益。
14.按照權(quán)利要求13所述的控制方法,其中在控制步驟中,根據(jù)上顎部和下顎部之間的關(guān)節(jié)角度,控制裝置確定嘴部是否已咬住目標物體。
15.一種用于根據(jù)外部環(huán)境,自主做出動作的機器人設(shè)備的玩具,所述玩具包括將被在機器人設(shè)備的頭部單元中形成的嘴部咬住的棒狀可咬部分;和分別在玩具兩端形成的,基本上均呈三角形的二個側(cè)面部分,所述可咬部分介于這兩個側(cè)面部分之間,其中機器人設(shè)備的圖像識別處理用和標記一起施加的顏色分別對可咬部分和兩個側(cè)面部分的預(yù)定區(qū)域著色,計算裝置計算標記的圓度,根據(jù)圓度,把所述可咬部分和所述兩個側(cè)面部分區(qū)分開。
全文摘要
機器人設(shè)備1是一種四足可移動機器人,腿部單元3A、3B、3C和3D與身體部分2的前后端的左右兩側(cè)連接。頭部單元4與身體單元2的前端連接。頭部單元4具有能夠咬住形狀類似于骨頭的玩具200的嘴(顎)部。嘴部由上顎部和下顎部構(gòu)成,并采用能夠咬住骨頭200的可咬部分203的結(jié)構(gòu)。作為控制部分的CPU執(zhí)行和識別骨頭200的圖像識別處理算法,咬住骨頭的咬骨控制算法,和檢測骨頭的咬骨檢測算法相應(yīng)的程序。
文檔編號B25J9/16GK1590038SQ20041005795
公開日2005年3月9日 申請日期2004年8月27日 優(yōu)先權(quán)日2003年8月28日
發(fā)明者高村成一, 小久保亙, 鶴見辰吾 申請人:索尼株式會社