專利名稱:機器人設備和機器人設備動作控制方法
技術領域:
本發明涉及一種機器人設備和用于控制其動作的方法,特別涉及一種具有多個動作裝置的機器人設備和用于控制其動作的方法。
背景技術:
最近幾年,外表像動物如狗的機器人設備在市場上出現。該機器人設備象動物一樣行動,響應外界信息或它自己的內部狀態,如它的情感狀態。
同時,在這種類型的機器人設備中,可以相互獨立地使能它的動作部件。因此,如果同時使能多個動作部件,則需要對機器人設備進行同步控制。例如,在特定機器人設備中,當通過控制各個關節來逐漸改變機器人設備的姿態時,可以同時執行由多個LED形成的眼睛運動和通過例如揚聲器的語音輸出。在這種情況下,必須同步控制各個動作部件。
在這種對各個動作部件的同步控制中,必須從開始同步動作的時刻設置同步,同時在動作期間必須繼續設置同步。
原因是如果控制同步陷于混亂,各個動作部件的動作將不相關地出現而缺乏協調性。
發明內容
本發明是鑒于相關技術的上述現狀而提出的,并且它的目的是提供一種其中可以準確有效地同步多個動作部件的機器人設備和用于控制這種機器人設備的方法。
為實現上述目的,本發明提供一種機器人設備,包括用于執行動作的多個動作裝置和用于控制多個動作裝置的動作的控制裝置。控制裝置使多個動作裝置緊接在由動作裝置執行的前一動作之后相互同步地執行動作。
該機器人設備緊接在完成前面動作之后無延時地執行同步動作。
為實現上述目的,本發明還提供一種用于機器人設備的動作控制方法,其中,作為在時間上緊接在由動作裝置執行的前一動作之后的動作,執行多個動作裝置的同步動作。
通過機器人設備的該動作控制方法,機器人設備能夠緊接在完成前面動作之后無延時地執行同步動作。
為實現上述目的,本發明還提供一種機器人設備,包括用于執行動作的多個動作執行裝置和用于控制動作執行裝置的多個動作控制裝置,其中,機器人設備進一步包括命令控制裝置,用于輸出與用于使機器人設備執行預設動作的動作執行命令相關的多個同步命令;和命令傳輸控制裝置,用于控制由命令控制裝置輸出的同步命令,以將同步命令發送到多個動作控制裝置。命令控制裝置向多個同步命令中的每個提供一個至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數的標號,以輸出同步命令。命令傳輸控制裝置根據這些ID和總數同步發送多個同步命令。
該機器人設備緊接在完成前面動作之后無延時地執行同步動作。
為實現上述目的,本發明還提供一種用于控制機器人設備的動作的方法,該機器人設備包括用于執行動作的多個動作執行裝置和用于控制多個動作執行裝置的多個動作控制裝置,其中,該方法包括如下步驟命令控制裝置向與使機器人設備執行預設動作的動作執行命令相關的多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數。由命令傳輸控制裝置控制由命令控制裝置輸出的同步命令,以根據這些ID和總數使多個同步命令得以同步,從而將同步命令發送到多個動作控制裝置。
通過機器人設備的該動作控制方法,機器人設備緊接在完成前面動作之后無延時地執行同步動作。
為實現上述目的,本發明還提供一種機器人設備,包括用于執行動作的多個動作執行裝置和用于控制多個動作執行裝置的動作的多個動作控制裝置,其中,機器人設備進一步包括命令控制裝置,用于輸出與用于執行機器人設備預設動作的動作執行命令相關的多個同步命令;多個總線,在其上傳輸動作執行命令;為每個總線進行提供的多個命令傳輸控制裝置,用于控制由命令控制裝置輸出的同步命令,并且將同步命令傳輸到多個動作控制裝置;和共有存儲器,可以由多個命令傳輸控制裝置進行訪問。命令控制裝置向多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數,并且輸出同步命令。命令傳輸控制裝置使這些ID和總數存儲在共有存儲器中,并且參考共有存儲器來同步多個同步命令,以通過總線將經過同步的同步命令發送到動作控制裝置。
該機器人設備緊接在完成前面動作之后無延時地執行同步動作。
為實現上述目的,本發明還提供一種用于控制機器人設備的動作的方法,該機器人設備包括用于執行動作的多個動作執行裝置和用于控制多個動作執行裝置的動作的多個動作控制裝置,其中,該方法包括如下步驟命令控制裝置向與使機器人設備執行預設動作的動作執行命令相關的多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數。在用于傳輸命令的多個總線中的每個總線上,提供有命令傳輸控制裝置,用于控制由命令控制裝置輸出的同步命令,以使ID和總數存儲在共有存儲器中。命令傳輸控制裝置參考共有存儲器來同步可以由多個命令傳輸控制裝置進行訪問的同步命令,以通過總線將同步命令傳輸到多個命令傳輸控制裝置。
通過機器人設備的該動作控制方法,機器人設備緊接在完成前面動作之后無延時地執行同步動作。
通過閱讀如附圖所示的本發明實施例,本發明的其它目的、特性和優點將會變得更加清楚。
圖1是示出實施本發明的機器人設備外貌的透視圖;圖2是示出機器人設備電路結構的方框圖;圖3是示出機器人設備軟件結構的方框圖;圖4是示出機器人設備軟件結構中的應用層的方框圖;圖5是示出機器人設備軟件結構中的應用層結構的方框圖;圖6是示出應用層行為模型庫的結構的方框圖;圖7示出作為機器人設備行為決策信息的有限概率自動機;圖8示出為有限概率自動機的每個節點提供的狀態變換表;圖9A和9B是示出初始動作和同步動作的示意圖;圖10是示出實施本發明的機器人設備基本部分結構的方框圖;圖11是示出命令控制器和數據庫之間關系的方框圖;圖12A和12B是示出發光命令遲于運動同步命令的情況的示意圖;
圖13A和13B是示出由以一組數據的形式的同步數據引起同步動作的情況的示意圖;圖14是示出數據總線被鎖定情況的示意圖;圖15是示出數據總線被鎖定的另一情況的示意圖;圖16是示出在本發明的應用中所允許的處理的示意圖;圖17是示出實施本發明的機器人設備基本部分具體結構的方框圖;圖18是示出作為機器人設備基本部分組成單元的命令傳輸器結構的示意圖;圖19是示出作為機器人設備基本部分組成單元的存儲器結構的概略圖;圖20是示出上述部分中處理序列的流程圖;圖21是示出在本發明的應用中所允許的具體處理的概略圖;圖22是示出通過傳輸完成信號開始從命令控制器輸出同步命令的情況的示意圖;圖23是示出在通過傳輸完成信號開始從命令控制器輸出同步命令的情況下通過數據總線從命令傳輸器發送數據的時刻的示意圖;圖24示出通過發出傳輸使能狀態指示信號開始從命令控制器輸出同步命令的情況;圖25是一個方框圖,示出實施本發明的機器人設備基本部分的特定結構,并且特定示出其中命令傳輸器和各個控制器通過獨立數據總線分別進行相互連接的結構;圖26示出作為機器人設備基本部分組成單元的命令傳輸器結構;圖27是示出作為機器人設備基本部分組成單元的存儲器結構的概略圖;圖28是示出圖25的結構中處理順序的流程圖。
具體實施例方式
將參照附圖對本發明的優選實施例進行詳細說明。該實施例面向響應周圍環境(外因)和內部狀態(內因)而自主行動的自主機器人設備。
在本實施例中,首先對機器人設備的結構進行說明,然后對使用機器人設備的日常功能進行詳細說明。
(1)本實施例的機器人設備的結構如圖1所示,機器人設備就是模擬一個動物如‘狗’的所謂寵物機器人,并且分別由連接在軀干單元2左右邊的前后方上的腿部單元3A、3B、3C和3D和連接到軀干單元2前后端的頭部單元4和尾部單元5進行構成。
參照圖2,軀干單元2包括控制器單元16,由通過內部總線15相互連接在一起的CPU(central processing unit,中央處理單元)10、DRAM(DynamicRandom Access Memory,動態隨機存取存儲器)11、閃存ROM(read-only memory,只讀存儲器)12、PC(personal computer,個人計算機)卡接口電路13和信號處理電路14以及用作機器人設備1電源的電池17組成。軀干單元2還安裝有用于檢測機器人設備1的姿態和運動加速的角速度傳感器18和加速傳感器19。
在頭部單元4上,在適當的位置上安裝有用于對外界狀況進行攝像的CCD(charge coupled device,電荷耦合器件)攝像機20、用于檢測由于用戶的物理刺激如“撫摸”或“輕拍”而產生的壓力的觸摸傳感器21、用于測量前方對象距離的距離傳感器22、用于采集外部聲音的麥克風23、用于輸出聲音如悲嗥的揚聲器24和相當于機器人設備1‘眼睛’的多個LED(lightemitting diode,發光二級管)。
腿部單元3A到3D的關節部分、腿部單元3A到3D與軀干單元2的連接部分、頭部單元4與軀干單元2的連接部分和尾部單元5的尾巴5A的連接部分提供有大量對應于自由度數目的調節器251到25n和電位計261到26n。例如,調節器251到25n包括飼服馬達。通過驅動飼服馬達來控制腿部單元3A到3D,以變換到目標姿態或運動。
傳感器,如角速度傳感器18、加速傳感器19、觸摸傳感器21、地面接觸傳感器23R/L、姿態傳感器24、距離傳感器25、麥克風26、距離傳感器22、麥克風23、揚聲器24和電位計251到25n通過相關集線器271到27n連接到控制器16的信號處理電路14,而攝像設備20和電池17直接連接到信號處理電路14。
信號處理電路14順序捕獲從上述各個傳感器提供的傳感器數據、圖象數據或語音數據,以使數據通過內部總線15順序存儲在DRAM 11的預設位置中。另外,信號處理電路14順序捕獲表示從電池17提供的剩余電池電量的剩余電池電量數據,以將如此捕獲的數據存儲在DRAM 11的預設位置中。
隨后當CPU 10執行機器人設備1的動作控制時,使用如此存儲在DRAM 11中的各個傳感器數據、圖象數據、語音數據和剩余電池電量數據。
實際上,在機器人設備1的初始加電階段,CPU 10直接或通過PC卡接口電路13讀出插在軀干單元2的PC卡插槽(未示出)中的存儲器卡28或存儲在閃存ROM 12中的控制程序,以存儲在DRAM 11中。
然后CPU 10根據從信號處理電路14順序存儲到DRAM 11的傳感器數據、圖象數據、語音數據或剩余電池電量數據,檢查它自己的狀態和周圍狀態以及可能出現的用戶命令或動作。
CPU 10還根據檢查結果和存儲在DRAM 11中的控制程序,確定下一隨后動作,同時根據所確定的結果,在必要時驅動調節器251到25n,以產生行為,如上下或左右擺動頭部單元4或移動腿部單元3A到3D進行行走或跳躍。
CPU 10在必要時生成語音數據,并且通過信號處理電路14將所生成的數據作為語音信號發送到揚聲器24,以將從語音信號得來的語音輸出到外界或打開/關閉或閃爍多個LED。
采用這種方式,本機器人設備1能夠自主行動,以響應它自己的狀態和周圍狀態或用戶命令或動作。
(2)控制程序的軟件結構圖3示出機器人設備1中上述控制程序的軟件結構。圖3中,設備驅動程序層30位于控制程序的最低層,并且形成為由多個設備驅動程序構成的設備驅動程序集31。每個設備驅動程序是一個允許直接訪問在常規計算機中使用的硬件如圖象拾取設備20(圖2)或定時器、并且執行處理以響應相關硬件中斷的對象。
機器人服務器對象32由如下部件組成虛擬機器人33;電源管理器34,包括一組負責開關電源的軟件項;設備驅動程序管理器35,包括一組監督各種其它設備驅動程序的軟件項;和設計機器人36,包括一組監督機器人設備1機構的軟件項。虛擬機器人33,位于設備驅動程序層30的最低層,包括一組提供用于訪問硬件項(包括上述各種傳感器和調節器251到25n))接口的軟件項。
管理器對象37由對象管理器38和服務管理器39構成。對象管理器38是一組軟件項,用于監督包括在機器人服務器對象32、中間件層40和應用層41中的各個軟件項的引導和結束,而服務管理器39是一組軟件項,用于根據存儲在存儲器卡28(圖2)中的連接文件所表述的各個對象間的連接信息監督與各個對象的連接。
中間件層40位于機器人服務器對象32的上層,并且由一組提供機器人設備1基本功能,如圖象處理或語音處理,的軟件項構成。應用層41位于中間件層40的上層,并且是一組用于根據構成中間件層40的軟件項的處理結果決定機器人設備1行為的軟件項。
圖4示出中間件層40和應用層41的特定軟件結構。
參照圖4,中間件層40,包括識別系統60,具有用于噪聲、溫度或亮度檢測、音階識別、距離或姿勢檢測,用于觸摸傳感器,用于運動檢測和用于顏色識別的信號處理模塊50到58和輸入語義轉換器模塊59;和輸出系統69,具有輸出語義轉換器模塊68和用于姿態管理、跟蹤、運動再現、行走、從落下狀態恢復、LED發光和用于聲音再現的信號處理模塊61到67。
識別系統60的信號處理模塊50到58從由機器人服務器對象32的虛擬機器人33從DRAM 11(圖2)讀出的傳感器數據、圖象數據和語音數據捕獲相關數據,以對數據進行處理并且將處理結果發送到輸入語義轉換器模塊59。注意,虛擬機器人33構造為用于根據預設通信協議對信號進行交換或轉換的組件。
輸入語義轉換器模塊59識別自己的狀態、周圍狀態、用戶命令或動作,如“煩惱”、“熱情”、“光”、“檢測到一個球”、“檢測到下落”、“被撫摸”、“被輕拍”、“聽到do-mi-so(多-米-索)音階”、“檢測到一個運動對象”或“檢測到一個障礙”,以將識別結果輸出到應用層41(圖3)。
如圖5所示,應用層41由五個模塊構成,即行為模型庫70、行為開關模塊71、學習模塊72、情感模型73和本能模型74。
如圖6所示,在行為模型庫70中,提供有與多個預選條件項,如‘剩余電池電量少’、‘從下落狀態恢復’、‘避開一個障礙’、‘表達一個情感’或‘檢測到一個球’相關聯的各個獨立行為模型701到70n。
當從輸入語義轉換器模塊59提供識別結果,或者從提供最后一次識別結果的時間開始超過預設時間時,行為模型701到70n參考由情感模型73保存的情感參數值和由本能模型74保存的相應欲望參數值,決定下一行為,以將決定結果發送到行為開關模塊71。
在本實施例中,行為模型701到70n使用稱作有限概率自動機的算法作為決定下一行為的技術。該算法根據為相互連接各個節點NODE0到NODEn的弧ARC1到ARCn1設置的變換概率值P1到Pn,從概率上確定從節點NODE0到NODEn中的哪個節點變換到這些節點NODE0到NODEn中的哪個節點。
具體地說,每個行為模型701到70n為每個節點NODE0到NODEn包括圖8所示的狀態變換表80,形成與這些節點NODE0到NODEn相關聯的自己的行為模型701到70n。
在狀態變換表80中,作為節點NODE0到NODEn中變換條件的輸入事件(識別結果)以優先次序列在‘輸入事件名稱’列中,并且用于變換條件的進一步條件在‘數據名稱’和‘數據范圍’列的相關行中進行表述。
因此,在圖8的狀態變換表80所示的節點NODE100中,識別結果‘檢測到球’(BALL)、球大小(SIZE)為‘0-1000’與識別結果一起給出,表示用于變換到另一節點的條件。類似地,識別結果‘檢測到一個障礙(OBSTACLE)’、距障礙的距離(DISTANCE)的范圍為‘0-100’與識別結果一起給出,表示用于變換到另一節點的條件。
另外,在當前節點NODE100中,如果沒有輸入任何識別結果,但是周期性地由行為模型701到70n進行參考的參數值中,保存在情感模型73中的各個情感和欲望的參數值中的參數值‘快樂’(JOY)、‘驚奇’(SURPRISE)和‘悲傷’(SADNESS)中的任何一個處于“50至100”之間的范圍,也可能變換到另一節點。
而且,在狀態變換表80中,可以從節點NODE0到NODEn進行變換的目標節點名稱在‘到其它節點的變換概率’列的‘變換目標節點’行中示出。另外,當滿足在‘輸入事件名稱’、‘數據名稱’和‘數據范圍’列中表述的所有條件時可以變換到其它節點NODE0到NODEn的變換概率輸入到‘到其它節點的變換概率’列的相應位置中。在變換到節點NODE0到NODEn的時候要輸出的行為在‘到其它節點的變換概率’列的‘輸出行為’行中表示。同時,在‘到其它節點的變換概率’列中,每一行的概率值總和為100%。
因此,在由圖8的狀態變換表80表示的節點NODE100中,如果識別結果為‘檢測到球’并且球的大小(SIZE)在‘0至1000’的范圍內,可以變換到‘節點NODE120(節點120)’的概率為30%,并且然后輸出行為“動作(ACTION)1”。
在每個行為模型701到70n中,每個均表述為該狀態變換表80的多個節點NODE0到NODEn集串聯在一起,從而根據來自輸入語義轉換器模塊59的識別結果,通過使用節點NODE0到NODEn的狀態變換表從概率上確定下一行為,并且將決策結果輸出到行為開關模塊71。
圖5所示的行為開關模塊71將命令發送到中間件層40的輸出語義轉換器模塊68,以從由行為模型庫70的各個行為模型701到70n輸出的行為中選擇具有預設高優先級的、從行為模型701到70n之一輸出的行為,并且執行該行為。該命令下面稱作行為命令。在本實施例中,圖6所示行為模型701到70n中的給定一個行為模型的優先級越高,該行為模型在圖6中的排位就越低。
行為開關模塊71在行為結束之后,根據從輸出語義轉換器模塊68提供的行為完成信息,向學習模塊72、情感模型73和本能模型74通知行為完成這一結果。
學習模塊72從輸出語義轉換器模塊68提供的識別結果中,輸入作為用戶動作如‘輕拍’或‘撫摸’接收的指令的識別結果。
學習模塊72根據識別結果和來自行為開關模塊71的通知修改行為模型庫70中的行為模型701到70n的變換概率,從而當動作為‘輕拍’(‘斥責’)或‘撫摸’(‘表揚’)時,當前行為的出現概率將分別增大或減小。
另一方面,情感模型73保存表示六個情感類型中每個的強度的參數,這六個情感類型為快樂(JOY)、悲傷(SADNESS)、氣憤(ANGER)、驚奇(SURPRISE)、厭惡(DISGUST)和恐懼(FEAR)。情感模型73根據由輸入語義轉換器模塊59提供的特定識別結果如‘輕拍’或‘撫摸’、消逝的時間和來自行為開關模塊71的通知,周期性地更新這些情感類型的參數值。
具體地說,情感模型73根據下面方程(1)為下一周期計算當前情感類型的參數值E[t+1]E[t+1]=E[t]+ke×ΔE(t)...(1)其中,ΔE(t)是根據例如由輸入語義轉換器模塊59提供的識別結果、在相關時間的機器人設備1行為或從前一更新事件開始消逝的時間,通過預設方程計算得出的情感類型變化量,E[t]是情感類型的當前參數值,并且ke是表示情感類型敏感度的系數。情感模型73將情感類型的當前參數值E[t]替換為所計算的值,以更新情感類型的參數值。采用類似的方式,情感模型73更新全部情感類型的參數值。
預先確定各個識別結果和來自輸出語義轉換器模塊68的通知將對各個情感類型的參數值變化ΔE(t)具有什么影響,從而‘被輕拍’的識別結果將大大影響情感類型‘氣憤’的參數值的變化量ΔE(t),同時‘被輕拍’的識別結果將大大影響情感類型‘快樂’參數值的變化量ΔE(t)。
來自輸出語義轉換器模塊68的通知是所謂的行為反饋信息(行為結束信息)和有關行為出現結果的信息。情感模型73還根據該信息改變情感。例如,通過‘吠叫’可以降低氣憤的情感級別。同時,來自輸出語義轉換器模塊68的通知還輸入到學習模塊72,然后學習模塊72根據該通知修改行為模型701到70n的相應變換概率。
同時,可以通過行為開關模塊71的輸出(帶情感的行為)作出行為結果的反饋。
另一方面,本能模型74保存表示五個相互獨立的欲望強度的參數,這五個欲望為‘鍛煉欲’、‘喜愛欲’、‘食欲’和‘好奇’。本能模型74根據從輸入語義轉換器模塊59提供的識別結果、消逝的時間和來自行為開關模塊71的通知,周期性地更新這些欲望的參數值。
具體地說,對于‘鍛煉欲’、‘喜愛欲’、和‘好奇’,本能模型74在預設周期,根據下面方程(2)計算下一周期的這些欲望的參數值I[k+1]I[k+1]=I[k]+ki×ΔI(k)...(2)其中,ΔI(k)是根據識別結果、消逝的時間和輸出語義轉換器模塊68的通知通過預設方程計算得出的、在相關時間的當前考慮欲望的變化量,I(k)是欲望的當前參數值,并且ki是表示當前考慮欲望敏感度的系數,并且將當前參數值I[k]替換為所計算的值,以更新欲望參數值。本能模型74更新除‘食欲’之外的各個欲望的參數值。
預先確定識別結果和來自輸出語義轉換器模塊68的通知對各個欲望參數值變化量ΔI(k)的影響,從而例如,來自輸出語義轉換器模塊68的通知大大影響‘疲勞’參數值的變化量ΔI(k)。
在本實施例中,各個情感類型和各個欲望(本能)的參數在0到100的范圍內進行變化,同時還為各個情感類型和各個欲望單獨設置系數值ke和ki。
如圖4所示,中間件層40的輸出語義轉換器模塊68將如上所述由應用層41的行為開關模塊71提供的抽象行為命令,如‘向前走’、‘快樂’、‘哭泣’和‘跟蹤(追球)’發送到輸出系統69的信號處理模塊61到67。
給定一個行為命令,信號處理模塊61到67根據該行為命令生成要提供給相關調節器251到25n(圖2)以執行行為的伺服命令值,要從揚聲器24(圖2)輸出的語音數據和/或要提供給‘眼睛’LED的驅動數據,并且按照該次序通過機器人服務器對象32的虛擬機器人33和信號處理電路14(圖2)將這些數據發送到相關調節器251到25n、揚聲器24或LED。
采用這種方式,機器人設備1能夠根據控制程序執行自主行為,響應它自己的內部狀態、周圍狀態(外部狀態)或來自用戶的命令或動作。
(3)實施本發明的機器人設備1的結構如上所述,隨著逐漸改變姿態或動作,機器人設備1能夠變換到目標姿態或動作。需要注意的是,存在這樣的情況,如果當機器人設備1采取特定姿態或執行特定動作時發出一個新命令,機器人設備過渡性地改變它的姿態,以做好執行對應于命令內容的動作的準備。
也就是,機器人設備1可以從它在命令事件時的狀態變換到能夠開始命令內容的狀態。在此的狀態表示姿態或動作。
在機器人設備1進入能夠開始命令內容的狀態之后,它執行實際命令內容,以變換到目標狀態。具體地說,當發出一個開始動作時的姿態為站立姿態的命令時,機器人設備1從當前坐下姿態變換到站立姿態。為執行命令內容,機器人設備1開始它的變換動作,從站立姿態開始變換到對應于命令內容最終狀態的目標姿態。
如圖9A所示,在機器人設備1的命令內容中,存在其中多個動作要進行同步的命令內容。例如,如圖9B所示,存在這樣的情況,機器人設備1與它的姿態變換動作保持同步,生成聲音或閃爍LED。例如,可以相互同步地執行這些可變動作,因為可以相互獨立地控制負責執行這些動作的機器人設備1各個控制部分。也就是,機器人設備1能夠使作為所謂效果設備的揚聲器或LED與其它動作保持同步,從而可以與姿態變換動作保持同步地產生聲音或閃爍LED。
可以通過圖10中示意性給出的機器人設備1結構來執行上述動作。
需要注意的是,圖9A所示的機器人設備1的狀態變換示為一般性結構,并且,在下面說明中,以圖9B中作為具體實施例示出的機器人設備1的狀態變換為例。也就是,下面說明是對于這種情況給出的,其中,命令事件時的狀態為‘坐下姿態’、開始同步命令時的狀態為‘站立姿態’,并且‘目標姿態’是執行同步命令之后的狀態。
機器人設備1包括命令控制器101、動作管理單元102、發光模式管理單元103、聲音波形管理單元104、命令傳輸單元105、馬達控制器106、LED控制器107、揚聲器控制器108、馬達109、LED 110和揚聲器111。注意,馬達109是飼服馬達,作為置于腿部單元3A到3D和圖2所示各個單元的連接部分的每個調節器251到25n的具體組成單元。另一方面,揚聲器111是作為頭部單元4的發音部分的揚聲器24,而LED 110是具有‘眼睛’功能的部分。
如果在上述結構中輸入一個命令,機器人設備1的命令控制器101將對應命令輸出到動作管理單元102、發光模式管理單元103和聲音波形管理單元104。
當輸入用于同步多個命令的命令時,命令控制器101將與各個動作相關聯的各個命令(下面稱作同步命令)輸出到動作管理單元102、發光模式管理單元103和聲音波形管理單元104。當輸入用于生成多個相互獨立動作的命令時,命令控制器101將各個命令(下面稱作獨立命令)輸出到各個管理單元。
需要注意的是,命令控制器101包括一個數據庫,其中輸入命令與輸出同步命令或獨立命令相關聯,從而命令控制器101參考數據庫,以選擇與輸入命令相關聯的輸出命令。也就是,當輸入將導致各種動作同步的命令C時,命令控制器101參考數據庫112,以讀出相關命令串C(M1,L1,S1),如圖11所示。命令控制器101將表示命令串C內容的同步命令M1、L1、S1輸出到動作管理單元102、發光模式管理單元103和聲音波形管理單元104。同時,M1是發送到動作管理單元102的同步命令,下面稱作運動動作命令,L1是發送到發光模式管理單元103的同步命令,下面稱作發光同步命令,并且S1是發送到聲音波形管理單元104的同步命令,下面稱作聲音輸出同步命令。
下面說明是對于這樣的情況給出的,其中,導致各種動作同步的命令輸入到命令控制器101,也就是各個同步命令從命令控制器101輸出到管理單元102到104。
動作管理單元102將對應于運動同步命令M1內容的數據串發送到命令傳輸單元105。類似地,發光模式管理單元103響應發光同步命令L1的內容,以通過數據總線121將用于控制馬達109的數據串發送到命令傳輸單元105,同時聲音波形管理單元104響應聲音輸出同步命令S1,以通過數據總線121根據預設發光模式將用于控制LED 110發光的數據串發送到命令傳輸單元105。聲音波形管理單元104響應聲音輸出同步命令S1,以通過數據總線121將用于控制揚聲器111的數據串(具體地說,是聲音波形數據)發送到命令傳輸單元105。
命令傳輸單元105是使數據對于低級組成單元或高級組成單元可解釋,即對數據進行標準化的部分,和對應于圖3所示虛擬機器人33的部分。命令傳輸單元105將從動作管理單元102發送的數據串轉換為可以由馬達控制器106進行解釋的數據串(數據11、數據12、數據13...),以通過數據總線121將所轉換的數據串發送到馬達控制器106。命令傳輸單元105還將從發光模式管理單元103發送的數據串轉換為可以由LED控制器107進行解釋的數據串(數據21、數據22、數據23...),以通過數據總線121將所轉換的數據串發送到LED控制器107,同時將從聲音波形管理單元104發送的數據串轉換為可以由揚聲器控制器108進行解釋的數據串(數據31、數據32、數據33...),以通過數據總線121將所轉換的數據串發送到揚聲器控制器108。
馬達控制器106根據通過數據總線121從命令傳輸單元105輸入的數據串控制馬達109。LED控制器107還根據通過數據總線122從命令傳輸單元105輸入的數據串控制LED 110,同時根據通過數據總線123從命令傳輸單元105輸入的數據串控制揚聲器111。
通過上述動作序列,機器人設備1根據從命令控制器101輸出的同步命令,通過低級管理單元執行預設處理動作,以執行同步動作。
如果輸入到命令控制器101的命令是用于執行同步動作的命令,在開頭引起姿態變換之后,可以開始依據同步命令執行同步動作。在對于這種情況的處理動作中,存在下面三種方法類型(i)到(iii)(i)命令控制器101發出一個使姿態變換到同步命令開始姿態(在此為站立姿態)的命令。該命令下面稱作同步準備命令。以完成同步準備命令內容作為觸發,執行同步命令內容。
(ii)在將數據從置于命令控制器101后面的管理單元傳輸到各個控制器106到108的階段,導致發生同步。
(iii)組合使用上面兩種方法。
如果分開執行方法類型(i)和(ii),會出現下面問題對于(i),命令控制器101以同步準備命令結束作為觸發,可以分別將同步命令M1、L1和S1發送到動作管理單元102、發光模式管理單元103和聲音波形管理單元104。然而,在這種情況下,在實際場合中可能導致同步混亂。
具體地說,如圖12A所示,在作為同步準備命令(pre_Motion,下面稱作初始動作)內容執行的從坐下姿態到站立姿態的動作結束之后,通過運動同步命令或對應于運動命令的數據串,導致發生同步動作中的姿態變換。然而,可能出現這樣的情況,由于發出發光同步命令或對應于發光同步命令的數據串時出現延遲,因此LED 110沒有與之同步發光。這相當于在同步動作數據中所產生的空數據區。
由于打算只用表示高級組成單元的命令控制器101來監督同步命令,因此出現這一問題。同時,可以在過渡性地變換到作為變換姿態的站立姿態之后執行同步命令,如圖12B的狀態變換所示。
同時,可以從坐下姿態就導致發生同步動作,而無需同步準備命令。在這種情況下,不使用同步準備命令就執行同步控制。在這種情況下,用于控制各個動作單元的數據形成為一組。也就是,甚至在從坐下姿態到站立姿態的姿態變換期間,也形成要輸出到發光模式管理單元103的數據或要輸出到聲音波形管理單元104的數據。數據內容是在執行初始動作期間關閉LED 106或關閉揚聲器107。
如圖12A的例子所示,通過使用這一組數據,在大約機器人設備1剛采取它的站立姿態的時刻,對聲音輸出、發光動作等進行同步來開始機器人設備1的動作。
然而,除了準備一組數據的工作量之外,還存在這樣的麻煩,由于在執行初始工作期間,數據輸入到實際上沒有動作控制的LED控制器107和揚聲器控制器108,因此使LED控制器107和揚聲器控制器108在初始動作期間執行其它動作是不可能的。例如,如果發出更高優先級的命令,如獨立命令,LED 110或揚聲器111不能執行該命令內容。而且,變換到站立姿態沒有失敗,也不能開始動作,可能出現這樣的情況,LED 110開始發光出現一些延遲,如圖13A的例子所示。
同時,如圖13所示,使用用于上述動作的一組數據的情況下的狀態變換可以視為從坐下姿態到目標姿態的連續動作狀態變換。
對于上述(ii),可以考慮,在將數據從命令傳輸單元105傳輸到下游側控制器106到108的階段獲得同步。在這種情況下,在先前發出同步命令,即在執行初始動作期間,如執行初始動作的同時,發出同步命令,從而來自各個管理單元102到104的同步動作數據保存在可以由命令傳輸單元105進行參考的存儲器中。然而,在這種情況下,存儲器不能用于其它目的,因此該方法對于高效使用存儲器不能說是最佳。
而且,如果在先前發出同步命令,相互連接管理單元102到104和命令傳輸單元105的數據總線121被鎖定,直到同步命令結束。這使得打開數據總線121不可能,從而在執行作為同步準備動作內容的初始動作期間,例如不能發出聲音。
也就是,在用于LED 110發光或聲音輸出的命令中,例如,存在與同步動作命令不同的獨立命令。甚至在準備執行同步命令的準備狀態期間,命令傳輸單元105也將這些獨立命令發送給發光模式管理單元103和聲音波形管理單元104。
如果傳輸作為其它命令的這些獨立命令,數據總線121如圖15所示被鎖定。在這種情況下,需要執行數據取消處理。具體地說,需要取消已經從發光模式管理單元103和聲音波形管理單元104傳輸到命令傳輸單元105的數據,從而執行非實際處理。
從上面可以看到,單獨使用上述處理(i)或(ii)是有問題的,然而單獨使用處理(i)或(ii)可能產生的問題可以通過(i)和(ii)的組合來解決,這就是方法(iii)。本發明在其原理上面向該方法(iii)。實際上,在微小細節上對方法(iii)的處理進行了優化。
根據本發明,在執行初始動作期間,可以在處于動作空閑狀態的LED 110或揚聲器111上執行獨立命令。而且,根據本發明,在執行初始動作期間不在數據總線上發送同步命令內容數據串。這使得如果產生獨立命令很容易地刪除同步命令成為可能。
也就是,如圖16所示,正在執行初始動作期間,使得LED 110和揚聲器111可以通過例如獨立命令進行操作,同時使得不能通過數據總線發送同步命令內容數據串成為可能。下面給出一個特定示例。圖17示出執行該處理的機器人設備1的具體結構。
機器人設備1包括命令控制器101、動作管理單元102、發光模式管理單元103、聲音波形管理單元104、命令傳輸單元105、作為馬達控制器106具體實例的關節角度控制器106、作為LED控制器107特定示例的LED發光控制器107、作為揚聲器控制器108特定實例的聲音生成控制器108、馬達109、LED 110和揚聲器111。
動作管理單元102通過動作管理單元1021和關節角度命令單元1022來實現處理。發光模式管理單元103通過發光模式生成單元1031來實現處理,而聲音波形管理單元104通過聲音波形生成器1041來實現處理。
命令控制器101包括數據庫DB1,其中在命令之間進行相互映射。例如,數據庫DB1包括數據庫112,其中,輸入命令C映射為輸出到低級的動作管理單元102、發光模式管理單元103、聲音波形管理單元104的命令M1、L1、S1,如圖11所示。
動作管理單元1021包括數據庫DB2,其中在開始點姿態、結束點姿態和運動名稱之間進行相互映射。關節角度命令單元1022包括數據庫DB3,其中在命令和關節角度數據之間進行相互映射。發光模式生成單元1031包括數據庫DB4,其中在命令和發光模式數據之間進行相互映射,而聲音波形生成器1041包括數據庫DB5,其中在命令和聲音波形數據之間進行相互映射。
命令控制器101和各個管理單元102到104通過如上所述在其中映射變量數據的數據庫,將與輸入命令相關聯的數據輸出到低級組成單元。同時,在關節角度命令單元1022、發光模式生成單元1031和聲音波形生成器1041的數據庫中,與各個數據相關聯的命令為同步命令或獨立命令。
在上述結構中,馬達109、LED 110和揚聲器111是用于產生動作的動作裝置,而命令控制器101、動作管理單元102、發光模式管理單元103、聲音波形管理單元104、命令傳輸單元105、馬達控制器106、LED控制器107和揚聲器控制器108是用于控制作為多個動作裝置的馬達109、LED 110和揚聲器111的控制裝置。這些控制裝置被設計為,通過多個動作裝置(在此為馬達109、LED 110和揚聲器111)產生同步動作,作為緊隨在動作裝置(在此為馬達109)的前面動作結束之后的后繼動作。
具體地說,命令控制器101用作用于輸出與輸入命令相關聯的輸出命令的命令控制器。與馬達109、LED 110和揚聲器111一起提供的動作管理單元102、發光模式管理單元103和聲音波形管理單元104作為多個動作裝置,用作用于對由管理單元102到104輸出的可變動作控制數據傳輸進行控制的數據傳輸控制器。馬達控制器106、LED控制器107和揚聲器控制器108分別與馬達109、LED 110和揚聲器111一起進行關聯提供,并且用作根據由命令傳輸單元105輸出的動作控制數據控制馬達109、LED 110和揚聲器111動作的多個動作控制器。命令傳輸單元105用于將由管理單元102到104輸出的同步動作控制數據協調地傳輸到馬達109、LED 110和揚聲器111。同時,命令控制器101、命令傳輸單元105和上述動作控制器也可以是通過面向對象編程而構造的對象或過程。下面將按照處理流程對各個組成單元進行說明。
命令控制器101根據輸入命令輸出與動作管理單元102、發光模式管理單元103和聲音波形管理單元104相關聯的命令。也就是,命令控制器101參考數據庫DB1,將與輸入命令相關聯的同步命令或獨立命令輸出到動作管理單元102、發光模式管理單元103和聲音波形管理單元104。
當輸出到各個管理單元102到104的命令為同步命令時,命令控制器101將同步ID和點數值值添加到同步命令,以將結果數據串發送到管理單元102到104。例如,命令控制器101將同步ID和點數值值添加到同步命令的起始端,以輸出結果數據串。注意,同步ID和點數值值由例如下游側命令傳輸單元105進行使用。具體地說,如果如上所述添加要進行同步的同步命令ID和要進行同步的同步命令總數,就已足夠。例如,點數值值是數值數字,并且對點數值值進行確定是為了輸出到管理單元102到104的點數值值總和將等于預設數。在本實施例中,預設數(和)假定為100。
如果接收命令時需要初始動作,也就是說,如果機器人設備1處于坐下姿態,命令控制器101將同步準備命令輸出到動作管理單元102,并且隨后在預設時刻將運動同步命令M1、發光同步命令L1和聲音輸出同步命令分別輸出到管理單元102到104。下面,說明是在這種情況下給出的,其中,當機器人設備1處于坐下姿態時,命令控制器101將同步準備命令輸出到管理單元102。
在動作管理單元102中,動作管理單元1021選擇運動名稱。動作管理單元102包括數據庫DB2,其中開始點姿態和結束點姿態與表示運動內容的運動名稱相關聯。動作管理單元102參考該數據庫DB2,選擇與表示初始動作內容的同步準備命令相關聯的運動名稱。動作管理單元1021將該運動名稱輸出到關節角度命令單元1022。關節角度命令單元1022參考數據庫DB3,將作為用于執行輸入運動名稱的時域關節角度命令值的數據串輸出到命令傳輸單元105。
命令傳輸單元105通過數據總線122將從動作管理單元102發送的數據串作為一組發送到關節角度控制器106。
關節角度控制器106根據輸入數據控制馬達109。由于輸入數據是用于執行初始動作的同步準備命令,因此機器人設備1在馬達109的控制下執行從坐下姿態變換到站立姿態的動作。
如上所述根據同步準備命令執行初始動作。下面將對緊接在初始動作結束時刻之后執行的同步動作處理進行說明。
命令傳輸單元105將初始動作數據輸出到關節角度控制器106,同時它在預設時刻將傳輸使能狀態指示信號發送到動作管理單元102。預設時刻(隨后將對它進行詳細說明)是與剩余數據對應的時刻,等于命令傳輸單元105中的預期數據接收延時。這使得緊接在初始動作之后沒有延時地執行同步動作成為可能。
對傳輸使能狀態指示信號進行響應,動作管理單元102將同步命令接收使能信號發送到命令控制器101。
在同步命令接收使能信號的接收時刻,命令控制器101將在初始動作結束之后執行的用于同步動作的同步命令輸出到管理單元102到104。
在動作管理單元102中,動作管理單元1021參考數據庫DB2,將執行輸入運動同步命令的運動名稱輸出到下游側關節角度命令單元1022。關節角度命令單元1022參考數據庫DB3,將與輸入命令相關聯的時域數據串輸出到命令傳輸單元105。
在發光模式管理單元103中,發光模式生成單元1031參考數據庫DB4,將作為與輸入發光同步命令相關聯的時域數據的發光模式數據串輸出到命令傳輸單元105。在聲音波形管理單元104中,聲音波形生成器1041參考數據庫DB5,將作為與輸入聲音輸出同步命令相關聯的時域數據的聲音波形數據串輸出到命令傳輸單元105。
采用這種方式,管理單元102到104將與各個輸入同步命令相關聯的數據串輸出到命令傳輸單元105。由于這些數據串是與同步命令相關的數據,因此前述同步ID和點數值值已被命令控制器101添加到數據串的起始端。
命令傳輸單元105執行控制,以通過數據總線122將從各個管理單元102到104發送的數據串傳輸到低級控制器106-108。具體地說,在命令傳輸單元105中執行如下處理如圖18所示,命令傳輸單元105包括圖19所示的命令傳輸器1051和存儲器1052。
在命令傳輸器105中,命令傳輸器1051輸入從管理單元102到104輸出的同步ID、點數值值和數據串。參照圖18,同步ID(1)、點數值值(1)、數據(11)、數據(12)...與來自動作管理單元102的同步ID、點數值和數據串相關聯,同步ID(2)、點數值(2)、數據(21)、數據(22)...與來自發光模式管理單元103的同步ID、點數值和數據串相關聯,并且同步ID(3)、點數值(3)、數據(31)、數據(32)...與來自聲音波形管理單元104的同步ID、點數值和數據串相關聯。
如果同步ID和點數值寫入在輸入信息的頭(header)區域中,命令傳輸器105在存儲器1052上寫入同步ID和點數值。在存儲器1052中,保留有用于存儲同步ID的區域10521(下面稱作同步ID存儲區域)和用于存儲點數值的區域10522(下面稱作點數值存儲區域),從而與各個管理單元102到104相關聯地存儲同步ID和點數值,如圖19所示。
根據這些點數值,命令傳輸器1051控制將隨后輸入的數據串輸出到控制器109到111。具體地說,如下執行該控制命令傳輸器1051檢查存儲器1052的點數值存儲區域10522,并且,如果其中存儲有點數值,檢查點數值的總和是否等于預設數100。
如果當前(in question)命令為同步命令,由管理單元102到104輸出的點數值總和為100。也就是,例如,點數值(1)為20,點數值(2)為10并且點數值(3)為70,從而總和為100。
當點數值總和為100時,命令傳輸器1051將數據重新排列或設置為數據(11)、數據(21)、數據(31)、數據(12)、數據(22)...,以使數據適用于單數據總線122,如圖18所示,以將結果數據輸出到下游控制器109到111。對于數據串在數據總線122上的輸出時刻,以從管理單元102到104輸出的數據為單位,對數據進行同步。也就是,在時刻t輸出數據(11)、(21)、(31),在時刻t+1輸出數據(12)、(22)、(32),并且在時刻t+2輸出數據(13)、(23)、(33),如圖18所示。
采用這種方式,在點數值總和等于100時的時間點同步的數據輸入到相關下游側單元,即關節角度控制器106、LED控制器107和揚聲器控制器108。
以上是在命令傳輸器105執行處理的方式。圖20是示出命令傳輸器105中的處理流程的流程圖。
當在步驟S1等待命令接收或中斷時,如果作出中斷請求,命令傳輸器105在步驟S2繼續中斷處理,以繼續到步驟S4,如果在步驟S1的狀態,一個命令(例如,由管理單元輸出的數據串)傳輸到命令傳輸器105,則命令傳輸器接收該命令。例如,命令傳輸器105緩沖所傳輸的數據串,然后繼續到步驟S4。
在步驟S4,命令傳輸器105檢查是否正在等待傳輸同步數據。如果正在等待傳輸同步數據,命令傳輸器105繼續到步驟S7,否則命令傳輸器105繼續到步驟S5。
命令傳輸器105在步驟S5檢查表示同步數據的序列號是否添加到該命令。該序列號是前述同步ID。在上述步驟S3接收到一個命令如數據串的情況下,執行這一決定處理。
如果,在步驟S5,表示同步數據的序列號添加到該命令,命令傳輸器105繼續到步驟S6。否則,命令傳輸器105繼續到步驟S10。
命令傳輸器105在步驟S6將提供給命令的序列號和點數值輸入到存儲器1052的標志區域中,然后繼續到步驟S7。
當在步驟S4正在等待傳輸同步數據時,命令傳輸器105也繼續到步驟S7。在步驟S7,命令傳輸器105確定在標志區域的其它部分是否存在相同序列號。如果標志區域的其它部分存在相同序列號,命令傳輸器105繼續到步驟S8,否則命令傳輸器105返回到步驟S1。
命令傳輸器105在步驟S8檢查與具有相同序列號的區域相關聯的點數值(point(x))總和是否等于100。如果點數值總和等于100,命令傳輸器105繼續到步驟S9,否則命令傳輸器105返回到步驟S1。
命令傳輸器105在步驟S9請求其它總線控制器以允許中斷處理,并且,在步驟S10,開始通過數據總線122將數據串傳輸到各個控制器106到108。
當命令傳輸器105將數據串發送到各個控制器時,它還在步驟S11檢查是否存在已經被緩沖的命令。如果存在被緩沖的命令,命令傳輸器105繼續到步驟S4,否則命令傳輸器105返回到步驟S1。
命令傳輸器105如上所述執行處理。通過該處理,從命令傳輸器105輸入數據的控制器106到108根據該輸入數據控制馬達109、LED 110和揚聲器111。由于控制器106到108根據在控制時刻輸入的數據控制馬達109、LED110和揚聲器111,因此對作為在實際機器人設備上執行的動作的同步馬達109的運動、LED 110的發光和揚聲器111的聲音輸出進行同步。
而且,由于傳輸使能狀態指示信號從命令傳輸器105輸出到動作管理單元102的時刻為緊接在完成初始動作之后無延時地使同步操作開始的時刻,因此機器人設備1實現緊接在初始動作之后的同步動作。
當在命令傳輸器1051中點數值總和等于100時,馬達109、LED 110和揚聲器111如上所述能夠相互同步工作。否則,也就是如果在命令傳輸器1051中點數值總和不為100,那么設置等待輸入數據串的狀態。在該同步命令等待狀態下,機器人設備1能夠執行獨立命令。這通過下面處理序列來完成如果沒有與運動動作同步地獨立驅動LED 110或揚聲器111的命令輸入到命令控制器101,獨立命令輸出到下游側發光模式管理單元103或聲音波形管理單元104,作為命令控制器101參考數據庫DB1的結果。下面,說明是在這種情況下給出的,其中,獨立命令從命令控制器101輸入到發光模式管理單元103和聲音波形管理單元104,并且用于LED 110和揚聲器111的各自獨立命令內容也相互獨立。在獨立命令的情況下,與同步命令的情況不同,命令控制器101輸出沒有向其添加同步ID或點數值的命令。
在發光模式管理單元103中,發光模式生成單元1031參考數據庫DB4,將與輸入獨立命令相關聯的數據串輸出到命令傳輸器105。另外,在聲音波形管理單元104中,聲音波形生成器1041參考數據庫DB5,將與輸入獨立命令相關聯的數據串輸出到命令傳輸器105。
如上所述,管理單元103、104將數據串輸出到命令傳輸器105。需要注意的是,由于這些數據串不是同步命令,因此沒有同步ID和點數值添加到數據串。
命令傳輸器105檢查輸入數據串的頭區域,并且由于不存在同步ID,因此命令傳輸器105識別該數據串為獨立命令。因此,它將數據串直接設置在數據總線122上,以將數據串輸出到LED控制器107和揚聲器控制器108。通過命令傳輸器105的功能執行該處理,當沒有向其添加同步ID和點數值的數據串輸入到命令傳輸器105時,與同步命令相關的數據串情況不同,不對點數值進行監視,而是將數據串直接輸出到相關下游側控制器。
因此,對于與同步命令對應的數據串,數據串處于等待數據輸入的狀態,直到點數值的總和等于100。然而,命令傳輸器105將與獨立命令相關的數據串設置在數據總線122上,以將所設置的數據串輸出到LED控制器107和揚聲器控制器108。也就是,對應于獨立命令的數據串優先于與同步命令相關的數據串,輸出到LED控制器107和揚聲器控制器108。
LED控制器107根據通過數據總線122輸入的數據串控制LED 110的發光動作。揚聲器控制器108根據通過數據總線122輸入的數據串控制揚聲器111的輸出。
通過這一處理,甚至在機器人設備1正在執行初始動作如從坐下姿態變換到站立姿態的期間,機器人設備1也能夠執行LED 110的發光或揚聲器111的發聲。
具體地說,本發明的機器人設備1執行圖21所示的處理。
參照圖21,機器人設備1在完成從坐下姿態變換到站立姿態的初始動作之后,能夠與運動動作保持同步地執行LED 110的發光動作和揚聲器111的發聲。而且,由于相互連接各個組成單元的數據總線沒有被數據鎖定,而是一直處于空閑狀態,因此可以由LED 110和揚聲器111分別執行與獨立命令相關的發光和發聲。
雖然本實施例的說明是對于這種情況給出的,其中,獨立命令內容為相互獨立執行LED 110和揚聲器111的動作這種方式,但是這只是為了說明起見,實際上可以獨立于初始動作執行LED 110和揚聲器111的同步動作。也就是,前述獨立命令是那些僅相關于其它命令獨立的命令,這些獨立命令可以說是相對意義上的獨立命令。
命令控制器101將這些表示同步動作內容的獨立命令輸出到發光模式管理單元103和聲音波形管理單元104。這些命令下面稱作獨立同步命令。
命令控制器101將同步ID和點數值添加到每個獨立同步命令。當已經輸出同步命令時,添加到各個獨立同步命令的同步ID可以與添加到同步命令的同步ID相區分開來。
發光模式管理單元103和聲音波形管理單元104將對應于獨立同步命令的數據串輸出到命令傳輸器105。
在命令傳輸器105中,命令傳輸器1051輸入由發光模式管理單元103和聲音波形管理單元104輸出的同步ID、點數值和數據串。
命令傳輸器105使輸入在輸入信息的頭區域中的同步ID和點數值存儲在存儲器1052的同步ID存儲區域10521和點數值存儲區域10522中。命令傳輸器105讀出存儲在同步ID存儲區域10521中與相同同步ID相關聯的點數值,并且得出這些點數值的總和。當總和達到預設值時,命令傳輸器105將與同步ID相關的數據串輸出到LED控制器107和揚聲器控制器108。
作為表示與獨立同步命令相關的數據輸出條件的點數值總和,預設值例如可以設為10,該值不同于在初始動作之后執行的同步命令的預設值,例如100。在這種情況下,命令控制器101將點數值添加到各個獨立同步命令,從而命令的總和將等于10。例如,點數值4添加到與LED 110動作相關的獨立同步命令,而點數值6添加到與揚聲器111動作相關的獨立同步命令。當具有相同同步ID的點數值總和為10時,命令傳輸器105將與同步ID相關聯的獨立同步命令的數據串輸出到LED控制器107和揚聲器控制器108。
LED控制器107和揚聲器控制器108根據輸入數據控制LED 110和揚聲器111。由于LED控制器107和揚聲器控制器108根據在同步時刻輸入的數據控制LED 110和揚聲器111,因此對作為在機器人設備1上執行的動作的LED 110發光動作和揚聲器111發聲進行同步,與對應于姿態變換的初始動作一起執行這些動作。
下面對從命令傳輸器105輸出傳輸使能狀態指示信號的時刻進行說明,這允許在初始動作之后不中斷地執行同步動作。
例如,如果在驅動馬達109被激活并且初始動作剛剛結束的階段,命令傳輸器105將表示這一效果的傳輸完成信號發到動作管理單元102,那么各個組成單元,如動作管理單元102或命令控制器101,從發出傳輸完成信號時開始同步動作處理。因此,開始將數據(同步數據)從命令傳輸器105傳輸到數據總線122之間存在從發出傳輸完成信號開始的延遲,即從完成初始動作時開始的延遲,如圖22所示。
在這種情況下,如果將數據串從管理單元102到104相當同時地輸入到命令傳輸器105,將是有利的。然而,可能存在這種情況從聲音波形管理單元104輸入數據存在延遲。由于命令傳輸器105直到點數的總和等于100才開始將數據傳輸到下游側控制器106到108,因此命令傳輸器105暫時不允許通過數據總線122將數據傳輸到控制器106到108,直到從聲音波形管理單元104輸入數據。這將產生對應于該傳輸抑制時間的機器人設備1動作空時間。
基于這種考慮,將傳輸使能狀態指示信號從命令傳輸器105發到動作管理單元102,并且發出傳輸使能狀態指示信號的時刻確定為如圖24所示等于與命令傳輸器105中預期數據接收延時相對應的剩余數據的時刻。
也就是,該時刻是這樣一個時刻,它考慮了命令傳輸器105接收同步動作數據時存在的延遲,該延遲是由動作管理單元102或命令控制單元101的組成單元導致的從命令發出時刻到開始同步動作處理之間的延遲。例如,與傳輸使能狀態指示信號的發出時刻相關的信息提供給用于執行初始動作的同步準備命令。命令傳輸器105根據提供給同步準備命令的發出時刻信息對傳輸使能狀態指示信號進行傳輸。
該傳輸使能狀態指示信號在前述預設時刻從命令傳輸器105輸出到高級動作管理單元102,從而機器人設備1能夠緊接在初始動作結束之后無延時地執行同步動作。
雖然可以考慮以足夠的時間允許范圍從命令傳輸器105對傳輸使能狀態表示信號進行傳輸,但是命令傳輸器105不得不在該時間允許范圍期間存儲從管理單元102到104傳輸的數據,因此不能高效地使用存儲器。因此,如果在對應于緊接在初始動作之后開始同步動作的時刻,從命令傳輸器105發送傳輸使能狀態指示信號,從而獲得高效的存儲器使用,將是理想的。
在如圖17所示的上述實施例中,說明是對于這種情況給出的,其中,在機器人設備1的結構中,命令傳輸器105和各個控制器106到108通過單數據總線122相互連接。因此,命令傳輸器105被設計為適用于這種結構。然而,這只是為了說明起見,實際上如圖25所示,數據總線可以由獨立相互連接命令傳輸器130與各個控制器106到108的三條數據總線124形成。在這種情況下,命令傳輸器130如圖25和26所示進行設計。如圖26和27所示,命令傳輸器130包括共有存儲器134。
在如此形成的命令傳輸器130中,第一命令傳輸器單元131輸入從動作管理單元102輸出的同步ID、點數值和數據串,第二命令傳輸器單元132輸入從發光模式管理單元103輸出的同步ID、點數值和數據串,并且第三命令傳輸器單元133輸入從聲音波形管理單元104輸出的同步ID、點數值和數據串。
命令傳輸器單元131到133使提供給輸入數據串的點數值存儲在共有存儲器134中。在共有存儲器134中設有用于存儲同步ID的同步ID存儲區域1341和用于存儲點數值的點數值存儲區域1342,以使同步ID和點數值相互關聯地存儲在其中,如圖27所示。共有存儲器134由命令傳輸器單元131到133共有,從而命令傳輸器單元131到133每個均能夠參考由其它命令傳輸器單元寫入的同步ID和點數值。
第一到第三命令傳輸器單元131到133監視該共有存儲器134,并且當相同同步ID的點數的和等于100時,也就是,當來自所有管理單元102到104的同步命令已輸入到命令傳輸器130時,這些數據串分別在此時設置在相關數據總線1241、1242和1243上,并且傳輸到控制器106到108。
確定總和是否等于100的功能可以建立在第一命令傳輸器單元131中。在這種情況下,當點數值存儲在同步ID存儲區域1341中,從而點數值總和等于100時,第一命令傳輸器單元131向第二和第三命令傳輸器單元132、133通知這一結果。這允許第一到第三命令傳輸器單元131到133將數據串設到相關數據總線1241、1242和1243上,并且將數據串傳輸到控制器106到108。
以上是在命令傳輸器130中執行的處理。圖28是示出命令傳輸器130中處理流程的流程圖。由于該命令傳輸器130中的處理通過使用多個數據總線與將數據傳輸到控制器106到108相關聯,因此下面說明集中在這一部分。同時,除非特別指出,圖20和28中具有相同參考號的步驟執行相同的處理。
如上所述,命令傳輸器130包括可以由第一到第三命令傳輸器單元131到133參考的共有存儲器134,從而,在步驟S61,提供給命令的序列號和點數值存儲在共有存儲器134中。
命令傳輸器130的第一到第三命令傳輸器單元131到133在步驟S71檢查相同的序列號是否提供給共有存儲器134的其它區域。如果相同序列號提供給其它區域,第一到第三命令傳輸器單元131到133繼續到步驟S81,否則命令傳輸器單元131到133返回到步驟S1。
第一到第三命令傳輸器單元131到133在步驟S81檢查具有相同序列號的點數值(point(x))和是否等于100。如果點數值總和等于100,第一到第三命令傳輸器單元131到133繼續到步驟S91,否則返回到步驟S1。
第一到第三命令傳輸器單元131到133在步驟S91請求允許對數據總線1241、1242和1243且與總線控制器相關聯的中斷,并且在步驟S101,開始通過數據總線1241、1242和1243將數據串傳輸到相關控制器106到108。
將數據串傳輸到各個控制器的命令傳輸器130在步驟S11檢查是否存在任何被緩沖的命令。如果存在被緩沖的命令,命令傳輸器130繼續到步驟S4,否則命令傳輸器返回到步驟S1。
以上述方式執行命令傳輸器130的處理。通過該處理從命令傳輸器130輸入數據的控制器106到108根據輸入數據控制馬達109、LED 110和揚聲器111。由于控制器106到108根據在同步時刻輸入的數據控制馬達109、LED110和揚聲器111,因此馬達109的運動、LED 110的發光和揚聲器111的聲音輸出作為在實際機器人設備1上執行的動作相互進行同步。
工業應用性通過如上所述應用本發明,機器人設備在正執行初始動作期間能夠執行用于處于動作空閑狀態的LED或揚聲器的獨立命令。而且,在正執行初始動作期間,同步命令內容數據串不發送到數據總線,從而如果例如產生獨立命令,可以很容易地刪除同步命令。
權利要求
1.一種機器人設備,包括多個動作裝置,用于執行動作;和控制裝置,用于控制多個動作裝置的動作;所述控制裝置使多個動作裝置緊接在由動作裝置執行的前一動作之后相互同步地執行動作。
2.如權利要求1所述的機器人設備,其中,如果存在動作中斷請求,所述控制裝置使與所述動作中斷請求相關的動作和所述前面動作連在一起。
3.如權利要求1所述的機器人設備,其中,多個姿態狀態或動作狀態間的變換使得可能;并且其中,所述動作裝置的前面動作為用于變換到準備開始時間上靠后的動作的姿態或動作狀態的動作。
4.如權利要求1所述的機器人設備,其中,所述控制裝置根據與所述動作裝置的所述前面動作的預期結束相關的信息,開始多個動作裝置的同步動作。
5.如權利要求1所述的機器人設備,其中,所述控制裝置包括命令控制單元,用于輸出與輸入命令相關聯的輸出命令;多個動作控制數據轉換單元,在操作上與所述動作裝置相關聯,并且用于輸出與由所述命令控制器輸出的輸出命令相關聯的動作控制數據;數據傳輸控制單元,用于控制傳輸由每個動作控制數據轉換單元輸出的每個動作控制數據;和多個動作控制單元,用于根據由所述數據傳輸控制器輸出的動作控制數據,控制所述動作裝置;并且其中,所述數據傳輸控制器將由每個動作控制數據管理單元輸出的同步動作控制數據同步發送到每個所述動作控制單元。
6.如權利要求5所述的機器人設備,其中,同步信息提供給每個同步動作控制數據;并且其中,所述數據傳輸控制單元根據所述所提供的同步信息將同步動作數據同步發送到每個所述動作控制單元。
7.如權利要求6所述的機器人設備,其中,同步信息至少包括同步ID和點數值;其中,所述點數值是加在一起等于預設值的數值數字;和其中,當與提供給輸入動作控制數據的相同同步ID相關聯的點數的和等于所述預設值時,所述數據傳輸控制單元將輸入動作控制數據同步發送到每個動作控制單元。
8.如權利要求6所述的機器人設備,其中,如果輸出命令為同步動作的同步命令,所述命令控制單元根據與由所述數據傳輸控制單元輸出的預期完成相關的信息開始輸出同步命令;并且其中,所述數據傳輸控制單元根據前面動作的預期完成時間輸出與預期完成相關的信息。
9.如權利要求1所述的機器人設備,其中,所述多個動作裝置至少為用于執行運動動作的運動動作裝置、用于執行發光的發光裝置和用于輸出聲音的聲音輸出裝置。
10.一種用于控制機器人設備動作的方法,該機器人設備具有用于執行動作的多個動作裝置;其中,作為時間上緊接在由動作裝置執行的前一動作之后的動作,執行多個動作裝置的同步動作。
11.如權利要求10所述的用于控制機器人設備動作的方法,其中,多個姿態狀態或動作狀態間的變換使得可能;并且其中,所述動作裝置的前面動作是用于變換到準備開始時間上靠后的動作的姿態或動作狀態的動作。
12.如權利要求10所述的用于控制機器人設備動作的方法,其中,根據與所述動作裝置的前面動作的預期結束相關的信息,開始多個動作裝置的同步動作。
13.如權利要求10所述的用于控制機器人設備動作的方法,包括命令控制步驟,輸出與輸入命令相關聯的輸出命令;動作控制數據轉換步驟,輸出與在所述命令控制步驟輸出的輸出命令相關聯的動作控制數據;數據傳輸控制步驟,控制傳輸在所述動作控制數據轉換步驟輸出的每個動作控制數據;和多個動作控制步驟,根據在所述數據傳輸控制步驟輸出的每個動作控制數據,控制所述動作裝置;所述數據傳輸控制步驟將在所述控制數據轉換步驟輸出的同步動作控制數據同步發送到每個所述動作控制步驟。
14.一種機器人設備,包括用于執行動作的多個動作執行裝置和用于控制所述動作裝置的多個動作控制裝置;所述機器人設備進一步包括命令控制裝置,用于輸出與用于使機器人設備執行預設動作的動作執行命令相關的多個同步命令;和命令傳輸控制裝置,用于控制由所述命令控制裝置輸出的同步命令,以將同步命令發送到所述多個動作控制裝置;所述命令控制裝置向多個同步命令中的每個提供至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數的標號,以輸出所述同步命令;所述命令傳輸控制裝置根據所述ID和所述總數同步發送多個同步命令。
15.一種用于控制機器人設備動作的方法,該機器人設備包括用于執行動作的多個動作執行裝置和用于控制所述多個動作裝置的多個動作控制裝置,所述方法包括如下步驟命令控制裝置向與使機器人設備執行預設動作的動作執行命令相關的多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數;和命令傳輸控制裝置控制由所述命令控制裝置輸出的同步命令,以根據所述ID和所述總數使多個同步命令得以同步,以將同步命令發送到所述多個動作控制裝置。
16.一種機器人設備,包括用于執行動作的多個動作執行裝置和用于控制多個動作執行裝置的動作的多個動作控制裝置;所述機器人設備進一步包括命令控制裝置,用于輸出與用于執行所述機器人設備預設動作的動作執行命令相關的多個同步命令;多個總線,在其上傳輸所述動作執行命令;為每個所述總線提供的多個命令傳輸控制裝置,用于控制由所述命令控制裝置輸出的所述同步命令,并且將所述同步命令傳輸到所述多個動作控制裝置;和共有存儲器,可以由所述多個命令傳輸控制裝置進行訪問;所述命令控制裝置向所述多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數,并且輸出同步命令;所述命令傳輸控制裝置使這些ID和總數存儲在所述共有存儲器中,并且參考所述共有存儲器來同步多個同步命令,以通過所述總線將經過同步的同步命令發送到所述動作控制裝置。
17.一種用于控制機器人設備動作的方法,該機器人設備包括用于執行動作的多個動作執行裝置和用于控制多個動作執行裝置的動作的多個動作控制裝置,所述方法包括如下步驟命令控制裝置向與使機器人設備執行預設動作的動作執行命令相關的多個同步命令中的每個提供標號,來至少表示要進行同步的同步命令的ID和要進行同步的同步命令的總數;和在可用于傳輸所述命令的多個總線中的每個總線上提供的命令傳輸控制裝置控制由所述命令控制裝置輸出的同步命令,以使所述ID和總數存儲在所述共有存儲器中,并且參考所述共有存儲器來同步可以由所述多個命令傳輸控制裝置進行訪問的所述同步命令,以通過所述總線將所述同步命令傳輸到所述多個命令傳輸控制裝置。
全文摘要
一種機器人設備,包括命令控制單元(101),用于輸出與輸入命令相對應的輸出命令;管理單元(102、103、104),用于輸出與由命令控制單元(101)輸出的命令相對應的數據;命令傳輸單元(105),用于控制傳輸從管理單元(102、103、104)輸出的數據;和控制單元(106、107、108),用于根據由命令傳輸單元(105)輸出的數據,控制動作單元(109、110、111)。命令傳輸單元(105)將由管理單元(102、103、104)輸出的同步動作控制數據同步發送到動作單元(109、110、111)。
文檔編號G05B19/4062GK1396856SQ01804072
公開日2003年2月12日 申請日期2001年10月11日 優先權日2000年10月11日
發明者高木剛, 佐部浩太郎, 坂本隆之, 尾山一文 申請人:索尼公司