本發(fā)明屬于無人機(jī)控制,更具體的,涉及一種基于視覺反饋和行為樹控制的無人機(jī)具身智能運(yùn)算方法、可讀存儲(chǔ)介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、隨著無人機(jī)技術(shù)的迅猛發(fā)展,無人機(jī)在軍事偵察、民用航拍、物流配送、環(huán)境監(jiān)測(cè)等領(lǐng)域的應(yīng)用越來越廣泛。然而,無人機(jī)在執(zhí)行任務(wù)時(shí)常常面臨復(fù)雜多變的環(huán)境和不確定因素,如障礙物避讓、目標(biāo)追蹤、飛行路線規(guī)劃等,這對(duì)無人機(jī)的智能性和自主性提出了更高的要求。
2、傳統(tǒng)的無人機(jī)控制系統(tǒng)主要依賴于預(yù)編程的飛行指令和簡(jiǎn)單的傳感器數(shù)據(jù),比如基于飛手預(yù)飛和預(yù)設(shè)gps航線控制的飛行模式,難以實(shí)現(xiàn)復(fù)雜環(huán)境下的自適應(yīng)和智能決策。近年來,基于視覺的無人機(jī)導(dǎo)航和目標(biāo)識(shí)別技術(shù)得到了廣泛關(guān)注,但大多數(shù)方法仍停留在簡(jiǎn)單的圖像處理和目標(biāo)跟蹤層面,缺乏高級(jí)的智能決策和行為規(guī)劃能力。此外,現(xiàn)有的無人機(jī)控制系統(tǒng)通常采用單一的控制策略,難以應(yīng)對(duì)多種不同的任務(wù)和場(chǎng)景。行為樹控制理論提供了一種結(jié)構(gòu)化、層次化的控制框架,可以根據(jù)任務(wù)需求和環(huán)境變化動(dòng)態(tài)調(diào)整控制策略,實(shí)現(xiàn)無人機(jī)的智能決策和靈活控制。
3、中國(guó)專利文獻(xiàn)cn115525061a公開一種基于圖論的多無人機(jī)協(xié)同控制方法,包括以下步驟:步驟s1,通過多無人機(jī)各個(gè)無人機(jī)之間的通訊關(guān)系確定多無人機(jī)的通訊網(wǎng)絡(luò)圖;步驟s2,通過通訊網(wǎng)絡(luò)圖生成多無人機(jī)控制關(guān)系樹;步驟s3,通過步驟s2生成的控制關(guān)系樹,確定每個(gè)無人機(jī)的相對(duì)運(yùn)動(dòng)控制的參考點(diǎn);步驟s4,確定各個(gè)無人機(jī)之間的控制關(guān)系,實(shí)現(xiàn)多無人機(jī)協(xié)同控制。步驟s5,當(dāng)參加協(xié)同任務(wù)的無人機(jī)出現(xiàn)異常后,控制關(guān)系樹發(fā)生變化,產(chǎn)生有些無人機(jī)沒有相對(duì)運(yùn)動(dòng)控制的參考點(diǎn),這時(shí)通過重構(gòu)控制關(guān)系樹來重新生成實(shí)現(xiàn)協(xié)同控制。該方法仍停留在簡(jiǎn)單的圖像處理和目標(biāo)跟蹤層面,缺乏高級(jí)的智能決策和行為規(guī)劃能力。
4、中國(guó)專利文獻(xiàn)cn117369795a公開用于無人機(jī)決策的行為樹模型可達(dá)性分析方法及裝置,其中方法包括:獲取基于無人機(jī)決策行為構(gòu)建的行為樹,行為樹中的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)無人機(jī)針對(duì)外部態(tài)勢(shì)各因素的決策行為;將行為樹轉(zhuǎn)換為控制流圖;基于控制流圖,進(jìn)行所述行為樹的節(jié)點(diǎn)可達(dá)性分析,得到所述行為樹的節(jié)點(diǎn)的可達(dá)性結(jié)果;可達(dá)性結(jié)果用于反映行為樹的節(jié)點(diǎn)所代表的無人機(jī)決策是否可被執(zhí)行,但該專利所述方法僅僅是一個(gè)無人機(jī)可達(dá)性分析,只能給無人機(jī)提供是否能夠到達(dá)指定區(qū)域的判斷信息,而不能實(shí)現(xiàn)無人機(jī)的具身智能控制,即無法實(shí)現(xiàn)基于行為樹的自主飛行。
5、有鑒于此,本發(fā)明設(shè)計(jì)一種基于視覺反饋和行為樹控制的無人機(jī)具身智能運(yùn)算方法、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,以提升無人機(jī)在復(fù)雜環(huán)境中的自主性和智能性。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于視覺反饋和行為樹控制的無人機(jī)具身智能運(yùn)算方法,利用視覺傳感器實(shí)時(shí)獲取環(huán)境信息,通過行為樹控制理論實(shí)現(xiàn)智能決策和行為規(guī)劃,使無人機(jī)能夠自適應(yīng)地完成任務(wù),提高任務(wù)執(zhí)行效率和安全性;
2、本發(fā)明還公開一種實(shí)現(xiàn)上述方法的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);
3、本發(fā)明還公開一種實(shí)現(xiàn)上述方法的程序產(chǎn)品。
4、為實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是:
5、一種基于視覺反饋和行為樹控制的無人機(jī)具身智能運(yùn)算方法,所述方法包括以下步驟:
6、s1:通過提示詞工程和指令微調(diào)對(duì)大規(guī)模語言模型進(jìn)行優(yōu)化,將用戶口令拆解為無人機(jī)可以理解和執(zhí)行的機(jī)器指令,為后續(xù)無人機(jī)的自主飛行和任務(wù)執(zhí)行提供良好的信息支持;
7、s2:利用基于集成學(xué)習(xí)的目標(biāo)識(shí)別算法,充分融合不同視覺模型的優(yōu)勢(shì),對(duì)潛在風(fēng)險(xiǎn)目標(biāo)進(jìn)行識(shí)別,例如:危險(xiǎn)垂釣、火焰以及輻射等,能夠?yàn)楹罄m(xù)基于視覺信息的模塊提供及時(shí)、準(zhǔn)確的風(fēng)險(xiǎn)信息,并輔助行為樹做出更加明智的決策;
8、s3:為了構(gòu)建一個(gè)靈活且適應(yīng)性強(qiáng)的無人機(jī)行為系統(tǒng),設(shè)計(jì)一系列以視覺反饋信息為核心的行為樹節(jié)點(diǎn),所述行為樹節(jié)點(diǎn)將依據(jù)不同的風(fēng)險(xiǎn)目標(biāo)進(jìn)行條件判斷,并觸發(fā)相應(yīng)的行為任務(wù)。這些功能豐富的節(jié)點(diǎn)將成為構(gòu)建完整行為樹的基礎(chǔ)單元,確保無人機(jī)能夠在各種復(fù)雜場(chǎng)景下靈活響應(yīng)并完成任務(wù)。
9、s4:將行為樹節(jié)點(diǎn)構(gòu)建由頂及下的完整行為樹,所述行為樹節(jié)點(diǎn)包含順序節(jié)點(diǎn)、選擇節(jié)點(diǎn)、條件節(jié)點(diǎn)和動(dòng)作節(jié)點(diǎn),為無人機(jī)提供頂層的邏輯控制框架,使得無人機(jī)在執(zhí)行任務(wù)時(shí)能夠按照合理的邏輯流程進(jìn)行,并提供了靈活的擴(kuò)展機(jī)制,可以根據(jù)實(shí)際需求對(duì)行為樹進(jìn)行定制和擴(kuò)展。
10、s5:基于機(jī)器人操作系統(tǒng)ros實(shí)現(xiàn)各模組之間的信息通訊,包括無人機(jī)與地面主站、算力模塊和傳感器之間的實(shí)時(shí)通信和數(shù)據(jù)共享,并基于ros?bridge實(shí)現(xiàn)雙版本ros1和ros2之間的互聯(lián)互通,進(jìn)一步提高無人機(jī)的智能化水平和任務(wù)執(zhí)行效率。
11、根據(jù)本發(fā)明優(yōu)選的,所述步驟s3包括以下詳細(xì)步驟:
12、s31:建立巡航動(dòng)作節(jié)點(diǎn)action_patrol,綜合分析巡航動(dòng)作節(jié)點(diǎn)action_patrol和順序節(jié)點(diǎn)squen在信息發(fā)布方面的耦合特性,將巡航動(dòng)作節(jié)點(diǎn)action_patrol的動(dòng)作指令設(shè)置為節(jié)點(diǎn)狀態(tài)寫入和巡航狀態(tài)顯示;
13、所述巡航動(dòng)作節(jié)點(diǎn)action_patrol為選擇節(jié)點(diǎn)select的子節(jié)點(diǎn),所述順序節(jié)點(diǎn)squen為select_transition的子節(jié)點(diǎn);
14、s32:建立用于監(jiān)控目標(biāo)狀態(tài)的條件節(jié)點(diǎn)condition_is_have_aim,該節(jié)點(diǎn)配置了接收器用于實(shí)時(shí)捕獲基于集成學(xué)習(xí)的目標(biāo)檢測(cè)算法輸出的box信息,所述box信息包含目標(biāo)標(biāo)識(shí)和像素位置,并另外設(shè)置了一個(gè)接收器用于接收任務(wù)完成的指示;
15、s33:建立向心運(yùn)動(dòng)動(dòng)作節(jié)點(diǎn)action_goto_center,獲取目標(biāo)box坐標(biāo)中心和圖像中心,并計(jì)算由圖像中心指向box中心的無人機(jī)線速度x向量velx和y向量vely,兩者矢量和為無人機(jī)合速度方向矢量,需要乘以速度系數(shù)將其調(diào)整到合適的速度值,計(jì)算公式如下式所示:
16、
17、式(1)、(2)中,ψ表示速度系數(shù);(ximage,yimage)表示圖像中心;(xbox,ybox)表示目標(biāo)box坐標(biāo)中心;無人機(jī)x方向是機(jī)頭前方,y方向是機(jī)頭右方,與相機(jī)拍攝的圖像像素坐標(biāo)之間存在位姿變換;
18、s34:建立中心判斷條件節(jié)點(diǎn)condition_is_arrive_center,根據(jù)下列公式計(jì)算box中心位置和圖像中心位置的像素距離dcenter:
19、
20、式(3)中,(ximage,yimage)表示圖像中心;(xbox,ybox)表示目標(biāo)box坐標(biāo)中心;
21、當(dāng)距離dcenter小于預(yù)設(shè)閾值時(shí),則該條件節(jié)點(diǎn)返回成功,即無人機(jī)已到達(dá)目標(biāo)正上方;當(dāng)距離dcenter大于預(yù)設(shè)閾值時(shí),則該條件節(jié)點(diǎn)返回失敗,即無人機(jī)未到達(dá)目標(biāo)正上方;
22、s35:建立高度調(diào)整動(dòng)作節(jié)點(diǎn)action_goto_height,該節(jié)點(diǎn)首先通過box的左上坐標(biāo)和右下坐標(biāo)計(jì)算box的像素面積,并計(jì)算box像素面積占圖像像素面積的比例,隨后通過box比例和最佳比例的差值計(jì)算無人機(jī)z方向速度基礎(chǔ)值,最后乘以速度系數(shù)得到最終要發(fā)布的速度,通過上述過程獲得高度調(diào)整速度指令velz的計(jì)算公式如下式所示:
23、
24、式(4)中,ψ表示速度系數(shù),(x1,box,y1,box)表示box的左上坐標(biāo),(x2,box,y2,box)表示box的右下坐標(biāo),w表示box像素面積占圖像像素的長(zhǎng),h表box像素面積占圖像像素的寬,rbest表示最佳比例;
25、s36:建立高度判斷條件節(jié)點(diǎn)condition_is_ratio_right,計(jì)算box的像素面積占圖像像素面積的比例,并和最佳比例rbest做差值,判斷是否與最佳比例差距過大,如果差值超過預(yù)設(shè)閾值,則置該條件節(jié)點(diǎn)狀態(tài)為失??;反之,則置為成功;
26、s37:建立繞飛動(dòng)作節(jié)點(diǎn)action_goto_detour,該節(jié)點(diǎn)用于發(fā)布無人機(jī)繞飛速度指令,由于無人機(jī)在繞飛過程中需要機(jī)身旋轉(zhuǎn)觀察目標(biāo),所以在設(shè)置繞飛角速度和線速度時(shí)需要受半徑設(shè)置的約束,如式所示:
27、vel=ω*rad(5)
28、式(5)中,ω表示繞飛角速度,vel表示繞飛線速度,rad表示半徑;
29、s38:建立繞飛完成判斷條件節(jié)點(diǎn)condition_is_detour_finish,計(jì)算繞飛開始前的gps位置和實(shí)時(shí)gps位置的差值,并按照以下步驟計(jì)算實(shí)際位置米制距離dgps:
30、首先通過下式將經(jīng)緯度轉(zhuǎn)化為弧度:
31、
32、然后計(jì)算弧度差值:
33、
34、最后基于haversine公式計(jì)算兩點(diǎn)之間的距離:
35、
36、式(6)到(13)中,lareal和loreal表示實(shí)時(shí)gps經(jīng)緯度,lastart和lostart表示繞飛剛開始時(shí)的gps經(jīng)緯度;
37、根據(jù)gps差值計(jì)算得到的米制距離dgps,并考慮繞飛時(shí)間約束,綜合繞飛開始時(shí)刻不為0、正在繞飛標(biāo)志位為1兩個(gè)條件進(jìn)行聯(lián)合判斷,如果繞飛開始時(shí)刻不為0,且正在繞飛標(biāo)志位為1,則已繞飛完成,返回狀態(tài)值為成功;如果尚未繞飛完成,則返回狀態(tài)值為失?。?/p>
38、s39:建立繞飛完成發(fā)布動(dòng)作節(jié)點(diǎn)action_pub_detour_finish,通過設(shè)置繞飛完成標(biāo)志位話題,并往消息中寫入數(shù)值后發(fā)布話題,實(shí)現(xiàn)對(duì)繞飛完成標(biāo)志位的有效發(fā)布。
39、根據(jù)本發(fā)明優(yōu)選的,所述步驟s4包括以下詳細(xì)步驟:
40、s41:設(shè)計(jì)行為樹的第一層,為選擇節(jié)點(diǎn)select添加選擇節(jié)點(diǎn)select_transition和巡航動(dòng)作節(jié)點(diǎn)action_patrol兩個(gè)子節(jié)點(diǎn);為選擇節(jié)點(diǎn)select_transition添加多個(gè)順序節(jié)點(diǎn)作為子節(jié)點(diǎn),從而應(yīng)對(duì)不同目標(biāo)id做出不同的應(yīng)對(duì)動(dòng)作;同時(shí),調(diào)整select_transition的多個(gè)順序節(jié)點(diǎn)的先后順序,編排不同目標(biāo)id任務(wù)執(zhí)行的優(yōu)先級(jí);給其中一個(gè)順序節(jié)點(diǎn)squen添加目標(biāo)反饋條件節(jié)點(diǎn)condition_is_have_aim和選擇節(jié)點(diǎn)select1作為子節(jié)點(diǎn);
41、s42:設(shè)計(jì)行為樹的第二層,給選擇節(jié)點(diǎn)select1添加順序節(jié)點(diǎn)squen1和向心運(yùn)動(dòng)動(dòng)作節(jié)點(diǎn)action_goto_center;為順序節(jié)點(diǎn)squen1添加中心判斷條件節(jié)點(diǎn)condition_is_arrive_center和選擇節(jié)點(diǎn)select2;
42、s43:設(shè)計(jì)行為樹的第三層,給選擇節(jié)點(diǎn)select2添加順序節(jié)點(diǎn)squen2和高度調(diào)整動(dòng)作節(jié)點(diǎn)action_goto_height;為順序節(jié)點(diǎn)squen2添加高度判斷條件節(jié)點(diǎn)condition_is_ratio_right和選擇節(jié)點(diǎn)select3;
43、s44:設(shè)計(jì)行為樹的第四層,給選擇節(jié)點(diǎn)select3添加順序節(jié)點(diǎn)squen3和繞飛動(dòng)作節(jié)點(diǎn)action_goto_detour;為順序節(jié)點(diǎn)squen3添加繞飛完成判斷條件節(jié)點(diǎn)condition_is_detour_finish和繞飛完成發(fā)布動(dòng)作節(jié)點(diǎn)action_pub_detour_finish;
44、s45:設(shè)置目標(biāo)反饋條件節(jié)點(diǎn)condition_is_have_aim,在節(jié)點(diǎn)內(nèi)添加狀態(tài)設(shè)置條件,以繞飛完成標(biāo)志位值作為該節(jié)點(diǎn)狀態(tài)成功的必要條件,從而避免行為樹控制下的無人機(jī)在同一目標(biāo)位置陷入重復(fù)執(zhí)行任務(wù)的死循環(huán);
45、s46:用正在繞飛指令鎖定向心運(yùn)動(dòng)和高度調(diào)整動(dòng)作節(jié)點(diǎn)的狀態(tài),防止在繞飛過程中由于視野中目標(biāo)不在中央或者由高度變化而導(dǎo)致繞飛狀態(tài)被打斷;
46、s47:繞飛動(dòng)作節(jié)點(diǎn)action_goto_detour發(fā)布的正在繞飛標(biāo)志位,繞飛完成判斷條件節(jié)點(diǎn)condition_is_detour_finish用接收器訂閱繞飛動(dòng)作節(jié)點(diǎn)action_goto_detour發(fā)布的正在繞飛標(biāo)志位,聯(lián)合gps差值計(jì)算得到的米制距離dgps和繞飛時(shí)間約束對(duì)繞飛是否完成進(jìn)行狀態(tài)設(shè)置,同時(shí)發(fā)布繞飛完成標(biāo)志位指令;
47、s48:設(shè)置外部節(jié)點(diǎn)update_label,當(dāng)收到繞飛完成標(biāo)志位指令后,立即刷新正在繞飛標(biāo)志位,并在3秒后刷新繞飛完成標(biāo)志位,這樣既能保證標(biāo)志位的刷新,從而應(yīng)對(duì)下一輪任務(wù)執(zhí)行,又能以3秒時(shí)間飛離已完成任務(wù)區(qū)域,防止在同一目標(biāo)處重復(fù)執(zhí)行任務(wù)。
48、根據(jù)本發(fā)明優(yōu)選的,所述機(jī)器人操作系統(tǒng)ros包括兩個(gè)版本,分別為ros1和ros2。
49、根據(jù)本發(fā)明優(yōu)選的,所述步驟s5包括以下詳細(xì)步驟:
50、s51:將基于集成學(xué)習(xí)目標(biāo)檢測(cè)算法用ros1進(jìn)行封裝,獲取無人機(jī)相機(jī)圖像幀流并發(fā)布檢測(cè)結(jié)果topic;
51、s52:基于ros1編寫行為樹節(jié)點(diǎn),實(shí)現(xiàn)節(jié)點(diǎn)通訊,并接收來自無人機(jī)的gps信息和來自目標(biāo)檢測(cè)算法的目標(biāo)檢測(cè)信息,發(fā)布速度指令topic控制無人機(jī)運(yùn)動(dòng),并發(fā)布航線控制指令topic控制航線運(yùn)動(dòng)暫?;蚶^續(xù);
52、s53:基于ros2獲取無人機(jī)gps信息topic,并接收來行為樹發(fā)布的無人機(jī)質(zhì)心運(yùn)動(dòng)速度指令;
53、s54:基于ros?bridge進(jìn)行雙版本ros1和ros2之間的信息橋接,以實(shí)現(xiàn)完整系統(tǒng)的信息交互。
54、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)可實(shí)現(xiàn)上述方法的步驟。
55、一種加載有上述方法的計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)可實(shí)現(xiàn)上述方法的步驟。
56、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
57、本發(fā)明巧妙融合了視覺反饋機(jī)制與行為樹驅(qū)動(dòng)的控制策略,并納入大規(guī)模語言模型,以實(shí)現(xiàn)對(duì)用戶指令的深度解析與精準(zhǔn)分解。本發(fā)明利用先進(jìn)的視覺反饋技術(shù),高效識(shí)別并定位目標(biāo)物體類別及空間位置,同時(shí)依托行為樹構(gòu)建高層邏輯架構(gòu),確保無人機(jī)在面對(duì)多變環(huán)境與復(fù)雜任務(wù)配置時(shí)表現(xiàn)出卓越的適應(yīng)能力。這一設(shè)計(jì)從根本上突破了傳統(tǒng)無人機(jī)依賴預(yù)設(shè)航線飛行的局限性,引入了一個(gè)既結(jié)構(gòu)化又層次清晰的控制框架。該框架能夠根據(jù)實(shí)時(shí)任務(wù)需求與外界環(huán)境的動(dòng)態(tài)變化,靈活優(yōu)化與調(diào)整控制策略,從而賦能無人機(jī)以智能化的決策能力與高度的操控靈活性。