自動(dòng)尋路是機(jī)器人導(dǎo)航的核心技術(shù),其原理主要涉及機(jī)器人與環(huán)境之間的復(fù)雜信息交互與處理。在自動(dòng)尋路過程中,機(jī)器人依靠先進(jìn)的傳感器系統(tǒng),如高清攝像頭、精密激光雷達(dá)和靈敏超聲波裝置,全方位感知周圍環(huán)境。這些傳感器能夠?qū)崟r(shí)捕捉并分析環(huán)境中的障礙物、地形變化和關(guān)鍵路標(biāo),為機(jī)器人提供精確的導(dǎo)航數(shù)據(jù)。
自動(dòng)尋路在多個(gè)領(lǐng)域發(fā)揮著關(guān)鍵作用,從圖撲的數(shù)據(jù)中心機(jī)房的自動(dòng)化巡檢系統(tǒng),到智能機(jī)器人的導(dǎo)航系統(tǒng),再到智慧碼頭堆場的智能化管理,自動(dòng)尋路技術(shù)無處不在。該功能不僅能規(guī)劃出最優(yōu)路線,還能實(shí)時(shí)考慮障礙物避讓等復(fù)雜的實(shí)際因素,靈活調(diào)整路徑以確保安全和效率。

乍聽之下,自動(dòng)尋路功能略顯復(fù)雜,實(shí)現(xiàn)過程中也確實(shí)涉及了一些算法。在具體實(shí)施之前,我們需要先解決兩個(gè)關(guān)鍵問題:
1. 如何避開場景中的障礙物?
2. 如何計(jì)算最佳路徑?
針對(duì)這兩處問題,我們可以利用圖撲軟件自研 HT for Web 提供的 ht-astar.js 插件。該插件具備初始化網(wǎng)格和自動(dòng)搜索路徑等功能,高效簡化了自動(dòng)尋路的實(shí)現(xiàn)過程。
場景網(wǎng)格化
先將場景劃分成二維網(wǎng)格,障礙物分布于不同的網(wǎng)格單元上,部分較大的障礙物可能會(huì)占據(jù)多個(gè)網(wǎng)格單元。路徑計(jì)算實(shí)際上是分析網(wǎng)格的占用情況,當(dāng)平臺(tái)監(jiān)測到某個(gè)網(wǎng)格被占用時(shí),系統(tǒng)會(huì)自動(dòng)尋找擇優(yōu)生成一條繞行路徑。

在開發(fā)時(shí),首先需要去實(shí)例化 ht.Astar.Finder(view, params)。其中 view 可以是 ht.graph.GraphView 或者 ht.graph3d.Graph3dView。params 是一個(gè)包含基礎(chǔ)屬性設(shè)置的對(duì)象。以下列舉了一些 params 的常用參數(shù):
?simplify:是否啟用路徑簡化。
?closest:是否啟用最近路徑優(yōu)化。
?nodeRectExtend:擴(kuò)展節(jié)點(diǎn)范圍。
?gridSizeY:網(wǎng)格在 Y 方向上的大小。
?gridSizeX:網(wǎng)格在 X 方向上的大小。
?diagonal:是否允許沿對(duì)角線方向移動(dòng)。
?fastOverlap:是否啟用快速監(jiān)測重疊算法。
?filter:過濾函數(shù)用于在路徑計(jì)算過程中過濾特定節(jié)點(diǎn)。
?turnPunish:轉(zhuǎn)彎懲罰系數(shù),數(shù)值越高表示越傾向于直線路徑。
具體代碼實(shí)現(xiàn):

路徑計(jì)算
在路徑計(jì)算過程中,系統(tǒng)需要實(shí)時(shí)監(jiān)測每個(gè)網(wǎng)格單元的占用狀態(tài)。若規(guī)劃的路徑遇到被障礙物占用的網(wǎng)格,系統(tǒng)會(huì)自動(dòng)尋找繞行路徑,以動(dòng)態(tài)避開障礙物。

