本發(fā)明涉及智能機(jī)器人領(lǐng)域,具體地說(shuō),涉及一種基于智能機(jī)器人的外設(shè)行為沖突控制方法和系統(tǒng)。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷發(fā)展,信息技術(shù)、計(jì)算機(jī)技術(shù)以及人工智能技術(shù)的引入,機(jī)器人的研究已經(jīng)逐步走出工業(yè)領(lǐng)域,逐漸擴(kuò)展到了醫(yī)療、保健、家庭、娛樂(lè)以及服務(wù)行業(yè)等領(lǐng)域。而人們對(duì)于機(jī)器人的要求也從簡(jiǎn)單重復(fù)的機(jī)械動(dòng)作提升為具有擬人問(wèn)答、自主性及與其他機(jī)器人進(jìn)行交互的智能機(jī)器人,人機(jī)交互也就成為決定智能機(jī)器人發(fā)展的重要因素。
在機(jī)器人與用戶(hù)交互時(shí),通常會(huì)出現(xiàn)不同的應(yīng)用程序調(diào)用同一外部設(shè)備的情況,現(xiàn)有的機(jī)器人無(wú)法在出現(xiàn)沖突時(shí)及時(shí)解決,容易發(fā)生調(diào)度紊亂,因此用戶(hù)體驗(yàn)較為不暢,降低了用戶(hù)與機(jī)器人進(jìn)行交互的意愿。
綜上,需要提供一種能夠及時(shí)解決出現(xiàn)的外設(shè)行為沖突,提高用戶(hù)體驗(yàn)度的方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于智能機(jī)器人的外設(shè)行為沖突控制方法來(lái)解決上述技術(shù)問(wèn)題。該方法包括以下步驟:
應(yīng)用請(qǐng)求監(jiān)聽(tīng)步驟,在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在第二應(yīng)用調(diào)起請(qǐng)求;
外設(shè)行為沖突確認(rèn)步驟,確認(rèn)所述第二應(yīng)用調(diào)起的外設(shè)行為是否與所述第一應(yīng)用的外設(shè)輸出存在沖突;
沖突控制步驟,在確定存在沖突時(shí),使所述第一應(yīng)用暫停調(diào)用存在沖突的外設(shè),執(zhí)行所述第二應(yīng)用完成外設(shè)輸出。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制方法,優(yōu)選的是,在所述沖突控制步驟具體包括:
在存在沖突的外設(shè)為多個(gè)時(shí),所述第一應(yīng)用暫停調(diào)用存在沖突的所有外設(shè)且持續(xù)啟用其他未發(fā)生沖突的外設(shè),待所述第二應(yīng)用完成外設(shè)輸出后使所述第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制方法,優(yōu)選的是,在所述外設(shè)行為沖突確認(rèn)步驟之前還包括:
在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)到第二應(yīng)用調(diào)起請(qǐng)求,根據(jù)應(yīng)用調(diào)用的需要和處理能力轉(zhuǎn)換本地處理機(jī)制和后臺(tái)處理機(jī)制使所述第一應(yīng)用中斷或使所述第一應(yīng)用進(jìn)入后臺(tái)處理。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制方法,優(yōu)選的是,所述方法由機(jī)器人操作系統(tǒng)執(zhí)行,所述第一應(yīng)用和第二應(yīng)用運(yùn)行在智能機(jī)器人操作系統(tǒng)中。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制方法,優(yōu)選的是,在所述第二應(yīng)用完成外設(shè)輸出后,使所述第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)并與其他未發(fā)生沖突的外設(shè)進(jìn)行協(xié)調(diào)輸出。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng),其特征在于,所述系統(tǒng)包括以下單元:
應(yīng)用請(qǐng)求監(jiān)聽(tīng)單元,其用以在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在第二應(yīng)用調(diào)起請(qǐng)求;
外設(shè)行為沖突確認(rèn)單元,其用以確認(rèn)所述第二應(yīng)用調(diào)起的外設(shè)行為是否與所述第一應(yīng)用的外設(shè)輸出存在沖突;
沖突控制單元,其用以在確定存在沖突時(shí),使所述第一應(yīng)用暫停調(diào)用存在沖突的外設(shè),執(zhí)行所述第二應(yīng)用完成外設(shè)輸出。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng),優(yōu)選的是,所述沖突控制單元包括:
第一控制子單元,其用以在存在沖突的外設(shè)為多個(gè)時(shí),使所述第一應(yīng)用暫停調(diào)用存在沖突的所有外設(shè)且持續(xù)啟用其他未發(fā)生沖突的外設(shè),待所述第二應(yīng)用完成外設(shè)輸出后使所述第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng),優(yōu)選的是,所述沖突控制單元還包括:
第二控制子單元,其用以在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)到第二應(yīng)用調(diào)起請(qǐng)求,根據(jù)應(yīng)用調(diào)用的需要和處理能力轉(zhuǎn)換本地處理機(jī)制和后臺(tái)處理機(jī)制使所述第一應(yīng)用中斷或使所述第一應(yīng)用進(jìn)入后臺(tái)處理。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng),優(yōu)選的是,所述第一應(yīng)用和所述第二應(yīng)用運(yùn)行在智能機(jī)器人操作系統(tǒng)中。
根據(jù)本發(fā)明的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng),優(yōu)選的是,所述沖突控制單元包括:
第三控制子單元,其用以在所述第二應(yīng)用完成外設(shè)輸出后,使所述第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)并與其他未發(fā)生沖突的外設(shè)進(jìn)行協(xié)調(diào)輸出。
本發(fā)明的有益之處在于,通過(guò)在某一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在其他應(yīng)用調(diào)起請(qǐng)求,在其他應(yīng)用調(diào)起的外設(shè)行為與當(dāng)前執(zhí)行的應(yīng)用的外設(shè)輸出存在沖突時(shí),暫停當(dāng)前應(yīng)用去調(diào)用存在沖突的外設(shè),執(zhí)行其他應(yīng)用完成對(duì)該外設(shè)的輸出,能夠針對(duì)不同的應(yīng)用程序調(diào)用同一外部設(shè)備的情況,及時(shí)解決沖突順利完成各應(yīng)用的調(diào)度,提高用戶(hù)體驗(yàn)和用戶(hù)與機(jī)器人進(jìn)行交互的意愿。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書(shū)、權(quán)利要求書(shū)以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例共同用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1為根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制方法的流程示意圖。
圖2為根據(jù)本發(fā)明的另一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制方法的流程示意圖。
圖3為根據(jù)本發(fā)明的再一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng)3的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步地詳細(xì)說(shuō)明。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步地詳細(xì)說(shuō)明。以下例子中,將以人臉為目標(biāo)物體來(lái)進(jìn)行本發(fā)明原理的說(shuō)明。本領(lǐng)域的技術(shù)人員應(yīng)該知曉,該實(shí)施例僅為說(shuō)明目的,不用作對(duì)本發(fā)明的限制。
隨著智能機(jī)器人的興起,機(jī)器人操作系統(tǒng)作為機(jī)器人的大腦,控制協(xié)調(diào)機(jī)器人的各個(gè)應(yīng)用和外設(shè)(例如人形機(jī)器人的肢體、桌面機(jī)器人的軀干和屏幕等)的使用。但是,在現(xiàn)有機(jī)器人技術(shù)領(lǐng)域中,由于機(jī)器人的成熟度不高、機(jī)器人內(nèi)部的調(diào)度算法無(wú)法對(duì)應(yīng)用程序的執(zhí)行進(jìn)行有條不紊的控制,因此,在使用機(jī)器人的過(guò)程中不同應(yīng)用請(qǐng)求多個(gè)外設(shè)行為發(fā)生沖突時(shí),無(wú)法及時(shí)解決這種沖突問(wèn)題。因此,本發(fā)明針對(duì)智能機(jī)器人,在需要運(yùn)行多個(gè)應(yīng)用且外在展現(xiàn)有一部分在多個(gè)應(yīng)用中均需要使用而導(dǎo)致發(fā)生調(diào)用沖突時(shí),機(jī)器人操作系統(tǒng)采用輸出部分外設(shè)行為的沖突控制方法,對(duì)于被多個(gè)應(yīng)用同時(shí)調(diào)用的沖突外設(shè)輸出,優(yōu)先供后來(lái)應(yīng)用調(diào)用,而不沖突的部分,各個(gè)應(yīng)用均可以繼續(xù)獨(dú)自輸出,沖突控制結(jié)束后,各自歸位繼續(xù)正常運(yùn)行。
第一實(shí)施例
圖1為根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制方法的流程示意圖,該外設(shè)行為沖突方法優(yōu)選由機(jī)器人操作系統(tǒng)的環(huán)境中執(zhí)行,其中涉及到的第一應(yīng)用和第二應(yīng)用運(yùn)行在該智能機(jī)器人操作系統(tǒng)中。下面參考圖1來(lái)說(shuō)明本發(fā)明實(shí)施例的各個(gè)步驟,該實(shí)施例的方法主要包括以下步驟。
在步驟S110中,機(jī)器人執(zhí)行第一應(yīng)用程序A1展現(xiàn)外設(shè)行為,調(diào)用外設(shè)輸出P0、P1、P2等。
本實(shí)施例的機(jī)器人安裝有機(jī)器人操作系統(tǒng)OS,可以為具有肢體的人形機(jī)器人或桌面機(jī)器人。“外設(shè)行為”可以認(rèn)為是機(jī)器人執(zhí)行指令展現(xiàn)在外部的行為,一般包括機(jī)器人肢體產(chǎn)生的動(dòng)作表現(xiàn),例如行走、運(yùn)動(dòng)等,以及機(jī)器人TTS系統(tǒng)下的說(shuō)話(huà)行為表現(xiàn)、唱歌行為表現(xiàn)和屏幕的表情展現(xiàn)等。其中,TTS系統(tǒng)將文本轉(zhuǎn)化成語(yǔ)音播報(bào),機(jī)器人采用這種方式進(jìn)行說(shuō)話(huà)行為表現(xiàn)。
例如,在機(jī)器人為桌面機(jī)器人時(shí),機(jī)器人當(dāng)前執(zhí)行第一應(yīng)用程序?yàn)椤爸v故事應(yīng)用”,通過(guò)內(nèi)部機(jī)器人操作系統(tǒng)調(diào)用執(zhí)行該指令的與用戶(hù)進(jìn)行交互的外設(shè)“嘴”(即揚(yáng)聲器和TTS系統(tǒng))和“眼睛”(即液晶屏幕),實(shí)現(xiàn)說(shuō)話(huà)行為表現(xiàn)和表情展現(xiàn)。又例如,機(jī)器人為人形機(jī)器人時(shí),機(jī)器人需要執(zhí)行“唱歌跳舞應(yīng)用”,通過(guò)內(nèi)部機(jī)器人操作系統(tǒng)調(diào)用執(zhí)行該指令的外設(shè)“嘴”(即揚(yáng)聲器和TTS系統(tǒng))和機(jī)器人肢體(即機(jī)器人的腿部和臂部及相應(yīng)舵機(jī)),實(shí)現(xiàn)唱歌行為表現(xiàn)和動(dòng)作表現(xiàn)。
在步驟S120中,在第一應(yīng)用程序A1執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在第二應(yīng)用程序A2調(diào)起請(qǐng)求,若監(jiān)聽(tīng)到第二應(yīng)用程序A2,則執(zhí)行步驟S130,否則一直保持監(jiān)聽(tīng)狀態(tài)。
在一個(gè)例子中,機(jī)器人操作系統(tǒng)可以通過(guò)后臺(tái)監(jiān)聽(tīng)機(jī)制來(lái)監(jiān)聽(tīng)是否有事件觸發(fā)即是否存在新的應(yīng)用程序請(qǐng)求,在接收到事件觸發(fā)信息時(shí),判斷存在新應(yīng)用程序調(diào)起請(qǐng)求。
在步驟S130中,判斷第二應(yīng)用程序A2是否要調(diào)用外設(shè)輸出,若需要調(diào)用外設(shè)輸出則執(zhí)行步驟S140,否則執(zhí)行步驟S180。
具體地,對(duì)第二應(yīng)用程序A2的內(nèi)容進(jìn)行解析,判斷是否通過(guò)執(zhí)行第二應(yīng)用程序A來(lái)展現(xiàn)某種外設(shè)行為。例如,在監(jiān)聽(tīng)到第二應(yīng)用程序A2為控制機(jī)器人行走的“行走應(yīng)用程序”,通過(guò)分析得到需要展現(xiàn)控制機(jī)器人腿部的動(dòng)作表現(xiàn)的外設(shè)行為。
在步驟S140中,判斷第二應(yīng)用程序A2的外設(shè)行為是否與第一應(yīng)用程序A1調(diào)用的外設(shè)輸出存在沖突,若存在沖突,則執(zhí)行步驟S150,否則執(zhí)行步驟S180。
在一個(gè)例子中,通過(guò)步驟S130的解析能夠確定第二應(yīng)用程序A2需要展現(xiàn)某種外設(shè)行為,將該外設(shè)行為涉及到的外設(shè)輸出與當(dāng)前執(zhí)行的第一應(yīng)用程序A1的外設(shè)輸出進(jìn)行比對(duì),判斷第二應(yīng)用程序A2是否需要調(diào)用與第一應(yīng)用程序A1相同的外設(shè)輸出,若需要調(diào)用相同的外設(shè)輸出,則認(rèn)定第二應(yīng)用程序A2的外設(shè)行為與第一應(yīng)用程序A1調(diào)用的外設(shè)輸出存在沖突。
例如,機(jī)器人為人形機(jī)器人時(shí),第一應(yīng)用程序A1是“唱歌跳舞應(yīng)用”,通過(guò)內(nèi)部機(jī)器人操作系統(tǒng)調(diào)用執(zhí)行該指令的外設(shè)“嘴”(即揚(yáng)聲器和TTS系統(tǒng))和機(jī)器人肢體(即機(jī)器人的腿部和臂部及相應(yīng)舵機(jī)),實(shí)現(xiàn)唱歌行為表現(xiàn)和動(dòng)作表現(xiàn)。當(dāng)用戶(hù)發(fā)起“運(yùn)動(dòng)控制應(yīng)用”請(qǐng)求時(shí),需要執(zhí)行第二應(yīng)用程序A2,即“運(yùn)動(dòng)控制應(yīng)用”,該應(yīng)用程序也需要調(diào)用機(jī)器人腿部來(lái)控制機(jī)器人腿部的自由度。容易理解,機(jī)器人是無(wú)法同時(shí)使用腿部既跳舞又走路的。因此通過(guò)對(duì)比得到,第二應(yīng)用程序A2調(diào)用的運(yùn)動(dòng)行為輸出與第一應(yīng)用程序A1調(diào)用的跳舞行為輸出存在沖突。
在另一個(gè)例子中,可以通過(guò)預(yù)設(shè)的列表來(lái)判斷第二應(yīng)用程序A2和當(dāng)前執(zhí)行的第一應(yīng)用程序A1調(diào)用的外設(shè)輸出是否存在沖突,該預(yù)設(shè)的列表將發(fā)生沖突的應(yīng)用程序以一對(duì)一的形式或多對(duì)一的形式預(yù)先列舉出來(lái)。例如,當(dāng)前執(zhí)行的第一應(yīng)用程序A1是“唱歌跳舞應(yīng)用”,需要機(jī)器人進(jìn)行搖頭行為輸出,用戶(hù)此時(shí)發(fā)出拍照指令,機(jī)器人操作系統(tǒng)監(jiān)聽(tīng)到第二應(yīng)用程序A2——“拍照應(yīng)用”,通過(guò)將第一應(yīng)用程序A1和第二應(yīng)用程序A2與預(yù)設(shè)的沖突列表進(jìn)行比對(duì),得到二者存在沖突。容易理解,執(zhí)行“拍照應(yīng)用”時(shí)需要調(diào)用設(shè)置在機(jī)器人頭部的攝像頭,機(jī)器人在進(jìn)行搖頭行為時(shí)是無(wú)法準(zhǔn)確抓拍用戶(hù)的圖像的。因此,雖然這兩個(gè)應(yīng)用程序所調(diào)用的外設(shè)不同,但二者在實(shí)現(xiàn)的過(guò)程中仍然存在沖突。
在步驟S150中,在確定存在沖突時(shí),使第一應(yīng)用程序A1暫停調(diào)用存在沖突的外設(shè),執(zhí)行第二應(yīng)用程序A2完成外設(shè)輸出。
在本例中,第一應(yīng)用程序A1調(diào)用的外設(shè)輸出一般為多個(gè),機(jī)器人操作系統(tǒng)在確定存在沖突時(shí),發(fā)出命令使第一應(yīng)用程序A1停止調(diào)用沖突的外設(shè),執(zhí)行第二應(yīng)用程序A2。優(yōu)選地,在第二應(yīng)用程序A2與第一應(yīng)用程序A1存在沖突的外設(shè)為多個(gè)時(shí),使第一應(yīng)用A1暫停調(diào)用存在沖突的所有外設(shè)且持續(xù)啟用其他未發(fā)生沖突的外設(shè)。如上例所述,在機(jī)器人執(zhí)行唱歌跳舞應(yīng)用時(shí),用戶(hù)發(fā)出“擺臂走路”的指令,通過(guò)判斷得到這兩個(gè)應(yīng)用程序發(fā)生沖突的外設(shè)包括機(jī)器人臂部和腿部及相應(yīng)舵機(jī),而實(shí)現(xiàn)搖頭行為的頭部、頭部舵機(jī)和揚(yáng)聲器不是沖突外設(shè),因此機(jī)器人操作系統(tǒng)發(fā)出命令使唱歌跳舞應(yīng)用停止調(diào)用涉及到的沖突外設(shè),僅調(diào)用未發(fā)生沖突的頭部、頭部舵機(jī)和揚(yáng)聲器等外設(shè)。
在步驟S160中,判斷第二應(yīng)用程序A2是否執(zhí)行完畢,若執(zhí)行完畢則開(kāi)始步驟S170,否則保持當(dāng)前狀態(tài)。
在步驟S170中,第一應(yīng)用程序A1待第二應(yīng)用程序A2完成外設(shè)輸出后繼續(xù)調(diào)用之前暫停的沖突外設(shè)。如上例所述,在機(jī)器人完成“擺臂走路”的指令后,釋放涉及到的外設(shè)輸出,機(jī)器人操作系統(tǒng)發(fā)送命令使執(zhí)行的“唱歌跳舞”應(yīng)用開(kāi)始使用第二應(yīng)用程序A2釋放的機(jī)器人臂部和腿部及相應(yīng)舵機(jī)等這些外設(shè)。
在步驟S180中,若不需要調(diào)用外設(shè)行為或者調(diào)用的外設(shè)行為與第一應(yīng)用程序A1的不相沖突,則直接執(zhí)行第二應(yīng)用程序A2。
例如,若第二應(yīng)用程序A2為查詢(xún)一個(gè)信息內(nèi)容,不涉及外設(shè)行為的調(diào)用,則直接執(zhí)行該應(yīng)用程序,不需要對(duì)第一應(yīng)用程序A1進(jìn)行任何處理?;蛘?,若當(dāng)前第一應(yīng)用程序A1調(diào)用的外設(shè)行為為動(dòng)作展現(xiàn),涉及到的外設(shè)為腿部和手部及相應(yīng)舵機(jī),第二應(yīng)用程序A2調(diào)用的外設(shè)行為為說(shuō)話(huà)行為展現(xiàn),涉及到的外設(shè)為揚(yáng)聲器,則同第一應(yīng)用程序A1并行執(zhí)行第二應(yīng)用程序A2,分別完成各自的外設(shè)行為輸出。
本發(fā)明實(shí)施例的方法,在使用機(jī)器人時(shí)不同的應(yīng)用請(qǐng)求多個(gè)外設(shè)行為,發(fā)生沖突時(shí),可使當(dāng)前執(zhí)行的應(yīng)用程序暫緩調(diào)用沖突外設(shè),待新應(yīng)用程序執(zhí)行完畢后再繼續(xù)調(diào)用。這樣能夠及時(shí)解決沖突順利完成各應(yīng)用的調(diào)度,提高用戶(hù)體驗(yàn)和用戶(hù)與機(jī)器人進(jìn)行交互的意愿。
第二實(shí)施例
圖2為根據(jù)本發(fā)明的另一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制方法的流程示意圖,同樣,該外設(shè)行為沖突方法優(yōu)選在機(jī)器人操作系統(tǒng)的環(huán)境中執(zhí)行,其中涉及到的第一應(yīng)用和第二應(yīng)用運(yùn)行在該智能機(jī)器人操作系統(tǒng)中。本實(shí)施例的方法主要包括以下步驟,其中,將與第一實(shí)施例相似的步驟以相同的標(biāo)號(hào)標(biāo)注,且不再贅述其具體內(nèi)容,僅對(duì)區(qū)別步驟進(jìn)行具體描述。
在步驟S110中,機(jī)器人執(zhí)行第一應(yīng)用程序A1,調(diào)用外設(shè)輸出P0、P1、P2等。
在步驟S120中,在第一應(yīng)用程序A1執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在第二應(yīng)用程序A2調(diào)起請(qǐng)求,若監(jiān)聽(tīng)到第二應(yīng)用程序A2,則執(zhí)行步驟S190,否則一直保持監(jiān)聽(tīng)狀態(tài)。
在步驟S130中,判斷第二應(yīng)用程序A2是否要調(diào)用外設(shè)輸出,若需要調(diào)用外設(shè)輸出則執(zhí)行步驟S140,否則執(zhí)行步驟S180。
在步驟S140中,判斷第二應(yīng)用程序A2的外設(shè)行為是否與第一應(yīng)用程序A1調(diào)用的外設(shè)輸出存在沖突,若存在沖突,則執(zhí)行步驟S150,否則執(zhí)行步驟S180。
在步驟S150中,在確定存在沖突時(shí),使第一應(yīng)用程序A1暫停調(diào)用存在沖突的外設(shè),執(zhí)行第二應(yīng)用程序A2完成外設(shè)輸出。
在步驟S160中,判斷第二應(yīng)用程序A2是否執(zhí)行完畢,若執(zhí)行完畢則開(kāi)始步驟S170’,否則保持當(dāng)前狀態(tài)。
在步驟S170’中,第一應(yīng)用程序A1待第二應(yīng)用程序A2完成外設(shè)輸出后繼續(xù)調(diào)用之前暫停的沖突外設(shè)且與其他未發(fā)生沖突的外設(shè)進(jìn)行協(xié)調(diào)輸出。
在第一實(shí)施例中的步驟S170中,第一應(yīng)用程序A1待第二應(yīng)用程序A2完成外設(shè)輸出后繼續(xù)調(diào)用之前暫停的沖突外設(shè)。在第一應(yīng)用程序A1之前暫停沖突外時(shí),將當(dāng)前應(yīng)用程序執(zhí)行的有關(guān)該沖突外設(shè)的數(shù)據(jù)保存,待第二應(yīng)用程序A2執(zhí)行完外設(shè)輸出后,第一應(yīng)用程序A1根據(jù)保存的有關(guān)該沖突外設(shè)的數(shù)據(jù)繼續(xù)來(lái)執(zhí)行任務(wù),然而,這種情況下可能會(huì)造成:沖突外設(shè)表現(xiàn)出的外設(shè)行為與未發(fā)生沖突外設(shè)持續(xù)執(zhí)行任務(wù)產(chǎn)生的外設(shè)行為互不協(xié)調(diào),給用戶(hù)帶來(lái)不好的體驗(yàn)感。
在該步驟S170’中,雖然也是繼續(xù)調(diào)用之前暫停的沖突外設(shè),但要保證該沖突外設(shè)表現(xiàn)出來(lái)的外設(shè)行為與未發(fā)生沖突的外設(shè)持續(xù)執(zhí)行任務(wù)產(chǎn)生的外設(shè)行為相互協(xié)調(diào)。具體來(lái)說(shuō),可以忽略掉在第一應(yīng)用程序A1暫停調(diào)用沖突外設(shè)之前的有關(guān)該沖突外設(shè)的所有數(shù)據(jù),在重新調(diào)用沖突外設(shè)時(shí),參考未發(fā)生沖突外設(shè)當(dāng)前執(zhí)行的任務(wù)階段,使沖突外設(shè)也執(zhí)行與該任務(wù)階段對(duì)應(yīng)的外設(shè)行為,這樣就能保證協(xié)調(diào)性。
例如,在機(jī)器人完成“擺臂走路”的指令后,釋放沖突外設(shè)——機(jī)器人腿部和臂部及相應(yīng)舵機(jī),機(jī)器人操作系統(tǒng)發(fā)送命令使之前執(zhí)行的“唱歌跳舞”應(yīng)用開(kāi)始使用這些沖突外設(shè)??紤]到當(dāng)前機(jī)器人執(zhí)行唱歌行為的揚(yáng)聲器所處的任務(wù)階段,“唱歌跳舞”應(yīng)用使這些沖突外設(shè)也執(zhí)行與揚(yáng)聲器所處的任務(wù)階段對(duì)應(yīng)的外設(shè)行為,這樣就保證了唱歌跳舞的協(xié)調(diào)性。
在步驟S180中,若不需要調(diào)用外設(shè)行為或者調(diào)用的外設(shè)行為與第一應(yīng)用程序A1的不相沖突,則直接執(zhí)行第二應(yīng)用程序A2。
本發(fā)明實(shí)施例的方法,在使用機(jī)器人時(shí)不同的應(yīng)用請(qǐng)求多個(gè)外設(shè)行為,發(fā)生沖突時(shí),可使當(dāng)前執(zhí)行的應(yīng)用程序暫緩調(diào)用沖突外設(shè),待新應(yīng)用程序執(zhí)行完畢后再繼續(xù)調(diào)用并能夠使沖突外設(shè)和非沖突外設(shè)在時(shí)隔一段時(shí)間后保持協(xié)調(diào)輸出。這樣能夠及時(shí)解決沖突順利完成各應(yīng)用的調(diào)度,提高用戶(hù)體驗(yàn)和用戶(hù)與機(jī)器人進(jìn)行交互的意愿。
第三實(shí)施例
圖3為根據(jù)本發(fā)明的再一個(gè)實(shí)施例的基于智能機(jī)器人的外設(shè)行為沖突控制系統(tǒng)3的結(jié)構(gòu)框圖。如圖3所示,本申請(qǐng)實(shí)施例的外設(shè)行為沖突控制系統(tǒng)3主要包括:應(yīng)用請(qǐng)求監(jiān)聽(tīng)單元310、外設(shè)行為沖突確認(rèn)單元320和沖突控制單元330。
應(yīng)用請(qǐng)求監(jiān)聽(tīng)單元310,其用以在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)是否存在第二應(yīng)用調(diào)起請(qǐng)求。
外設(shè)行為沖突確認(rèn)單元320,其與應(yīng)用請(qǐng)求監(jiān)聽(tīng)單元310連接,用以確認(rèn)第二應(yīng)用調(diào)起的外設(shè)行為是否與第一應(yīng)用的外設(shè)輸出存在沖突。
沖突控制單元330,其與外設(shè)行為沖突確認(rèn)單元320連接,用以在確定存在沖突時(shí),使第一應(yīng)用暫停調(diào)用存在沖突的外設(shè),執(zhí)行第二應(yīng)用完成外設(shè)輸出。沖突控制單元330包括:第一控制子單元331、第二控制子單元332和第三控制子單元333。
第一控制子單元331,其用以在存在沖突的外設(shè)為多個(gè)時(shí),使第一應(yīng)用暫停調(diào)用存在沖突的所有外設(shè)且持續(xù)啟用其他未發(fā)生沖突的外設(shè),待第二應(yīng)用完成外設(shè)輸出后使所述第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)。
第二控制子單元332,其用以在第一應(yīng)用執(zhí)行的過(guò)程中監(jiān)聽(tīng)到第二應(yīng)用調(diào)起請(qǐng)求,根據(jù)應(yīng)用調(diào)用的需要和處理能力轉(zhuǎn)換本地處理機(jī)制和后臺(tái)處理機(jī)制使第一應(yīng)用中斷或使所述第一應(yīng)用進(jìn)入后臺(tái)處理。
第三控制子單元333,其用以在第二應(yīng)用完成外設(shè)輸出后,使第一應(yīng)用繼續(xù)調(diào)用之前暫停的沖突外設(shè)并與其他未發(fā)生沖突的外設(shè)進(jìn)行協(xié)調(diào)輸出。
通過(guò)合理設(shè)置,本實(shí)施例的外設(shè)行為沖突控制系統(tǒng)3可以執(zhí)行第一實(shí)施例和第二實(shí)施例的各個(gè)步驟,此處不再贅述。
由于本發(fā)明的方法描述的是在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)的。該計(jì)算機(jī)系統(tǒng)例如可以設(shè)置在機(jī)器人的控制核心處理器中。例如,本文所述的方法可以實(shí)現(xiàn)為能以控制邏輯來(lái)執(zhí)行的軟件,其由機(jī)器人操作系統(tǒng)中的CPU來(lái)執(zhí)行。本文所述的功能可以實(shí)現(xiàn)為存儲(chǔ)在非暫時(shí)性有形計(jì)算機(jī)可讀介質(zhì)中的程序指令集合。當(dāng)以這種方式實(shí)現(xiàn)時(shí),該計(jì)算機(jī)程序包括一組指令,當(dāng)該組指令由計(jì)算機(jī)運(yùn)行時(shí)其促使計(jì)算機(jī)執(zhí)行能實(shí)施上述功能的方法。可編程邏輯可以暫時(shí)或永久地安裝在非暫時(shí)性有形計(jì)算機(jī)可讀介質(zhì)中,例如只讀存儲(chǔ)器芯片、計(jì)算機(jī)存儲(chǔ)器、磁盤(pán)或其他存儲(chǔ)介質(zhì)。除了以軟件來(lái)實(shí)現(xiàn)之外,本文所述的邏輯可利用分立部件、集成電路、與可編程邏輯設(shè)備(諸如,現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或微處理器)結(jié)合使用的可編程邏輯,或者包括它們?nèi)我饨M合的任何其他設(shè)備來(lái)體現(xiàn)。所有此類(lèi)實(shí)施例旨在落入本發(fā)明的范圍之內(nèi)。
應(yīng)該理解的是,本發(fā)明所公開(kāi)的實(shí)施例不限于這里所公開(kāi)的特定結(jié)構(gòu)、處理步驟或材料,而應(yīng)當(dāng)延伸到相關(guān)領(lǐng)域的普通技術(shù)人員所理解的這些特征的等同替代。還應(yīng)當(dāng)理解的是,在此使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,而并不意味著限制。
說(shuō)明書(shū)中提到的“一個(gè)實(shí)施例”或“實(shí)施例”意指結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,說(shuō)明書(shū)通篇各個(gè)地方出現(xiàn)的短語(yǔ)“一個(gè)實(shí)施例”或“實(shí)施例”并不一定均指同一個(gè)實(shí)施例。
雖然本發(fā)明所公開(kāi)的實(shí)施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所公開(kāi)的精神和范圍的前提下,可以在實(shí)施的形式上及細(xì)節(jié)上作任何的修改與變化,但本發(fā)明的專(zhuān)利保護(hù)范圍,仍須以所附的權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。