本發(fā)明涉及包括具有重疊工作區(qū)域的機(jī)器人的機(jī)器人系統(tǒng)中的碰撞避免。
背景技術(shù):
在本公開中,術(shù)語“工作區(qū)域”用于表示機(jī)器人工具可以在其中操作的體積,該體積受機(jī)器人的機(jī)械結(jié)構(gòu)約束。以前已知通過使機(jī)器人分離到足以使得它們的工作區(qū)域不重疊來避免它們之間的碰撞。然而,這樣的機(jī)器人系統(tǒng)具有其占地空間變大的缺陷。為了減小占地空間,機(jī)器人彼此靠近使得它們的工作區(qū)域重疊。提供了不同的解決方案以避免具有重疊工作區(qū)域的機(jī)器人系統(tǒng)中的碰撞。例如,可以通過軟件將機(jī)器人的工作范圍限制為小于工作區(qū)域。由此可以在機(jī)器人之間限定出不允許機(jī)器人在其中操作的緩沖區(qū),使得它們永遠(yuǎn)不會彼此碰撞。然而,在這樣的機(jī)器人系統(tǒng)中機(jī)器人的工作區(qū)域沒有被充分地利用。另一缺陷是不能在緩沖區(qū)內(nèi)執(zhí)行操作。
us20050273200a1公開了一種其中機(jī)器人的工作區(qū)域重疊的機(jī)器人系統(tǒng)。機(jī)器人之間的碰撞通過禁止兩個(gè)機(jī)器人同時(shí)進(jìn)入它們的工作區(qū)域的重疊部分來避免。該解決方案的缺陷是機(jī)器人的能力沒有被充分地利用,尤其是如果重疊區(qū)域很大的話。
us20140230594a1公開了一種其中機(jī)器人的工作區(qū)域重疊的機(jī)器人系統(tǒng)。機(jī)器人之間的碰撞通過用中央機(jī)器人控制器適當(dāng)?shù)乜刂茩C(jī)器人來避免。沒有給出如何完成這一點(diǎn)的細(xì)節(jié),但是例如可以利用us20050273200a1中公開的方法。
仍然有改進(jìn)現(xiàn)有的機(jī)器人系統(tǒng)使得其占地空間保持小同時(shí)更好地利用機(jī)器人的能力的期望。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種用于避免兩個(gè)機(jī)器人之間的碰撞的改進(jìn)方法,該方法允許兩個(gè)機(jī)器人在重疊工作區(qū)域內(nèi)同時(shí)操作而沒有兩個(gè)機(jī)器人之間的碰撞的風(fēng)險(xiǎn)。
本發(fā)明的進(jìn)一步的目的是提供一種用于執(zhí)行拾取和放置任務(wù)的改進(jìn)的機(jī)器人系統(tǒng)。
這些目的通過根據(jù)隨附權(quán)利要求1的方法和根據(jù)隨附權(quán)利要求10的裝置來實(shí)現(xiàn)。
本發(fā)明基于如下認(rèn)識:在被配置成執(zhí)行拾取和放置任務(wù)的機(jī)器人系統(tǒng)中,各機(jī)器人常常地具有可以取決于要拾取的物品或要將物品放置的空地方而執(zhí)行的多個(gè)可用的機(jī)器人移動。關(guān)于一個(gè)機(jī)器人的移動的信息使得具有重疊工作區(qū)域的另一機(jī)器人的機(jī)器人控制器能夠在可用的機(jī)器人移動之中選擇不會牽涉到兩個(gè)機(jī)器人之間的碰撞的風(fēng)險(xiǎn)的適當(dāng)?shù)囊粋€(gè)。
根據(jù)本發(fā)明的第一方面,提供有一種用于避免機(jī)器人系統(tǒng)中的兩個(gè)機(jī)器人之間的碰撞的方法,機(jī)器人系統(tǒng)包括具有第一工作區(qū)域的第一機(jī)器人和具有第二工作區(qū)域的第二機(jī)器人,第一工作區(qū)域與第二工作區(qū)域重疊以由此限定出重疊工作區(qū)域。該方法包括如下步驟:提供與要由第一機(jī)器人執(zhí)行的第一機(jī)器人移動有關(guān)的第一移動信息;獲取第一移動信息;確定對于多個(gè)第二機(jī)器人移動它們是否牽涉到第一和第二機(jī)器人之間的碰撞風(fēng)險(xiǎn);和執(zhí)行第二機(jī)器人移動中的一個(gè)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,該方法允許第一和第二機(jī)器人在重疊工作區(qū)域內(nèi)同時(shí)操作。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,第一移動信息包括第一機(jī)器人的至少一個(gè)位置。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,第一移動信息包括第一開始位置和第一結(jié)束位置。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,第一移動信息進(jìn)一步包括在第一開始位置與第一結(jié)束位置之間的路徑。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,第一和第二機(jī)器人被配置成執(zhí)行拾取和放置任務(wù),使得在各時(shí)間點(diǎn),可用的機(jī)器人移動的數(shù)量與在或?qū)⒁谙鄳?yīng)機(jī)器人的工作區(qū)域內(nèi)的相應(yīng)的物品或空地方的數(shù)量有關(guān),并且多個(gè)第二機(jī)器人移動在可用的機(jī)器人移動之中選擇。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,多個(gè)第二機(jī)器人移動包括所有可用的機(jī)器人移動。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,該方法進(jìn)一步包括將第一移動信息保存在數(shù)字存儲器中的步驟。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,該方法進(jìn)一步包括從數(shù)字存儲器中移除第一移動信息的步驟。
根據(jù)本發(fā)明的第二方面,提供有一種被配置成執(zhí)行拾取和放置任務(wù)的機(jī)器人系統(tǒng)。該機(jī)器人系統(tǒng)包括:具有第一工作區(qū)域的第一機(jī)器人和具有第二工作區(qū)域的第二機(jī)器人,第一工作區(qū)域與第二工作區(qū)域重疊以由此限定出重疊工作區(qū)域,和用于控制第一和第二機(jī)器人的移動的至少一個(gè)機(jī)器人控制器。機(jī)器人控制器被配置成執(zhí)行根據(jù)上文中所公開的本發(fā)明的方面和實(shí)施例中的任一個(gè)的方法。
附圖說明
將參照附圖更詳細(xì)地說明本發(fā)明,其中
圖1示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的機(jī)器人系統(tǒng)的示意圖,和
圖2以流程圖的形式示出本發(fā)明的一個(gè)實(shí)施例。
具體實(shí)施方式
參見圖1,根據(jù)本發(fā)明的一個(gè)實(shí)施例的機(jī)器人系統(tǒng)10包括具有第一工作區(qū)域30的第一機(jī)器人20,和具有第二工作區(qū)域50的第二機(jī)器人40。第一工作區(qū)域30與第二工作區(qū)域50重疊以由此限定出重疊工作區(qū)域60。第一機(jī)器人控制器70控制第一機(jī)器人20的移動,并且第二機(jī)器人控制器80控制第二機(jī)器人40的移動。
機(jī)器人系統(tǒng)10進(jìn)一步包括在第一方向100上移動的產(chǎn)品輸送機(jī)90、在第二方向120上移動的第一容器輸送機(jī)110和也在第二方向120上移動的第二容器輸送機(jī)130。第二方向120與第一方向100相反。產(chǎn)品輸送機(jī)90在其上運(yùn)輸在產(chǎn)品輸送機(jī)90的長度和寬度上隨機(jī)分布的物品140。第一和第二容器輸送機(jī)110、130在其上運(yùn)輸包括用于物品140的地方160的容器150。地方160在本文中被稱作或者空地方160或者已占用地方160,取決于它們是否被物品140占用。物品140要在由第一和第二機(jī)器人20、40執(zhí)行的拾取和放置任務(wù)中從產(chǎn)品輸送機(jī)90拾取并放置在容器150內(nèi)的空地方160處。拾取和放置任務(wù)的執(zhí)行意味著由第一和第二機(jī)器人控制器70、80執(zhí)行的適當(dāng)控制。為了提供適當(dāng)控制,第一和第二機(jī)器人控制器70、80需要知道在或?qū)⒁谙鄳?yīng)的第一和第二工作區(qū)域30、50內(nèi)的產(chǎn)品輸送機(jī)90上的物品140的位置以及空地方160的位置。這樣的信息可以由確定物品140和空地方160相對于相應(yīng)輸送機(jī)90、110、130的位置的機(jī)器視覺系統(tǒng)(未示出)和確定相應(yīng)輸送機(jī)90、110、130的速度的輸送機(jī)控制器來提供。
參見圖1和圖2,在各時(shí)間點(diǎn),第一和第二機(jī)器人20、40中的每一個(gè)具有如果被執(zhí)行360則導(dǎo)致對拾取和放置任務(wù)的執(zhí)行的大量可用的機(jī)器人移動。“可用的機(jī)器人移動”在該上下文中典型地意味著或者與物品140的拾取有關(guān)或者與放置有關(guān)的機(jī)器人移動190、210。也可能存在著盡管它們既與物品140的拾取無關(guān)也與放置無關(guān)但也被視作可用的機(jī)器人移動的一些例外的機(jī)器人移動。這樣的例外的機(jī)器人移動的示例是如下面在描述中進(jìn)一步說明的到特定等待位置的機(jī)器人移動190、210。在各時(shí)間點(diǎn),可用的機(jī)器人移動的數(shù)量與在或?qū)⒁谙鄳?yīng)的第一和第二工作區(qū)域30、50內(nèi)的相應(yīng)的物品140或空地方160的數(shù)量有關(guān)。第一和第二機(jī)器人控制器70、80可以在各時(shí)間點(diǎn)在可用的機(jī)器人移動之中選擇330機(jī)器人移動190、210。
在圖1中圖示出的狀況的情況中,假定第一機(jī)器人爪170剛拾取了物品140而第二機(jī)器人爪180剛要放置物品140。讓我們假定第一容器輸送機(jī)110的速度是使得第一機(jī)器人20能夠?qū)⑺叭〉奈锲?40放置在第一容器輸送機(jī)110上的最中間容器150內(nèi)的空地方160中的任一個(gè)中,或者放置到第一容器輸送機(jī)110上的最上側(cè)容器150內(nèi)的空地方160中的任一個(gè)。第一機(jī)器人20由此在圖1中示出的時(shí)間點(diǎn)具有八個(gè)可用的機(jī)器人移動(除了最終例外的機(jī)器人移動之外)。讓我們進(jìn)一步假定第一機(jī)器人控制器70選擇330執(zhí)行360具有第一開始位置260和第一結(jié)束位置270的第一機(jī)器人移動190,以將所拾取的物品140放置在第一容器輸送機(jī)110上的最中間容器150內(nèi)右側(cè)的最中間地方160處。第一距離200圖示出在第一機(jī)器人移動190期間第一容器輸送機(jī)110的位移。相應(yīng)地,讓我們假定產(chǎn)品輸送機(jī)90的速度是使得第二機(jī)器人40能夠拾取當(dāng)前在第二工作區(qū)域50內(nèi)的三個(gè)空閑物品140和將要在第二工作區(qū)域50內(nèi)的三個(gè)物品140中的任一個(gè)。第二機(jī)器人40由此在它放置了將要放置的物品140之后具有六個(gè)可用的機(jī)器人移動(除了最終例外的機(jī)器人移動之外)。
第一和第二機(jī)器人控制器70、80可以應(yīng)用不同的策略以用于在可用的機(jī)器人移動之間選擇330。例如,機(jī)器人控制器70、80可以對將要離開相應(yīng)工作區(qū)域的那些物品140和空地方160給予優(yōu)先級,或者其可以選擇330可用的機(jī)器人移動中的最短的一個(gè)。然而,有關(guān)可用的機(jī)器人移動之間的選擇的順序的考慮與本發(fā)明不相關(guān)。諸如us20120165972a1中所公開的任何以前已知的拾取策略可以適當(dāng)變動以與本發(fā)明結(jié)合地應(yīng)用。
當(dāng)兩者都在重疊工作區(qū)域60內(nèi)操作時(shí)存在有第一和第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn)。為了避免碰撞,第一機(jī)器人控制器70通過將與第一機(jī)器人移動190有關(guān)的第一移動信息240保存在第一和第二機(jī)器人控制器70、80兩者都可訪問的諸如計(jì)算機(jī)存儲器的通信接口250中來提供320該與第一機(jī)器人移動190有關(guān)的第一移動信息240。第一移動信息240可以包括第一開始位置260和/或第一結(jié)束位置270,和第一開始位置260與第一結(jié)束位置270之間的路徑。
從圖1中示出的時(shí)間點(diǎn)繼續(xù),在第二機(jī)器人40放置了將要放置的物品140之后,第二機(jī)器人控制器80選擇330六個(gè)可用的機(jī)器人移動中的一個(gè)作為第二機(jī)器人移動210。讓我們假定第二機(jī)器人控制器80選擇330具有第二開始位置280和第二結(jié)束位置290的第二機(jī)器人移動210來拾取在第二工作區(qū)域50內(nèi)的最左側(cè)的物品140。第二距離220圖示出在第二機(jī)器人移動210期間產(chǎn)品輸送機(jī)90的位移。
為了從碰撞風(fēng)險(xiǎn)角度評估第二機(jī)器人移動210的適合性,第二機(jī)器人控制器80從通信接口250中獲取340第一移動信息240。其接著應(yīng)用適當(dāng)?shù)臏?zhǔn)則來確定350第二機(jī)器人移動210是否牽涉到第一與第二機(jī)器人20、40之間的碰撞風(fēng)險(xiǎn)。如果第二機(jī)器人控制器80確定350執(zhí)行360第二機(jī)器人移動210不會牽涉到第一與第二機(jī)器人20、40之間的碰撞風(fēng)險(xiǎn),它就執(zhí)行360第二機(jī)器人移動210。否則它選擇330五個(gè)(除非可用的機(jī)器人移動的數(shù)量同時(shí)改變了)剩余可用的機(jī)器人移動中的一個(gè)作為第二機(jī)器人移動210。第二機(jī)器人控制器80接著從通信接口250重復(fù)地獲取340第一移動信息240(其可能已經(jīng)在上一次獲取340之后改變了)、確定350第二機(jī)器人移動210是否冒著引起第一與第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn)并且選擇330另一可用的機(jī)器人移動作為第二機(jī)器人移動210直到執(zhí)行360第二機(jī)器人移動210。
盡管根據(jù)優(yōu)選實(shí)施例第二機(jī)器人控制器80針對確定350第二機(jī)器人移動210是否冒著引起第一與第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn)的各場合從通信接口250獲取第一移動信息240,但是在每一個(gè)“循環(huán)”中執(zhí)行該獲取340不是關(guān)鍵。替代地,第二機(jī)器人控制器80可以僅獲取第一移動信息240一次,并且針對同一第一移動信息240執(zhí)行關(guān)于各第二機(jī)器人移動210的確定350直到執(zhí)行第二機(jī)器人移動210中的一個(gè)。當(dāng)?shù)诙C(jī)器人控制器80需要對于所有可用的機(jī)器人移動執(zhí)行確定350的時(shí)間相對于第一機(jī)器人20的物理移動可能可忽略時(shí)尤其如此。又替代地,第二機(jī)器人控制器80可以以某些時(shí)間間隔獲取第一移動信息240。
用于評估碰撞風(fēng)險(xiǎn)的適當(dāng)準(zhǔn)則可以包括:計(jì)算第一與第二機(jī)器人移動190、210之間的最小距離230(假設(shè)第一機(jī)器人移動190的路徑被包括在第一移動信息240中),和將該最小距離230與預(yù)定閾值進(jìn)行比較。另一合適的準(zhǔn)則可以是機(jī)器人移動190、210的相應(yīng)開始和結(jié)束位置260、280、270、290、310的在重疊工作區(qū)域60內(nèi)的某些方向上的最小距離。例如,在圖1中圖示出的狀況的情況中,可以確定350如果第一開始位置260和第二結(jié)束位置290在平行于第一方向100的方向上相距至少30cm則不存在碰撞風(fēng)險(xiǎn)。在同一示例上進(jìn)一步構(gòu)造,此外可以確定350即使第一開始位置260和第二結(jié)束位置290在平行于第一方向100的方向上相距小于30cm,那么如果第一開始位置260和第二結(jié)束位置290在垂直于第一方向100的方向上相距至少10cm并且第一開始位置260在第二結(jié)束位置290的左側(cè),則仍然不存在碰撞風(fēng)險(xiǎn)。用于碰撞風(fēng)險(xiǎn)的適當(dāng)準(zhǔn)則可以取決于應(yīng)用、尤其是取決于機(jī)器人20、40(爪170、180)和要拾取的物品140的尺寸來指定。
讓我們進(jìn)一步假定第二機(jī)器人控制器80確定350具有第二開始位置280和第二結(jié)束位置290的第二機(jī)器人移動210因?yàn)樽钚【嚯x230在預(yù)定閾值之下而牽涉到第一和第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn)。第二機(jī)器人控制器80接著選擇330五個(gè)剩余可用的機(jī)器人移動中的一個(gè)作為第二機(jī)器人移動210。此后第二機(jī)器人控制器80重復(fù)獲取340第一移動信息240、確定350第二機(jī)器人移動210是否牽涉到第一和第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn)和選擇330另一可用的機(jī)器人移動作為第二機(jī)器人移動210的步驟,直到其確定350第二機(jī)器人移動210不會牽涉到碰撞風(fēng)險(xiǎn)。第二機(jī)器人控制器80接著執(zhí)行360第二機(jī)器人移動210,其在圖1中圖示出的狀況的情況下可以例如以具有第二開始位置280和第三結(jié)束位置310的第二機(jī)器人移動210結(jié)束,以拾取第二工作區(qū)域50內(nèi)的最右側(cè)物品140。第二機(jī)器人控制器80一開始執(zhí)行360某第二機(jī)器人移動210,其就通過將與第二機(jī)器人移動210有關(guān)的第二移動信息300保存在通信接口250中來提供320該與第二機(jī)器人移動210有關(guān)的第二移動信息300,用于第一機(jī)器人控制器70來獲取340。
重點(diǎn)是確保在有關(guān)重疊工作區(qū)域60內(nèi)的機(jī)器人移動190、210的移動信息240、300的提供320與獲取340步驟之間存在有適當(dāng)?shù)囊蕾囆?。例如,對于確定350第二機(jī)器人移動210是否冒著引起第一與第二機(jī)器人20、40之間的碰撞的風(fēng)險(xiǎn),第一機(jī)器人控制器70提供320“新的”第一移動信息240而第二機(jī)器人控制器80使用“舊的”第一移動信息240,這應(yīng)當(dāng)是不可能的。這樣的狀況可以通過使第二機(jī)器人控制器80在獲取340時(shí)檢出第一移動信息240和第二移動信息300兩者使得它們不能由第一機(jī)器人控制器70分別提供320或獲取340直到它們由第二機(jī)器人控制器80再次檢入來避免。第二機(jī)器人控制器80一提供320第二移動信息300就可以發(fā)生檢入。
輪到第一機(jī)器人控制器70采取上文中對于第二機(jī)器人控制器80所描述的那些的相應(yīng)步驟,并且兩個(gè)機(jī)器人控制器70、80連續(xù)地改變角色使得拾取和放置任務(wù)以兩個(gè)機(jī)器人20、40之間沒有碰撞風(fēng)險(xiǎn)的狀態(tài)持續(xù)。
需注意的是,在某個(gè)時(shí)間點(diǎn),可用的機(jī)器人移動的數(shù)量可能是零,或者因?yàn)榕鲎驳娘L(fēng)險(xiǎn),可用的機(jī)器人移動中沒有一個(gè)可以被執(zhí)行360。在這樣的情況中,相應(yīng)的機(jī)器人20、40靜止不動,并且(一有任何可用的機(jī)器人移動)相應(yīng)的機(jī)器人控制器70、80就繼續(xù)在可用的機(jī)器人移動之中選擇330,直到它們中的一個(gè)可以被執(zhí)行360。替代地,相應(yīng)的機(jī)器人20、40可以被移動至特定等待位置。通過該措施,尤其可以避免機(jī)器人爪170、180在重疊工作區(qū)域60內(nèi)靜止不動。到特定等待位置的機(jī)器人移動190、210可以被認(rèn)為是可用的機(jī)器人移動,盡管它既與物品140的拾取無關(guān)也與物品140的放置無關(guān)。這樣的機(jī)器人移動190、210僅在不存在其他可用的機(jī)器人移動的例外狀況中發(fā)生。
機(jī)器人20、40一旦到達(dá)機(jī)器人移動190、210的結(jié)束位置270、290、310,與該機(jī)器人移動190、210有關(guān)的除了結(jié)束位置270、290、310(其成為下一機(jī)器人移動190、210的開始位置260、280)外的任何移動信息240、300就可以被從通信接口250中移除。
本發(fā)明不限于上面示出的實(shí)施例,而是本領(lǐng)域技術(shù)人員可以在權(quán)利要求所限定的本發(fā)明的范圍內(nèi)以多個(gè)方式修改它們。因此,本發(fā)明不限于包括僅兩個(gè)機(jī)器人20、40的機(jī)器人系統(tǒng)10,而是可以適用于包括任何合適數(shù)量的機(jī)器人20、40的機(jī)器人系統(tǒng)10。此外,單獨(dú)的機(jī)器人20、40并不一定需要由單獨(dú)的機(jī)器人控制器70、80控制,而是共用的機(jī)器人控制器70、80可以控制多個(gè)機(jī)器人20、40。通信接口250可以是機(jī)器人控制器70、80的一體部分。