本發(fā)明涉及機器人領(lǐng)域,具體而言,涉及一種基于時間軸的機器人控制方法與裝置。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,機器人應(yīng)用越來越貼近人們的日常生活,而且機器人的技術(shù)日新月異,在現(xiàn)代工業(yè)和日常生活發(fā)揮越來越大的作用,從汽車的生產(chǎn)線到家用的機器人玩具,機器人的應(yīng)用領(lǐng)域正在不斷的擴大,機器人的用戶也從專業(yè)的操作人員、機器人愛好者普及到普通的使用者,機器人技術(shù)的發(fā)展已經(jīng)代表著一個國家的高科技發(fā)展水平,隨著機器人的普及,機器人的教育正成為越來越重要的問題。機器人技術(shù)是一門綜合了機械工程,電子工程,傳感器應(yīng)用,信息技術(shù),數(shù)學(xué),物理以及人工智能等多種學(xué)科的技術(shù),其控制程序需要由專業(yè)技術(shù)人員進(jìn)行編寫,但對于中小學(xué)生來說是機器人編程的軟件復(fù)雜,使用不易學(xué)會,甚至有的要用到專業(yè)的編程語言對普通使用者及中小學(xué)生來說很難理解。因此,如何讓更多的用戶方便的控制機器人的行為是目前亟需解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種基于時間軸的機器人控制方法與裝置,旨在改善上述問題。
本發(fā)明提供的一種基于時間軸的機器人控制方法,應(yīng)用于機器人,所述機器人包括多個動作執(zhí)行模塊,所述方法包括:獲取用戶輸入的多個操作指令,每個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊;獲取每個所述操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,當(dāng)有多個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊時,對應(yīng)該動作執(zhí)行模塊的多個所述操作指令中每相鄰的兩個所述操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點早于后一個所述操作指令的起始時間節(jié)點;基于用戶輸入的執(zhí)行指令,根據(jù)每個所述操作指令的起始時間節(jié)點將所有的所述操作指令進(jìn)行排序以形成動作指令;根據(jù)所述動作指令控制所述機器人執(zhí)行動作。
本發(fā)明提供的一種基于時間軸的機器人控制裝置,應(yīng)用于機器人,所述機器人包括多個動作執(zhí)行模塊,所述裝置包括:第一數(shù)據(jù)獲取單元,用于獲取用戶輸入的多個操作指令,每個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊;第二數(shù)據(jù)獲取單元,用于獲取每個所述操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,當(dāng)有多個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊時,對應(yīng)該動作執(zhí)行模塊的多個所述操作指令中每相鄰的兩個所述操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點早于后一個所述操作指令的起始時間節(jié)點;動作指令生成單元,用于基于用戶輸入的執(zhí)行指令,根據(jù)每個所述操作指令的起始時間節(jié)點將所有的所述操作指令進(jìn)行排序以形成動作指令;執(zhí)行單元,用于根據(jù)所述動作指令控制所述機器人執(zhí)行動作。
上述本發(fā)明提供的一種基于時間軸的機器人控制方法與裝置,本申請通過獲取用戶輸入的多個操作指令以及每個操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,從而獲取每個操作指令基于時間排序后在時間軸上形成的動作指令,進(jìn)而通過所述動作指令使得用戶通過時間軸的方式能夠更加方便的控制機器人以及定制機器人的行為,使得機器人能夠按照用戶所輸入的操作指令進(jìn)行運動。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實施例提供的機器人與本地終端交互的示意圖;
圖2為本發(fā)明實施例提供的本地終端的結(jié)構(gòu)框圖;
圖3為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的流程圖;
圖4為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第一操作界面示意圖;
圖5為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第二操作界面示意圖;
圖6為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第三操作界面示意圖;
圖7為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第四操作界面示意圖;
圖8為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第五四操作界面示意圖;
圖9為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法中的操作指令在第一操作界面上的示意圖;
圖10為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第六操作界面示意圖;
圖11為本發(fā)明第一實施例提供的一種基于時間軸的機器人控制方法的第七操作界面示意圖;
圖12為本發(fā)明第二實施例提供的一種基于時間軸的機器人控制裝置的結(jié)構(gòu)框圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,是本發(fā)明較佳實施例提供的機器人與本地終端進(jìn)行交互的示意圖。所述機器人通過網(wǎng)絡(luò)與本地終端200進(jìn)行通信連接,以進(jìn)行數(shù)據(jù)通信或交互。所述本地終端200可以是個人電腦(personal computer,PC)、平板電腦、智能手機、個人數(shù)字助理(personal digital assistant,PDA)等。在本實施例中,所述機器人100用于接收用戶通過本地終端200發(fā)送的操作指令,從而通過操作指令控制機器人100執(zhí)行與所述操作指令相應(yīng)的動作。
如圖2所示,為本發(fā)明實施例提供的一種本地終端的結(jié)構(gòu)框圖。其中,所述本地終端200包括基于時間軸的機器人控制裝置201、存儲器202、存儲控制器203、處理器204、外設(shè)接口205、輸入輸出單元206、音頻單元207和顯示單元208。
所述存儲器202、存儲控制器203、處理器204、外設(shè)接口205、輸入輸出單元206、音頻單元207和顯示單元208各元件相互之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。所述基于時間軸的機器人控制裝置201包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器202中或固化在本地終端200設(shè)備的操作系統(tǒng)(operating system,OS)中的軟件功能模塊。所述處理器204用于執(zhí)行存儲器202中存儲的可執(zhí)行模塊,例如所述基于時間軸的機器人控制裝置201包括的軟件功能模塊或計算機程序。
其中,存儲器202可以是,但不限于,隨機存取存儲器(Random Access Memory,RAM),只讀存儲器(Read Only Memory,ROM),可編程只讀存儲器(Programmable Read-Only Memory,PROM),可擦除只讀存儲器(Erasable Programmable Read-Only Memory,EPROM),電可擦除只讀存儲器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存儲器202用于存儲程序,所述處理器204在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實施例任一實施例揭示的流過程定義的服務(wù)器所執(zhí)行的方法可以應(yīng)用于處理器204中,或者由處理器204實現(xiàn)。
處理器204可能是一種集成電路芯片,具有信號的處理能力。上述的處理器204可以是通用處理器,包括中央處理器(Central Processing Unit,簡稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
所述外設(shè)接口205將各種輸入/輸入裝置耦合至處理器204以及存儲器202。在一些實施例中,外設(shè)接口205、處理器204以及存儲控制器203可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
輸入輸出單元206用于提供給用戶輸入數(shù)據(jù)實現(xiàn)用戶與本地終端200的交互。所述輸入輸出單元206可以是,但不限于,鼠標(biāo)和鍵盤等。
音頻單元207向用戶提供音頻接口,其可包括一個或多個麥克風(fēng)、一個或者多個揚聲器以及音頻電路。
顯示單元208在本地終端200與用戶之間提供一個交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)給用戶參考。在本實施例中,所述顯示單元208可以是液晶顯示器或觸控顯示器。若為觸控顯示器,其可為支持單點和多點觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點和多點觸控操作是指觸控顯示器能感應(yīng)到來自該觸控顯示器上一個或多個位置處同時產(chǎn)生的觸控操作,并將該感應(yīng)到的觸控操作交由處理器204進(jìn)行計算和處理。
請參閱圖3,是第一實施例提供的一種基于時間軸的機器人控制方法的流程圖。下面將對圖3所示的具體流程進(jìn)行詳細(xì)闡述。
步驟S301,獲取用戶輸入的多個操作指令,每個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊。
在本實施例中,所述多個操作指令是指用于對機器人的每個動作進(jìn)行操作的控制指令。例如,控制機器人的手臂運動的操作指令。
在本實施例中,所述動作執(zhí)行模塊是指機器人按照功能所區(qū)分的幾個模塊,包括運動模塊、語音模塊、傳感器模塊或顯示模塊等執(zhí)行模塊。所述運動模塊是指機器人的手臂、頭部、腿等能運動的部分。具體地,例如,如圖4和圖5所示,在操作界面中,所述動作執(zhí)行模塊中的底盤,即機器人的腿還對應(yīng)著前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、原地右轉(zhuǎn)和原地左轉(zhuǎn)等動作。例如,如圖6所示,對于所述頭部可執(zhí)行的動作可以是搖頭、左轉(zhuǎn)頭和右轉(zhuǎn)頭等。例如,如圖7所示,所述手臂包括右手臂和左手臂,每個手臂又對應(yīng)著各種執(zhí)行動作,如搖動手臂、舉起手臂、向前伸展、向下伸展或者向后伸展等。
在本實施例中,所述運動模塊還可以包括表情模塊。如圖8所示,所述表情模塊可以包括多個表情。例如,淡定、開心、喜歡、調(diào)皮、鄙視、憤怒、煩悶、悲傷、驚奇、正確或者是錯誤等多個表情。
在本實施例中,例如當(dāng)所述運動執(zhí)行模塊為機器人的手臂時,當(dāng)用戶輸入的操作指令為控制機器人的右手臂向下舞動2秒時,如圖7所示,即用戶將操作界面中右臂所對應(yīng)的向下的執(zhí)行動作拖拽到時間軸上,從而選定當(dāng)前執(zhí)行動作為右手臂向下舞動。當(dāng)機器人接收到控制指令時便可以按照用戶輸入的操作指令進(jìn)行右手臂的向下舞動,并且舞動2秒,2秒后結(jié)束舞動。
在本實施例中,語音模塊包括了發(fā)聲模塊和拾音模塊。發(fā)聲模塊用于發(fā)出聲音。拾音模塊用于采集聲音。例如,用戶輸入一個操作指令為采集當(dāng)前環(huán)境下的聲音時并且采集時間為10秒,機器人根據(jù)用戶輸入的操作指令使得動作執(zhí)行模塊中的語音模塊進(jìn)行聲音的采集,具體的,通過拾音模塊采集當(dāng)前環(huán)境下的聲音并且采集聲音的時間為10秒。其中,傳感器模塊包括距離傳感器、光線傳感器、濕度傳感器、地磁傳感器或加速度傳感器等,在此不作具體限定。顯示模塊是用來展示機器人當(dāng)前狀態(tài)的模塊,其中,所述顯示模塊可以是顯示屏或者燈光等,在此不作具體限定。
在本實施例中,每個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊,即機器人根據(jù)一個操作指令只能執(zhí)行一個動作。一個所述動作執(zhí)行模塊可以對應(yīng)一個或多個操作指令。例如,所述運動執(zhí)行模塊中的運動模塊,運動模塊包括手臂、頭部、腿等,所述操作指令可以是控制手臂運動,也可以是控制頭部運動。例如,在t1時刻設(shè)置一個手臂轉(zhuǎn)動的操作指令,在t2實時刻設(shè)置一個頭部轉(zhuǎn)動的操作指令,t2與t1在時間上不受限制,例如,t2與t1可以是同一時刻,也可以是不同時刻。
在本實施例中,可以操作指令是通過用戶基于本地終端輸入的操作指令。例如,如圖4所示,用戶可以通過操作界面將預(yù)先設(shè)置好的動作執(zhí)行指令拖拽到時間軸上,從而生成基于時間軸的一個操作指令,即為預(yù)先設(shè)置好的動作執(zhí)行指令設(shè)置一個執(zhí)行的起始時間和結(jié)束時間。具體地,如圖9所示,當(dāng)用戶將預(yù)先設(shè)置好的動作執(zhí)行指令拖拽到時間軸上時,本地終端通過獲取所述動作執(zhí)行指令在操作界面上的橫縱坐標(biāo),從而通過獲取橫坐標(biāo)來獲取該動作執(zhí)行指令的起始時間節(jié)點或者是執(zhí)行時間或者是結(jié)束時間節(jié)點等,通過獲取縱坐標(biāo)來獲取該動作執(zhí)行指令所表征的動作執(zhí)行模塊中的具體的動作執(zhí)行模塊。從而獲取基于時間軸的一個操作指令。該操作指令包括動作執(zhí)行時間以及動作執(zhí)行模塊。
步驟S302,獲取每個所述操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,當(dāng)有多個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊時,對應(yīng)該動作執(zhí)行模塊的多個所述操作指令中每相鄰的兩個所述操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點早于后一個所述操作指令的起始時間節(jié)點。
在本實施例中,通過預(yù)先建立以時間點為橫軸和以動作執(zhí)行模塊為縱軸的二維坐標(biāo),坐標(biāo)系里分布有所述操作指令,所述操作指令的橫坐標(biāo)表示時間,所述操作指令的縱坐標(biāo)表示運動執(zhí)行模塊;獲取每個所述操作指令在所述橫軸上所對應(yīng)的時間點,從而將所述時間點作為該操作指令的起始時間節(jié)點。獲取每個所述操作指令的執(zhí)行時間,從而基于所述執(zhí)行時間與所述起始時間節(jié)點之和獲取該操作指令的結(jié)束時間節(jié)點。具體地獲取每個所述操作指令的執(zhí)行時間參數(shù),基于所述執(zhí)行時間參數(shù)獲取執(zhí)行時間,將所述執(zhí)行時間與所述起始時間節(jié)點之和作為所述結(jié)束時間節(jié)點。
在本實施例中,所述基于所述執(zhí)行時間參數(shù)獲取執(zhí)行時間可以是獲取用戶輸入的執(zhí)行時間參數(shù)獲取相應(yīng)的執(zhí)行時間,也可以是獲取用戶所設(shè)置的動作執(zhí)行模塊預(yù)設(shè)的固定時間。所述固定時間是指動作本身所消耗的固定時間。例如,問候語,當(dāng)機器人執(zhí)行問候的時候是需要將問候語一次性說完的,因此說完問候語所對應(yīng)的時間的固定的一個時間。
例如,用戶將動作執(zhí)行模塊中的運動模塊拖拽到坐標(biāo)系上,通過坐標(biāo)系獲取所述運動模塊在所述坐標(biāo)系上的橫縱坐標(biāo),從而獲取該運動模塊所執(zhí)行的起始時間與結(jié)束時間。其中,每個動作執(zhí)行模塊中子模塊之間相互獨立,即運動模塊、語音模塊、傳感器模塊或顯示模塊等執(zhí)行模塊之間是相互獨立的,均是可以單獨控制的。例如,先拖拽一個運動模塊到T3,再拖拽一個語音模塊到T4,其中T4大于T3,運動模塊的執(zhí)行時間為2秒,語音模塊的執(zhí)行時間為3秒,T4的數(shù)值等于T3的數(shù)值加上1秒后的數(shù)值。當(dāng)運動模塊的執(zhí)行1秒后,語音模塊開始執(zhí)行,當(dāng)總執(zhí)行時間為2秒時,運動模塊執(zhí)行完畢,此時語音模塊仍需執(zhí)行2秒后結(jié)束,因此此時運動模塊與語音模塊之間是互不相關(guān)的。
作為一種實施方式,可以通過獲取用戶將每個操作指令拖拽到坐標(biāo)系上的橫坐標(biāo)所對應(yīng)的參數(shù)獲取每個操作指令的執(zhí)行時間參數(shù),從而基于所述執(zhí)行時間參數(shù)獲取執(zhí)行時間。即預(yù)先為坐標(biāo)系上的每個橫坐標(biāo)建立一個時間參數(shù),從而通過預(yù)設(shè)的時間參數(shù)來獲取操作指令所對應(yīng)的執(zhí)行時間。例如,如圖4所示,在T1所對應(yīng)的點設(shè)置一個時間參數(shù),在T11所對應(yīng)的點設(shè)置一個時間參數(shù),從而通過獲取T1所對應(yīng)的時間與T11所對應(yīng)時間來獲取T1與T11之間的差值,從而獲取操作指令1的執(zhí)行時間。
作為另一種實施方式,可以通過獲取用戶輸入的執(zhí)行時間與該執(zhí)行時間相對應(yīng)的操作指令的起始時間節(jié)點的和,從而獲取結(jié)束時間節(jié)點。例如,如圖10和圖11所示,用戶先為淡定表情設(shè)置一個執(zhí)行時間,然后通過將淡定表情拖拽到時間軸上,從而通過時間軸為淡定表情選定開始時間,即起始時間節(jié)點。
在本實施例中,所述的每相鄰的兩個所述操作指令是指基于時間軸上的兩個相鄰操作指令,即是指兩個相鄰時間點所對應(yīng)的操作指令。如圖4所示,例如T1時刻對應(yīng)的操作指令1與T2時刻對應(yīng)的操作指令2,T1與T2為相鄰的兩個時間點,因此操作指令1與操作指令2為兩個相鄰的操作指令。同理,又如T2時刻對應(yīng)的操作指令2與T3時刻對應(yīng)的操作指令也為兩個相鄰的操作指令。T1時刻對應(yīng)的操作指令1與T3時刻對應(yīng)的操作指令3則不為相鄰的兩個操作指令。
在本實施例中,所述早于是指一個所述動作執(zhí)行模塊對應(yīng)有多個操作指令時,相鄰兩個操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點與后一個所述操作指令的起始時間節(jié)點之間的時間間隔大于或等于零。例如,動作模塊所對應(yīng)的操作指令1與操作指令3,操作指令1的結(jié)束時間節(jié)點為T11,操作指令3的起始時間節(jié)點為T3,由于橫軸上的時間節(jié)點是從小到大的順序進(jìn)行排序的,T11在橫軸上位于T3之前,因此T3所對應(yīng)的數(shù)值大于T11所對應(yīng)的數(shù)值。即一個動作執(zhí)行模塊所對應(yīng)的所述兩個相鄰操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點早于后一個所述操作指令的起始時間節(jié)點。所述前一個操作指令即為操作指令1,后一個操作指令即為操作指令3。所述前與后是指按照時間先后順序進(jìn)行排序區(qū)分。
步驟S303,基于用戶輸入的執(zhí)行指令,根據(jù)每個所述操作指令的起始時間節(jié)點將所有的所述操作指令進(jìn)行排序以形成動作指令。
在本實施例中,所述執(zhí)行指令是指執(zhí)行用戶輸入的所有操作指令的一個指令。例如,獲取用戶通過點擊本地終端上的開始按鈕,從而觸發(fā)的執(zhí)行指令。
在本實施例中,當(dāng)獲取到用戶輸入的執(zhí)行指令后,按照每個所述操作指令的起始時間節(jié)點將所有的所述操作指令進(jìn)行排序以形成動作指令。其中,所述動作指令是指所有操作指令所集成在一起后的一連串動作所對應(yīng)的指令。
在本實施例中,所述排序是指按照時間先后順序進(jìn)行排序。如圖9所示,所述動作指令中的操作指令經(jīng)過排序后的順序為:操作指令1、操作指令2和操作指令3。
步驟S304,將所述動作指令中每相鄰的兩個所述操作指令之間使用預(yù)設(shè)字段進(jìn)行分割并存儲到本地。
作為一種實施方式,將每相鄰的兩個操作指令之間使用預(yù)設(shè)字段進(jìn)行分割是指將兩個操作指令進(jìn)行區(qū)分,以使用戶能夠更加快速的從多個操作指令中獲取其中任意一個操作指令。例如,通過豎線的形式將每相鄰的兩個操作指令進(jìn)行分割,具體地,操作指令A(yù)|操作指令B|操作指令C?!皘”表示豎線,即為預(yù)設(shè)字段。其中,所述預(yù)設(shè)字段還可以是頓號、或者是雙豎線等,在此不作具體限定。
在本實施例中,將使用預(yù)設(shè)字段進(jìn)行分割后的動作指令存儲到本地。即通過先將每個動作指令之間使用預(yù)設(shè)字段進(jìn)行分割,然后將所有的動作指令進(jìn)行存儲。以使其他用戶可以通過使用所存儲的動作指令使得其他機器人按照已經(jīng)設(shè)置好了的動作指令繼續(xù)執(zhí)行,從而使得其他用戶可以不用再浪費時間進(jìn)行設(shè)置機器人的動作。具體的,通過將存儲到本地的動作指令通過網(wǎng)絡(luò)的形式發(fā)送給其他用戶,以使存儲在本地的動作指令可以得到重現(xiàn)與傳播。其中,所述重現(xiàn)是指用戶基于已經(jīng)存儲到本地的動作指令使得另外的機器人執(zhí)行相應(yīng)的動作,從而實現(xiàn)動作指令的重現(xiàn)。所述傳播是指用戶通過拷貝動作指令或者是通過網(wǎng)絡(luò)傳輸?shù)姆绞綄⒋鎯υ诒镜氐膭幼髦噶畎l(fā)送給其他用戶,以使其他用戶能夠通過所接收到的動作指令控制機器人繼續(xù)執(zhí)行動作。
作為一種實施方式,所述動作指令存儲的格式可以參照表1。
表1
其中,#urlpath表示一個動作參數(shù)。每個動作參數(shù)即為一個操作指令。所述備注是指對與每個動作參數(shù)的一個解釋說明。動作編號是指為每個動作參數(shù)設(shè)置的一個序號。如動作編號位0的表示動作參數(shù)#urlpath#volume。
步驟S305,根據(jù)所述動作指令控制所述機器人執(zhí)行動作。
在本實施例中,獲取用戶輸入的總執(zhí)行時間;當(dāng)所述總執(zhí)行時間大于或等于所述動作指令的執(zhí)行時間長度時,根據(jù)所述動作指令控制所述機器人執(zhí)行所述動作指令所對應(yīng)的動作;當(dāng)所述總執(zhí)行時間小于所述動作指令的執(zhí)行時間長度時,基于所述總執(zhí)行時間獲取所述動作指令中需要執(zhí)行的所有的所述操作指令;根據(jù)所述操作指令控制所述機器人執(zhí)行動作。
在本實施例中,將所述動作指令發(fā)送給機器人,以使機器人按照所述動作指令以及所述執(zhí)行指令進(jìn)行執(zhí)行與所述動作指令相應(yīng)的動作。例如,當(dāng)用戶輸入的動作指令的執(zhí)行時間為20秒,即總執(zhí)行時間為20秒,操作指令1的執(zhí)行時間為10秒,操作指令2的執(zhí)行時間為20秒,操作指令1與操作指令2之間間隔2秒,操作指令1與操作指令2對應(yīng)一個動作執(zhí)行模塊,操作指令1的起始時間節(jié)點為0,即從坐標(biāo)原點開始,結(jié)束時間節(jié)點為第1秒。操作指令2的起始時間節(jié)點為第12秒,結(jié)束時間節(jié)點為第32秒。操作指令3的執(zhí)行時間為30秒,操作指令3的起始時間節(jié)點為第20秒,結(jié)束時間節(jié)點為第50秒。即操作指令3的起始時間是從第20秒開始執(zhí)行。操作指令1、操作指令2和操作指令3均屬于同一坐標(biāo)系下。則動作指令所執(zhí)行的結(jié)果為:操作指令1執(zhí)行完成,操作指令2執(zhí)行8秒后結(jié)束,操作指令3執(zhí)行20秒后結(jié)束。由于操作指令1與操作指令2屬于同一動作執(zhí)行模塊,操作指令3與操作指令1或操作指令2不屬于同一動作執(zhí)行模塊,因此,操作指令3與操作指令1和操作指令2是相互獨立的,因此操作指令3能夠執(zhí)行20秒。又如,當(dāng)總執(zhí)行時間為40秒時,操作指令1、操作指令2與操作指令3均能夠在總執(zhí)行時間內(nèi)執(zhí)行完畢。
請參閱圖12,為本發(fā)明第二實施例提供的一種基于時間軸的機器人控制裝置的功能模塊示意圖。所述基于時間軸的機器人控制裝置600包括第一數(shù)據(jù)獲取單元610、第二數(shù)據(jù)獲取單元620、動作指令生成單元630、數(shù)據(jù)設(shè)置單元640和執(zhí)行單元650。
第一數(shù)據(jù)獲取單元610用于獲取用戶輸入的多個操作指令,每個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊。
所述第二數(shù)據(jù)獲取單620元用于獲取每個所述操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,當(dāng)有多個所述操作指令對應(yīng)一個所述動作執(zhí)行模塊時,對應(yīng)該動作執(zhí)行模塊的多個所述操作指令中每相鄰的兩個所述操作指令中的前一個所述操作指令的結(jié)束時間節(jié)點早于后一個所述操作指令的起始時間節(jié)點。
其中,所述的第二數(shù)據(jù)獲取單元620還包括:數(shù)據(jù)建立單元621、數(shù)據(jù)獲取子單元622和時間獲取子單元623。
數(shù)據(jù)建立單元621,用于建立以時間點為橫軸和以動作執(zhí)行模塊為縱軸的二維坐標(biāo),坐標(biāo)系里分布有所述操作指令,所述操作指令的橫坐標(biāo)表示時間,所述操作指令的縱坐標(biāo)表示運動執(zhí)行模塊。
數(shù)據(jù)獲取子單元622,用于獲取每個所述操作指令在所述橫軸上所對應(yīng)的時間點,將所述時間點作為該操作指令的起始時間節(jié)點。
時間獲取子單元623,用于獲取每個所述操作指令的執(zhí)行時間,將所述執(zhí)行時間與所述起始時間節(jié)點之和作為該操作指令的所述結(jié)束時間節(jié)點。
其中,所述時間獲取子單元623具體用于:獲取每個所述操作指令的執(zhí)行時間參數(shù);基于所述執(zhí)行時間參數(shù)獲取執(zhí)行時間;將所述執(zhí)行時間與所述起始時間節(jié)點之和作為所述結(jié)束時間節(jié)點。
所述動作指令生成單元630用于基于用戶輸入的執(zhí)行指令,根據(jù)每個所述操作指令的起始時間節(jié)點將所有的所述操作指令進(jìn)行排序以形成動作指令。
所述數(shù)據(jù)設(shè)置單元640用于將所述動作指令中每相鄰的兩個所述操作指令之間使用預(yù)設(shè)字段進(jìn)行分割并存儲到本地。
所述執(zhí)行單元650用于根據(jù)所述動作指令控制所述機器人執(zhí)行動作。
其中,所述執(zhí)行單元650還用于:獲取用戶輸入的總執(zhí)行時間;當(dāng)所述總執(zhí)行時間大于或等于所述動作指令的執(zhí)行時間長度時,根據(jù)所述動作指令控制所述機器人執(zhí)行所述動作指令所對應(yīng)的動作;當(dāng)所述總執(zhí)行時間小于所述動作指令的執(zhí)行時間長度時,基于所述總執(zhí)行時間獲取所述動作指令中需要執(zhí)行的所有的所述操作指令;根據(jù)所述操作指令控制所述機器人執(zhí)行動作。
綜上所述,本發(fā)明提供一種基于時間軸的機器人控制方法與裝置,本申請通過獲取用戶輸入的多個操作指令以及每個操作指令的起始時間節(jié)點和結(jié)束時間節(jié)點,從而獲取每個操作指令基于時間排序后在時間軸上形成的動作指令,進(jìn)而通過所述動作指令使得用戶通過時間軸的方式能夠更加方便的控制機器人以及定制機器人的行為,使得機器人能夠按照用戶所輸入的操作指令進(jìn)行運動。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。