TWI806237B - 機器人系統及機器人控制方法 - Google Patents
機器人系統及機器人控制方法 Download PDFInfo
- Publication number
- TWI806237B TWI806237B TW110142110A TW110142110A TWI806237B TW I806237 B TWI806237 B TW I806237B TW 110142110 A TW110142110 A TW 110142110A TW 110142110 A TW110142110 A TW 110142110A TW I806237 B TWI806237 B TW I806237B
- Authority
- TW
- Taiwan
- Prior art keywords
- robot
- narrow
- virtual obstacle
- program
- information
- Prior art date
Links
Images
Landscapes
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
一種機器人系統,包含複數機器人及後台處理設備,機器人能於場域中移動。後台處理設備無線通信連接並用以控制機器人,後台處理設備包含處理器以及儲存媒體,儲存媒體提供狹處資訊標記程序、虛擬障礙物資訊編輯程序、後台狹處交會偵測程序、後台虛擬障礙物創建程序以及後台虛擬障礙物消滅程序。虛擬障礙物資訊編輯程序用以讓使用者編輯供選虛擬障礙物資訊表單,後台虛擬障礙物創建程序用以根據收到的虛擬障礙物的資訊為機器人分別創建對應之虛擬障礙物。藉此,有助機器人找尋一條可避開靜態與動態障礙物的路徑。
Description
本發明是有關於一種機器人系統及機器人控制方法,且特別是關於複數自主式移動機器人的機器人系統及機器人移動方式的控制方法。
自主式移動機器人允許使用者動態更改其移動之目的地,且在移動過程中機器人可以藉由感測裝置探測周遭環境以動態調整路線避開障礙物,使用上極為便利,這使得越來越多的場域開始採用自主式移動機器人進行搬運工作,例如室內倉儲、智慧製造場域、醫院、餐飲業等。當這些場域的機器人數量變多時,機器人之間路徑衝突的發生情況便會增加。若路徑衝突發生的地點是較狹窄的,例如門口、走道、交叉路口,機器人很可能無法有效通過所述地點,導致整體的運送效能下降,甚至停止。
學術界和產業界已經注意到前述問題,並提出許多解法,這些解法大致上分為中央集權式解法和分散式解法。
中央集權式解法是一台伺服器擁有整個環境的資訊,包括所有機器人的當下位置、所有機器人的目的地位置、靜態障礙物的位置等。所述伺服器根據上述資訊規劃每個機器人的行走路徑和移動的時機,達到不會發生複數個機器人於狹處相會的情況。只要機器人和環境都照著規畫結果運作,理論上是不會發生路徑衝突。但如果機器人或環境有變化(如機器人故障或架上的物體掉落),或是環境為開放的(如有人員在場域裡面行走),則不適合使用此作法。
分散式解法是由機器人自己決定路線和移動的時間。這類解法又大致分為兩小類,一類是機器人先經過人工智慧的訓練後,再根據所述訓練獲得的智能與現場環境資訊,自己決定路線和行走的時間,以達到不會和別的機器人衝突的結果。這需要先設計建置複雜的訓練方法,且訓練的結果若不能完全反應環境的特性,或是環境的特性有了改變,其預測的行走策略便無法保證不會發生路徑衝突。另一類,也是最多人提出的一類,是在機器人上建立以規則為基礎的路徑衝突解決方法,其原則為以某種方式挑出一台機器人優先通過所述狹窄地區,其他機器人則是採取原地等待、到旁邊等待、或是後退等動作,待第一台機器人通過所述狹處後再重複上述路徑衝突解決方法。此方法對於某些足以複數個機器人同時經過的狹處,可能因機器人自己所選的路徑發生衝突,觸發上述採取僅一台機器人先經過的解法,或是觸發避障功能結果反覆互相擋路,導致整體的運輸效能未能有效提升。
故而,如何控制複數個自主式移動機器人,使其能同時通過寬度略寬於複數個機器人可以同時通過之狹處,對於機器人製造商及運輸場域營運者等市場而言是急需解決的問題,並具有商業價值。
本發明提供之機器人系統及機器人控制方法中,機器人基本的路徑規劃方式會根據兩種地圖,一是全域地圖,一是區域地圖。全域地圖紀錄了機器人運作環境中的靜態障礙物,機器人會在全域地圖上規劃由目前所在地到目的地的一條最佳路徑,當作參考用的全域路徑。機器人在運作時掃描到的周遭靜態與動態障礙物,會疊加到全域地圖上形成區域地圖。機器人會在區域地圖上找尋一條可避開靜態與動態障礙物,並且不偏離全域路徑過遠的新路徑,當作最終的移動路徑。本發明提供之機器人的區域地圖上可以創建與消滅不存在於真實世界的障礙物,本發明稱之為虛擬障礙物,且能相容目前和未來的主流機器人產品。
依據本發明一實施方式提供一種機器人系統,包含複數機器人及後台處理設備。機器人能於場域中移動。後台處理設備無線通信連接並用以控制機器人,後台處理設備包含處理器以及儲存媒體,儲存媒體提供狹處資訊標記程序、虛擬障礙物資訊編輯程序、後台狹處交會偵測程序、後台虛擬障礙物創建程序以及後台虛擬障礙物消滅程序。狹處資訊標記程序用以供使用者在場域的預先建立的全域地圖上標記至少一狹處,虛擬障礙物資訊編輯程序用以讓使用者編輯供選虛擬障礙物資訊表單,其包含複數供選虛擬障礙物及其分別對應的複數形狀、複數設置位置以及複數情境。後台狹處交會偵測程序用以讀取狹處資訊標記程序所記錄的狹處的資訊,並讀取機器人當下位置和其當下採用的路線以判斷機器人是否會在狹處發生路徑衝突,當後台狹處交會偵測程序判斷即將發生路徑衝突時,讀取所記錄的供選虛擬障礙物資訊表單,依據路徑衝突的樣態取出最相符之情境,決定用於路徑衝突的複數虛擬障礙物及其分別對應的複數形狀以及複數設置位置,以通知後台虛擬障礙物創建程序。後台虛擬障礙物創建程序用以根據收到的虛擬障礙物的資訊為機器人分別創建對應之虛擬障礙物,以控制機器人同時經過狹處。當後台狹處交會偵測程序判斷機器人離開狹處後,通知後台虛擬障礙物消滅程序。後台虛擬障礙物消滅程序讀取後台虛擬障礙物創建程序所創建的虛擬障礙物的資訊,用以把用於通過狹處之機器人的虛擬障礙物予以消滅。
依據本發明的機器人系統的實施例中,狹處的範圍在場域的區域地圖上可以多邊形表示,多邊形的座標系採用全域地圖的座標系。狹處資訊標記程序讀取全域地圖並顯示給使用者檢視,後台處理設備的圖形使用者介面供使用者在全域地圖上標記狹處的範圍。當結束標記時,狹處的範圍的多邊形的頂點座標連同其識別資訊被儲存於狹處資訊表單,識別資訊為流水號、使用者給定的編號、使用者給定的別稱或上述資訊之部分或全部組合。
依據本發明的機器人系統的實施例中,虛擬障礙物資訊編輯程序可讀取全域地圖以及狹處資訊表單並顯示給使用者檢視,圖形使用者介面供使用者在狹處的範圍內及其鄰近範圍編輯虛擬障礙物的資訊,虛擬障礙物的資訊更包含其所屬之狹處的識別資訊、情境、情境下所需產生的虛擬障礙物之描述,當結束編輯時,狹處之虛擬障礙物的資訊被儲存於供選虛擬障礙物資訊表單。
依據本發明的機器人系統的實施例中,情境可包含同時進入狹處之機器人的數量、機器人進入狹處之位置和離開狹處之位置,機器人被賦予的識別資訊包含進入狹處之位置、離開狹處之位置或上述兩者之組合。
依據本發明的機器人系統的實施例中,虛擬障礙物中各者之描述可包含其對應的機器人之識別資訊,以及虛擬障礙物之佔據範圍的複數頂點所形成之一多邊形,多邊形的座標系採用全域地圖的座標系。
依據本發明的機器人系統的實施例中,後台狹處交會偵測程序可偵測到機器人即將進入狹處時,估算機器人通過狹處之時間,並檢查在時間內是否有另一機器人會處於狹處內,若是,且時間內同處於狹處之機器人進入與離開狹處之位置符合供選虛擬障礙物的資訊之其中一情境,則判斷即將發生路徑衝突,且符合之情境對應路徑衝突的樣態。
依據本發明的機器人系統的實施例中,後台虛擬障礙物創建程序包含創建對應之虛擬障礙物,其可包含將各虛擬障礙物之佔據範圍的資訊更新至對應之機器人的場域的區域地圖上。
依據本發明的機器人系統的實施例中,後台虛擬障礙物消滅程序可包含通知各機器人自它的場域的區域地圖上移除對應的虛擬障礙物。
依據本發明另一實施方式提供一種機器人控制方法,包含狹處資訊標記步驟、虛擬障礙物資訊編輯步驟、狹處交會偵測步驟、虛擬障礙物創建步驟及虛擬障礙物消滅步驟。狹處資訊標記步驟包含標記場域的全域地圖上至少一狹處。虛擬障礙物資訊編輯步驟包含定義發生於狹處的路徑衝突的樣態,以及編輯發生路徑衝突時欲採用之複數虛擬障礙物的資訊及控制其分別對應之複數機器人之方式。狹處交會偵測步驟包含計算狹處是否即將發生路徑衝突,若是,則計算出路徑衝突的樣態,並偵測路徑衝突解除之時機。虛擬障礙物創建步驟包含驅動各機器人於場域的區域地圖上創建符合路徑衝突的樣態之控制機器人之方式的虛擬障礙物。虛擬障礙物消滅步驟包含驅動各機器人於區域地圖上消滅經過狹處時所建立的虛擬障礙物。
依據本發明的機器人控制方法的實施例中,虛擬障礙物消滅步驟之執行時間點可為任一機器人剛離開狹處時,或是離開狹處後要進入一後續狹處前,或是離開狹處後又回到狹處前。
以下將參照圖式說明本發明之複數個實施例。為明確說明起見,許多實務上的細節將在以下敘述中一併說明。然而,應瞭解到,這些實務上的細節不應用以限制本發明。也就是說,在本發明部分實施例中,這些實務上的細節是非必要的。此外,為簡化圖式起見,一些習知慣用的結構與元件在圖式中將以簡單示意的方式繪示之;並且重複之元件將可能使用相同的編號表示之。
此外,本文中第一、第二、第三等用語只是用來描述不同元件或成分,而對元件/成分本身並無限制,因此,第一元件/成分亦可改稱為第二元件/成分。且本文中之元件/成分/機構/模組之組合非此領域中之一般周知、常規或習知之組合,不能以元件/成分/機構/模組本身是否為習知,來判定其組合關係是否容易被技術領域中之通常知識者輕易完成。
第1圖繪示依照本發明一實施方式的一實施例之機器人系統的方塊圖,第2圖繪示第1圖中機器人系統的後台處理設備10的方塊圖。如第1圖及第2圖所示,本發明一實施方式的一實施例之機器人系統包含後台處理設備(即機器人管理單元或控制單元)10及機器人團隊20,後台處理設備10具體可為伺服器,機器人團隊20包含複數機器人,所有機器人能於一場域中移動。舉例而言,機器人團隊20所包含的複數機器人可為第一機器人21、第二機器人22及第三機器人23,且不以此為限。後台處理設備10無線通信連接並用以控制第一機器人21、第二機器人22及第三機器人23,後台處理設備10包含處理器13、儲存媒體12以及圖形使用者介面14,儲存媒體12可為非暫時性電腦可讀取儲存媒體並包含線下程序組30與線上程序組40。線下程序組30在後台處理設備10執行,用以於機器人(例如第一機器人21、第二機器人22及第三機器人23)開始運作之前,協助使用者標記現場環境容易發生機器人移動效率不佳之狹處(即狹窄處,依機器人的外觀尺寸、移動方式等而定)的位置,以及複數個機器人在此處交會發生路徑衝突時使用者期望機器人移動的方式。線上程序組40在後台處理設備10執行,用以於機器人開始運作之後,監視是否有複數個機器人在狹處發生路徑衝突,若發現的話則控制所述複數個機器人以使用者期望的移動方式通行所述狹處。
第3A圖繪示第1圖中機器人系統的第一機器人21的方塊圖,第3B圖繪示第1圖中機器人系統的第二機器人22的方塊圖。如第3A圖及第3B圖所示,第一機器人21和第二機器人22可為任何能於地面行動之機器人,例如:差動輪型機器人、全向移動機器人、足型機器人、蛇型機器人等。第一機器人21包含處理器219及儲存媒體210,儲存媒體210提供第一機器人程序組41、第一機器人原有地圖資料組211及支援虛擬障礙物的插件212。第二機器人22包含處理器229及儲存媒體220,儲存媒體220提供第二機器人程序組42、第二機器人原有地圖資料組221及支援虛擬障礙物的插件222。第三機器人23的結構及操作細節可參考第一機器人21及第二機器人22,在此不再詳述。第一機器人原有地圖資料組211、第二機器人原有地圖資料組221分別於第一機器人21和第二機器人22上執行,會各自維護一地圖資料結構,內容包含運作場域的靜態障礙物資訊以及機器人探索周遭所得之動靜態障礙物資訊,用以自行規畫前往其目的地之路徑並閃避周遭障礙物,且能夠發布自身的位置座標和規劃的路徑資訊。舉例來說,許多機器人產品所採用的軟體Robot Operating System(ROS)即具有上述功能,但本發明不以此為限。第一機器人21的支援虛擬障礙物的插件212、第二機器人22的支援虛擬障礙物的插件222分別於第一機器人21和第二機器人22上執行,用以接收虛擬障礙物形狀與位置以及操作種類(創建或消滅),然後在第一機器人原有地圖資料組211、第二機器人原有地圖資料組221所維護之地圖資料結構上創建或消滅上述虛擬障礙物。舉例來說,第一機器人21的支援虛擬障礙物的插件212、第二機器人22的支援虛擬障礙物的插件222可為ROS領域的costmap prohibition layer插件,但本發明不以此為限。
運行於第一機器人21之第一機器人程序組41包含第一機器人狹處交會偵測程序411、第一機器人虛擬障礙物創建程序412及第一機器人虛擬障礙物消滅程序413,第一機器人程序組41用以於第一機器人21開始運作之後,監視第一機器人21是否有和其他機器人在狹處發生路徑衝突,若發現的話則控制第一機器人21以使用者期望的移動方式通行所述狹處。運行於第二機器人22之第二機器人程序組42包含第二機器人狹處交會偵測程序421、第二機器人虛擬障礙物創建程序422及第二機器人虛擬障礙物消滅程序423,第二機器人程序組42用以於第二機器人22開始運作之後,監視第二機器人22是否有和其他機器人在狹處發生路徑衝突,若發現的話則控制第二機器人22以使用者期望的移動方式通行所述狹處。
請一併參照第1圖至第3B圖,線下程序組30包含狹處資訊標記程序31、虛擬障礙物資訊編輯程序32、狹處資訊表單33及供選虛擬障礙物資訊表單34。狹處資訊標記程序31用以讀取所有機器人運作環境中預先建立的靜態障礙物之全域地圖,且顯示給使用者檢視,並提供圖形使用者介面14讓使用者直觀地在全域地圖上標記狹處之形狀、位置,即狹處的範圍。具體來說,全域地圖可為一點陣圖檔,但本發明不以此為限。
第4圖繪示第1圖中機器人系統的狹處資訊標記程序31執行結果之示意圖,其中黑色實線表示全域地圖裡之靜態障礙物,白色區域表示無靜態障礙物,撒點區域表示未知。如第4圖所示,第4圖之下方、中間及左方分別存在一走廊、門口及三叉路口。下方的虛線方框為第一狹處51(走廊),中間的虛線方框為第二狹處52(門口),左方的虛線方框為第三狹處53(三叉路口)。上述三個方框各自的四個頂點在全域地圖裡的座標,以小括號標記在對應的頂點附近,小括號裡逗點左邊的數值為X座標,小括號裡逗點右邊的數值為Y座標。舉例而言,第4圖全域地圖的座標系可採用ROS領域之地圖的座標系,其X軸為垂直軸,且往上為正;其Y軸為水平軸,且往左為正。
在第4圖裡,假設走廊的寬度為3.0m、機器人的寬度為1.2m。理論上兩台機器人相向而行是可行的,且機器人之間、機器人和靜態障礙物都還可以保持0.2m的安全距離。然而實務上,機器人可能會採取走在走廊之正中間,引發上述兩台機器人規劃的路徑互相衝突。當兩者的相遇觸發各自的避障機制同時朝地圖上方或下方閃避,又會引起後續路徑衝突。因此,此走廊是寬度足以複數個機器人同時通過,但任由機器人自己規劃路徑則不容易順利通過的狹處,第一狹處51用以標記此狹處。
在第4圖裡,假設門口的寬度為3.6m、機器人的寬度為1.2m。理論上兩台機器人在此交會是可行的。然而實務上,機器人可能會採取以曲線的方式達到使用最短路徑通過門口,例如當導航起點、終點分別在門口右下方、右上方時,導航路線會較靠近門口的右側。所以,門口的兩旁可能會發生路徑衝突。當兩台機器人規劃的路徑正交時,也容易在門口的正中央發生路徑衝突。當兩者的相遇觸發各自的避障機制同時朝某一方向閃避,又會引起後續路徑衝突。因此,此門口是寬度足以複數個機器人同時通過,但任由機器人自己規劃路徑則不容易順利通過的狹處,第二狹處52用以標記此狹處。
在第4圖裡,假設三叉路口所連接之三條路的寬度皆為3.6m、機器人的寬度為1.2m。理論上兩至三台機器人在此交會是可行的。然而實務上,機器人可能會在此路口發生路徑衝突。當複數個機器人的相遇觸發各自的避障機制同時朝某一方向閃避,又會引起後續路徑衝突。因此,此三叉路口是寬度足以複數個機器人同時通過,但任由機器人自己規劃路徑則不容易順利通過的狹處,第三狹處53用以標記此狹處。
詳細地說,狹處資訊標記程序31執行時提供圖形使用者介面14,例如觸控式顯示螢幕中的按鈕,供使用者新增狹處標記。使用者可以先點擊一新增按鈕,然後於全域地圖上依順時針或逆時針順序點擊出標記一狹處的多邊形之頂點,例如:第4圖的第一狹處51之左上角頂點、右上角頂點、右下角頂點、左下角頂點。之後,使用者點擊一結束按鈕,即可儲存上述頂點的標記。狹處資訊標記程序還可以提供額外方式的圖形使用者介面14,例如觸控式顯示螢幕中的文字輸入方塊,供使用者輸入上述狹處的編號和/或別稱。
更詳細地說,第4圖所示的狹處資訊標記程序31執行結果的存檔內容(即狹處資訊表單33或狹處資訊標記結果,其為資料表示格式)可為一個JSON格式,但本發明不以此為限。舉例而言,所述存檔內容的最外層是三個物件,對應到三個狹處。每個物件有三個鍵,包含na_id表示狹處的編號,na_alias表示狹處的別稱,na_vertex表示狹處的頂點。鍵na_vertex的值是一個陣列,陣列裡的值是物件。陣列裡每個物件皆有兩個鍵,x表示頂點的X座標,y表示頂點的Y座標。依據本發明的實施例中,狹處的識別資訊可為流水號、使用者給定的編號、使用者給定的別稱或上述資訊之部分或全部組合。
請一併參照第2圖及第4圖,線下程序組30還包含虛擬障礙物資訊編輯程序32。虛擬障礙物資訊編輯程序32用以讀取上述全域地圖與狹處資訊表單33,顯示給使用者看,並提供圖形使用者介面14讓使用者直觀地在全域地圖上狹處的範圍內及其鄰近範圍編輯虛擬障礙物之形狀、位置以及適用情境、適用狹處等資訊。也可以說,虛擬障礙物資訊編輯程序32用以讓使用者編輯一供選虛擬障礙物資訊表單34,其包含複數供選虛擬障礙物及其分別對應的複數形狀、複數設置位置以及複數情境。
第5圖繪示第1圖中機器人系統的虛擬障礙物資訊編輯程序32編輯過程的圖形使用者介面14示意圖,如第5圖所示,詳細地說,虛擬障礙物資訊編輯程序32提供圖形使用者介面14,例如清單,供使用者選擇狹處。例如:顯示一個清單,上面包含第4圖所儲存的三個狹處,分別為corridor、doorway、intersection。使用者先點選所述清單其中一個項目後,開始為所述項目對應的狹處編輯其可能發生的交會情境(情況)以及所述情境所使用的虛擬障礙物。然後,虛擬障礙物資訊編輯程序32提供圖形使用者介面14,例如:文字對話盒或下拉式清單,供使用者輸入交會的機器人數目。假設所述數目設定為n,重複以下步驟n次,每次為一個機器人編輯相關資訊,虛擬障礙物資訊編輯程序32提供圖形使用者介面14,例如:清單或下拉式清單,供使用者選擇機器人進入狹處之位置,也就是代表狹處之多邊形的一個邊;然後,虛擬障礙物資訊編輯程序32提供圖形使用者介面14,例如:清單或下拉式清單,供使用者選擇機器人離開狹處之位置,也就是代表狹處之多邊形的另一個邊;然後,使用者在全域地圖上依順時針或逆時針順序點擊出所述機器人在此狹處所使用之虛擬障礙物的多邊形之頂點,之後,再點選一結束按鈕完成所述機器人所需相關資訊之編輯。
更詳細地說,第5圖繪示虛擬障礙物資訊編輯程序32編輯過程的舉例畫面。在第5圖裡,右下角是全域地圖和狹處標記的一部分。在某些實施例裡,可以將全域地圖和狹處標記全部都顯示出來,但這裡為了圖片簡潔僅顯示部分。上方為虛擬障礙物資訊編輯程序32提供的圖形使用者介面14,操作的順序為由左至右。首先選擇狹處,由第5圖可知,目前選擇了corridor,即第4圖的第一狹處51。另外兩個狹處項目的文字變成較不醒目表示暫時不可以選擇,須等到目前選擇的狹處完成後面的編輯步驟後才可以重新選擇。接著,在交會的機器人數目此步驟選擇了二個機器人,而現在正在編輯第一個機器人。正在編輯第幾個機器人為提示資訊,第5圖用較不醒目字型表示這個數字唯讀。接著選擇此機器人進入狹處的位置,清單裡以兩個頂點所形成的一個邊表示進入位置,而此舉例裡,使用者點選了頂點(-4.9, 0)及(-4.6,0)連成的邊3205。進入位置裡的其他三個邊變成較不醒目字型,表示沒被選取。全域地圖上,邊3205可被塗為紅色,以顯目提醒。離開位置的頂點(-4.9, 0)及(-4.6,0)連成的邊的項目變成較不醒目字型,表示不可選取,避免設定進出為同一個邊。目前最右邊的兩個按鈕的文字也是較不醒目字型,表示無法選取。
等到使用者點選離開狹處的位置之清單的其中一個可選項目後,設定虛擬障礙物的按鈕之文字即變為醒目字型,表示可以按。使用者按了設定虛擬障礙物的按鈕後,便可以在全域地圖上點擊目前設定的機器人所使用的虛擬障礙物的多邊形之頂點位置。點擊至少三個頂點後,完成設定的按鈕之文字即變為醒目字型,表示可以按。按了後,第一個機器人的相關資訊編輯完畢,現在編輯的機器人提示資訊會顯示為2,讓使用者重複上述步驟繼續為第二個機器人編輯相關資訊。等到第二個機器人的相關資訊編輯完畢,狹處的清單就恢復成可以選取的狀態。
第6A圖繪示第1圖中機器人系統的虛擬障礙物3211、3212的使用規劃示意圖,這裡為了圖片簡潔,並未畫出第一狹處51。如第6A圖所示,假設第一機器人21欲從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)進入並從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及 (-4.9, -6.44)連成的邊)離開,第二機器人22欲從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及(-4.9, -6.44)連成的邊)進入並從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)離開。針對此情境,使用者期望第一機器人21僅行經走廊的下半部通道且第二機器人22僅行經走廊的上半部通道,則可透過虛擬障礙物資訊編輯程序32編輯虛擬障礙物3211給第一機器人21使用,編輯虛擬障礙物3212給第二機器人22使用。上述兩個虛擬障礙物3211、3212各自的四個頂點在全域地圖裡的座標,以小括號標記在所述頂點附近,小括號裡逗點左邊的數值為X座標,小括號裡逗點右邊的數值為Y座標。舉例而言,第6A圖的座標系採用ROS領域之地圖的座標系,其X軸為垂直軸,且往上為正;其Y軸為水平軸,且往左為正。接下來第6B圖、第6C圖、第6D圖皆採用相同的圖形表示方式和座標系,故不再贅述。
第6B圖繪示第1圖中機器人系統的虛擬障礙物3221、3222的使用規劃示意圖,這裡為了圖片簡潔,並未畫出第二狹處52。如第6B圖所示,假設第一機器人21欲從門口右下(即第4圖第二狹處52的頂點(1.56, -1.56)及(0, 0)連成的邊)進入並從門口右上(即第4圖第二狹處52的頂點(3.12, 0)及(1.56, -1.56)連成的邊)離開,第二機器人22欲從門口右上(即第4圖第二狹處52的頂點(3.12, 0)及(1.56, -1.56)連成的邊)進入並從門口右下(即第4圖第二狹處52的頂點(1.56, -1.56)及(0, 0)連成的邊)離開。在此情境下,兩機器人會在門口右側發生路徑衝突。針對此情境,使用者期望第一機器人21僅行經門口的右側通道且第二機器人22僅行經門口的左側通道,則可透過虛擬障礙物資訊編輯程序32編輯虛擬障礙物3221給第一機器人21使用,編輯虛擬障礙物3222給第二機器人22使用。在第6B圖中,雖然第二機器人22未能如期於門口右下離開,而是從門口左下離開,所以行走路徑會比原本規劃的路徑略長。但是,第二機器人22藉由繞一些遠路可以避開和第一機器人21發生路徑衝突,也就避免兩者在門口因各自的避障機制而反覆擋住對方的情況。因此相較於先前技術,本發明仍舊可以用較短的路徑和較少的時間讓第一機器人21、第二機器人22同時通過所述狹處門口。
第6C圖繪示第1圖中機器人系統的虛擬障礙物3223、3224的使用規劃示意圖,這裡為了圖片簡潔,並未畫出第二狹處52。如第6C圖所示,假設第一機器人21欲從門口右下(即第4圖第二狹處52的頂點(1.56, -1.56)及(0, 0) 連成的邊)進入並從門口左上(即第4圖第二狹處52的頂點(1.56, 1.56)及(3.12, 0)連成的邊)離開,第二機器人22欲從門口右上(即第4圖第二狹處52的頂點(3.12, 0)及(1.56, -1.56)連成的邊)進入並從門口左下(即第4圖第二狹處52的頂點(0, 0)及(1.56, 1.56)連成的邊)離開。在此情境下,兩機器人會在門口中央發生路徑衝突。針對此情境,使用者期望第一機器人21靠門口右側通行且第二機器人22靠門口左側通行,則可透過虛擬障礙物資訊編輯程序32編輯虛擬障礙物3223給第一機器人21使用,編輯虛擬障礙物3224給第二機器人22使用。在第6C圖中,雖然第一機器人21未能如期於門口左上離開,而是從門口右上離開,所以行走路徑會比原本規劃的路徑略長。且雖然第二機器人22未能如期於門口右上進入,而是從門口左上進入,所以行走路徑會比原本規劃的路徑略長。但是,第一機器人21、第二機器人22藉由繞一些遠路可以避開發生路徑衝突,也就避免兩者在門口因各自的避障機制而反覆擋住對方的情況。因此相較於先前技術,本發明仍舊可以用較短的路徑和較少的時間讓第一機器人21、第二機器人22同時通過所述狹處門口。
第6D圖繪示第1圖中機器人系統的虛擬障礙物3231、3232、3233的使用規劃示意圖,這裡為了圖片簡潔,並未畫出第三狹處53。如第6D圖所示,假設第一機器人21欲從路口右方(即第4圖第三狹處53的頂點(1.5, 6.7)及(-2.1, 6.7)連成的邊)進入並從路口上方(即第4圖第三狹處53的頂點(1.5, 10.3)及(1.5, 6.7)連成的邊)離開,第二機器人22欲從路口上方(即第4圖第三狹處53的頂點(1.5, 10.3)及(1.5, 6.7) 連成的邊)進入並從路口下方(即第4圖第三狹處53的頂點(-2.1, 6.7)及(-2.1, 10.3)連成的邊)離開,第三機器人23欲從路口下方(即第4圖第三狹處53的頂點(-2.1, 6.7)及(-2.1, 10.3)連成的邊)進入並從路口右方(即第4圖第三狹處53的頂點(1.5, 6.7)及(-2.1, 6.7)連成的邊)離開。在此情境下,第一機器人21、第二機器人22、第三機器人23會在路口發生路徑衝突。針對此情境,使用者期望第一機器人21靠近路口的右上角通行,第二機器人22靠路口的左側通行,且第三機器人23靠近路口的右下角通行,則可透過虛擬障礙物資訊編輯程序32編輯虛擬障礙物3231給第一機器人21使用,編輯虛擬障礙物3232給第二機器人22使用,編輯虛擬障礙物3233給第三機器人23使用。藉此,本發明在某些情境可讓第一機器人21、第二機器人22、第三機器人23等三個機器人同時通過三叉路口。運用上述原理,本發明在某些情境可讓四個機器人同時通過十字路口,亦可能在某些情境讓五個機器人同時通過五叉路口,以此類推。
在本發明的一實施例中,虛擬障礙物資訊編輯程序32可以透過觸控式螢幕讓使用者以手指於全域地圖上畫出虛擬障礙物的大致形狀,或是透過手寫板讓使用者於全域地圖上畫出虛擬障礙物的大致形狀,將所述大致形狀透過先前技術,例如OpenCV程式,但不以此為限,將所述大致形狀轉為一代表虛擬障礙物的多邊形。
更詳細地說,為了使圖片簡潔,第6A圖至第6D圖所示的虛擬障礙物資訊編輯程序32執行結果的存檔內容(即供選虛擬障礙物資訊表單34或虛擬障礙物資訊編輯結果,其為資料表示格式)可為一個JSON格式,但本發明不以此為限。舉例而言,所述存檔內容的最外層是三個物件,對應到第6A圖至第6D圖的編輯結果。就存檔內容,每個物件有六個鍵,鍵scene_id是一個不重複的識別值,用來表示複數個機器人於狹處交會的情境。鍵scene_id並非必要選項,僅用來方便索引此存檔內容裡的最外層物件。鍵scene_id的值可以由虛擬障礙物資訊編輯程序32產生流水號來給定其值,亦可以提供圖形使用者介面14供使用者輸入,第5圖的實施例是採用流水號。na_id表示狹處的編號,na_alias表示狹處的別稱,num_robots表示同時進入此狹處或在此狹處交會的機器人數量。scene_desc描述機器人在此狹處交會的情況,in_edge_1表示第一個機器人(對應其識別資訊)進入狹處的邊(即位置),out_edge_1表示第一個機器人離開狹處的邊,in_edge_2表示第二個機器人(對應其識別資訊)進入狹處的邊,out_edge_2表示第二個機器人離開狹處的邊,資料型態以浮點數儲存與顯示。vo標示虛擬障礙物,其值是一個陣列,陣列裡的值是物件。陣列裡第一個物件(鍵vo1)表示第一個機器人使用的虛擬障礙物的頂點座標,第二個物件(鍵vo2)表示第二個機器人使用的虛擬障礙物的頂點座標,座標值的資料型態以浮點數儲存與顯示。
請一併參照第1圖、第2圖、第4圖及第6A圖,線上程序組40包含後台狹處交會偵測程序401、後台虛擬障礙物創建程序402及後台虛擬障礙物消滅程序403。線上程序組40的後台狹處交會偵測程序401啟動後,會讀取全域地圖(如第4圖)、狹處資訊標記結果之狹處資訊表單33的存檔內容、虛擬障礙物資訊編輯結果之供選虛擬障礙物資訊表單34的存檔內容,並持續接收第一機器人原有地圖資料組211所發布的第一機器人21之當下位置和其當下採用的路線,並持續接收第二機器人原有地圖資料組221所發布的第二機器人22之當下位置和其當下採用的路線。後台狹處交會偵測程序401會計算第一機器人21之當下位置是否靠近任一狹處且其路線是否即將行經所述狹處,亦會計算第二機器人22之當下位置是否靠近任一狹處且其路線是否即將行經所述狹處。當發現一機器人,例如:第一機器人21,已靠近一狹處,例如:第一狹處51,則計算其通過所述狹處之大概所需時間,假設為t時間單位。接著,後台狹處交會偵測程序401會計算在未來的t時間單位內,是否有其他機器人會行經所述狹處。假設在未來的t時間單位內,第二機器人22會行經第一狹處51,則將兩機器人進入和離開狹處的位置以及狹處的識別資訊,即路徑衝突的樣態,在供選虛擬障礙物資訊表單34裡進行搜索或查找,以查找出符合之情境以對應路徑衝突的樣態。如果搜索不到,則判定無發生路徑衝突,反之,則判定為有發生路徑衝突,後台狹處交會偵測程序401將符合第一機器人21、第二機器人22進入和離開狹處的位置之虛擬障礙物資訊傳給後台虛擬障礙物創建程序402。簡而言之,當後台狹處交會偵測程序401判斷即將發生路徑衝突時,讀取所記錄的供選虛擬障礙物資訊表單34,依據路徑衝突的樣態取出最相符之情境,決定用於路徑衝突的虛擬障礙物(例如虛擬障礙物3211、3212)及其分別對應的複數形狀以及複數設置位置,以通知後台虛擬障礙物創建程序402。
詳細地說,假設第一機器人21欲從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)進入並從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及(-4.9, -6.44)連成的邊)離開,第二機器人22欲從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及(-4.9, -6.44)連成的邊)進入並從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)離開。舉例而言,則搜索供選虛擬障礙物資訊表單34會發現符合scene_id為1的scene_desc,即第一機器人21的路徑符合scene_desc裡的in_edge_1、out_edge_1;第二機器人22的路徑符合scene_desc裡的in_edge_2、out_edge_2,此為路徑衝突的樣態。因此,後台狹處交會偵測程序401會將vo的值傳給後台虛擬障礙物創建程序402,並告知後台虛擬障礙物創建程序402第一機器人21應使用vo1的值,第二機器人22應使用vo2的值。
線上程序組40的後台虛擬障礙物創建程序402接收到後台狹處交會偵測程序401所傳來的虛擬障礙物資訊,即依照所述虛擬障礙物資訊的內容,將虛擬障礙物頂點座標傳給對應的機器人,以創建對應之專屬虛擬障礙物,並將各虛擬障礙物之佔據範圍的資訊更新至對應之機器人的場域的區域地圖上。承前段所述,後台虛擬障礙物創建程序402會將vo1的值傳給第一機器人21的支援虛擬障礙物的插件212,將vo2的值傳給第二機器人22的支援虛擬障礙物的插件222。相較於先前技術costmap prohibition layer是將虛擬障礙物的頂點座標固定設定於一設定檔(例如costmap_prohibition_layer_params.yaml),本發明的後台虛擬障礙物創建程序402會將虛擬障礙物的頂點座標封裝成一特定訊息再傳送,例如:ROS領域裡的Topic訊息,但本發明不以此為限。
承前段所述,後台狹處交會偵測程序401計算第一機器人21是否已經離開第一狹處51,若是則通知後台虛擬障礙物消滅程序403。後台虛擬障礙物消滅程序403以一特定訊息,例如:ROS領域裡的Topic訊息,但本發明不以此為限,通知第一機器人21的支援虛擬障礙物的插件212,將先前創建的區域地圖中的虛擬障礙物3211予以消滅及移除。後台狹處交會偵測程序401亦會計算第二機器人22是否已經離開第一狹處51,若是則通知後台虛擬障礙物消滅程序403。後台虛擬障礙物消滅程序403以一特定訊息,例如:ROS領域裡的Topic訊息,但本發明不以此為限,通知第二機器人22的支援虛擬障礙物的插件222,將先前創建的區域地圖中的虛擬障礙物3212予以消滅及移除。
請一併參照第2圖、第3A圖、第3B圖、第4圖及第6A圖,第一機器人狹處交會偵測程序411、第二機器人狹處交會偵測程序421啟動後,會讀取全域地圖(如第4圖)、狹處資訊標記結果之狹處資訊表單33的存檔內容、虛擬障礙物資訊編輯結果之供選虛擬障礙物資訊表單34的存檔內容,並持續接收第一機器人原有地圖資料組211所發布的第一機器人21之當下位置和其當下採用的路線,並持續接收第二機器人原有地圖資料組221所發布的第二機器人22之當下位置和其當下採用的路線。第一機器人狹處交會偵測程序411、第二機器人狹處交會偵測程序421會計算第一機器人21之當下位置是否靠近任一狹處且其路線是否即將行經所述狹處,亦會計算第二機器人22之當下位置是否靠近任一狹處且其路線是否即將行經所述狹處。當發現一機器人,例如:第一機器人21,已靠近一狹處,例如:第一狹處51,則計算其通過所述狹處之大概所需時間,假設為t時間單位。接著,第一機器人狹處交會偵測程序411、第二機器人狹處交會偵測程序421會計算在未來的t時間單位內,是否有其他機器人會行經所述狹處。假設在未來的t時間單位內,第二機器人22會行經第一狹處51。由於此實施例裡是第一機器人21較早進入狹處,所以是第一機器人狹處交會偵測程序411將兩機器人進入和離開狹處的位置以及狹處的識別資訊,在供選虛擬障礙物資訊表單34裡進行搜索。如果搜索不到,則判定無發生路徑衝突,反之,則判定為有發生路徑衝突,第一機器人狹處交會偵測程序411將符合兩機器人進入和離開狹處的位置之虛擬障礙物資訊傳給第一機器人虛擬障礙物創建程序412、第二機器人虛擬障礙物創建程序422。
詳細地說,如果兩機器人靠近狹處的時間點很接近,則第一機器人狹處交會偵測程序411、第二機器人狹處交會偵測程序421皆會將兩機器人進入和離開狹處的位置以及狹處的識別資訊,在供選虛擬障礙物資訊表單34裡進行搜索。若有搜索到相符結果,第一機器人狹處交會偵測程序411、第二機器人狹處交會偵測程序421皆會將符合兩機器人進入和離開狹處的位置之虛擬障礙物資訊傳給第一機器人虛擬障礙物創建程序412、第二機器人虛擬障礙物創建程序422。由於傳送的資訊相同,所以第一機器人虛擬障礙物創建程序412、第二機器人虛擬障礙物創建程序422可以直接忽略晚收到的重複資訊。
詳細地說,假設第一機器人21欲從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)進入並從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及(-4.9, -6.44)連成的邊)離開,第二機器人22欲從走廊右側(即第4圖第一狹處51的頂點(-4.6, -6.44)及(-4.9, -6.44)連成的邊)進入並從走廊左側(即第4圖第一狹處51的頂點(-4.9, 0)及(-4.6, 0)連成的邊)離開。則搜索供選虛擬障礙物資訊表單34會發現符合scene_id為1的scene_desc,即第一機器人21的路徑符合scene_desc裡的in_edge_1、out_edge_1;第二機器人22的路徑符合scene_desc裡的in_edge_2、out_edge_2。因此,第一機器人狹處交會偵測程序411會將vo1的值傳給第一機器人虛擬障礙物創建程序412,將vo2的值傳給第二機器人虛擬障礙物創建程序422。
第一機器人虛擬障礙物創建程序412接收到第一機器人狹處交會偵測程序411所傳來的虛擬障礙物資訊,即依照所述虛擬障礙物資訊的內容,將虛擬障礙物頂點座標傳給第一機器人21的支援虛擬障礙物的插件212。另外,第二機器人虛擬障礙物創建程序422接收到第一機器人狹處交會偵測程序411所傳來的虛擬障礙物資訊,即依照所述虛擬障礙物資訊的內容,將虛擬障礙物頂點座標傳給第二機器人22的支援虛擬障礙物的插件222。相較於先前技術costmap prohibition layer是將虛擬障礙物的頂點座標度固定設定於一設定檔(例如costmap_prohibition_layer_params.yaml),本發明的第一機器人虛擬障礙物創建程序412、第二機器人虛擬障礙物創建程序422會將虛擬障礙物的頂點座標封裝成一特定訊息再傳送,例如:ROS領域裡的Topic訊息,但本發明不以此為限。
承前段所述,第一機器人狹處交會偵測程序411計算第一機器人21是否已經離開第一狹處51,若是則通知第一機器人虛擬障礙物消滅程序413。第一機器人虛擬障礙物消滅程序413以一特定訊息,例如:ROS領域裡的Topic訊息,但本發明不以此為限,通知第一機器人21的支援虛擬障礙物的插件212,將先前創建的虛擬障礙物3211予以消滅。第二機器人狹處交會偵測程序421計算第二機器人22是否已經離開第一狹處51,若是則通知第二機器人虛擬障礙物消滅程序423。第二機器人虛擬障礙物消滅程序423以一特定訊息,例如:ROS領域裡的Topic訊息,但本發明不以此為限,通知第二機器人22的支援虛擬障礙物的插件222,將先前創建的虛擬障礙物3212予以消滅。
第7圖繪示依照本發明另一實施方式的一實施例之機器人控制方法的流程圖,第8圖繪示第7圖中機器人控制方法的狹處交會偵測步驟S3的流程圖,並一併以第1圖至第6圖的機器人系統說明本實施例之機器人控制方法如。第7圖及第8圖所示,本機器人控制方法包含狹處資訊標記步驟S1、虛擬障礙物資訊編輯步驟S2、狹處交會偵測步驟S3、虛擬障礙物創建步驟S4、虛擬障礙物消滅步驟S5。
狹處資訊標記步驟S1透過後台處理設備10和狹處資訊標記程序31標記一場域的全域地圖上至少一狹處,以協助使用者標記其現場環境容易發生機器人移動效率不佳之狹處的位置,並儲存所述標記結果。
虛擬障礙物資訊編輯步驟S2透過後台處理設備10和虛擬障礙物資訊編輯程序32,定義發生於狹處的路徑衝突的樣態,以及編輯發生所述路徑衝突時欲採用之複數虛擬障礙物的資訊及控制其分別對應之複數機器人之方式,以協助使用者編輯複數個機器人在此處交會發生路徑衝突時使用者期望機器人移動的方式,並儲存於供選虛擬障礙物資訊表單34。
在第1圖的機器人系統的實施例裡,狹處交會偵測步驟S3透過後台處理設備10和後台狹處交會偵測程序401,計算或監視場域裡所有機器人是否正在或即將於狹處發生路徑衝突,若是,則計算出路徑衝突的樣態,從虛擬障礙物資訊編輯步驟S2的供選虛擬障礙物資訊表單34裡找出符合所述路徑衝突的情境,並偵測所述路徑衝突解除之時機。
進一步地,狹處交會偵測步驟S3透過第一機器人21和第一機器人狹處交會偵測程序411,監視第一機器人21是否正在或即將於狹處發生路徑衝突。並且狹處交會偵測步驟S3透過第二機器人22和第二機器人狹處交會偵測程序421,監視第二機器人22是否正在或即將於狹處發生路徑衝突。若有則從虛擬障礙物資訊編輯步驟S2的編輯結果裡找出符合所述路徑衝突的情境及其控制第一機器人21及第二機器人22之方式,傳送給虛擬障礙物創建步驟S4。若發現第一機器人21或第二機器人22沒有路徑衝突的可能,且第一機器人21或第二機器人22目前有使用中的虛擬障礙物,則將所述使用中的虛擬障礙物資訊傳給虛擬障礙物消滅步驟S5。
虛擬障礙物創建步驟S4包含驅動機器人於場域的區域地圖上創建符合路徑衝突的樣態的虛擬障礙物。具體而言,根據收到的資訊,將新增虛擬障礙物的指示和虛擬障礙物的頂點座標封裝為一特定訊息,再傳送給對應機器人的支援虛擬障礙物的插件。
虛擬障礙物消滅步驟S5包含驅動機器人於區域地圖上消滅或移除經過狹處時所建立的虛擬障礙物。具體而言,根據收到的資訊,將刪除虛擬障礙物的指示和虛擬障礙物的頂點座標封裝為一特定訊息,再傳送給對應機器人的支援虛擬障礙物的插件。虛擬障礙物消滅步驟S5之執行時間點為任一機器人剛離開此狹處時,或是離開此狹處後要進入一後續狹處前,或是離開此狹處後又回到此狹處前。
此外,狹處交會偵測步驟S3可包含同處狹處檢查子步驟S31和判斷情境子步驟S32。同處狹處檢查子步驟S31檢查是否有複數個機器人正在或即將位於同一狹處,若是,才會接著執行判斷情境子步驟S32,以找尋所述複數個機器人進入狹處之樣態所符合的情境;若否,則短暫休息後,例如:1秒,再繼續檢查是否有複數個機器人正在或即將位於同一狹處。
藉此,本發明之控制複數個自主式移動機器人通過狹處的機器人控制方法,透過將虛擬障礙物配置給專屬的機器人,達到在不修改機器人原有導航演算法的限制下,有效控制機器人行走的路徑,以使得複數個機器人可以同時通過一狹處。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:後台處理設備
12,210,220:儲存媒體
13,219,229:處理器
14:圖形使用者介面
20:機器人團隊
21:第一機器人
22:第二機器人
23:第三機器人
30:線下程序組
31:狹處資訊標記程序
32:虛擬障礙物資訊編輯程序
33:狹處資訊表單
34:供選虛擬障礙物資訊表單
40:線上程序組
41:第一機器人程序組
42:第二機器人程序組
51:第一狹處
52:第二狹處
53:第三狹處
211:第一機器人原有地圖資料組
212,222:支援虛擬障礙物的插件
221:第二機器人原有地圖資料組
401:後台狹處交會偵測程序
402:後台虛擬障礙物創建程序
403:後台虛擬障礙物消滅程序
411:第一機器人狹處交會偵測程序
412:第一機器人虛擬障礙物創建程序
413:第一機器人虛擬障礙物消滅程序
421:第二機器人狹處交會偵測程序
422:第二機器人虛擬障礙物創建程序
423:第二機器人虛擬障礙物消滅程序
3205:邊
3211,3212,3221,3222,3223,3224,3231,3232,3233:虛擬障礙物
S1:狹處資訊標記步驟
S2:虛擬障礙物資訊編輯步驟
S3:狹處交會偵測步驟
S4:虛擬障礙物創建步驟
S5:虛擬障礙物消滅步驟
S31:同處狹處檢查子步驟
S32:判斷情境子步驟
第1圖繪示依照本發明一實施方式的一實施例之機器人系統的方塊圖;
第2圖繪示第1圖中機器人系統的後台處理設備的方塊圖;
第3A圖繪示第1圖中機器人系統的第一機器人的方塊圖;
第3B圖繪示第1圖中機器人系統的第二機器人的方塊圖;
第4圖繪示第1圖中機器人系統的狹處資訊標記程序執行結果之示意圖;
第5圖繪示第1圖中機器人系統的虛擬障礙物資訊編輯程序編輯過程的圖形使用者介面示意圖;
第6A圖繪示第1圖中機器人系統的一虛擬障礙物的使用規劃示意圖;
第6B圖繪示第1圖中機器人系統的另一虛擬障礙物的使用規劃示意圖;
第6C圖繪示第1圖中機器人系統的再一虛擬障礙物的使用規劃示意圖;
第6D圖繪示第1圖中機器人系統的又一虛擬障礙物的使用規劃示意圖;
第7圖繪示依照本發明另一實施方式的一實施例之機器人控制方法的流程圖;以及
第8圖繪示第7圖中機器人控制方法的狹處交會偵測步驟的流程圖。
10:後台處理設備
12:儲存媒體
13:處理器
14:圖形使用者介面
30:線下程序組
31:狹處資訊標記程序
32:虛擬障礙物資訊編輯程序
33:狹處資訊表單
34:供選虛擬障礙物資訊表單
40:線上程序組
401:後台狹處交會偵測程序
402:後台虛擬障礙物創建程序
403:後台虛擬障礙物消滅程序
Claims (10)
- 一種機器人系統,包含:複數機器人,能於一場域中移動;以及一後台處理設備,無線通信連接並用以控制該些機器人,該後台處理設備包含一處理器以及至少一儲存媒體,該至少一儲存媒體提供一狹處資訊標記程序、一虛擬障礙物資訊編輯程序、一後台狹處交會偵測程序、一後台虛擬障礙物創建程序以及一後台虛擬障礙物消滅程序;其中,該狹處資訊標記程序用以供一使用者在該場域的預先建立的一全域地圖上標記至少一狹處,該虛擬障礙物資訊編輯程序用以讓該使用者編輯一供選虛擬障礙物資訊表單,其包含複數供選虛擬障礙物及其分別對應的複數形狀、複數設置位置以及複數情境;其中,該後台狹處交會偵測程序用以讀取該狹處資訊標記程序所記錄的該狹處的資訊,並讀取該些機器人當下位置和其當下採用的路線以判斷該些機器人是否會在該狹處發生一路徑衝突,當該後台狹處交會偵測程序判斷即將發生該路徑衝突時,讀取所記錄的該供選虛擬障礙物資訊表單,依據該路徑衝突的樣態取出最相符之一該情境,決定用於該路徑衝突的複數虛擬障礙物及其分別對應的複數形狀以及複數設置位置,以通知該後台虛擬障礙物創建程序;其中,該後台虛擬障礙物創建程序用以根據收到的該些虛擬障礙物的資訊為該些機器人分別創建對應之該些虛擬 障礙物,以控制該些機器人同時經過該狹處;其中,當該後台狹處交會偵測程序判斷該些機器人離開該狹處後,通知該後台虛擬障礙物消滅程序;其中,該後台虛擬障礙物消滅程序讀取該後台虛擬障礙物創建程序所創建的該虛擬障礙物的資訊,用以把用於通過該狹處之該些機器人的該些虛擬障礙物予以消滅。
- 如請求項1所述之機器人系統,其中該狹處的範圍在該場域的一區域地圖上以一多邊形表示,該多邊形的座標系採用該全域地圖的座標系;其中,該狹處資訊標記程序讀取該全域地圖並顯示給該使用者檢視,該後台處理設備的一圖形使用者介面供該使用者在該全域地圖上標記該狹處的範圍;其中,當結束標記時,該狹處的範圍的該多邊形的頂點座標連同其一狹處識別資訊被儲存於一狹處資訊表單,該狹處識別資訊為流水號、該使用者給定的編號、該使用者給定的別稱或上述資訊之部分或全部組合。
- 如請求項2所述之機器人系統,其中該虛擬障礙物資訊編輯程序讀取該全域地圖以及該狹處資訊表單並顯示給該使用者檢視,該圖形使用者介面供該使用者在該狹處的範圍內及其一鄰近範圍編輯該些虛擬障礙物的資訊,該些虛擬障礙物的資訊更包含其所屬之該狹處的該狹處識別資訊、該情境、該情境下所需產生的該些虛擬障礙 物之描述,當結束編輯時,該狹處之該虛擬障礙物的資訊被儲存於該供選虛擬障礙物資訊表單。
- 如請求項3所述之機器人系統,其中該情境包含同時進入該狹處之該些機器人的數量、該些機器人進入該狹處之位置和離開該狹處之位置,各該機器人被賦予的一機器人識別資訊包含進入該狹處之位置、離開該狹處之位置或上述兩者之組合。
- 如請求項1所述之機器人系統,其中該些虛擬障礙物中各者之描述包含其對應的一該機器人之一機器人識別資訊,以及該虛擬障礙物之佔據範圍的複數頂點所形成之一多邊形,該多邊形的座標系採用該全域地圖的座標系。
- 如請求項1所述之機器人系統,其中該後台狹處交會偵測程序偵測到一該機器人即將進入該狹處時,估算該機器人通過該狹處之一時間,並檢查在該時間內是否有另一該機器人會處於該狹處內,若是,且該時間內同處於該狹處之該些機器人進入與離開該狹處之位置符合該些供選虛擬障礙物的資訊之其中一該情境,則判斷即將發生該路徑衝突,且符合之該情境對應該路徑衝突的樣態。
- 如請求項1所述之機器人系統,其中該後台 虛擬障礙物創建程序包含創建對應之該些虛擬障礙物,其包含將各該虛擬障礙物之佔據範圍的資訊更新至對應之一該機器人的該場域的一區域地圖上。
- 如請求項1所述之機器人系統,其中該後台虛擬障礙物消滅程序包含通知各該機器人自它的該場域的一區域地圖上移除對應的該虛擬障礙物。
- 一種機器人控制方法,包含:一狹處資訊標記步驟,標記一場域的一全域地圖上至少一狹處;一虛擬障礙物資訊編輯步驟,定義發生於該狹處的一路徑衝突的樣態,以及編輯發生該路徑衝突時欲採用之複數虛擬障礙物的資訊及控制其分別對應之複數機器人之方式;一狹處交會偵測步驟,計算該狹處是否即將發生該路徑衝突,若是,則計算出該路徑衝突的樣態,並偵測該路徑衝突解除之時機;一虛擬障礙物創建步驟,驅動各該機器人於該場域的一區域地圖上創建符合該路徑衝突的樣態之控制該機器人之方式的一該虛擬障礙物;以及一虛擬障礙物消滅步驟,驅動各該機器人於該區域地圖上消滅經過該狹處時所建立的該虛擬障礙物。
- 如請求項9所述之機器人控制方法,其中該虛擬障礙物消滅步驟之執行時間點為任一該機器人剛離開該狹處時,或是離開該狹處後要進入一後續狹處前,或是離開該狹處後又回到該狹處前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110142110A TWI806237B (zh) | 2021-11-11 | 2021-11-11 | 機器人系統及機器人控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110142110A TWI806237B (zh) | 2021-11-11 | 2021-11-11 | 機器人系統及機器人控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202319710A TW202319710A (zh) | 2023-05-16 |
TWI806237B true TWI806237B (zh) | 2023-06-21 |
Family
ID=87378988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110142110A TWI806237B (zh) | 2021-11-11 | 2021-11-11 | 機器人系統及機器人控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI806237B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100410030C (zh) * | 2006-07-07 | 2008-08-13 | 中国科学院力学研究所 | 一种基于虚拟场景的机器人避障路径规划方法 |
US9403275B2 (en) * | 2014-10-17 | 2016-08-02 | GM Global Technology Operations LLC | Dynamic obstacle avoidance in a robotic system |
TW201837428A (zh) * | 2017-04-11 | 2018-10-16 | 平安科技(深圳)有限公司 | 機器人的路徑規劃系統及方法 |
TW201836541A (zh) * | 2017-02-27 | 2018-10-16 | 南韓商Lg電子股份有限公司 | 移動式機器人及其控制方法 |
-
2021
- 2021-11-11 TW TW110142110A patent/TWI806237B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100410030C (zh) * | 2006-07-07 | 2008-08-13 | 中国科学院力学研究所 | 一种基于虚拟场景的机器人避障路径规划方法 |
US9403275B2 (en) * | 2014-10-17 | 2016-08-02 | GM Global Technology Operations LLC | Dynamic obstacle avoidance in a robotic system |
TW201836541A (zh) * | 2017-02-27 | 2018-10-16 | 南韓商Lg電子股份有限公司 | 移動式機器人及其控制方法 |
TW201837428A (zh) * | 2017-04-11 | 2018-10-16 | 平安科技(深圳)有限公司 | 機器人的路徑規劃系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202319710A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018188200A1 (zh) | 机器人的路径规划系统、方法、机器人及存储介质 | |
LaValle et al. | Finding an unpredictable target in a workspace with obstacles | |
KR20190119237A (ko) | 로봇 주행용 위상 지도 생성 장치 및 방법 | |
US10260890B2 (en) | Aisle-based roadmap generation | |
CN108363385A (zh) | Agv同场工作协同方法、电子设备、存储介质及系统 | |
WO2022083292A1 (zh) | 一种智能移动机器人全局路径规划方法和系统 | |
US20220121837A1 (en) | Pose determination by autonomous robots in a facility context | |
CN111103887A (zh) | 一种基于多传感器的多移动机器人调度系统设计方法 | |
CN110909961A (zh) | 基于bim的室内路径查询方法及装置 | |
Butler | Distributed coverage of rectilinear environments | |
CN113358118B (zh) | 非结构环境中端到端的室内移动机器人自主导航方法 | |
TWI806237B (zh) | 機器人系統及機器人控制方法 | |
Lian et al. | Improved coding landmark-based visual sensor position measurement and planning strategy for multiwarehouse automated guided vehicle | |
US20200209876A1 (en) | Positioning method and apparatus with the same | |
CN113485328A (zh) | 一种全覆盖路径规划方法、装置、电子设备和存储介质 | |
Zhao et al. | A study of the global topological map construction algorithm based on grid map representation for multirobot | |
CN106873601A (zh) | 栅格地图构建中的地图平移控制方法 | |
CN113741457A (zh) | 地图构建和使用方法、机器人及存储介质 | |
CN110109662B (zh) | 一种面向多模式物联网设备的程序可视化方法 | |
Ben-Ari et al. | Mapping-based navigation | |
CN112445220A (zh) | 自动导引车的控制方法及装置、存储介质及电子设备 | |
WO2022190649A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
Wang et al. | Efficient construction of topological semantic map with 3D information | |
WO2023063149A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
Abgenah et al. | Multi-robot path planning using Dijkstra’s algorithm with multi-layer dictionaries |