本發明涉及移動機器人導航控制的,尤其是指一種結合大語言模型與環境拓撲圖的移動機器人目標導航系統及其導航方法。
背景技術:
1、隨著深度學習技術的高度發展,大語言模型與視覺模型表現出優異的效果,因此許多機器人研究人員也嘗試將其進行結合。因為大語言模型能夠處理復雜的語言任務,可以用于機器人的規劃,而視覺模型則專注于圖像和視頻的分析與理解,它們能夠識別物體、場景,進行圖像分類和目標檢測等,這可以用于機器人對外部信息的獲取。通過傳感器獲取基礎信息,并利用視覺模型加工環境信息最后結合大語言模型進行決策的機器人研究方法也逐漸成為熱點,這種結合利用了視覺模型對環境的感知能力和大語言模型的決策能力,使得機器人能夠更準確地理解和響應復雜的環境信息。
2、移動機器人被廣泛地應用于上述的各種行業之中,如掃地機器人,迎賓機器人以及送貨機器人。其中導航是移動機器人十分基礎的功能。定點導航是指以地圖中的某一坐標作為導航位置,讓移動機器人根據傳感信息與地圖信息到達指定位置。這一流程所涉及的內容包括傳感,定位,建圖,避障,路徑規劃與執行等多個模塊。常用的傳感器包括相機,imu(慣性測量單元),單線激光與多線激光等。傳統導航方法僅適用于定點導航,對于更智能化的目標導航與視覺語言導航等則不太適用。
3、隨著人工智能地發展,越來越多的人研究如何實現更加智能的導航,如視覺語言導航,目標導航等。相比于原來的基于定點坐標的導航,目標導航使用語義化的目標描述作為移動機器人的導航指向。類比于傳統導航作為移動機器人的基礎,目標導航也可以視為智能移動機器人任務規劃與執行的一個基礎,通過提供以目標為導向的導航,移動機器人可以執行更智能的功能,如在環境中遞送物品給指定目標或操作指定目標等。從任務類型來看,目標導航可以分為兩種主要類型,一是面向相對已知的環境,二是探索完全未知的環境。從實現方法來看,目標導航也可以分為兩種主要類型,一是端到端的方法,即通過深度學習模型來直接輸出最終動作。二是工程化的方法,即搭建一個導航系統,通過邏輯判斷來選擇最終動作。
4、目前已有的目標導航的方法有著以下幾個不足之處:
5、第一,現有的目標導航方法大多面向完全未知的環境,這主要是由于該領域的許多研究數據集是靜態的掃描數據,這些數據無法準確模擬現實中的工作環境。現實機器人的工作環境往往相對固定,但又具有一定的動態性,比如機器人在某個場所里工作,該場所的大致信息是不變的,但是場所里的物品與人員信息都是可以變的,而現有的許多研究認為環境是完全未知的,這種假設忽略了許多重要信息,降低了移動機器人的目標導航效果。
6、第二,現有的目標導航方法大多停留在規劃層,對于具體的實現與部署仍有不足,比如許多方法所輸出的動作是離散的動作,在移動時也未考慮機器人的運動學特性與避障等,并且許多方法只涉及找到或者接近目標,而沒有精確達到目標指定距離的功能。
7、第三,基于深度學習的目標導航方法,其訓練成本較高,且在不同環境的泛化較為困難。
技術實現思路
1、本發明的目的在于克服現有技術的不足,提供了一種結合大語言模型與環境拓撲圖的移動機器人目標導航系統及其導航方法,可提升在已知環境中的目標導航的效果,可提升目標導航的可部署性與安全性,可將目標導航從接近目標改進為到達目標指定距離,實現更精確的目標導航。
2、為實現上述目的,本發明所提供的技術方案為:一種移動機器人目標導航系統,包括:
3、地圖構建模塊,負責根據多線激光采集的點云數據建立三維點云地圖,并將三維點云地圖投射成二維柵格地圖,以及根據設定的路徑點收集路徑點處語義信息與視覺信息,從而實現環境拓撲圖的構建,其中環境拓撲圖是指將環境抽象為一個拓撲圖,拓撲圖的節點記錄環境中特定位置的語義信息與視覺信息;
4、基礎導航模塊,使用二維柵格地圖與三維點云地圖進行全局定位與定點導航,對基礎導航功能進行封裝提供接口并記錄操作日志;
5、指令分析模塊,基于大語言模型對用戶輸入的自然語言進行分析,并提取出有效的導航目標以及輔助信息;
6、路徑規劃模塊,基于大語言模型根據指令分析模塊輸出的導航目標、輔助信息與環境拓撲圖在場景中規劃一條合適的導航路徑,即最優找尋路徑;
7、目標檢測模塊,負責在沿導航路徑進行找尋的同時對視覺信息進行目標檢測,并根據檢測結果與深度信息計算出物體的位置。
8、進一步,所述地圖構建模塊涉及三種類型的地圖,包括三維點云地圖、二維柵格地圖和環境拓撲圖;其中,所述三維點云地圖用于移動機器人的全局定位,它使用點云精準地描述環境信息;所述二維柵格地圖用于移動機器人避障規劃,它以自上而下的視角對環境中的障礙物進行記錄;所述環境拓撲圖用于規劃找尋路徑,它是一種環境的抽象,由節點和邊組成,在環境拓撲圖中節點代表一片區域,邊則代表兩兩區域之間的連通關系與距離,節點能夠記錄某個區域的視覺信息、語義信息和位置,上述三種地圖都使用統一的地圖坐標系。
9、進一步,所述地圖構建模塊具體執行以下操作:
10、首先,選取能夠覆蓋整個移動機器人高度的所有激光線束,使用三維slam算法建立三維點云地圖,并將三維點云地圖降維成二維柵格地圖,然后根據人為設定的路徑點,將地圖分割為不同的導航區域,再依次前往路徑點處拍攝周圍環境的照片,接著使用視覺語言模型vlm對周圍環境的照片進行處理,總結出周圍環境的描述信息,并結合描述信息概括出路徑點的標簽或通過人為設定標簽,其中描述信息與標簽則為語義信息,拍攝的照片則為視覺信息;接著在環境拓撲圖中創建相同數量的節點代表路徑點,并將路徑點所包含的語義信息與視覺信息記錄到環境拓撲圖中對應的節點,最后,根據路徑點之間的連通關系在節點之間設立邊,并根據二維柵格地圖計算出節點之間的距離賦值給對應的邊,從而構建出完整的環境拓撲圖。
11、進一步,所述基礎導航模塊使用機器人框架ros2中的navigation2導航框架作為底層實現;該基礎導航模塊采用地圖構建模塊中創建的三維點云地圖與二維柵格地圖進行定位與導航,并提供以下基礎導航功能:定點導航、沿軌跡點導航、前后指定距離移動、指定角度旋轉以及在導航時為移動機器人提供實時位姿信息;該基礎導航模塊將ros2中多次反饋與等待的調用轉變為以回調函數進行通知的調用方式,調用者無需考慮ros2中的具體過程,只需給定指令,最終由回調函數的參數告知該指令是否執行成功,此外調用過程以json格式數據進行傳輸,并使用ros2中的日志系統進行記錄。
12、進一步,所述指令分析模塊接收自然語言的輸入,并通過給定預先調整好的提示詞使大語言模型提取出自然語言中的導航目標、輔助信息與距離信息,其中導航目標是最后要找尋的對象,輔助信息則是幫助找尋的額外信息,距離信息則代表找尋到目標后移動機器人需要移動至目標的指定距離;初始導航目標可能是無法被目標檢測模型給直接檢測到的,所以獲取到初始導航目標后,將再次利用大語言模型將導航目標轉換為語義上最接近且能夠被檢測的目標類別。
13、進一步,所述路徑規劃模塊接收導航目標x、輔助信息y、機器人在地圖坐標系下的初始位置t和環境拓撲圖m,環境拓撲圖m中每個節點代表環境中的一個區域,節點存儲該區域的視覺信息與語義信息,其中語義信息包含該區域周圍的描述以及該區域對應的標簽,設[p1,p2,p3,...,pi,p(i+1),...]為環境拓撲圖m中的節點,pi為環境拓撲圖中的第i個節點,亦是路徑點;該路徑規劃模塊需要計算以下四個數值用于規劃最終路徑:節點與導航目標x的相似度、導航目標x處于節點附近的概率值、導航目標x與各個節點視覺信息的匹配度以及各節點與位置t的距離,具體情況如下:
14、首先,利用大語言模型來分析導航目標x與環境拓撲圖m中節點標簽的關聯度,并結合輔助信息y進行修正,最終給出節點與導航目標x的相似度,其具體做法為:收集所有節點的標簽,將節點標簽、導航目標x與輔助信息y送入大語言模型,通過提示詞引導大語言模型比較在給定輔助信息y的情況下導航目標x與各個標簽的相似度,其中相似度是0-1之間的值,再將各個標簽的相似度賦值給含有該標簽的節點,即pi的所有標簽相似度之和為pi在給定輔助信息y下與導航目標x的相似度a(x,y,pi);
15、隨后,再次利用大語言模型來判斷導航目標x與環境拓撲圖m中節點的描述的關聯度,并結合輔助信息y進行修正,進而給出導航目標x處于節點附近的概率值,其具體做法為:將所有節點對應的描述、導航目標x與輔助信息y送入大語言模型,通過提示詞引導大語言模型分析導航目標x在給定輔助信息y時處于某一節點附近是否符合該節點的描述,最終讓大語言模型為每個節點輸出一個0-1之間的值表示導航目標處于該節點附近的概率值,設在給定輔助信息y下,導航目標x處于pi附近的概率為b(x,y,pi);
16、接著,利用視覺文本匹配模型clip對導航目標x與環境拓撲圖m中各個節點的視覺信息進行匹配,進而給出導航目標x與各個節點視覺信息的匹配度,其具體做法為:將所有節點的視覺信息,即在節點處所拍攝的圖片,與導航目標x作為視覺文本匹配模型clip的輸入,視覺文本匹配模型clip輸出為每張圖片與導航目標x的相似度,則pi對應的所有圖片與導航目標x的相似度之和為導航目標x與pi的視覺相似度c(x,pi),并計算各節點與位置t的距離,設pi與位置t的距離為d(t,pi);
17、最后,將以上四個數值進行加權求和操作,即可得到pi的最終優先級,設a為節點與導航目標相似度的權重,b為導航目標處于節點附近的概率值權重,c為導航目標與環境拓撲圖中視覺信息匹配度的權重,d為當前位置與環境拓撲圖中各節點距離的權重,則路徑點pi的最終優先級s(x,y,t,pi)的表達式為:
18、s(x,y,t,pi)=aa(x,y,pi)+bb(x,y,pi)+cc(x,pi)-dd(t,pi)
19、求出所有節點的最終優先級后,再使用dijkstra算法計算從當前位置到各個節點的最短路徑,從而規劃一條遍歷所有路徑點的最優找尋路徑。
20、進一步,所述目標檢測模塊使用深度相機實現,包括視覺檢測與位置估計,具體情況如下:
21、視覺檢測提供兩種目標檢測方法,一是開放語義檢測,使用的是開放語義目標檢測模型grounding-vino,開放語義檢測能檢測更多的類別,并能根據物體位置與物體顏色做區分,由于該開放語義目標檢測模型grounding-vino無法在嵌入式平臺上部署因此采用服務器部署,遠程調用的方式實現;二是常規目標檢測,使用的是yolo11系列模型,只能檢測預定義的80種類別,由于yolo11系列模型輕量因此能直接部署在移動機器人上;
22、當目標檢測成功后,再進行位置估計,具體是利用深度相機獲取點云信息,并利用實例分割模型劃分目標所在區域的點云,由于實例分割模型無法完美分割目標,所以初次分割的點云會有大誤差,需要對點云進行預處理,處理流程為:依次對點云進行獨立點移除、下采樣以及使用dbscan算法進行聚類并選取最大類別,從而得到準確的目標點云信息,接著計算點云的有向包圍框,從而獲取目標在相機坐標系下的位置。
23、本發明也提供了上述移動機器人目標導航系統的導航方法,具體情況如下:
24、首先,利用地圖構建模塊創建三維點云地圖、二維柵格地圖與環境拓撲圖,對于同一環境只需要構建一次,并將三維點云地圖與二維柵格地圖作為基礎導航模塊的輸入激活基礎導航功能,接著,將自然語言輸入通過指令分析模塊轉換為導航目標、輔助信息與最終距離,并利用路徑規劃模塊規劃出一條合適的找尋路徑,即最優找尋路徑,使用基礎導航模塊依次前往規劃好的路徑點,同時啟動目標檢測模塊檢測找尋目標,當檢測到目標后會停止移動行動,并在靜止狀態下通過目標檢測模塊獲取目標在相機坐標系下的位置,根據相機坐標系與機器人坐標系的相對位姿,先將目標位置從相機坐標系轉換為機器人坐標系,再使用基礎導航模塊獲取機器人在地圖坐標下的位置,進而將目標位置從機器人坐標系轉換為地圖坐標系,并結合預設的距離,在地圖坐標系上確定一個合適的??奎c,最后,通過基礎導航模塊引導移動機器人到達該??奎c,從而完成單次導航任務。
25、本發明與現有技術相比,具有如下優點與有益效果:
26、1、本發明提出使用標簽來提升大語言模型進行路徑規劃的效果,從而提升目標導航的效果。具體包括在地圖構建模塊記錄環境中各個位置的標簽信息以豐富語義拓撲圖,在指令分析模塊中捕捉用戶對于目標的提示,以及在路徑規劃模塊使用大語言模型來分析環境拓撲圖中的人為標簽與導航目標的關聯性。
27、2、本發明克服了以往目標導航只停留在規劃層而未考慮部署與執行時的安全性問題。具體體現在使用ros2實現基礎導航模塊,上層使用導航點控制,利用基礎導航的避障功能來避免現有算法中直接使用離散的速度控制導致的安全問題。同時由于本系統依托于ros2框架進行構建,因此可以輕松地部署到使用ros2框架的移動機器人上。
28、3、本發明將現有的目標導航系統從接近目標改進為到達目標指定位置,這為之后移動機器人的操作提供前置。具體包括在指令分析模塊中利用大語言模型提取距離信息,在目標檢測模塊中將目標檢測模型與深度相機進行結合實現目標的三維定位,以及結合基礎導航模塊獲取移動機器人全局定位進而在地圖中找到符合指定距離的最終導航位置。