專利名稱::機器人控制設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種機器人控制設(shè)備,該機器人控制設(shè)備控制驅(qū)動多關(guān)節(jié)機器人主體的關(guān)節(jié)的多個驅(qū)動單元。
背景技術(shù):
:在多軸多關(guān)節(jié)機器人主體中,有必要在同步地改變關(guān)節(jié)角度的同時操作主體。如果不同步改變這些關(guān)節(jié)角度,則多關(guān)節(jié)機器人主體的端點位置的軌跡偏離(shift)。因此,機器人控制設(shè)備同步地控制驅(qū)動多關(guān)節(jié)機器人主體的各個關(guān)節(jié)的多個驅(qū)動單元(參見JP-A-2004-524171(PCT國際申請的日本譯文))。指出,從多關(guān)節(jié)機器人主體的期望的位置姿勢(positionposture)計算各關(guān)節(jié)角度被稱為逆問題。相反,從各個關(guān)節(jié)角度計算多關(guān)節(jié)機器人主體的位置姿勢被稱為正問題。處理這些問題的領(lǐng)域被稱為機械學(xué)。該常規(guī)機器人控制設(shè)備具有在其中組合具有不同特性的兩個計算機的構(gòu)造。計算機之一是通用計算機,另一個計算機是實時計算機。而且,通用計算機將指示多關(guān)節(jié)機器人主體的期望的位置姿勢的命令輸出到實時計算機。實時計算機可根據(jù)逆運動學(xué)基于輸入命令來計算操作命令數(shù)據(jù),在該操作命令數(shù)據(jù)中,命令值按時間序列排列,各命令值指示各驅(qū)動單元的關(guān)節(jié)角度。當(dāng)按時安全地操作各個驅(qū)動單元時,有必要以預(yù)先確定的時間間隔(比如,5ms)將計算的命令值同步輸出到多關(guān)節(jié)機器人主體的各個驅(qū)動單元。然而,常規(guī)機器人控制設(shè)備不能允許多關(guān)節(jié)機器人主體執(zhí)行任意人類靈巧的操作。具體地講,非常高級的復(fù)雜算法隱藏在人類靈巧的操作中,機器人控制系統(tǒng)必須執(zhí)行基于高級的復(fù)雜算法的計算。而且,即使當(dāng)多關(guān)節(jié)機器人主體的期望的位置姿勢簡單時,多關(guān)節(jié)機器人主體的各關(guān)節(jié)角度也繪制復(fù)雜的軌跡。也就是說,與基于正運動學(xué)的計算處理相比,基于逆運動學(xué)的計算處理復(fù)雜,并且需要很多時間。因此,當(dāng)執(zhí)行這樣的復(fù)雜的軌跡計算時,計算所需的時間有時變得比同步時間(輸出命令值的時間間隔)長。而且,所需時間通常根據(jù)計算條件而改變。也就是說,軌跡計算所需的時間是不確定的。假設(shè)例如比同步時間(比如,5ms)無可比擬地長的Is的時間作為該所需的時間。然而,在JP-A-2004-524171中所公開的機器人控制設(shè)備中,實時計算機有必要并行地執(zhí)行復(fù)雜的軌跡計算和同步操作。因此,實時計算機必須在同步時間內(nèi)完成軌跡計算,但是軌跡計算所需的時間是不確定的,以使得有時在同步時間內(nèi)沒有完成軌跡計算。在這樣的情況下,實時計算機有必要在完成所有的軌跡計算之后執(zhí)行同步操作,并且必須停止多關(guān)節(jié)機器人主體的操作,直到軌跡計算結(jié)束為止。結(jié)果,多關(guān)節(jié)機器人主體不能執(zhí)行任何平滑的操作,并且不能實現(xiàn)人類靈巧的操作。為了解決所述問題,本發(fā)明的目的是提供一種機器人控制設(shè)備,即使軌跡計算復(fù)雜并且計算所需的時間不確定,該機器人控制設(shè)備也能并行地執(zhí)行復(fù)雜的軌跡計算和同步操作。
發(fā)明內(nèi)容根據(jù)本發(fā)明,提供一種機器人控制設(shè)備,所述機器人控制設(shè)備將關(guān)節(jié)角度的命令值輸出到驅(qū)動多關(guān)節(jié)機器人主體的關(guān)節(jié)的多個驅(qū)動單元中的每個,以控制各個驅(qū)動單元的驅(qū)動操作,所述機器人控制設(shè)備包括共享存儲器;以及,第一處理單元和第二處理單元,所述第一處理單元和第二處理單元與所述共享存儲器可存取地連接,其中,所述第一處理單元執(zhí)行軌跡計算處理,所述軌跡計算處理包括基于用于將所述多關(guān)節(jié)機器人主體操作成期望的位置姿勢的命令計算操作命令數(shù)據(jù),并將所述操作命令數(shù)據(jù)作為計算結(jié)果存儲在共享存儲器中,所述操作命令數(shù)據(jù)指示要被輸出到各個驅(qū)動單元的命令值的序列;以及,所述第二處理單元執(zhí)行同步處理,所述同步處理包括獲取存儲在共享存儲器中的操作命令數(shù)據(jù),并以預(yù)先確定的時間間隔將命令值同步地輸出到各個驅(qū)動單元。根據(jù)本發(fā)明,由于通過第一處理單元執(zhí)行軌跡計算處理以將操作命令數(shù)據(jù)作為計算結(jié)果存儲在共享存儲器中,所以第二處理單元不必執(zhí)行任何復(fù)雜的軌跡計算處理。而且,由于第二處理單元不執(zhí)行任何復(fù)雜的軌跡計算處理,所以可實現(xiàn)同步處理,所述同步處理包括將已由第一處理單元計算的操作命令數(shù)據(jù)的命令值同步地輸出到各個驅(qū)動單元,而不停止多關(guān)節(jié)機器人主體的操作。因此,多關(guān)節(jié)機器人主體可執(zhí)行人類靈巧的操作。從以下參照附圖對示例性實施例的描述,本發(fā)明的進一步的特征將變得清楚。圖1是示出根據(jù)本發(fā)明的第一實施例的機器人裝置的示意性構(gòu)造的說明性視圖。圖2是示出根據(jù)本發(fā)明的第一實施例的機器人裝置的示意性構(gòu)造的框圖。圖3是示出根據(jù)本發(fā)明的第一實施例的機器人控制設(shè)備的各單元的操作流程的說明性圖表。圖4是示出根據(jù)本發(fā)明的第一實施例的存儲在共享存儲器中的各命令的構(gòu)造的說明性示圖。圖5A是要被輸出到多關(guān)節(jié)機器人主體的關(guān)節(jié)的操作命令數(shù)據(jù)的說明性示圖、以及要被輸出到各個關(guān)節(jié)的多條操作命令數(shù)據(jù)按時間序列排列的情況下的時序圖。圖5B是要被輸出到多關(guān)節(jié)機器人主體的各關(guān)節(jié)的操作命令數(shù)據(jù)的說明性示圖、以及示出被圖5A的圓包圍的部分的命令值序列的放大圖。圖6是示出使用三個命令的操作示例的時序圖。圖7是示出根據(jù)本發(fā)明的第二實施例的機器人控制設(shè)備的操作流程的說明性圖表。圖8是示出根據(jù)本發(fā)明的第二實施例的存儲在機器人控制設(shè)備的共享存儲器中的各命令的構(gòu)造的說明性示圖。圖9是示出根據(jù)本發(fā)明的第三實施例的機器人控制設(shè)備的第一處理單元的操作流程的說明性圖表。圖10是示出根據(jù)本發(fā)明的第三實施例的機器人控制設(shè)備的第二處理單元的操作流程的說明性圖表。圖11是示出由根據(jù)本發(fā)明的第四實施例的機器人控制設(shè)備生成的操作命令數(shù)據(jù)的示例的示圖。圖12是示出由根據(jù)比較示例的機器人控制設(shè)備生成的操作命令數(shù)據(jù)的示例的示圖。圖13是示出根據(jù)本發(fā)明的第五實施例的機器人控制設(shè)備的操作流程的說明性圖表。圖14是示出由根據(jù)本發(fā)明的第四實施例的機器人控制設(shè)備生成的、被添加了偏移(offset)值的操作命令數(shù)據(jù)的示例的示圖。具體實施例方式第一實施例圖1是示出根據(jù)本發(fā)明的第一實施例的機器人裝置的示意性構(gòu)造的說明性視圖。機器人裝置50包括多關(guān)節(jié)機器人主體100和控制多關(guān)節(jié)機器人主體100的機器人控制設(shè)備200。多關(guān)節(jié)機器人主體100包括多個聯(lián)接件101至105和作為與末端聯(lián)接件(tiplink)105連接的端部執(zhí)行器(effector)的手106,聯(lián)接件101至105和手106通過關(guān)節(jié)Jl至J6可擺動地或者可樞轉(zhuǎn)地互連。在本實施例中,多關(guān)節(jié)機器人主體100是自由度為6的六軸多關(guān)節(jié)機器人。圖2是示出機器人裝置50的示意性構(gòu)造的框圖。關(guān)節(jié)Jl至J6設(shè)有作為驅(qū)動關(guān)節(jié)Jl至J6的多個驅(qū)動單元的臂馬達Ma(Ma1至Ma6),手106設(shè)有用于手的馬達Mb。而且,雖然未顯示,但是多關(guān)節(jié)機器人主體100包括直接作用致動器、氣缸(cylinder)等。臂馬達Ma、手馬達Mb、直接作用致動器和氣缸構(gòu)成輸出設(shè)備214。而且,關(guān)節(jié)Jl至J6設(shè)有臂編碼器Ea,臂編碼器fe檢測臂馬達Ma的旋轉(zhuǎn)角度。而且,手106設(shè)有手編碼器肪,手編碼器肪檢測手馬達Mb的旋轉(zhuǎn)角度。在手106與末端聯(lián)接件105之間,設(shè)置了力傳感器Μ,力傳感器&檢測作用在手106上的力和轉(zhuǎn)矩。而且,雖然未顯示,但是多關(guān)節(jié)機器人主體100設(shè)有電流傳感器和轉(zhuǎn)矩傳感器,所述電流傳感器檢測供給馬達Ma和Mb中的每個的電流,所述轉(zhuǎn)矩傳感器檢測關(guān)節(jié)Jl至J6中的每個的轉(zhuǎn)矩。這些編碼器權(quán)和肪、力傳感器Sa、電流傳感器和轉(zhuǎn)矩傳感器構(gòu)成作為用于檢測多關(guān)節(jié)機器人主體100的狀態(tài)的傳感器的輸入設(shè)備215。以下,輸入設(shè)備215和輸出設(shè)備214被總稱為設(shè)備207。機器人控制設(shè)備200大致包括第一處理單元201、第二處理單元202和共享存儲器203。第一處理單元201和第二處理單元202與共享存儲器203可存取地連接。在本實施例中,機器人控制設(shè)備200包括一個雙核CPU,該雙核CPU中的核分別執(zhí)行第一處理單元201的功能和第二處理單元202的功能。指出,機器人控制設(shè)備200可包括兩個單核CPU,這些CPU可分別執(zhí)行第一處理單元201的功能和第二處理單元202的功能。在第一實施例中,第一處理單元201輸入將多關(guān)節(jié)機器人主體100操作成期望的位置姿勢的命令,并基于該輸入命令計算操作命令數(shù)據(jù)(軌道數(shù)據(jù)),在該操作命令數(shù)據(jù)中,要被輸出到馬達M1至胞6的關(guān)節(jié)角度的命令值按時間序列排列。然后,將作為計算結(jié)果的操作命令數(shù)據(jù)存儲在共享存儲器203中。結(jié)果,第一處理單元201執(zhí)行在其中基于逆運動學(xué)的計算所需的時間不確定的軌跡計算處理。第二處理單元202執(zhí)行同步處理,該同步處理包括獲取存儲在共享存儲器203中的操作命令數(shù)據(jù),并以預(yù)先確定的時間間隔將命令值同步輸出到馬達Miil至1^6。也就是說,第一實施例使得第一處理單元201執(zhí)行在其中計算所需的時間不確定的復(fù)雜軌跡計算處理,并使得第二處理單元202執(zhí)行馬達Ma1至Ma6的同步處理。以下,將對處理單元201和202及共享存儲器203進行詳細(xì)描述。第一處理單元201包括計算開始條件確定單元211和計算單元212。第二處理單元202包括操作開始條件確定單元221、接收單元222、命令值校正單元223、發(fā)送單元2M和操作完成條件確定單元225ο圖3是示出機器人控制設(shè)備200的各單元的操作流程的說明性圖表。首先如圖3所示,將包括多個命令CpCpC3等的命令集A預(yù)先存儲在共享存儲器203中。也就是說,在共享存儲器203中,預(yù)先存儲用于確定多關(guān)節(jié)機器人主體100的關(guān)節(jié)角度的多個命令。為了用戶描述機器人操作的目的,以例如文本類型文件的形式準(zhǔn)備命令集Α。通常組合大量命令來實現(xiàn)機器人操作。如圖4所示,各命令Cn(η是正整數(shù))包括操作描述部分C1、計算開始條件描述部分C2、操作開始條件描述部分C3和操作完成條件描述部分C40首先,將對存儲在共享存儲器203中的命令之中的用于使得馬達M1至M6中的每個執(zhí)行驅(qū)動操作的命令進行描述。在操作描述部分C1中,描述將多關(guān)節(jié)機器人主體100(更具體地,多關(guān)節(jié)機器人主體100的手106)操作成期望的位置姿勢的命令。這里,該命令具有與“作業(yè)(job)”或“指令”相同的意義。命令指定多關(guān)節(jié)機器人主體100的手106在正交坐標(biāo)系中的期望的位置姿勢。也就是說,手106的期望的位置姿勢通過正交坐標(biāo)系中的(Χ,Υ,Ζ,θχ,θγ,θζ)來指定。而且,例如,在操作描述部分C1中描述將手106移動到X=100mm且γ=200mm的坐標(biāo)位置的命令。此外,例如,在操作描述部分C1中描述用于指定手106與其當(dāng)前位置姿勢的相對位置姿勢的命令。在計算開始條件描述部分C2中,描述計算單元212開始軌跡計算的條件。例如,當(dāng)執(zhí)行另一個包括的命令時,所述命令建立手106要到達的最終期望位置,然后所述單元開始計算。在計算開始條件描述部分C2中描述這樣的條件。而且,例如,當(dāng)多關(guān)節(jié)機器人主體100的操作停止時,所述單元開始計算。當(dāng)傳感器的值被建立時,所述單元開始計算。在計算開始條件描述部分(中描述這樣的條件。在操作開始條件描述部分C3中,描述開始馬達M1至Ma6中的每個的操作以執(zhí)行命令的條件。例如,當(dāng)兩個臂合作地操作時,有必要同時開始操作。因此,例如,在操作開始條件描述部分C3中描述等待兩個軌跡的計算的操作開始條件。在操作完成條件描述部分C4中,描述完成馬達M1至Ma6的操作的條件。例如,在馬達Ma1至Ma6的軌跡到達終止端的情況下(在多關(guān)節(jié)機器人主體100到達期望的位置姿勢的情況下),馬達Ma1至Ma6的操作完成。在操作完成條件描述部分C4中描述這樣的條件。指出,用于使得馬達Mb、未顯示的直接作用致動器、未顯示的氣缸等執(zhí)行驅(qū)動操作的命令具有與用于軌跡計算的命令的構(gòu)造類似的構(gòu)造,這些命令預(yù)先存儲在共享存儲器203中。而且,在共享存儲器203中,還存儲用于使得輸入設(shè)備(傳感器)215執(zhí)行測量操作的命令。以下,將對用于使得輸入設(shè)備215執(zhí)行測量操作的命令進行描述。在操作描述部分C1中,描述對輸入設(shè)備215的測量請求。在計算開始條件描述部分C2中,描述開始在輸入設(shè)備215執(zhí)行測量之前所需的測量準(zhǔn)備的條件。例如,當(dāng)輸入設(shè)備215是附連到手106的力傳感器M或視覺傳感器時,描述該設(shè)備等待直到手106到達期望的位置姿勢為止的條件。在操作開始條件描述部分C3中,描述用于使得輸入設(shè)備215開始測量操作的條件。在輸入設(shè)備215是視覺傳感器的情況下,描述視覺傳感器可實際開始測量的條件。例如,描述這樣的條件,即,在另一個機器人裝置抓住測量對象的情況下,所述設(shè)備等待,直到所述機器人裝置停止。在操作完成條件描述部分C4中,描述輸入設(shè)備215完成測量操作的條件。例如,描述確定測量值是否變得穩(wěn)定的條件。接著,將對第一處理單元201進行描述。計算開始條件確定單元211依次參照存儲在共享存儲器203中的命令集A中的多個命令CpC2,C3等的計算開始條件描述部分c2。然后,計算開始條件確定單元211從共享存儲器203獲取滿足計算開始條件的命令的操作描述部分C1中所述的命令。如果不存在滿足計算開始條件的任何命令,則計算開始條件確定單元211等待,直到所述條件滿足為止。因此,首先在開始處,多個命令CpCyC3等中的至少一個有必要滿足計算開始條件。而且,雖然未顯示,但是可通過改變來自外部的命令的計算開始條件來啟動所述設(shè)備。當(dāng)接收到由計算開始條件確定單元211獲取的命令時,計算單元212根據(jù)逆運動學(xué)模型基于該命令計算操作命令數(shù)據(jù)B,在操作命令數(shù)據(jù)B中,要被輸出到馬達Ma1至Ma6的關(guān)節(jié)角度的命令值按時間序列排列。然后,計算單元212將操作命令數(shù)據(jù)B作為計算結(jié)果存儲在共享存儲器203中。由于由計算單元212計算的多條操作命令數(shù)據(jù)B依次存儲在共享存儲器203中,所以多條操作命令數(shù)據(jù)B被存儲。以下,將參照圖5A和5B中所示的特定示例對操作命令數(shù)據(jù)B進行描述。圖5A是要被輸出到各個關(guān)節(jié)的多條操作命令數(shù)據(jù)B按時間序列排列的情況的時序圖。在計算開始條件確定單元211獲取圖5A中所示的將多關(guān)節(jié)機器人主體100從位置姿勢Pl經(jīng)由位置姿勢P2移動到位置姿勢P3的命令的情況下,計算單元212基于該命令計算操作命令數(shù)據(jù)B。在操作命令數(shù)據(jù)B中,指示要被輸出到馬達Μα至Ma6的關(guān)節(jié)Jl至J6的關(guān)節(jié)角度的命令值按時間序列排列。圖5Β是示出被圖5Α的圓包圍的部分的命令值序列的放大圖。如圖5Β所示,對關(guān)節(jié)Jl中的馬達Ma1計算命令值Cll1至dl9,并對關(guān)節(jié)J6中的馬達Ma6計算命令值(W1至d69。然后,第二處理單元202以預(yù)先確定的時間間隔St(S卩,每隔同步時間St)將各個命令值輸出到馬達Ma1至Μ%。如上所述,第一處理單元201執(zhí)行在其中計算復(fù)雜并且計算所需的時間不確定的軌跡計算處理。當(dāng)計算單元212的以上處理操作結(jié)束時,計算開始條件確定單元211再次執(zhí)行操作。指出,計算單元212不執(zhí)行手馬達Mb、直接作用致動器、氣缸等的軌跡計算,而是基于輸入命令計算其操作命令數(shù)據(jù),包括命令值。這也適用于輸入設(shè)備215。計算單元不計算如馬達Ma1至Ma6中的任何軌跡,而是執(zhí)行測量之前的計算。例如,在力傳感器M的情況下,當(dāng)多關(guān)節(jié)機器人主體100(手106)來到預(yù)先確定的位置時,計算單元計算其值,由此作為計算結(jié)果的測量命令數(shù)據(jù)被存儲在共享存儲器203中。接著,將對第二處理單元202進行描述。操作開始條件確定單元221參照存儲在共享存儲器203中的命令CpC2,C3等的操作開始條件描述部分c3。然后,操作開始條件確定單元221從共享存儲器203獲取存儲在共享存儲器203中的多條操作命令數(shù)據(jù)B等之中的與滿足操作開始條件的命令對應(yīng)的操作命令數(shù)據(jù)B。此時,在多個命令滿足操作開始條件的情況下,操作開始條件確定單元221從共享存儲器203獲取多條操作命令數(shù)據(jù)。指出,還是關(guān)于測量命令數(shù)據(jù),當(dāng)命令滿足操作開始條件時,操作開始條件確定單元221從共享存儲器203獲取與該命令對應(yīng)的測量命令數(shù)據(jù)。接收單元222輸入作為來自輸入設(shè)備215(傳感器)的檢測結(jié)果的信號。然后,在操作開始條件確定單元221獲得測量命令數(shù)據(jù)的情況下,對檢測結(jié)果進行校正。例如,在力傳感器Μ的情況下,每次實際執(zhí)行測量時,從檢測結(jié)果減去測量命令數(shù)據(jù)的命令值,由此減輕重力的影響。例如,在視覺傳感器的情況下,從多關(guān)節(jié)機器人主體100的關(guān)節(jié)角度計算視覺傳感器所附連到的三維位置,所述三維位置被用于實際測量期間的校正。命令值校正單元223通過使用來自輸入設(shè)備215的信號對由操作開始條件確定單元221獲取的操作命令數(shù)據(jù)B的、將被同步輸出到馬達M1至Ma6的各個命令值進行校正,由此所述單元將命令值輸出到發(fā)送單元224。結(jié)果,當(dāng)輸入設(shè)備215是例如力傳感器M時,可執(zhí)行力反饋控制。而且,當(dāng)輸入設(shè)備215是視覺傳感器時,可執(zhí)行視覺反饋控制。計算校正量的方法已經(jīng)是已知的。例如,可利用阻抗控制或者力控制,諸如文獻(由日本的RoboticsSociety編輯且由CoronaPublishingCo.,Ltd.(Tokyo)出版的RobotEngineeringHandbook,2005,287頁)中所述的順從性控制。發(fā)送單元2M輸入從共享存儲器203獲取的各個經(jīng)校正的命令值,并以預(yù)先確定的時間間隔St,S卩,每隔同步時間δt,將各個命令值同步地輸出到馬達M1至胞6。該同步時間St短如數(shù)毫秒,例如,5毫秒。操作完成條件確定單元225基于處理的命令中的操作完成條件來確定操作是否完成。然后,將操作結(jié)果D存儲在共享存儲器203中。每隔同步時間δt,重復(fù)地執(zhí)行單元221至225的上述操作。根據(jù)以上構(gòu)造,例如,按命令Cp(2和(3的順序執(zhí)行軌跡計算處理,并同時執(zhí)行命令(^和(2。在命令C2的執(zhí)行結(jié)束之后,執(zhí)行命令C3。將對這種情況進行描述。圖6示出使用三個命令的操作示例的時序圖。第一處理單元201的計算單元212基于從共享存儲器203獲取的命令C1計算與命令C1對應(yīng)的操作命令數(shù)據(jù),以將該數(shù)據(jù)存儲在共享存儲器203中。接著,計算單元212基于從共享存儲器203獲取的命令C2計算與命令C2對應(yīng)的操作命令數(shù)據(jù),以將該數(shù)據(jù)存儲在共享存儲器203中。接著,計算單元212基于從共享存儲器203獲取的命令C3計算與命令C3對應(yīng)的操作命令數(shù)據(jù),以將該數(shù)據(jù)存儲在共享存儲器203中。以這種方式,第一處理單元201的計算單元212逐個地依次計算各命令,以將計算結(jié)果存儲在共享存儲器203中。此時,第二處理單元202的操作能夠獨立于第一處理單元201的計算操作,例如,即使在第一處理單元201的計算單元212基于命令C3計算操作命令數(shù)據(jù)的同時,第二處理單元202也能夠進行操作。因此,第二處理單元202的操作開始條件確定單元221訪問共享存儲器203(而不等待第一處理單元201基于命令C3的計算結(jié)束),并獲取命令C1和C2的操作命令數(shù)據(jù)。然后,第二處理單元執(zhí)行命令C1和C2的相應(yīng)操作。其后,第二處理單元202執(zhí)行命令C3的操作。因此,在第一實施例中,可并行地執(zhí)行軌跡計算處理和同步處理,這縮短了機器人裝置50的操作時間。具體地講,在機器人裝置50被合并在生產(chǎn)裝置中的情況下,由于可降低生產(chǎn)成本,所以操作時間的縮短非常重要。如上所述,第一實施例使得第一處理單元201執(zhí)行軌跡計算處理,以將操作命令數(shù)據(jù)B作為計算結(jié)果存儲在共享存儲器203中,以使得第二處理單元202不必執(zhí)行任何復(fù)雜的軌跡計算處理。因此,即使當(dāng)?shù)谝惶幚韱卧?01花費長的計算時間時,第二處理單元202也不執(zhí)行基于逆運動學(xué)的任何軌跡計算處理。因此,在操作開始條件滿足之后,可立即操作各個馬達Mei1至MEI6。然后,第二處理單元202不執(zhí)行任何復(fù)雜的軌跡計算處理,而是執(zhí)行同步處理,該同步處理包括將已經(jīng)由第一處理單元201計算的操作命令數(shù)據(jù)B的命令值同步地輸出到馬達M1至胞6。因此,可在不停止多關(guān)節(jié)機器人主體100的操作的情況下實現(xiàn)所述處理,并且可平滑地操作多關(guān)節(jié)機器人主體100,這使得多關(guān)節(jié)機器人主體100能夠執(zhí)行人類靈巧的操作。此外,在第一實施例中,由于第一處理單元201包括計算開始條件確定單元211,所以計算單元212可在合適的定時開始計算。而且,由于第二處理單元202包括操作開始條件確定單元221,所以可在合適的定時開始操作。也就是說,由于可根據(jù)命令(;、(2、(3等在令人滿意的定時執(zhí)行各個軌跡計算處理和同步處理,所以機器人裝置可與另一個操作裝置(比如,抓持物體安裝在其上的可移動臺)同步。在以上描述中,描述了一個機器人控制設(shè)備200控制一個多關(guān)節(jié)機器人主體100的情況。然而,在一個機器人控制設(shè)備200控制多個多關(guān)節(jié)機器人主體的情況下,也可執(zhí)行相同的控制操作。也就是說,在共享存儲器203中,預(yù)先存儲用于各個多關(guān)節(jié)機器人主體的命令,并且各個處理單元201和202分別基于命令執(zhí)行軌跡計算處理和同步處理。具體地講,當(dāng)同時操作各個多關(guān)節(jié)機器人主體時,可如例如圖6所示那樣同時輸出命令C1和(2。因此,可同步地操作多個多關(guān)節(jié)機器人主體,而不停止這些多關(guān)節(jié)機器人主體。結(jié)果,可平滑地操作多個多關(guān)節(jié)機器人主體,這使得多個多關(guān)節(jié)機器人主體能夠執(zhí)行人類靈巧的操作。第二實施例接著,將對根據(jù)本發(fā)明的第二實施例的機器人控制設(shè)備進行描述。圖7是示出機器人控制設(shè)備200A的操作流程的說明性圖表,圖8是示出存儲在共享存儲器中的各命令的構(gòu)造的說明性示圖。指出,在第二實施例中,用相同的參考標(biāo)記表示與以上第一實施例類似的構(gòu)造,并省略其描述。如圖8所示,除了以上在第一實施例中所述的操作描述部分C1、計算開始條件描述部分C2、操作開始條件描述部分C3和操作完成條件描述部分C4之外,預(yù)先存儲在共享存儲器203中的各命令Cn還包括狀態(tài)變量c5。在第二實施例中,狀態(tài)變量C5是表示計算開始等待狀態(tài)、計算狀態(tài)、計算完成狀態(tài)、操作狀態(tài)和操作完成狀態(tài)之一的值。首先在開始處,將狀態(tài)變量C5設(shè)置為計算開始等待狀態(tài)。計算開始等待狀態(tài)是等待軌跡計算開始的狀態(tài)。計算狀態(tài)是圖7中所示的計算單元212開始軌跡計算并正計算軌跡的狀態(tài)。計算完成狀態(tài)是計算單元212的計算完成并且操作命令數(shù)據(jù)B被存儲在共享存儲器203中的狀態(tài)。操作狀態(tài)是第二處理單元202A開始操作并正在操作的狀態(tài),操作完成狀態(tài)是第二處理單元202A完成操作的狀態(tài)。而且,除了計算開始條件確定單元211A和計算單元212之外,圖7中所示的第一處理單元201A還包括第一狀態(tài)變量改變單元301和第二狀態(tài)變量改變單元302。計算開始條件確定單元211A參照存儲在共享存儲器203中的命令CpC2,C3等中的每個的計算開始條件描述部分c2。然后,計算開始條件確定單元211A提取滿足計算開始條件的命令,在該命令中,狀態(tài)變量C5具有計算開始等待狀態(tài)。然后,計算開始條件確定單元211A從共享存儲器203獲取包括在所述命令中的操作描述部分C1中所述的一個命令。這里,如果任何對應(yīng)命令不存在,則計算開始條件確定單元211A等待,直到滿足計算條件為止。因此,首先在開始處,至少一個命令必須滿足計算開始條件。而且,即使當(dāng)所有的命令都不滿足計算開始條件,也易于改變計算開始條件,并從未顯示的外部程序啟動。例如,可將狀態(tài)變量變?yōu)殚_始等待狀態(tài)。接著,第一狀態(tài)變量改變單元301將由計算開始條件確定單元21IA從存儲在共享存儲器203中的命令CpC2,C3等獲取的命令的狀態(tài)變量C5從計算開始等待狀態(tài)變?yōu)橛嬎銧顟B(tài)。然后,計算單元212基于由計算開始條件確定單元211A獲取的命令計算操作命令數(shù)據(jù)B,并將操作命令數(shù)據(jù)B存儲在共享存儲器203中。也就是說,計算開始條件確定單元211A不從其中狀態(tài)變量C5具有除了計算開始等待狀態(tài)之外的狀態(tài)的命令獲取任何命令,這可避免冗余的計算。在計算單元212完成計算的情況下,第二狀態(tài)變量改變單元302改變存儲在共享存儲器203中的命令CpCpC3等之中的與計算單元212完成計算的操作命令數(shù)據(jù)對應(yīng)的命令的狀態(tài)變量c5。具體地講,所述單元將狀態(tài)變量C5從計算狀態(tài)變?yōu)橛嬎阃瓿蔂顟B(tài)。當(dāng)?shù)诙顟B(tài)變量改變單元302的以上改變操作結(jié)束時,再次執(zhí)行計算開始條件確定單元211A的操作。接著,將對第二處理單元202A進行描述。除了操作開始條件確定單元221A、接收單元222、命令值校正單元223、發(fā)送單元2和操作完成條件確定單元225之外,第二處理單元202A還包括第三狀態(tài)變量改變單元303和第四狀態(tài)變量改變單元304。操作開始條件確定單元221A參照存儲在共享存儲器203中的命令Q、C2,C3等中的每個的操作開始條件描述部分C30然后,操作開始條件確定單元221A從共享存儲器203獲取存儲在共享存儲器203中的多條操作命令數(shù)據(jù)B等之中的與滿足操作開始條件的命令對應(yīng)的操作命令數(shù)據(jù)B,在所述命令中,狀態(tài)變量C5具有計算完成狀態(tài)。此時,當(dāng)多個命令滿足操作開始條件并具有計算完成狀態(tài)時,操作開始條件確定單元221A從共享存儲器203獲取滿足條件的所有條操作命令數(shù)據(jù)B。第三狀態(tài)變量改變單元303將與由操作開始條件確定單元221A從存儲在共享存儲器203中的命令獲取的操作命令數(shù)據(jù)B對應(yīng)的命令的狀態(tài)變量C5從計算完成狀態(tài)變?yōu)椴僮鳡顟B(tài)。結(jié)果,可避免操作命令的冗余的執(zhí)行,并且控制變得穩(wěn)定。接收單元222輸入作為來自輸入設(shè)備215(傳感器)的檢測結(jié)果的信號。然后,在操作開始條件確定單元221A獲取測量命令數(shù)據(jù)的情況下,對檢測結(jié)果進行校正。例如,在力傳感器Μ的情況下,每次實際執(zhí)行測量時,從檢測結(jié)果減去測量命令數(shù)據(jù)的命令值,由此減輕重力的影響。而且,例如,在視覺傳感器的情況下,從多關(guān)節(jié)機器人主體100的關(guān)節(jié)角度計算視覺傳感器所附連到的三維位置,所述三維位置被用于實際測量期間的校正。命令值校正單元223通過使用來自輸入設(shè)備215的信號對由操作開始條件確定單元22IA獲取的操作命令數(shù)據(jù)B的、將被同步地輸出到馬達Ma1至Ma6的各個命令值進行校正,由此所述單元將命令值輸出到發(fā)送單元224。結(jié)果,當(dāng)輸入設(shè)備215是例如力傳感器M時,可執(zhí)行力反饋控制。而且,當(dāng)輸入設(shè)備215是視覺傳感器時,可執(zhí)行視覺反饋控制。發(fā)送單元2M輸入從共享存儲器203獲取的各個經(jīng)校正的命令值,并以預(yù)先確定的時間間隔St,S卩,每隔同步時間δt,將各個命令值同步地輸出到馬達M1至胞6。該同步時間St短如數(shù)毫秒,例如,5毫秒。操作完成條件確定單元225基于處理的命令中的操作完成條件確定操作是否完成。然后,將操作結(jié)果D存儲在共享存儲器203中。第四狀態(tài)變量改變單元304將存儲在共享存儲器203中的命令之中的與當(dāng)操作完成時的操作命令數(shù)據(jù)B對應(yīng)的命令的狀態(tài)變量C5從操作狀態(tài)變?yōu)椴僮魍瓿蔂顟B(tài)。每隔同步時間St,重復(fù)地執(zhí)行各個單元221A-304的上述操作。指出,在存儲在共享存儲器203中的命令是用于輸入設(shè)備215的命令的情況下,所述單元也類似地操作。如上所述,第二實施例使得第一處理單元201A執(zhí)行軌跡計算處理,以將操作命令數(shù)據(jù)B作為計算結(jié)果存儲在共享存儲器203中,因此,第二處理單元202A不必執(zhí)行任何復(fù)雜的軌跡計算處理。因此,即使第一處理單元201A花費長的計算時間,第二處理單元202A也不執(zhí)行基于逆運動學(xué)的任何軌跡計算處理。因此,在操作開始條件滿足之后,就可立即操作馬達Mei1至]\&16。然后,第二處理單元202A不執(zhí)行任何復(fù)雜的軌跡計算處理,而是執(zhí)行同步處理,所述同步處理包括將由第一處理單元201A已經(jīng)計算的操作命令數(shù)據(jù)B的命令值同步地輸出到馬達Ma1至胞6。因此,可在不停止多關(guān)節(jié)機器人主體100的操作的情況下實現(xiàn)所述處理,并可平滑地操作多關(guān)節(jié)機器人主體100,這使得多關(guān)節(jié)機器人主體100能夠執(zhí)行人類靈巧的操作。此外,在第二實施例中,由于第一處理單元201A包括計算開始條件確定單元211A,所以計算單元212可在合適的定時開始計算。而且,由于第二處理單元202A包括操作開始條件確定單元221A,所以可在合適的定時開始操作。也就是說,由于可根據(jù)命令C”(2丄3等在令人滿意的定時執(zhí)行各個軌跡計算處理和同步處理,所以機器人裝置可與另一個操作裝置(比如,抓持物體安裝在其上的可移動臺)同步。此外,在第二實施例中,命令CpCyC3等包括狀態(tài)變量c5。因此,當(dāng)監(jiān)測狀態(tài)變量C5時,第一處理單元201A和第二處理單元202A的控制操作變得穩(wěn)定。在以上描述中,描述了一個機器人控制設(shè)備200A控制一個多關(guān)節(jié)機器人主體100的情況。然而,在一個機器人控制設(shè)備200A控制多個多關(guān)節(jié)機器人主體的情況下,執(zhí)行相同的控制操作。也就是說,在共享存儲器203中,預(yù)先存儲用于各個多關(guān)節(jié)機器人主體的命令,并且處理單元201A和202A分別基于命令執(zhí)行軌跡計算處理和同步處理。具體地講,當(dāng)同時操作各個多關(guān)節(jié)機器人主體時,可如例如圖6中所示的那樣同時輸出命令C1和C2。因此,可在不停止多個多關(guān)節(jié)機器人主體的情況下同步地操作所述多個多關(guān)節(jié)機器人主體。結(jié)果,可平滑地操作多個多關(guān)節(jié)機器人主體,這使得多個多關(guān)節(jié)機器人主體能夠執(zhí)行人類靈巧的操作。第三實施例接著,將對根據(jù)本發(fā)明的第三實施例的機器人控制設(shè)備進行描述。圖9是示出機器人控制設(shè)備的第一處理單元中的各單元的操作流程的說明性圖表。圖10是示出機器人控制設(shè)備的第二處理單元中的各單元的操作流程的說明性圖表。指出,與以上第一實施例和第二實施例類似的構(gòu)造用相同的參考標(biāo)記表示,并省略其描述。這里,在以上第一實施例和第二實施例中,描述了提供一個多關(guān)節(jié)機器人主體100的情況,但是在提供兩個或更多個主體的情況下執(zhí)行相同的控制操作。在第三實施例中,兩個多關(guān)節(jié)機器人主體IOOa和IOOb作為對象,但是,當(dāng)提供一個多關(guān)節(jié)機器人主體時和當(dāng)提供三個或更多個主體時,控制操作不改變。在第三實施例中,機器人控制設(shè)備包括圖9中所示的第一處理單元201B和圖10中所示的第二處理單元202B。首先,將對第一處理單元201B進行描述。計算開始條件確定單元21IA參照存儲在共享存儲器203中的命令集A中的命令CpC2,C3等中的每個的計算開始條件描述部分(,并選擇滿足計算開始條件的命令G01)。此時,計算開始條件確定單元211A根據(jù)狀態(tài)變量C5是計算開始等待狀態(tài)的條件搜索命令002)。如果對應(yīng)的命令不存在,則所述單元再次參照存儲在共享存儲器203中的命令集A中的命令CpC2、C3等中的每個的計算開始條件描述部分4,并選擇滿足計算開始條件的命令。在計算開始條件確定單元211A獲取一個命令之后,第一狀態(tài)變量改變單元301將狀態(tài)變量C5從計算開始等待狀態(tài)變?yōu)橛嬎銧顟B(tài)。計算單元212B基于由計算開始條件確定單元211A獲取的命令計算操作命令數(shù)據(jù)B。計算單元212B包括處理選擇單元403、馬達控制計算單元404、傳感器控制計算單元405、外部裝置控制單元406、校正單元407和操作命令數(shù)據(jù)輸出單元408。處理選擇單元403對命令的內(nèi)容進行解釋。馬達控制計算單元404關(guān)于臂馬達Ma1至1^6計算多關(guān)節(jié)機器人主體IOOa和IOOb的關(guān)節(jié)的軌跡。在軌跡被確定之后,所述單元計算沿著軌跡前進的各關(guān)節(jié)的速度,以使得在加速和減速期間,不超過最大加速度、最大速度和最大馬達轉(zhuǎn)矩。已建議了各種計算方法。例如,以下文獻對計算軌跡的方法進行了論述。J.E.Bobrow,S.Dubowsky,J.S.Gibson:Time_0ptimalControlofRoboticManipulatorsAlongSpecifiedPaths,theInternationalJournalofRoboticsResearch,Vol.4,No.3(1985),p.3-17。這樣的軌跡計算需要第一力學(xué)模型409,第一力學(xué)模型409是逆運動學(xué)的模型。這里,第一力學(xué)模型409是多關(guān)節(jié)機器人主體100a和100b的仿真器,并包括逆計算單元。通過使用力學(xué)模型409,馬達控制計算單元404計算當(dāng)操作多關(guān)節(jié)機器人主體100a和100b時施加于各個關(guān)節(jié)的轉(zhuǎn)矩和加速度,以執(zhí)行軌跡計算,從而計算操作命令數(shù)據(jù)B。傳感器控制計算單元405計算測量命令數(shù)據(jù),以將該數(shù)據(jù)輸出到輸入設(shè)備(傳感器)215。外部裝置控制單元406處理除了多關(guān)節(jié)機器人主體100a和100b的馬達之外的外部裝置的命令,所述外部裝置例如為氣缸和由馬達控制的臺(table)。所述單元將操作命令數(shù)據(jù)分別輸出到設(shè)備。接著,校正單元407對計算的操作命令數(shù)據(jù)B進行校正。通常,多關(guān)節(jié)機器人具有比位置再現(xiàn)性(r印roducibility)低的定位精度。例如,如果六軸多關(guān)節(jié)機器人主體的手線性移動,則由于關(guān)節(jié)之間的長度和關(guān)節(jié)附連誤差,而導(dǎo)致手抖動(undulate)。由于這樣的原因而導(dǎo)致的移動誤差被再現(xiàn)。因此,當(dāng)手下次移動時,可預(yù)期基于前面的移動的結(jié)果的改進。因此,第三實施例添加預(yù)先存儲在共享存儲器203中的學(xué)習(xí)數(shù)據(jù)410。獲得學(xué)習(xí)數(shù)據(jù)410的方法可用已知的技術(shù)來執(zhí)行。如在例如文獻(由日本的RoboticsSociety編輯且由CoronaPublishingCo.,Ltd.(Tokyo)出版的RobotEngineeringHandbook,2OO5,第3加頁)中所討論的,基于曾移動的軌跡與期望的軌跡之間的差異對下一個操作命令進行校正。結(jié)果,可使軌跡接近于期望的軌跡。接著,操作命令數(shù)據(jù)輸出單元408將通過使用第一力學(xué)模型409計算的經(jīng)校正的操作命令數(shù)據(jù)B輸出到共享存儲器203。將操作命令數(shù)據(jù)B存儲在與存儲命令集A的存儲區(qū)分離的存儲區(qū)中。每一次對命令進行處理時,生成操作命令數(shù)據(jù)B。因此,多條操作命令數(shù)據(jù)B被存儲在共享存儲器203中。當(dāng)上述操作完成時,第一處理單元201B重新開始計算開始條件確定單元211A中的另一個命令的處理。接著,將對第二處理單元202B進行描述。第二處理單元202B以與以上第二實施例中的方式相同的方式包括操作開始條件確定單元221A、接收單元222、命令值校正單元223、發(fā)送單元224、操作完成條件確定單元225、第三狀態(tài)變量改變單元303和第四狀態(tài)變量改變單元304。此外,第二處理單元202B包括緩沖寫入單元413、全部數(shù)據(jù)寫入確定單元414、緩沖單元415、緩沖讀取單元416和機器人狀態(tài)監(jiān)測單元417。操作開始條件確定單元221A參照與多條操作命令數(shù)據(jù)BpB2,B3等中的各條操作命令數(shù)據(jù)對應(yīng)的命令C”C2,C3等中的每個的操作開始條件描述部分c3,并選擇滿足操作開始條件的所有條操作命令數(shù)據(jù)G11)。此時,操作開始條件確定單元221A根據(jù)狀態(tài)變量C5是計算完成狀態(tài)的條件搜索數(shù)據(jù)G12)。結(jié)果,操作開始條件確定單元221A獲取滿足操作開始條件的所有條操作命令數(shù)據(jù)。在不存在滿足操作開始條件的任何條數(shù)據(jù)的情況下,所述流程前進到緩沖讀取單元416。在存在滿足操作開始條件的一條數(shù)據(jù)的情況下,緩沖寫入單元413將數(shù)據(jù)寫入緩沖單元415中。緩沖單元415被稱為環(huán)緩沖器(ringbuffer),并包括分別與設(shè)備207對應(yīng)的軌跡。也就是說,緩沖單元415包括分別與臂馬達M1至M6對應(yīng)的(六個)軌跡,并另外包括分別與其它設(shè)備對應(yīng)的軌跡。緩沖單元415保存寫位置和讀位置。緩沖單元415是矩形狀存儲區(qū),行(軌跡)的數(shù)量對應(yīng)于所有設(shè)備207的數(shù)量,被稱為軌跡寬度。例如,當(dāng)總共提供30個馬達和傳感器時,緩沖單元具有30行的軌跡寬度。列方向指示時間,一列指示同步時間St的一個區(qū)。例如,當(dāng)同步時間間隔St是Ims并且積累了40秒時,列數(shù)為40000。緩沖寫入單元413使用緩沖單元415的寫位置作為參照,以將由操作開始條件確定單元221A獲取的操作命令數(shù)據(jù)的命令值按時間序列的順序連續(xù)地寫入與設(shè)備207中的每個對應(yīng)的軌跡中。而且,緩沖讀取單元416從緩沖單元415的各個軌跡讀取要被同時輸出的命令值。所述單元的特征在于同時讀取用于所有設(shè)備207的操作命令數(shù)據(jù)的命令值。而且,在讀取之后,將下一個讀取列移位一個列那么多。如果所述單元到達最后一列,則所述單元返回到第一列。也就是說,緩沖單元415具有帶狀環(huán)形,所述帶狀環(huán)形具有軌跡寬度。而且,緩沖單元415首先將整個單元重設(shè)為“無操作命令”的狀態(tài)。在圖10中,緩沖寫入單元413將由操作開始條件確定單元221A獲取的操作命令數(shù)據(jù)從緩沖單元415的寫位置寫入到對應(yīng)的軌跡中。當(dāng)用于一列的命令值的寫入處理結(jié)束時,將寫位置前進寫入的數(shù)據(jù)塊那么多。當(dāng)寫位置到達緩沖單元415的終止端時,將該位置返回到緩沖單元415的頂部。而且,在操作命令數(shù)據(jù)的所有命令值的寫入處理沒有在預(yù)先確定的時間(同步時間St)內(nèi)結(jié)束的情況下,在下一輪將剩余的命令值寫入緩沖單元415中。寫位置前進寫入的數(shù)據(jù)塊(命令值)那么多,因此,沒有丟失連續(xù)性。當(dāng)緩沖寫入單元413的寫入處理完成時,全部數(shù)據(jù)寫入確定單元414確定是否完成了操作命令數(shù)據(jù)的所有寫入。如果所述處理沒有完成,則所述處理前進到緩沖讀取單元416的處理。這里,在所述處理沒有完成的情況下,如上所述,僅寫入命令值的一部分,并且命令值留在操作命令數(shù)據(jù)中。當(dāng)寫入處理完成時,第三狀態(tài)變量改變單元303將狀態(tài)變量C5從計算完成狀態(tài)變?yōu)椴僮鳡顟B(tài)。緩沖讀取單元416從緩沖單元415的讀位置讀取操作命令數(shù)據(jù)。通過從緩沖單元415進行讀取,可同時獲取用于所有設(shè)備207的數(shù)據(jù)(命令值)。在讀取數(shù)據(jù)之后,緩沖讀取單元416執(zhí)行以下兩個操作。在第一個操作中,清除讀位置處的數(shù)據(jù),并將狀態(tài)返回到?jīng)]有任何操作命令的原始狀態(tài)。在第二個操作中,將讀位置更新為下一個位置。此時,在讀位置到達緩沖單元415的終止端的情況下,將該位置返回到緩沖單元415的頂部。因此,當(dāng)緩沖寫入單元413沒有寫入任何操作命令時,讀取沒有任何操作命令的狀態(tài)。以這種方式,將存儲在共享存儲器203中的操作命令數(shù)據(jù)B—次存儲在緩沖單元415中,這可顯著地減少存取共享存儲器203的次數(shù)。這最終減少了當(dāng)?shù)谝惶幚韱卧?01B和第二處理單元202B二者同時存取共享存儲器203時的存取沖突次數(shù),由此提高操作速度。接收單元222輸入來自輸入設(shè)備215(傳感器)的測量值。在輸入設(shè)備是例如編碼器的情況下,接收單元接收馬達的旋轉(zhuǎn)角度位置。具體地講,各接收器222b輸入來自各輸入設(shè)備215的信號,并將各測量值輸出到接收控制單元222a。接收控制單元22對各測量值進行校正,并將值輸出到命令值校正單元223。命令值校正單元223基于輸入的測量值對操作命令數(shù)據(jù)B進行校正。在輸入設(shè)備215是力傳感器的情況下,可執(zhí)行力反饋控制,在輸入設(shè)備215是視覺傳感器的情況下,可執(zhí)行視覺反饋控制。發(fā)送單元2M將操作命令數(shù)據(jù)B的命令值發(fā)送到設(shè)備207。在設(shè)備207是馬達的情況下,發(fā)送單元發(fā)送指示馬達關(guān)節(jié)角度的命令值,在設(shè)備207是傳感器的情況下,所述單元發(fā)送指示信號輸入命令的命令值。具體地講,發(fā)送控制單元22在預(yù)先確定的時間輸出各命令值,并且各發(fā)送器224b將該值輸出到各輸出設(shè)備214。各個輸出設(shè)備214基于輸入的命令值進行操作。機器人狀態(tài)監(jiān)測單元417監(jiān)測多關(guān)節(jié)機器人主體IOOa和IOOb的姿勢,并通過使用第二力學(xué)模型418計算多關(guān)節(jié)機器人主體IOOa和100b(手)的位置姿勢,第二力學(xué)模型418是正運動學(xué)模型。例如,在使進入預(yù)先設(shè)定的移動禁止區(qū)域的手停止的情況下,手位置姿勢的計算結(jié)果被用于確定。這里,第一處理單元201B通過使用第一力學(xué)模型409從多關(guān)節(jié)機器人主體IOOa和IOOb的手的位置姿勢計算指示多關(guān)節(jié)機器人主體IOOa和IOOb的關(guān)節(jié)角度的命令值。另一方面,當(dāng)監(jiān)測多關(guān)節(jié)機器人主體IOOa和IOOb的狀態(tài)時,第二處理單元202B使用與第一力學(xué)模型409分離的第二力學(xué)模型418。也就是說,機器人狀態(tài)監(jiān)測單元417通過使用第二力學(xué)模型418執(zhí)行正計算,以從多關(guān)節(jié)機器人主體IOOa和IOOb的關(guān)節(jié)角度計算多關(guān)節(jié)機器人主體IOOa和IOOb的手的位置。然后,機器人狀態(tài)監(jiān)測單元417將計算結(jié)果存儲在共享存儲器203中與命令集A和操作命令數(shù)據(jù)B的存儲區(qū)分離的存儲區(qū)中。因此,由于第一處理單元201B和第二處理單元202B設(shè)有兩個相應(yīng)的獨立力學(xué)模型409和418,所以所述單元不彼此干擾。也就是說,第二處理單元202B更新存放多關(guān)節(jié)機器人主體IOOa和IOOb(手)的位置姿勢的存儲器的內(nèi)容。然而,將數(shù)據(jù)存儲在與命令集A和操作命令數(shù)據(jù)B的存儲區(qū)分離的存儲區(qū)中,因此,所述單元不彼此影響。接著,操作完成條件確定單元225基于處理的命令中的操作完成條件確定操作是否完成。在確定操作完成的方法中,例如,當(dāng)操作命令數(shù)據(jù)的所有命令值被從緩沖單元415讀取并被發(fā)送到了設(shè)備207時,確定操作完成。作為備選的方案,當(dāng)多關(guān)節(jié)機器人主體IOOa和IOOb的手的位置進入預(yù)先設(shè)定的移動完成區(qū)域時,確定操作完成。在操作完成的情況下,第四狀態(tài)變量改變單元304將狀態(tài)變量C5從操作狀態(tài)變?yōu)椴僮魍瓿蔂顟B(tài)。每一個預(yù)先確定的同步時間δt,重復(fù)執(zhí)行第二處理單元202B的以上處理。因此,以與第一實施例和第二實施例中的方式相同的方式,第三實施例使得第一處理單元201B執(zhí)行軌跡計算處理,以將操作命令數(shù)據(jù)B作為計算結(jié)果存儲在共享存儲器203中,因此,第二處理單元202B不必執(zhí)行任何復(fù)雜的軌跡計算處理。結(jié)果,可在不停止多關(guān)節(jié)機器人主體IOOa和IOOb的操作的情況下實現(xiàn)同步處理,所述同步處理包括將已經(jīng)由第一處理單元201B計算的操作命令數(shù)據(jù)B的命令值同步地輸出到馬達Ma1至Μ%。這使得多關(guān)節(jié)機器人主體IOOa和IOOb能夠執(zhí)行人類靈巧的操作。第四實施例接著,將對根據(jù)本發(fā)明的第四實施例的機器人控制設(shè)備進行描述。指出,機器人控制設(shè)備的構(gòu)造與以上第一實施例至第三實施例類似。圖11是示出由機器人控制設(shè)備生成的操作命令數(shù)據(jù)的示例的示圖。指出,多關(guān)節(jié)機器人主體是多軸的,因此,多個命令值序列輸出到關(guān)節(jié)的馬達,但是僅示出了一個命令值序列進行描述。當(dāng)多關(guān)節(jié)機器人主體重復(fù)相同操作時,第一條操作命令數(shù)據(jù)與第二條操作命令數(shù)據(jù)相同,因此,可省略第二條和后面條操作命令數(shù)據(jù)的計算。因此,在第四實施例中,計算單元212Q12B)確定基于由計算開始條件確定單元21Κ211Α)獲取的命令計算的操作命令數(shù)據(jù)是否與存儲在共享存儲器203中的操作命令數(shù)據(jù)B匹配。然后,在計算單元212(212Β)確定這些條數(shù)據(jù)彼此匹配的情況下,省略操作命令數(shù)據(jù)的計算。這里,即使數(shù)據(jù)被操作開始條件確定單元221(221Α)讀取了一次,也不刪除存儲在共享存儲器203中的操作命令數(shù)據(jù),而是保留該操作命令數(shù)據(jù)。結(jié)果,即使當(dāng)計算單元212(212Β)省略計算時,由于操作命令數(shù)據(jù)沒有被刪除而是被保留在共享存儲器203中,所以操作開始條件確定單元221(221Α)能夠再次獲取操作命令數(shù)據(jù)。這里,命令CpC2、C3等具有標(biāo)志,各標(biāo)志指示操作命令數(shù)據(jù)是否已被計算,并且計算單元212(212B)可參照標(biāo)志確定數(shù)據(jù)是否已被計算。在計算單元212(212B)的計算結(jié)束之后,計算單元212Q12B)改變該標(biāo)志。如上所述,在第四實施例中,通過第一操作計算的操作命令數(shù)據(jù)在第二操作和隨后的操作中被再利用。以這種方式,省略復(fù)雜的軌跡計算。因此,能以更高的速度操作多關(guān)節(jié)機器人主體100,并可分離出第一處理單元201(201A和201B)的計算能力,以備后用。第五實施例接著,將對根據(jù)本發(fā)明的第五實施例的機器人控制設(shè)備進行描述。在以上的第四實施例中,描述了如圖11中所示的兩個連續(xù)條操作命令數(shù)據(jù)之一的終止端值與另一條操作命令數(shù)據(jù)的起始端值匹配的情況。然而,如圖12所示,兩個連續(xù)條操作命令數(shù)據(jù)之一的終止端值與另一條操作命令數(shù)據(jù)的起始端值不匹配,并且有時候,所述值彼此偏離差值A(chǔ)f那么多。當(dāng)這些值彼此不匹配時,不平滑地操作多關(guān)節(jié)機器人主體的基于第二條操作命令數(shù)據(jù)的操作。因此,第五實施例執(zhí)行包括添加偏移值的處理。圖13是示出根據(jù)第五實施例的機器人控制設(shè)備200C的各單元的操作流程的圖表。指出,圖13的設(shè)備與以上第二實施例的機器人控制設(shè)備200A的不同之處在于操作開始條件確定單元的操作。其它構(gòu)造相同,因此,用相同的參考編號表示,并且省略其描述。機器人控制設(shè)備200C的第二處理單元202C包括與以上第二實施例不同的操作開始條件確定單元221C。具體地講,操作開始條件確定單元221C具有以與第二實施例的操作開始條件確定單元221A中的方式相同的方式操作的功能,并另外包括偏移添加單元501。也就是說,操作開始條件確定單元221C的偏移添加單元501計算先前從共享存儲器203獲取的操作命令數(shù)據(jù)的最后命令值(終止端值)與當(dāng)前從共享存儲器203獲取的操作命令數(shù)據(jù)的第一命令值(起始端值)之間的差值Δ·。然后,操作開始條件確定單元221C的偏移添加單元501從當(dāng)前從共享存儲器203獲取的操作命令數(shù)據(jù)的第一命令值起按時間序列的順序?qū)⑵浦堤砑拥矫钪?,所述偏移值從作為初始值的差值Δf逐漸地減小到零。也就是說,當(dāng)重新利用操作命令數(shù)據(jù)時,偏移添加單元501計算操作命令數(shù)據(jù)的頂部數(shù)據(jù)與當(dāng)前位置之間的差,并將偏移值添加到操作命令數(shù)據(jù),所述偏移值從作為初始值的差值逐漸地減小到零。圖14示出被添加了偏移值的操作命令數(shù)據(jù)的示例。當(dāng)將從作為初始值的差值A(chǔ)f逐漸減小到零的偏移值f(t)添加到操作命令數(shù)據(jù)時,可執(zhí)行平滑的操作。偏移函數(shù)f(t)具有如下兩個必要要求。所述要求是初始值等于差值Δ·,并且所述值隨時間流逝減小到零。例如,當(dāng)差值是Δι、直到偏移值變?yōu)榱闼璧臅r間是Τ、并且從輸出要被再利用的操作命令數(shù)據(jù)的第一命令值時起所流逝的時間是t時,以下偏移函數(shù)f(t)是有效的。式1權(quán)利要求1.一種機器人控制設(shè)備,所述機器人控制設(shè)備將關(guān)節(jié)角度的命令值輸出到驅(qū)動多關(guān)節(jié)機器人主體的關(guān)節(jié)的多個驅(qū)動單元中的每個,以控制各個驅(qū)動單元的驅(qū)動操作,所述機器人控制設(shè)備包括共享存儲器;和第一處理單元和第二處理單元,所述第一處理單元和第二處理單元與所述共享存儲器可存取地連接,其中,所述第一處理單元執(zhí)行軌跡計算處理,所述軌跡計算處理包括基于用于將所述多關(guān)節(jié)機器人主體操作成期望的位置姿勢的命令計算操作命令數(shù)據(jù),并將所述操作命令數(shù)據(jù)作為計算結(jié)果存儲在共享存儲器中,所述操作命令數(shù)據(jù)指示要被輸出到各個驅(qū)動單元的命令值的序列;以及所述第二處理單元執(zhí)行同步處理,所述同步處理包括獲取存儲在共享存儲器中的操作命令數(shù)據(jù),并以預(yù)先確定的時間間隔將命令值同步地輸出到各個驅(qū)動單元。2.根據(jù)權(quán)利要求1所述的機器人控制設(shè)備,其中,所述共享存儲器存儲命令,各命令包括操作描述部分,在所述操作描述部分中描述了用于將所述多關(guān)節(jié)機器人主體操作成期望的位置姿勢的命令;計算開始條件描述部分,在所述計算開始條件描述部分中描述了基于所述操作描述部分中描述的命令計算所述操作命令數(shù)據(jù)的計算開始條件;和操作開始條件描述部分,在所述操作開始條件描述部分中描述了操作各個驅(qū)動單元的操作開始條件,其中,所述第一處理單元包括計算開始條件確定單元,所述計算開始條件確定單元參照存儲在所述共享存儲器中的各命令的計算開始條件描述部分,并從所述共享存儲器獲取滿足所述計算開始條件的命令的操作描述部分中描述的命令;和計算單元,所述計算單元基于由所述計算開始條件確定單元獲取的命令計算所述操作命令數(shù)據(jù),以將所述操作命令數(shù)據(jù)存儲在所述共享存儲器中;其中,所述第二處理單元包括操作開始條件確定單元,所述操作開始條件確定單元參照存儲在所述共享存儲器中的各命令的操作開始條件描述部分,并從所述共享存儲器獲取存儲在所述共享存儲器中的多條操作命令數(shù)據(jù)之中的與滿足所述操作開始條件的命令對應(yīng)的操作命令數(shù)據(jù);和發(fā)送單元,所述發(fā)送單元從由所述操作開始條件確定單元獲取的操作命令數(shù)據(jù)獲取與各驅(qū)動單元對應(yīng)的命令值,而以預(yù)先確定的時間間隔將所述命令值同步地輸出到各個驅(qū)動單元。3.根據(jù)權(quán)利要求1所述的機器人控制設(shè)備,其中,所述共享存儲器存儲命令,各命令包括操作描述部分,在所述操作描述部分中描述了將所述多關(guān)節(jié)機器人主體操作成期望的位置姿勢的命令;計算開始條件描述部分,在所述計算開始條件描述部分中描述了基于所述操作描述部分中描述的命令計算所述操作命令數(shù)據(jù)的計算開始條件;操作開始條件描述部分,在所述操作開始條件描述部分中描述了操作各個驅(qū)動單元的操作開始條件;和狀態(tài)變量,所述狀態(tài)變量指示計算開始等待狀態(tài)、計算狀態(tài)、計算完成狀態(tài)和操作狀態(tài)中的至少一個,其中,所述第一處理單元包括計算開始條件確定單元,所述計算開始條件確定單元參照存儲在所述共享存儲器中的各命令的計算開始條件描述部分,并從所述共享存儲器獲取滿足所述計算開始條件且具有指示計算開始等待狀態(tài)的狀態(tài)變量的命令的操作描述部分中描述的命令;第一狀態(tài)變量改變單元,所述第一狀態(tài)變量改變單元將由所述計算開始條件確定單元從存儲在所述共享存儲器中的命令獲取的命令的狀態(tài)變量變?yōu)橛嬎銧顟B(tài);計算單元,所述計算單元基于由所述計算開始條件確定單元獲取的命令計算所述操作命令數(shù)據(jù),以將所述操作命令數(shù)據(jù)存儲在所述共享存儲器中;和第二狀態(tài)變量改變單元,所述第二狀態(tài)變量改變單元將存儲在所述共享存儲器中的命令之中的與所述計算單元完成計算的操作命令數(shù)據(jù)對應(yīng)的命令的狀態(tài)變量變?yōu)橛嬎阃瓿蔂顟B(tài),其中,所述第二處理單元包括操作開始條件確定單元,所述操作開始條件確定單元參照存儲在所述共享存儲器中的各命令的操作開始條件描述部分,并從所述共享存儲器獲取存儲在所述共享存儲器中的多條操作命令數(shù)據(jù)之中的與滿足所述操作開始條件且具有指示計算完成狀態(tài)的狀態(tài)變量的命令對應(yīng)的操作命令數(shù)據(jù);第三狀態(tài)變量改變單元,所述第三狀態(tài)變量改變單元將與由所述操作開始條件確定單元從存儲在所述共享存儲器中的命令獲取的操作命令數(shù)據(jù)對應(yīng)的命令的狀態(tài)變量變?yōu)椴僮鳡顟B(tài);和發(fā)送單元,所述發(fā)送單元從由所述操作開始條件確定單元獲取的操作命令數(shù)據(jù)獲取與各驅(qū)動單元對應(yīng)的命令值,而以預(yù)先確定的時間間隔將所述命令值同步地輸出到各個驅(qū)動單元。4.根據(jù)權(quán)利要求2所述的機器人控制設(shè)備,其中,所述第二處理單元包括緩沖單元,所述緩沖單元包括分別與所述驅(qū)動單元對應(yīng)的軌道;緩沖寫入單元,所述緩沖寫入單元將由所述操作開始條件確定單元獲取的操作命令數(shù)據(jù)的命令值按時間序列的順序連續(xù)地寫入與各驅(qū)動單元對應(yīng)的軌道中;和緩沖讀取單元,所述緩沖讀取單元從所述緩沖單元的各個軌道讀取要被同時輸出的命令值。5.根據(jù)權(quán)利要求2所述的機器人控制設(shè)備,其中,在確定基于由所述計算開始條件確定單元獲取的命令計算的操作命令數(shù)據(jù)與存儲在所述共享存儲器中的操作命令數(shù)據(jù)匹配的情況下,所述計算單元省略所述計算。6.根據(jù)權(quán)利要求5所述的機器人控制設(shè)備,其中,所述操作開始條件確定單元計算先前從所述共享存儲器獲取的操作命令數(shù)據(jù)的最后命令值與當(dāng)前從所述共享處理器獲取的操作命令數(shù)據(jù)的第一命令值之間的差值,并由當(dāng)前從所述共享存儲器獲取的操作命令數(shù)據(jù)的第一命令值起按時間序列的順序?qū)⑵浦堤砑拥剿雒钪?,以對所述命令值進行校CN102528809A正,所述偏移值從作為初始值的所述差值逐漸減小到零。7.根據(jù)權(quán)利要求2所述的機器人控制設(shè)備,其中,所述第二處理單元包括機器人狀態(tài)監(jiān)測單元,所述機器人狀態(tài)監(jiān)測單元監(jiān)測所述多關(guān)節(jié)機器人主體的姿勢,所述計算單元通過使用逆運動學(xué)模型計算所述操作命令數(shù)據(jù),以及所述機器人狀態(tài)監(jiān)測單元通過使用正運動學(xué)模型計算所述多關(guān)節(jié)機器人主體的位置姿勢。8.根據(jù)權(quán)利要求2所述的機器人控制設(shè)備,還包括傳感器,所述傳感器檢測所述多關(guān)節(jié)機器人主體的狀態(tài),其中,所述第二處理單元包括命令值校正單元,所述命令值校正單元通過使用所述傳感器的檢測結(jié)果對由所述操作開始條件確定單元獲取的操作命令數(shù)據(jù)的命令值進行校正。全文摘要本發(fā)明涉及一種機器人控制設(shè)備。在多關(guān)節(jié)機器人主體的控制中,即使軌跡計算復(fù)雜并且該計算所需的時間不確定,也有必要并行地執(zhí)行復(fù)雜的軌跡計算和同步操作。為此目的,本發(fā)明的機器人控制設(shè)備包括共享存儲器及與共享存儲器連接的第一處理單元和第二處理單元。第一處理單元執(zhí)行軌跡計算處理,所述軌跡計算處理包括基于將多關(guān)節(jié)機器人主體操作成期望的位置姿勢的命令計算指示要被輸出到臂馬達的命令值的序列的操作命令數(shù)據(jù),并將計算的操作命令數(shù)據(jù)存儲在共享存儲器中。第二處理單元執(zhí)行同步處理,所述同步處理包括獲取存儲在共享存儲器中的操作命令數(shù)據(jù),并以預(yù)先確定的時間間隔將命令值同步地輸出到臂馬達。文檔編號B25J13/00GK102528809SQ20111033952公開日2012年7月4日申請日期2011年11月1日優(yōu)先權(quán)日2010年11月5日發(fā)明者根岸真人申請人:佳能株式會社