專利名稱:用于軌跡規(guī)劃的改進(jìn)的融合算法的制作方法
技術(shù)領(lǐng)域:
本示例性實(shí)施方案涉及運(yùn)動(dòng)控制和規(guī)劃算法。
背景技術(shù):
通過改進(jìn)與其相關(guān)聯(lián)的多個(gè)移動(dòng)之間的融合,它找到了帶有增加軌跡的準(zhǔn)確 度和減少軌跡的執(zhí)行時(shí)間的特別的應(yīng)用。在一個(gè)實(shí)例中,利用一種算法來控制 一個(gè)機(jī)器人的軌跡。然而,應(yīng)該認(rèn)識(shí)到本示例性實(shí)施方案同樣適合于其他類似 的應(yīng)用。
貨物生產(chǎn)通常包括在一個(gè)或多個(gè)軸上的運(yùn)動(dòng)以便于它們的組裝和制造。在一 個(gè)實(shí)例中,使用了多個(gè)機(jī)器臂在以當(dāng)一個(gè)產(chǎn)品移動(dòng)經(jīng)過一個(gè)組裝過程時(shí)給它帶 來多個(gè)部件。以此方式,該機(jī)器人從一個(gè)離線盤拿起一個(gè)部件并且將該部件移 動(dòng)到產(chǎn)品的一個(gè)合適的位置上來進(jìn)行裝配。該運(yùn)動(dòng)可包括快速的并且精確的運(yùn) 動(dòng)以確保以一個(gè)最佳速度完成生產(chǎn)。
在某些情況中,從一個(gè)位置到另一個(gè)位置所需要的運(yùn)動(dòng)可能涉及多個(gè)特 定的障礙物,這些障礙物防止在一個(gè)起點(diǎn)與終點(diǎn)之間使用一個(gè)直接的路徑。其 結(jié)果是,必須采用一個(gè)間接的路徑。該間接的路徑能要求對(duì)一個(gè)機(jī)器人或其他 自動(dòng)化的運(yùn)動(dòng)裝置的編程遵循一個(gè)路徑,該路徑避免了障礙物同時(shí)將執(zhí)行全部 運(yùn)動(dòng)路徑中損失的時(shí)間最小化。典型地,所遵循的路徑包括系列執(zhí)行的多個(gè)移 動(dòng)。這樣,該運(yùn)動(dòng)路徑的間隔尺寸就易于控制,因?yàn)橛袩o窮數(shù)目的移動(dòng)可進(jìn)行 編程以實(shí)現(xiàn)基本上任何運(yùn)動(dòng)路徑。
為便于在一個(gè)生產(chǎn)環(huán)境內(nèi)的運(yùn)動(dòng),多個(gè)自動(dòng)化的機(jī)器(例如機(jī)器人)可以通 過指示它們的運(yùn)動(dòng)的位置、速度、路徑等的一組指令來進(jìn)行編程。這些指令能 基于指令類型、在一個(gè)指令集內(nèi)的位置、優(yōu)先權(quán)等而依次執(zhí)行。此外,這些指 令能基于基本上任何坐標(biāo)系統(tǒng),例如笛卡爾坐標(biāo)系統(tǒng)、非笛卡爾坐標(biāo)系統(tǒng)、
SCARA機(jī)器人、Delta機(jī)器人、圓柱形的、球形的、極性的、采集者的、鉸接 從屬的、以及鉸接獨(dú)立的接合空間。
此外,關(guān)于一個(gè)運(yùn)動(dòng)分布輪廓內(nèi)的一個(gè)事件可以執(zhí)行多個(gè)指令。在一個(gè)實(shí)例
中, 一旦滿足一個(gè)具體參數(shù)(例如一個(gè)加速度值)就可執(zhí)行一個(gè)指令。Weinhofer 等人(美國專利號(hào)7,180,253)提出了產(chǎn)生和執(zhí)行多個(gè)運(yùn)動(dòng)指令的一個(gè)更加詳 細(xì)的處理,其全部內(nèi)容結(jié)合在本申請(qǐng)中。
對(duì)運(yùn)動(dòng)進(jìn)行編程的一個(gè)困難是在多個(gè)不同的路徑中的每個(gè)之間進(jìn)行的過渡。 一個(gè)具體的運(yùn)動(dòng)路徑(例如拿取和放置周期)可能要求在一個(gè)起點(diǎn)與一個(gè)終點(diǎn) 之間的三個(gè)不同的移動(dòng)。在此情況下,有兩點(diǎn)其中又移動(dòng)之間的運(yùn)動(dòng)過渡。第 一個(gè)過渡是在該第一與第二移動(dòng)之間而第二個(gè)過渡是在第二與第三移動(dòng)之間。 應(yīng)該認(rèn)識(shí)到,如果N是一個(gè)具體路徑中的移動(dòng)的數(shù)目,N-l就是與其相關(guān)聯(lián)的 過渡點(diǎn)的數(shù)目。
可采用一個(gè)融合半徑來定義一個(gè)過渡的開始和結(jié)束。該融合半徑可表達(dá)為自 一個(gè)移動(dòng)的端點(diǎn)的距離,其中同時(shí)執(zhí)行下一個(gè)移動(dòng)的指令。常規(guī)地,無法保證 融合將只發(fā)生在該融合半徑之內(nèi)。多個(gè)移動(dòng)長度與其他參數(shù)的某些組合可以引 起這些移動(dòng)在這些融合半徑外融合(這可能引起不希望的運(yùn)動(dòng))。在一個(gè)實(shí)例 中,在一個(gè)第一融合半徑中的過渡已經(jīng)完成之前可發(fā)生在一個(gè)第二融合半徑內(nèi) 的過渡,這可引起不希望的移動(dòng)以及相關(guān)聯(lián)的有害作用。因此,所需要的是在 運(yùn)動(dòng)應(yīng)用中的多個(gè)移動(dòng)之間有助于正確、快速過渡的系統(tǒng)和方法。
發(fā)明內(nèi)容
本主題實(shí)施方案以用于產(chǎn)生有最小加速度的、平滑的、無跳動(dòng)的周期,以此 在一個(gè)空間中傳送一定質(zhì)量。利用在此所說明的改進(jìn)的算法, 一個(gè)最佳數(shù)目的 那取周期可用于多種機(jī)器人應(yīng)用,例如,像Delta機(jī)器人。因?yàn)閷?duì)周期進(jìn)行編 程的方法是簡單的并且靈活的,它極其適合的應(yīng)用是其中因?yàn)閹в羞\(yùn)送裝置跟 蹤整合視覺而取-放周期目標(biāo)是變化的。
在一個(gè)方面中,采用了一種方法以產(chǎn)生一個(gè)運(yùn)動(dòng)系統(tǒng)軌跡。 一個(gè)軌跡被限定 為一個(gè)或多個(gè)路徑段的一個(gè)序列。為該一個(gè)或多個(gè)路徑段中的每一個(gè)計(jì)算一個(gè) 速度分布輪廓,其中每個(gè)速度分布輪廓被分成一個(gè)融入?yún)^(qū)域、 一個(gè)融出區(qū)域以 及一個(gè)剩余區(qū)域。執(zhí)行每個(gè)路徑段被以使其速度分布輪廓的融入?yún)^(qū)域僅與前一 分布輪廓的融出區(qū)域重疊。
在另一個(gè)方面中,采用了一種方法來產(chǎn)生一種對(duì)稱的運(yùn)動(dòng)軌跡。如果從起點(diǎn) 到終點(diǎn)的一個(gè)路徑與從終點(diǎn)到起點(diǎn)的路徑完全相同則該路徑是對(duì)稱的。 一個(gè)軌 跡被限定為是一個(gè)或多個(gè)移動(dòng)的一個(gè)序列并且對(duì)該一個(gè)或多個(gè)移動(dòng)中的每一 個(gè)計(jì)算一個(gè)速度分布輪廓。每個(gè)速度分布輪廓被分成一個(gè)融入?yún)^(qū)域、 一個(gè)融出對(duì)每個(gè)當(dāng)前速度分布輪廓的融出區(qū)域的長度的評(píng)估要 考慮到每個(gè)后來的分布輪廓的這些融入?yún)^(qū)域的長度。如果當(dāng)前移動(dòng)的融出區(qū)域 比后來移動(dòng)的融入?yún)^(qū)域更短以使兩個(gè)區(qū)域的持續(xù)時(shí)間的差最小化,當(dāng)前移動(dòng)的 減速度和減速度的跳動(dòng)均被減小。如果后來的融合區(qū)域比當(dāng)前融合區(qū)域更短以 使兩個(gè)區(qū)域的持續(xù)時(shí)間的差最小化,后來的移動(dòng)的加速度和加速度的跳動(dòng)均被 減小。為后來的移動(dòng)計(jì)算和應(yīng)用一個(gè)時(shí)間偏差。
在再另一個(gè)方面中,采用了一種方法來限定一個(gè)運(yùn)動(dòng)軌跡算法的多個(gè)參數(shù)。 一個(gè)被限定的運(yùn)動(dòng)路徑包括至少兩個(gè)獨(dú)立的移動(dòng)、 一個(gè)當(dāng)前移動(dòng)和一個(gè)后來移 動(dòng),當(dāng)執(zhí)行該運(yùn)動(dòng)軌跡時(shí),在一個(gè)輪換的基礎(chǔ)上對(duì)該當(dāng)前移動(dòng)和后來移動(dòng)進(jìn)行 定義。為這些移動(dòng)中的每一個(gè)計(jì)算一個(gè)速度分布輪廓,其中每個(gè)速度分布輪廓 被分成一個(gè)融入?yún)^(qū)域、 一個(gè)融出區(qū)域以及一個(gè)剩余區(qū)域。對(duì)當(dāng)前移動(dòng)的分布輪 廓的融出區(qū)域以及后來移動(dòng)的分布輪廓的融入?yún)^(qū)域進(jìn)行評(píng)估。計(jì)算后來移動(dòng)的 分布輪廓的開始時(shí)間。建立一個(gè)融入?yún)^(qū)域,它包括當(dāng)前移動(dòng)的分布輪廓的融入 區(qū)域和后來移動(dòng)的分布輪廓的融出區(qū)域以完成該軌跡。
重復(fù)最后三個(gè)步驟直到完成該運(yùn)動(dòng)軌跡。
圖la和lb根據(jù)一個(gè)示例性實(shí)施方案展示了包括多個(gè)獨(dú)立移動(dòng)的多個(gè)運(yùn)動(dòng)軌
跡;
圖2a根據(jù)一個(gè)示例性實(shí)施方案展示了用于圍繞時(shí)間軸翻轉(zhuǎn)的加速度和減速 度值進(jìn)行互換的概念;
圖2b根據(jù)一個(gè)示例性實(shí)施方案展示了一個(gè)不對(duì)稱的運(yùn)動(dòng)軌跡,它包括使用 一個(gè)常規(guī)的運(yùn)動(dòng)算法的多個(gè)速度受限制的移動(dòng);
圖3根據(jù)一個(gè)示例性實(shí)施方案展示了使用兩個(gè)融合半徑的一個(gè)運(yùn)動(dòng)軌跡;
圖4根據(jù)一個(gè)示例性實(shí)施方案展示了使用六個(gè)融合半徑的一個(gè)運(yùn)動(dòng)軌跡;
圖5根據(jù)一個(gè)示例性實(shí)施方案展示了為兩個(gè)融合半徑中的每個(gè)識(shí)別出融合 點(diǎn)的一個(gè)運(yùn)動(dòng)軌跡;
圖6根據(jù)一個(gè)示例性實(shí)施方案展示了與來自圖5的運(yùn)動(dòng)軌跡的三個(gè)獨(dú)立移動(dòng) 中每個(gè)相關(guān)聯(lián)的速度曲線;
圖7根據(jù)一個(gè)示例性實(shí)施方案展示了一個(gè)運(yùn)動(dòng)軌跡,其中這些融合半徑是沿
著對(duì)于其中每個(gè)移動(dòng)的相關(guān)聯(lián)的速度分布輪廓的最短移動(dòng)的長度的百分之五
十;
圖8根據(jù)一個(gè)示例性實(shí)施方案展示了用于來回移動(dòng)的一個(gè)不對(duì)稱的運(yùn)動(dòng)軌 跡,其中這些融合半徑是使用一個(gè)常規(guī)算法的最短移動(dòng)長度的百分之百;
圖9a、9b和9c根據(jù)一個(gè)示例性實(shí)施方案展示了使用一個(gè)常規(guī)的算法的一個(gè) 第一移動(dòng)和一個(gè)第二移動(dòng)的運(yùn)動(dòng)以及與其相關(guān)聯(lián)的速度分布輪廓;
圖IO根據(jù)一個(gè)示例性實(shí)施方案展示了一個(gè)運(yùn)動(dòng)軌跡內(nèi)的移動(dòng),該運(yùn)動(dòng)軌跡 被分成三個(gè)區(qū)域, 一個(gè)融入?yún)^(qū)域、 一個(gè)融出區(qū)域以及一個(gè)剩余區(qū)域;
圖ll根據(jù)一個(gè)示例性實(shí)施方案展示了與圖IO的移動(dòng)相關(guān)聯(lián)的一個(gè)速度分布 輪廓;
圖12根據(jù)一個(gè)示例性實(shí)施方案展示了圖11的速度分布輪廓,它已經(jīng)被分成 三個(gè)區(qū)域 一個(gè)融入?yún)^(qū)域、 一個(gè)融出區(qū)域以及一個(gè)剩余區(qū)域;
圖13根據(jù)一個(gè)示例性實(shí)施方案展示了一個(gè)運(yùn)動(dòng)軌跡內(nèi)三個(gè)依次移動(dòng)的速度 分布輪廓,其中每個(gè)后繼的移動(dòng)直到已經(jīng)到達(dá)前一移動(dòng)的融出區(qū)域時(shí)才開始;
圖14根據(jù)一個(gè)示例性實(shí)施方案展示了使用改進(jìn)的算法為如圖13中所示的三 個(gè)移動(dòng)中的每一個(gè)計(jì)算開始時(shí)間;
圖15根據(jù)一個(gè)示例性實(shí)施方案展示了用于來回移動(dòng)的一個(gè)運(yùn)動(dòng)軌跡,其中 這些融合半徑等于使用一個(gè)改進(jìn)算法的最短移動(dòng)的長度的100%;以及
圖16根據(jù)一個(gè)示例性實(shí)施方案展示了與圖15的三個(gè)移動(dòng)相關(guān)聯(lián)的速度分布 輪廓。
具體實(shí)施例方式
多種標(biāo)準(zhǔn)的融合算法能產(chǎn)生多個(gè)軌跡,它們不是對(duì)稱的(例如從起點(diǎn)至終點(diǎn) 的軌跡與從終點(diǎn)至起點(diǎn)的軌跡是不同的)并且它們不總是停留在它們的漸近線 附近。當(dāng)一個(gè)分布輪廓在其進(jìn)程中到達(dá)其融合點(diǎn)時(shí),融合開始。使用常規(guī)的算 法,融合可以開始的點(diǎn)是其中一個(gè)分布輪廓開始減速或者其中一個(gè)分布輪廓要 走的剩余距離小于一個(gè)預(yù)定的極限。這類算法是單獨(dú)地依賴于與當(dāng)前執(zhí)行的移 動(dòng)相關(guān)的信息并且不考慮隨后要執(zhí)行的移動(dòng)。其結(jié)果是,自一個(gè)起點(diǎn)至一個(gè)終 點(diǎn)的軌跡典型地與自一個(gè)終點(diǎn)至一個(gè)起點(diǎn)的軌跡不同。在此所說明的改進(jìn)的算 法通過將融合開始的時(shí)刻延遲一個(gè)預(yù)定的時(shí)間延期和/或?qū)θ谌牒腿诔鰠^(qū)域的 動(dòng)態(tài)特征進(jìn)行調(diào)節(jié)而去除了這類缺陷。
該過程以兩個(gè)步驟工作。在第一步驟的過程中,對(duì)第一分布輪廓的融出區(qū) 域和第二分布輪廓的融入?yún)^(qū)域進(jìn)行評(píng)估。在第二步驟的過程中,計(jì)算第二分布 輪廓的開始時(shí)間,以使得僅有該第一分布輪廓的融入?yún)^(qū)域和該第二分布輪廓的 融出區(qū)域參加融合并且在最短的時(shí)間內(nèi)完成全部軌跡。融合區(qū)域的典型的實(shí)例 是1)第一分布輪廓的一個(gè)融出區(qū)域其減速段以及第二分布輪廓的一個(gè)融 入?yún)^(qū)域其加速段;2)該第一分布輪廓的一個(gè)融出區(qū)域要走的剩余距離小 于一個(gè)融合半徑并且該第二分布輪廓的一個(gè)融入?yún)^(qū)域,其中一個(gè)命令位置小于 一個(gè)融合半徑;3)該第一分布輪廓的一個(gè)融出區(qū)域要走的剩余距離小于第 一移動(dòng)的長度的百分之五十以及該第二分布輪廓的一個(gè)融入?yún)^(qū)域 一個(gè)命令位 置小于第二移動(dòng)的長度的百分之百。如果該移動(dòng)由多于兩個(gè)分布輪廓組成,可 以使用不同公式用于計(jì)算每個(gè)分布輪廓的融出和融入?yún)^(qū)域。
當(dāng)用于這兩個(gè)移動(dòng)的融合區(qū)域包含一個(gè)最小的a)該第一移動(dòng)的整個(gè)減速 段,以及b)該第二移動(dòng)的加速段時(shí),那么通過在該分布輪廓軌跡的計(jì)算中使 用一個(gè)任選的附加步驟可進(jìn)一步的改進(jìn)該軌跡的形狀。如果該第二移動(dòng)具有比 該第一移動(dòng)更高的命令速度并且兩個(gè)移動(dòng)幾乎是在共直線的(其中跳動(dòng)被限定 為時(shí)間的一個(gè)百分?jǐn)?shù)),這種改進(jìn)就是最顯著。
首先,通過常規(guī)手段評(píng)估融入和融出區(qū)域。接下來,進(jìn)行一個(gè)額外的優(yōu)化, 其中在初始融入和融出區(qū)域評(píng)估之后,選擇較短的一個(gè)。如果該第一移動(dòng)的融 出區(qū)域是二者中較短的一個(gè),那么該第一移動(dòng)的減速和減速跳動(dòng)均被減少以使 在兩個(gè)區(qū)域的持續(xù)時(shí)間中的差植被最小化(例如,若可能話為零)。如果該第 二移動(dòng)的融入半徑是二者中較短的一個(gè),那么該第二移動(dòng)的加速和加速跳動(dòng)均 被減少以使在兩個(gè)區(qū)域的持續(xù)時(shí)間中的差值被最小化(例如,若可能話為零)。 計(jì)算并且應(yīng)用該第二移動(dòng)的一個(gè)時(shí)間差值。
圖la展示了一個(gè)運(yùn)動(dòng)軌跡100,它包括三個(gè)獨(dú)立的移動(dòng)一個(gè)第一移動(dòng)102、 一個(gè)第二移動(dòng)104以及一個(gè)第三移動(dòng)106。運(yùn)動(dòng)100可以采用在不同的制造/生 產(chǎn)應(yīng)用中由機(jī)器人普遍使用的一個(gè)"拿取和放置"運(yùn)動(dòng)。在此實(shí)例中,第一移動(dòng) 102是一個(gè)向上的移動(dòng);第二移動(dòng)104是一個(gè)水平的移動(dòng);并且第三移動(dòng)106
是一個(gè)向下的移動(dòng)。移動(dòng)102具有一個(gè)起點(diǎn)IIO和一個(gè)停止點(diǎn)114。在此實(shí)例 中,起點(diǎn)IIO從零速度或息止開始。 一旦該第一移動(dòng)102在112處終止,該第 二移動(dòng)104在114開始并且在116結(jié)束。 一旦該第二移動(dòng)104結(jié)束,該第三移 動(dòng)106在118開始并且在120結(jié)束,這又是零速度。因?yàn)樵诖藢?shí)例中的這些移 動(dòng)是獨(dú)立地并且順序地執(zhí)行,沒有過渡點(diǎn)。此外,盡管該第一移動(dòng)102正交于 該第二移動(dòng)104并且該第二移動(dòng)正交于該第三移動(dòng)106,這些移動(dòng)能基本上彼 此成任何角度并且在任何大小之內(nèi)。
圖lb展示了一個(gè)運(yùn)動(dòng)軌跡200,它包括7個(gè)獨(dú)立的移動(dòng)一個(gè)第一移動(dòng)202、 一個(gè)第二移動(dòng)204、 一個(gè)第三移動(dòng)206、 一個(gè)第四移動(dòng)208、 一個(gè)第五移動(dòng)210、 一個(gè)第六移動(dòng)212以及一個(gè)第七移動(dòng)214。該第一移動(dòng)202的起點(diǎn)是零速度, 正像第七移動(dòng)214的終點(diǎn)。軌跡200中的這七個(gè)獨(dú)立移動(dòng)是順序地執(zhí)行,其中 一旦該第一移動(dòng)完成,該第二移動(dòng)開始,等等。應(yīng)該認(rèn)識(shí)到,盡管在此所說明 的這些移動(dòng)在兩維的背景中示出,對(duì)于在一個(gè)運(yùn)動(dòng)軌跡內(nèi)定義多個(gè)移動(dòng)所能使 用維數(shù)沒有限制。例如,多個(gè)移動(dòng)可定義為N維,此處N是任何大于一的正整 數(shù)。
圖2a包括了基于編程的加速和減速值的四個(gè)移動(dòng)。一個(gè)加速252和減速254 被用于一個(gè)第一移動(dòng);并且一個(gè)加速258和減速256被用于一個(gè)第四移動(dòng)。加 速252等于減速256;并且減速254等于加速258。該相對(duì)加速和減速值還等 于用于該軌跡(未示出)內(nèi)的一個(gè)第二和一個(gè)第三移動(dòng)。
不管這些融合區(qū)域與這些速度分布輪廓是對(duì)稱的,如果遵循以上這些步驟, 自一個(gè)起點(diǎn)至一個(gè)末端起點(diǎn)的軌跡將被同樣作為自該終點(diǎn)至該起點(diǎn)的軌跡。應(yīng) 該認(rèn)識(shí)到,用于產(chǎn)生一個(gè)對(duì)稱的軌跡的必要條件是當(dāng)在該反向方向中移動(dòng)時(shí), 該速度分布輪廓必須圍繞其時(shí)間軸翻轉(zhuǎn)。這能通過或者將其加速與減速參數(shù)對(duì) 換或者簡單地通過使用帶有相等的加速和減速極限的速度分布輪廓來實(shí)現(xiàn)。此 技術(shù)在本領(lǐng)域中是已知的并且不在此做詳細(xì)的討論。
圖2b展示了當(dāng)使用常規(guī)的算法執(zhí)行軌跡時(shí)發(fā)生的一個(gè)困難。 一名程序員所 希望的許多移動(dòng)是基于該移動(dòng)的長度、加速度以及減速度值而受限制的速度。 這樣,當(dāng)一個(gè)移動(dòng)的長度減小時(shí),最大可完成的速度同樣被減少。使用常規(guī)的 算法,如果這些移動(dòng)是限制速度的,則不能計(jì)算加速度和減速度的比率用以產(chǎn) 生對(duì)稱的分布輪廓。
圖3展示了一個(gè)運(yùn)動(dòng)軌跡300,它包括三個(gè)獨(dú)立的移動(dòng) 一個(gè)第一移動(dòng)302、 一個(gè)第二移動(dòng)304以及一個(gè)第三移動(dòng)306。此運(yùn)動(dòng)軌跡非常相似于圖1中所展 示的運(yùn)動(dòng)軌跡100。主要的差別是對(duì)三個(gè)獨(dú)立移動(dòng)中的每個(gè)之間的過渡使用了 一個(gè)融合半徑。融合半徑310協(xié)助在第一移動(dòng)302與第二移動(dòng)304之間的一個(gè) 過渡。融合半徑312協(xié)助在該第二移動(dòng)304與該第三移動(dòng)306之間的一個(gè)過渡。
這些融合半徑310和312是由圍繞這兩個(gè)移動(dòng)(在它們之間需要一個(gè)過渡) 的初始移動(dòng)(例如分別是302和304)的終點(diǎn)的一個(gè)半徑定義的。該運(yùn)動(dòng)軌跡 基于該運(yùn)動(dòng)是否位于該融合半徑的內(nèi)部或外部而變化。在該融合半徑外,該軌 跡準(zhǔn)確匹配一個(gè)編程的移動(dòng)。在該融合半徑之內(nèi),在移動(dòng)之間產(chǎn)生一個(gè)平滑的 過渡。應(yīng)該認(rèn)識(shí)到融合半徑越小轉(zhuǎn)角越尖而反之亦然。
融合運(yùn)動(dòng)按以下方式工作。該第一移動(dòng)302開始。當(dāng)該第一移動(dòng)302到達(dá)該 融合半徑時(shí),該第二移動(dòng)304開始,其中該第一移動(dòng)302和該第二移動(dòng)304同 時(shí)執(zhí)行。隨后,在一個(gè)預(yù)定的時(shí)間該第一移動(dòng)減速到零而該第二移動(dòng)304繼續(xù)。 在該融合半徑內(nèi)該第一移動(dòng)302與該第二移動(dòng)304的在融合半徑內(nèi)的疊加在該 第一移動(dòng)302與該第二移動(dòng)304之間產(chǎn)生一個(gè)平滑的過渡。在該融合半徑312 內(nèi)這個(gè)序列對(duì)第二移動(dòng)304與第三移動(dòng)306之間的過渡重復(fù)以生產(chǎn)另一個(gè)平滑 的過渡。
類似地,圖4展示了一個(gè)示例性運(yùn)動(dòng)軌跡400,它包括七個(gè)獨(dú)立的移動(dòng)402、 404、 406、 408、 410、 412和414。此運(yùn)動(dòng)軌跡通過融合半徑為該運(yùn)動(dòng)400提 供了多個(gè)平滑過渡點(diǎn)。這類運(yùn)動(dòng)融合提供了超過圖lb中所展示的軌跡的一個(gè) 優(yōu)點(diǎn)。
該運(yùn)動(dòng)軌跡400包括了六個(gè)融合半徑420、 422、 424、 426、 428以及430,
使用這些融合半徑以協(xié)助該第一移動(dòng)402到該第二移動(dòng)404的過渡、該第二移 動(dòng)404到該第三移動(dòng)406的過渡,等等。如在以下更詳細(xì)的討論,該第一和最 后融合半徑420和430可以是被融合的最短的移動(dòng)的長度的百分之百。這是不 同于任何中間融合半徑(例如融合半徑422、 424、 426和428)的一個(gè)方面, 這些中間融合半徑具有被融合的最短的移動(dòng)長度的百分之五十的一個(gè)最大尺 寸。這些融合半徑參數(shù)可以用于對(duì)一個(gè)運(yùn)動(dòng)軌跡內(nèi)的指令執(zhí)行進(jìn)行優(yōu)化。
應(yīng)該注意,該融合半徑基本上能使用在一個(gè)軌跡內(nèi)的任何位置中。這樣,直 到在一個(gè)運(yùn)動(dòng)軌跡中達(dá)到該第三移動(dòng)時(shí)才可使用融合半徑。替代地或者額外
地,在該運(yùn)動(dòng)軌跡已結(jié)束之前融合半徑可停止對(duì)五個(gè)移動(dòng)使用。以此方式,定 義融合半徑使用的該"開始"和"停止"點(diǎn)不是必須地涉及一個(gè)軌跡的物理起點(diǎn)和 結(jié)點(diǎn),它們通常是與零速度相關(guān)聯(lián)的。在一個(gè)軌跡內(nèi)使用融合的這些依次的移 動(dòng)被稱作一個(gè)融合的運(yùn)動(dòng)序列。
圖5展示了包括三個(gè)獨(dú)立的移動(dòng)502、 504和506的一個(gè)運(yùn)動(dòng)軌跡500,這 些運(yùn)動(dòng)在彼此相對(duì)的順序中執(zhí)行。 一個(gè)融合半徑508位于移動(dòng)502與504之間 并且一個(gè)融合半徑510位于移動(dòng)504與506之間。該融合半徑508在一個(gè)融合 點(diǎn)514處開始并且融合半徑510在一個(gè)融合點(diǎn)516處開始。融合點(diǎn)514和516 基本上可以基于任何度量而預(yù)先確定,例如時(shí)間、距離、速度、加速度、等等。 在本實(shí)施方案中,融合點(diǎn)514和516是基于移動(dòng)502、 504和506各自的速度 而確定的。
為產(chǎn)生軌跡500,初步為運(yùn)動(dòng)定義一個(gè)所希望的路徑。然后可將此路徑分解 成多個(gè)運(yùn)動(dòng)段(例如線、圓、等)。然后為每個(gè)段計(jì)算一個(gè)速度分布輪廓。每 個(gè)速度分布輪廓被分成一個(gè)融入?yún)^(qū)域、 一個(gè)融出區(qū)域以及一個(gè)剩余區(qū)域。基于 對(duì)每段速度分布輪廓的這種分配,每個(gè)路徑段開始的方式為使該軌跡在最少的 時(shí)間內(nèi)完成但其速度分布輪廓的融入?yún)^(qū)域只與前一分布輪廓的融出區(qū)域重疊。
融合半徑508和510可在一個(gè)算法內(nèi)起到兩個(gè)作用。第一,融合半徑508 和510控制軌跡曲率。這樣, 一個(gè)較大的融合半徑可導(dǎo)致一個(gè)更加平滑的軌跡。 第二,融合半徑508和510控制周期時(shí)間。一個(gè)較大的融合半徑意味著運(yùn)動(dòng)504 和506開始的更早,因?yàn)樗鼈兣c前面的移動(dòng)平行運(yùn)行。因此,整個(gè)軌跡500更 快速地完成。其結(jié)果是,軌跡500的速度與融合半徑508和510的大小相關(guān)。 融合半徑508和510的直徑越大,軌跡完成越快。換言之,當(dāng)軌跡運(yùn)動(dòng)在一個(gè) 融合半徑之外時(shí),只執(zhí)行一個(gè)移動(dòng)。替代地,當(dāng)運(yùn)動(dòng)是在一個(gè)融合半徑之內(nèi)時(shí), 兩個(gè)移動(dòng)同時(shí)運(yùn)行,其中重疊的輸出產(chǎn)生一個(gè)平滑的過渡。
圖6展示了三個(gè)速度分布輪廓610、 620和630,它們與時(shí)域內(nèi)的三個(gè)移動(dòng) 502、 504和506中的每一個(gè)相關(guān)。應(yīng)該認(rèn)識(shí)到,盡管速度被展示為一個(gè)梯形的 分布輪廓,它可以表達(dá)為一個(gè)S曲線、拋物線(或其他多項(xiàng)式)、三角形或者 其他輪廓。曲線610代表移動(dòng)502的速度;曲線620代表移動(dòng)504的速度;并 且曲線630代表移動(dòng)506的速度。時(shí)域?qū)τ谒星€502、 504和506是相同 的。因此,曲線610 (和移動(dòng)502)先于曲線620 (移動(dòng)504)開始,此曲線先 于曲線630 (移動(dòng)506)開始。以此方式,這些移動(dòng)502-506部分地彼此重疊以 便在這些移動(dòng)之間提供合適的過渡并且加快軌跡500的執(zhí)行。
曲線610在速度上從零(一個(gè)靜止的位置)增加直到大約經(jīng)過該移動(dòng)502 中途達(dá)到一個(gè)最大的速度(其中加速為零)。 一旦移動(dòng)502開始減速,第二移 動(dòng)504開始。在經(jīng)過移動(dòng)504的大約四分之三的路程處,該移動(dòng)減速由此啟動(dòng) 第三移動(dòng)506。應(yīng)該認(rèn)識(shí)到,對(duì)于一個(gè)后繼移動(dòng)的唯一的觸發(fā)是當(dāng)一個(gè)當(dāng)前的 移動(dòng)開始了一個(gè)融合區(qū)域的時(shí)刻。這樣,沒有對(duì)于使用常規(guī)算法的一個(gè)軌跡內(nèi) 各個(gè)移動(dòng)的"向前看"或超過減速觸發(fā)的基制。
對(duì)于一個(gè)移動(dòng)的最大的可實(shí)現(xiàn)的速度是基于該移動(dòng)的長度、加速度和減速度 值。對(duì)于一個(gè)限制速度的移動(dòng),當(dāng)一個(gè)移動(dòng)長度因?yàn)橐粋€(gè)給定的方面值(例如 加速度、減速度、等)而減小時(shí),該最大可實(shí)現(xiàn)的速度也被減小。
圖7展示了使用常規(guī)算法的一個(gè)軌跡700。軌跡700被顯示為它與其中包括 的三個(gè)移動(dòng)702、 704和706中的每一個(gè)的相應(yīng)速度值相關(guān)。在移動(dòng)702與704 之間使用一個(gè)融合半徑710并且在704與706之間使用一個(gè)融合半徑712。速 度分布輪廓720展示了在執(zhí)行軌跡700時(shí)這些移動(dòng)的疊加,其中后繼的移動(dòng)在 前面的移動(dòng)完成前開始??偟膩碚f,常規(guī)的算法不應(yīng)該使710和712的融合半 徑增加到大于被融合的這兩個(gè)移動(dòng)的最短移動(dòng)長度的百分之五十,以保持該軌 跡是粗略地對(duì)稱的。
圖8展示了使用一個(gè)常規(guī)算法的軌跡700,其中該融合半徑710和712等于 最短移動(dòng)長度的百分之百。因?yàn)槿诤习霃?10和712大于最短移動(dòng)長度的百分 之五十,軌跡700是不對(duì)稱的,其中一個(gè)第一方向中的運(yùn)動(dòng)不等同于一個(gè)第二 方向中的運(yùn)動(dòng)。
最佳的,該移動(dòng)702準(zhǔn)確地完成在當(dāng)移動(dòng)704是在等于自其起點(diǎn)的融合半徑 處時(shí)。如果移動(dòng)702在移動(dòng)704之前完成,它不損害軌跡形狀但該分布輪廓完 成可能比必需的情況要花費(fèi)更多的時(shí)間。然而,如果移動(dòng)702在移動(dòng)704之后 完成,該融合算法可能變得混淆。在一個(gè)實(shí)例中,如圖9a中所展示的,移動(dòng) 704在移動(dòng)702完成之前完成。結(jié)果,該融合軌跡不與漸近線相切。
圖9a展示了軌跡700內(nèi)的移動(dòng)702和704,其中該融合半徑710和712等 于最短移動(dòng)長度的百分之百。圖9b和9c展示了分別與移動(dòng)702和704相關(guān)聯(lián) 的速度分布輪廓。在本實(shí)例中,它使用了一個(gè)常規(guī)算法,在上述移動(dòng)702中移 動(dòng)704的起點(diǎn)由第一減速810觸發(fā)。移動(dòng)704在移動(dòng)702之前完成,如點(diǎn)812 所指示的。因?yàn)檫@一情況,當(dāng)一個(gè)融合半徑大于移動(dòng)702的百分之五十時(shí),軌 跡700也許是不對(duì)稱的。
圖IO展示了一個(gè)軌跡內(nèi)的一個(gè)示例性移動(dòng)900,該軌跡被分成三個(gè)不重疊 的區(qū)域以防止不對(duì)稱的軌跡運(yùn)動(dòng)。這三個(gè)區(qū)域是 一個(gè)融入?yún)^(qū)域910、 一個(gè)融 出區(qū)域920以及一個(gè)剩余區(qū)域930。融入?yún)^(qū)域910是可以與前面移動(dòng)參加融合 的一個(gè)移動(dòng)的一部分。典型地,它位于自一個(gè)移動(dòng)起點(diǎn)的一個(gè)融合半徑940內(nèi)。 該融出區(qū)域920是可以移動(dòng)900與下一個(gè)移動(dòng)參加融合的部分??傊挥?自一個(gè)移動(dòng)起點(diǎn)的融合半徑950內(nèi)。該剩余部分930也許不參加任何融合。典 型地,它位于兩個(gè)融合半徑940和950之外。
圖11示出了與該移動(dòng)900相關(guān)聯(lián)的一個(gè)速度分布輪廓1000。該速度以關(guān)于 時(shí)間示出并且是基于所希望的為移動(dòng)900選定的距離、加速度和減速度參數(shù)。 應(yīng)該認(rèn)識(shí)到可獨(dú)立地選擇對(duì)于每個(gè)移動(dòng)的速度、加速度、減速度和跳動(dòng)參數(shù)。 然而,這類隨機(jī)參數(shù)組合可減慢周期時(shí)間并且產(chǎn)生不良的速度分布輪廓。因此, 在一個(gè)實(shí)施方案中,多個(gè)參數(shù)被修改以便下一個(gè)移動(dòng)分布輪廓的加速度時(shí)間匹 配于當(dāng)前移動(dòng)分布輪廓的減速度時(shí)間。應(yīng)該認(rèn)識(shí)到盡管速度被展示為一個(gè)梯形 分布輪廓,它可以表示為一個(gè)S曲線、拋物線(或其他多項(xiàng)式)、三角形、或 其他輪廓。
圖12示出了曲線IOOO,該曲線被分成三個(gè)不同的區(qū)域一個(gè)融入?yún)^(qū)域1010、 一個(gè)融出區(qū)域1020以及一個(gè)剩余區(qū)域1030。為確定合適的速度分布輪廓區(qū)域 1010、 1020和1030,使用從距離單位到時(shí)間單位的一個(gè)轉(zhuǎn)換。這樣一種轉(zhuǎn)換 為本領(lǐng)域所知因而將不在此詳細(xì)地討論。以此方式,原始移動(dòng)的劃分與其速度 分布輪廓的劃分將是一致的。圖13在此想法上進(jìn)行擴(kuò)展并且展示了開始多個(gè) 后繼的移動(dòng)和它們相關(guān)聯(lián)的速度分布輪廓1110、 1120和1130。為防止不對(duì)稱 和/或不希望的運(yùn)動(dòng),當(dāng)前移動(dòng)的融出區(qū)域只與下一個(gè)移動(dòng)的融入?yún)^(qū)域融合。以 此方式,這兩個(gè)移動(dòng)的剩余部分完全不會(huì)融合。
圖14示出了在一個(gè)軌跡中使用一個(gè)改進(jìn)的融合算法的多個(gè)后繼移動(dòng)的開始 時(shí)間。此算法的正確定時(shí)是將通過將下一個(gè)移動(dòng)的開始延遲一個(gè)預(yù)定的時(shí)間量 而實(shí)現(xiàn)的。這一時(shí)間延遲是通過以下公式計(jì)算的
<formula>formula see original document page 13</formula>
其中
TBlend-out(N-l)=移動(dòng)N-l的融出區(qū)域的持續(xù)時(shí)間
TBlend-in(N)=移動(dòng)N的融入?yún)^(qū)域的持續(xù)時(shí)間
△T(N)=相對(duì)于移動(dòng)N-1的融出區(qū)域的起點(diǎn)移動(dòng)N的起點(diǎn)的時(shí)間延遲
根據(jù)公式(1),在一個(gè)軌跡內(nèi)多個(gè)后繼移動(dòng)的起點(diǎn)之間的延遲是由一個(gè)最 小時(shí)間延遲AT(N)決定的。應(yīng)該認(rèn)識(shí)到,可以使用更長的延遲,但這沒有理由 因?yàn)樗鼫p慢一個(gè)軌跡內(nèi)的多個(gè)移動(dòng)的執(zhí)行。這一時(shí)間延遲至少為0,以確保至 少直到前一移動(dòng)的一個(gè)融出區(qū)域的開始才執(zhí)行一個(gè)后繼的移動(dòng)。
如所示出,在一個(gè)軌跡中與一個(gè)第二移動(dòng)相關(guān)聯(lián)的速度分布輪廓1120直到 達(dá)到該第一移動(dòng)(速度分布輪廓1110)的融出區(qū)域時(shí)才開始。類似地,該第三 曲線1130直到超過該第二曲線1120的融出區(qū)域的起點(diǎn)的一個(gè)預(yù)定的時(shí)間延遲 之后才開始。這一算法對(duì)每個(gè)移動(dòng)的融入?yún)^(qū)域和融出區(qū)域的計(jì)算方法沒有做出 任何假設(shè)。作為一個(gè)實(shí)例,這些區(qū)域可基于剩余移動(dòng)距離,或者它可基于剩余 時(shí)間或者它可基于命令速度。另外,可使用不同的方法以便為一個(gè)軌跡內(nèi)的每 個(gè)移動(dòng)計(jì)算融合區(qū)域。
圖15展示了對(duì)一個(gè)軌跡1200使用這一算法,該軌跡使用一個(gè)融合半徑1210 和一個(gè)融合半徑1220。這一軌跡是基于圖1中所展示的三個(gè)移動(dòng),它包括移動(dòng) 102、 104和106。融合半徑1210是相對(duì)于移動(dòng)102和104的長度,并且融合 半徑1220是相對(duì)于移動(dòng)104和106的移動(dòng)的長度。在每一情況中,融合半徑 1210和1220被定義為它們對(duì)應(yīng)的兩個(gè)移動(dòng)的最短的長度的百分之百。例如, 融合半徑1210是移動(dòng)102的長度的百分之百,因?yàn)樵撘苿?dòng)比移動(dòng)104更短。
對(duì)于S曲線,可使用這一算法以消除多個(gè)加速步驟并且在x和y方向中產(chǎn) 生最小的跳動(dòng)。如所展示,當(dāng)使用S曲線編程時(shí),軌跡1200具有對(duì)于其x軸 速度1230以及其y軸速度1240的一個(gè)平滑的分布輪廓。另外,軌跡1200在 一個(gè)S曲線域中不具有任何加速步驟如由x軸加速度1250和Y軸加速度1260 所示出的。通過消除這類加速步驟,該運(yùn)動(dòng)路徑有助于高速過程的執(zhí)行。
而且,該算法允許通過多個(gè)相對(duì)簡單的運(yùn)動(dòng)段來定義復(fù)雜的運(yùn)動(dòng)。例如,軌 跡1200示出了一個(gè)復(fù)雜的拋物線路徑,該路徑可由一個(gè)多項(xiàng)式定義。取代首
先確定所希望的路徑(以及定義了這樣一個(gè)路徑的等式),用戶只需要限定一 個(gè)向上移動(dòng)、 一個(gè)水平移動(dòng)和一個(gè)向下移動(dòng)。如果需要能增加更多的移動(dòng)以避 開一個(gè)過程中的障礙物以及其他機(jī)械。
一旦已知這些單獨(dú)的段,基于在一個(gè)融 合的運(yùn)動(dòng)序列內(nèi)對(duì)于多個(gè)移動(dòng)的加速度和減速度參數(shù)以及融合半徑的尺寸來 建立該軌跡。
圖16展示了三個(gè)S曲線速度分布輪廓1310、 1320和1330,它們使此算法 的使用與軌跡1200相互關(guān)聯(lián)。曲線1310包括一個(gè)百分之百融出的區(qū)域而曲線 1330包括一個(gè)百分之百融入的區(qū)域。曲線1320在1310與1330之間執(zhí)行并且 只具有兩個(gè)區(qū)域(一個(gè)融入和一個(gè)融出)。因?yàn)橹钡竭_(dá)到一個(gè)后繼移動(dòng)的融入 區(qū)域時(shí)該算法才允許融合開始,可以使用一個(gè)百分之百的融合半徑來協(xié)助具有 一個(gè)最小的有限跳動(dòng)的快速、準(zhǔn)確的運(yùn)動(dòng)。
已經(jīng)參考多個(gè)優(yōu)選實(shí)施方案對(duì)本示例性實(shí)施方案進(jìn)行了說明。顯而易見,其 他人在閱讀并且理解了以上的詳細(xì)說明后將會(huì)想到多種修改和替代。本示例性 實(shí)施方案旨在被解釋為包括就進(jìn)入所附權(quán)利要求或其等效物的范圍內(nèi)而言所 有的這類修改和替代。
權(quán)利要求
1.一種用于產(chǎn)生一個(gè)運(yùn)動(dòng)系統(tǒng)軌跡的方法,包括限定作為一個(gè)或多個(gè)路徑段的一個(gè)序列的一條軌跡;為該一個(gè)或多個(gè)路徑段中的每一個(gè)計(jì)算一個(gè)速度分布輪廓;將每個(gè)速度分布輪廓分成一個(gè)融入?yún)^(qū)域、一個(gè)融出區(qū)域以及一個(gè)剩余區(qū)域;并且執(zhí)行每個(gè)路徑段從而使其速度分布輪廓的融入?yún)^(qū)域只與前一分布輪廓的融出區(qū)域重疊。
2. 根據(jù)權(quán)利要求1所述的方法,其中與每一路徑段相關(guān)聯(lián)的每一速度分布輪廓的動(dòng)態(tài)特征取決于該運(yùn)動(dòng)軌跡之內(nèi)當(dāng)前的、在先的以及隨后一個(gè)段的多個(gè)參數(shù)。
3. 根據(jù)權(quán)利要求1所述的方法,其中每一速度分布輪廓的該融入以及融出 區(qū)域的計(jì)算的方法取決于在該序列內(nèi)各段的次序。
4. 根據(jù)權(quán)利要求2所述的方法,其中在該移動(dòng)開始之前僅處理該當(dāng)前段的 融入部分。
5. 根據(jù)權(quán)利要求4所述的方法,其中直到接收了一個(gè)待決定的指令時(shí)才計(jì)算 該當(dāng)前段的融出部分。
6. 根據(jù)權(quán)利要求1所述的方法,其中從一個(gè)當(dāng)前移動(dòng)的融出以及從一個(gè)后繼 移動(dòng)的一個(gè)融入定義了一個(gè)融合半徑。
7. 根據(jù)權(quán)利要求6所述的方法,其中,使用一個(gè)融合半徑的多個(gè)后繼的移動(dòng) 是一個(gè)融合的運(yùn)動(dòng)序列,該融合的運(yùn)動(dòng)序列在該運(yùn)動(dòng)系統(tǒng)軌跡內(nèi)任何位置開始并且 在任何位置停止。
8.根據(jù)權(quán)利要求7所述的方法,其中在該融合的運(yùn)動(dòng)序列內(nèi)的一個(gè)第一以及一個(gè)最后段的這些融合半徑對(duì)于在 該融合的運(yùn)動(dòng)序列內(nèi)的所有移動(dòng)都是小于或者等于該當(dāng)前移動(dòng)以及該后繼移動(dòng)的 一個(gè)最小移動(dòng)長度的百分之百的一個(gè)長度;并且用于在該融合的運(yùn)動(dòng)序列內(nèi)的該第一與最后段之間的這些段的融合半徑對(duì)于 在該融合的運(yùn)動(dòng)序列內(nèi)的所有移動(dòng)都是小于或者等于該當(dāng)前移動(dòng)以及該后繼移動(dòng) 的百分之五十。
全文摘要
本發(fā)明涉及用于軌跡規(guī)劃的改進(jìn)的融合算法。本示例性實(shí)施方案涉及運(yùn)動(dòng)控制及規(guī)劃算法以協(xié)助執(zhí)行一個(gè)運(yùn)動(dòng)軌跡內(nèi)的一系列移動(dòng)。在一個(gè)實(shí)例中,一個(gè)軌跡被限定為一個(gè)或者多個(gè)路徑段的一個(gè)序列。對(duì)該一個(gè)或多個(gè)路徑段中的每個(gè)計(jì)算一個(gè)速度分布輪廓,其中每個(gè)速度分布輪廓被分成一個(gè)融入?yún)^(qū)域、一個(gè)融出區(qū)域和一個(gè)剩余區(qū)域。執(zhí)行每個(gè)路徑段從而使其速度分布輪廓的融入?yún)^(qū)域僅與前一速度分布輪廓的融出區(qū)域重疊。
文檔編號(hào)G05B19/19GK101359224SQ20081013019
公開日2009年2月4日 申請(qǐng)日期2008年7月31日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者B·斯拉德克, B·高荙, J·波哈特, W·斯瓦茨 申請(qǐng)人:洛克威爾自動(dòng)控制技術(shù)股份有限公司