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