在開發(fā)過程中,我們需要監(jiān)聽場景背景的點(diǎn)擊事件,獲取點(diǎn)擊位置的坐標(biāo)。然后,結(jié)合起點(diǎn)坐標(biāo),通過 astar.findPath(pFrom, pTo) 函數(shù)計(jì)算出具體路徑。計(jì)算得到的路徑是一組點(diǎn)位數(shù)據(jù),可以利用這些數(shù)據(jù)在場景中繪制出一條路徑管道。具體代碼實(shí)現(xiàn):

路徑動(dòng)畫
在場景中生成管道后,人物節(jié)點(diǎn)可沿此管道移動(dòng)。人物節(jié)點(diǎn)沿管道運(yùn)動(dòng)的代碼如下:


優(yōu)化視覺效果
基于上述,我們已實(shí)現(xiàn)了基本的自動(dòng)尋路功能。在實(shí)際項(xiàng)目中仍需提升一定的視覺效果,讓展示頁面足夠美觀,我們可以采取以下策略:
- 首先,將管道路徑隱藏(使用 polyline.s('transparent.mask', true));
- 隨后,利用 ht.Shape 節(jié)點(diǎn)并設(shè)置貼圖來呈現(xiàn)人物的運(yùn)動(dòng)軌跡。這樣不僅能實(shí)現(xiàn)功能,還能大幅增強(qiáng)視覺吸引力。

具體實(shí)現(xiàn)代碼如下:


作為開發(fā)者的我們,將繼續(xù)探索和優(yōu)化自動(dòng)尋路技術(shù),利用圖撲 HT 提供的插件工具,不斷提升算法效率和用戶體驗(yàn)。通過合理的參數(shù)設(shè)置、精確的網(wǎng)格劃分和智能的路徑規(guī)劃,為各種應(yīng)用場景提供更加出色的自動(dòng)尋路解決方案。
作為國產(chǎn)化數(shù)字孿生技術(shù),圖撲長期專注于 Web 可視化領(lǐng)域,自主研發(fā) HT for Web 2D 和 3D 圖形渲染引擎、低代碼數(shù)字孿生組態(tài)平臺(tái)及相關(guān)工具。科技自主可控,不受外圍科技所威脅。目前產(chǎn)品已廣泛應(yīng)用于工業(yè)組態(tài)、電力能源、孿生工廠、電信機(jī)房、智慧交通、智慧城市、園區(qū)樓宇、智慧水務(wù)、航天軍工等行業(yè)領(lǐng)域。
審核編輯 黃宇
-
機(jī)器人
+關(guān)注
關(guān)注
212文章
29136瀏覽量
210561 -
3D
+關(guān)注
關(guān)注
9文章
2935瀏覽量
109011 -
可視化
+關(guān)注
關(guān)注
1文章
1222瀏覽量
21473 -
數(shù)字孿生
+關(guān)注
關(guān)注
4文章
1406瀏覽量
12641
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
光學(xué)系統(tǒng)的3D可視化
VirtualLab Fusion應(yīng)用:光學(xué)系統(tǒng)的3D可視化
請(qǐng)問循跡避障當(dāng)中的四路循跡模塊與紅外尋光&避障模塊有什么區(qū)別?
利用PADS實(shí)現(xiàn)3D可視化

淺談工業(yè)3D可視化建模的特點(diǎn)
智慧園區(qū)3D可視化的特點(diǎn)
工廠3D可視化模型檢測技術(shù)管理助力工業(yè)綠色發(fā)展
3D可視化對(duì)深海采礦重要性的簡要說明
工廠3D可視化建模代做的好處
關(guān)于工廠車間3D可視化線上規(guī)劃管理平臺(tái)
變電站3D可視化管理平臺(tái)的優(yōu)勢
智慧園區(qū)3D可視化大屏的主要優(yōu)勢
智慧園區(qū)數(shù)據(jù)3D可視化是什么,它有什么功能及作用
3D虛擬數(shù)字工廠仿真可視化數(shù)字孿生系統(tǒng)
圖撲 3D 可視化國風(fēng)設(shè)計(jì) , 科技與文化碰撞炫酷”火花“

評(píng)論