999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種面向機器人自主智能導航低代碼設計與仿真的實現方法

2023-04-29 00:00:00任江阮志成淡雅靜
交通科技與管理 2023年13期

摘要 文章主要探討了在機器人應用行為樹自主導航技術時如何設置連接仿真環境,并采用可視化編程技術以便于調試。文章介紹了所使用的各項技術的背景和意義,從技術特點、應用場景、實現原理等不同角度探討了選擇技術的優勢和局限性,提出了改進和優化方案,討論了這些方案的可行性和局限性,并對這些技術進行總結性分析和討論,并提出了展望和建議。

關鍵詞 機器人;ROS;仿真;人工智能;教育

中圖分類號 TP242 文獻標識碼 A 文章編號 2096-8949(2023)13-0001-04

0 引言

伴隨著人工智能、機器人、無人駕駛等技術的蓬勃發展,相關智能產品更多地出現在我們的生產生活中。同步定位和智能導航作為這些應用的關鍵基礎,在開發和使用階段如何更便捷、有效地進行定義、調試或者滿足客戶自定義需求成為重要命題。仿真技術已經成為不可或缺的工具,通過仿真,研究人員可以快速地驗證和測試新的機器人控制算法和導航策略,降低機器人實驗的成本和風險。隨著計算機硬件的飛速發展,機器人仿真技術的應用范圍也變得越來越廣。該文根據工作實際,對一些特定場景下解決機器人導航智能設計的仿真方法進行了一些探索嘗試。

1 問題的提出

服務型機器人,特別是一些特種作業機器人,往往需要根據作業類型和地形特點,進行針對性的導航智能或策略設計,這有可能是開發中行為,也可能是使用時的自定義場景。滿足這類需求一般會面對以下幾個問題:

(1)直觀有效的定義方式;準確還原業務邏輯。

(2)低成本的上載和調試。

(3)最好可以滿足非技術人員使用。

(4)通用性和可移植性。

2 解決問題的思路

大多時候的地形場景和導航,可以簡單抽象為在一個封閉空間的自主行為,或者說是一個迷宮的尋路問題,然后在迷宮的路徑節點加以行為限制,如圖1所示。

第一,我們在自主導航邏輯上采用了行為樹技術來定義。

Behavior Tree,又稱行為樹,是一種構建在機器人、電子游戲虛擬實體等自主智能體中不同任務(假設某單個活動以指定的方式分解為可以重用的子活動,這些子活動稱為任務,也稱為動作或者控制模式)中間切換的方法,是一種創建具有“模塊化(Modular)和反應性(Reactive)復雜系統的有效的方式”[1]。BT是一個有向的根樹,根節點就是Root節點,作為行為樹的入口,節點類型為Root,每個行為樹有且只有一個Root類型節點;內部節點稱為控制流節點,葉節點稱為執行節點,所有的葉子節點的類型一定是Action,同時Action類型的節點一定不能作為非葉子節點來使用。非葉子節點也稱為組合節點(Composition),可以有一個或多個子節點,與之不同的是根節點(Root)只有一個子節點而沒有父節點,其余節點都有一個父節點和子節點,具體結構如圖2所示。

行為樹由多種不同類型的節點組成,這些節點都會返回三種狀態中的一種作為節點的運行結果。三種狀態分別是成功狀態、運行中狀態和失敗狀態。

行為樹概念的出現實際已經有很多年了,總的來說,就是使用不同的經典控制節點與行為節點進行組合,從而實現復雜的人工智能體。從圖2可以看出,相比于有限狀態機,行為樹更加地接近人類自然的理解,同時又能更容易地定義復雜的AI邏輯。

行為樹的核心思想是將機器人的決策和行動分解為若干個節點,每個節點負責一個特定的任務。行為樹中的節點分為行為節點和控制節點兩類。行為節點負責執行具體的行為任務,比如移動、轉向、尋找目標等;控制節點負責控制行為節點的執行順序和條件,比如序列節點、選擇節點、條件節點等[2]。

機器人自主導航中的行為樹通常包含三個層次:高層次行為、中層次行為和低層次行為。高層次行為是指機器人需要完成的任務,比如到達目標點、避開障礙物等;中層次行為是指將高層次行為分解為若干個子任務,比如轉向和移動等;低層次行為是指機器人執行具體的運動控制命令,比如沿著一定的軌跡前進。

行為樹的執行方式是自下而上的,即從低層次行為開始執行,然后向上執行中層次行為和高層次行為。在執行過程中,機器人會根據傳感器獲得的環境信息進行實時決策和調整。如果出現某些異常情況,比如障礙物突然出現,機器人會根據控制節點的邏輯相應地調整和反應。

第二,系統選用早期采用了比較流行的ROS,現在在往ROS2遷移中,最大化地實現系統的通用性??紤]成本因素,特別引入了ROS的仿真系統Gazebo。Gazebo是一款當下業界較為主流的開源物理仿真環境,具備以下特點[3]:

(1)動力學仿真:Gazebo支持多種高性能物理引擎,包括Bullet、SimBody、DART等。

(2)三維環境可視化:支持顯示光線、紋理、影子等三維環境。

(3)傳感器仿真:支持傳感器仿真,同時也支持傳感器噪聲的仿真。

(4)插件可擴展:使用者可自由定制開發插件,通過插件擴展Gazebo的功能,滿足用戶的個性化需求。

(5)支持多種機器人模型:Gazebo官方提供對PR2、Pioneer2 DX、TurtleBot等機器人模型的支持,同時用戶也可以使用自己創建的機器人模型。

(6)支持TCP/IP傳輸:Gazebo可以通過網絡通信實現遠程仿真。

(7)云仿真:Gazebo可以在Amazon、Softlayer等云計算環境下運行,也可以在用戶自行搭建的云服務器上運行。

(8)終端工具:用戶可以使用Gazebo官方提供的命令行工具,從而通過終端命令行的形式,實現對仿真的自主控制。

第三,從邏輯定義便捷化和客制化需求出發,我們采用了Scratch3.0作為低代碼平臺,最終實現了如下邏輯,如圖3所示。選擇Scratch,部分緣于我們之前面向機器人編程教育項目的工作積累,但實踐中發現它也是很方便的一個邏輯定義工具,其應用不只限于兒童編程,在國外也有大量的應用擴展案例。

3 探索實踐過程

3.1 搭建ROS環境

3.1.1 添加ROS軟件源

將以下命令輸入到ubuntu終端中并執行:

sudo sh -c '. /etc/lsb-release amp; echo \"deb http://mirrors.ustc.edu.cn/ros/ubuntu/$DISTRIB_CODENAME main\"gt; /etc/apt/sources.list.d/ros-latest.list'

3.1.2 添加密鑰

將以下命令輸入到ubuntu終端中并執行:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172

3.1.3 更新軟件源

將以下命令復制到ubuntu的終端執行:

sudo apt update

3.1.4 配置及更換最佳軟件源

選擇合適的軟件源會在很大程度上提高下載速度

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

3.1.5 執行安裝

將以下命令復制到ubuntu的終端執行:

sudo apt install ros-noetic-desktop-full

3.1.6 配置ROS環境到系統

要先初始化 rosdep(rosdep 讓你能夠輕松地安裝被想要編譯的源代碼,或被某些 ROS 核心組件需要的系統依賴),在終端依次輸入下面指令。

sudo rosdep init

rosdep update

然后初始化環境變量:

echo \"source /opt/ros/kinetic/setup.bash\" gt;gt; ~/.bashrc

source ~/.bashrc

3.2 安裝Gazebo

Gazebo是一款開源的三維物理仿真平臺,其具備完善的編程接口、便捷的圖形接口、強大的物理引擎與高質量的圖形渲染功能。盡管Gazebo中使用的機器人模型與Rviz中使用的模型相同,但仍需使用者在模型中添加機器人和環境的物理屬性,如質量、摩擦系數、彈性系數等,也可通過插件的形式將機器人的傳感器信息加入仿真環境中,從而實現以可視化的方式進行顯示。

3.2.1 Gazebo安裝

sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control

3.2.2 Gazebo界面

輸入以下指令打開gazebo:

roscore

rosrun gazebo_ros gazebo

3.2.3 驗證

為了驗證Gazebo是否與ROS系統成功連接,可以查看ROS的話題列表,如果連接成功,可以看到Gazebo發布/訂閱的話題列表。

3.3 搭建Scratch3.0二次開發環境

Scratch是麻省理工學院團隊開發的圖形化編程工具,使用者可以不認識英文單詞,也可以不會使用鍵盤。其構成程序的命令和參數是積木形狀的模塊,不用書寫代碼語句,只需按照一定的邏輯用鼠標拖動模塊把它們拼在一起就可以。其他編程語言,例如:Python,java,C等。

3.3.1 Scratch3.0下載項目

項目基于js ES6語法、react框架實現Scratch3.0 需安裝Node環境 驗證node npm命令能正常使用

擴展積木塊使用到Scratch-gui和Scratch-vm兩個項目

https://github.com/Affonso-Gui/scratch3-ros

https://github.com/Affonso-Gui/scratch3-ros-vm

3.3.2 安裝運行

執行以下命令運行gui項目

cd scratch-gui-develop

npm install

npm start

訪問地址 locolhost:8601 查看項目

3.3.3 擴展積木塊流程

(1)運行vm項目。cd scratch-vm-develop

npm link (根據需求,無依賴建議直接執行npm link)

npm run watch (運行 備gui使用)

(2)運行gui項目。新建命令行窗口

cd scratch-gui-develop

npm link scratch-vm (依賴vm虛擬機內容)

npm start (運行項目)

(3)擴展積木塊vm項目配置。在vm項目scratch-vm-develop/src/extensions路徑下新建擴展文件夾、文件夾下新建index.js

(4)在左下角添加擴展中選擇ROS Extension,并輸入localhost的IP。(127.0.0.1或192.168.x.x)。

(5)選擇ROS,在Scratch3.0中選擇ROS擴展積木,如圖4所示。

3.4 構建行為樹模型

??BehaviorTree.CPP?是一個開源的?C++行為樹庫。在游戲領域,行為樹已經比較流行了,主要用于維護游戲角色的各種動作和狀態,但在機器人領域還很少使用的。??Navigation2??中引入了行為樹來組織機器人的工作流程和動作執行。

行為樹是樹狀的結構,它的邏輯流程是由?XML?文件描述的。我們該次一個重點工作就是通過Scratch3.0可視化生成行為樹定義。行為樹本身并不具體實現機器人的執行內容,它只負責將執行內容進行編排。以?Navigation2為例,具體的執行內容實現是放在各個??server中的。行為樹上的節點與server進行通信,請求具體的執行內容,然后獲得反饋,根據反饋結果又可以請求另外的執行內容。這些不同執行內容間的跳轉就是由行為樹控制的。

4 結論

行為樹作為一種重要的機器人自主導航框架,在未來的研究中也有著廣闊的應用前景。隨著人工智能體技術的不斷發展,行為樹可以結合深度學習、強化學習等技術,進一步提高機器人自主決策和行動的能力。同時,行為樹還可以應用于多機器人協同和分布式控制等領域,為機器人應用帶來更多的可能性。在機器人仿真和行為樹應用方面,未來的研究還需要解決一些挑戰和問題。比如,在仿真中如何更加準確地模擬真實環境和傳感器數據,如何設計更加復雜和靈活的行為樹結構,提高機器人的自主決策和行動能力,如何在多機器人系統中進行協同和合作,實現更高效和穩定的控制等[4]。這些問題的解決需要研究人員從不同的角度進行探索和嘗試,不斷推動機器人技術的發展。

該方法目標是建立機器人自主智能導航規劃的便捷可視化方法,甚至能集成到客戶環境當中,基于以前基于游戲項目對行為樹應用經驗和教育項目的積累,選擇的一條相對容易實現的路徑。目前還在進一步從ROS1往ROS2遷移,由于通訊協議部分有較大的改變,只完成了初步原型論證。該研究旨在拋磚引玉,希望得到更多探索啟發。

參考文獻

[1]Cao, Y. amp;Y. Yue. , K. Li. , H. Zhang. . An Overview of Recent Progress in the Study of Behavior Trees for Robotics[J]. IEEE Transactions on Intelligent Transportation Systems, 2015(5): 2393-2403.

[2]Colas, F. amp; R. Siegwart. . Simulating and Evaluating the Behavior of Autonomous Robots Using Behavior Trees[J]. Robotics and Autonomous Systems, 2017, 88: 141-152.

[3]Milliez, G. amp;L. Fabresse. , T. Raimbault. . BTRobots: A Behavior Tree-based framework for Simulating Robot teams[J]. Journal of Intelligent amp; Robotic Systems, 2017(1): 1-18.

[4]A, Silva. amp;Santos. A. , Lau. N. . Behavior Trees for Decision Making in Autonomous Agents[J]: A survey. Journal of Autonomous Agents and Multi-Agent Systems, 2018(3): 357-408.

主站蜘蛛池模板: 成人免费一级片| 国产大全韩国亚洲一区二区三区| 国产一级无码不卡视频| 欧美日韩成人在线观看| 免费一级成人毛片| 欧美激情综合| 国产免费怡红院视频| 丝袜久久剧情精品国产| 中文字幕人妻av一区二区| 无码 在线 在线| 欧美在线伊人| 无码区日韩专区免费系列| 欧美在线黄| 国产美女一级毛片| 免费看一级毛片波多结衣| 国产一区自拍视频| 亚洲日韩国产精品无码专区| 国产大片喷水在线在线视频 | 国产99视频在线| 欧美一区中文字幕| 最新国产你懂的在线网址| 国产www网站| 98超碰在线观看| 国产无码精品在线| 91极品美女高潮叫床在线观看| 亚洲黄色片免费看| 综合网天天| 欧美亚洲国产精品第一页| 亚洲最黄视频| 99性视频| 国产一区二区在线视频观看| 首页亚洲国产丝袜长腿综合| 亚洲熟妇AV日韩熟妇在线| 国模沟沟一区二区三区| 色婷婷成人| 亚洲无码电影| 2021国产乱人伦在线播放| 性欧美在线| 秋霞午夜国产精品成人片| 欧美爱爱网| a网站在线观看| 亚洲精品你懂的| 熟妇人妻无乱码中文字幕真矢织江| a毛片免费在线观看| 亚洲人成人伊人成综合网无码| av一区二区三区高清久久| 97人人模人人爽人人喊小说| 一级毛片在线直接观看| 久久96热在精品国产高清| 亚洲天堂成人在线观看| 午夜三级在线| 伊人久久精品无码麻豆精品| 国产精品无码在线看| 香蕉99国内自产自拍视频| 国产成人综合亚洲欧美在| 黄色网页在线观看| 亚洲日韩国产精品综合在线观看| 亚洲一区国色天香| 国产激情无码一区二区三区免费| 91区国产福利在线观看午夜| 国精品91人妻无码一区二区三区| 丁香六月激情综合| 欧美在线网| 国产va在线观看免费| 国产三级视频网站| 免费A级毛片无码免费视频| 国产精品自在在线午夜区app| 国产精品太粉嫩高中在线观看 | 久久一本日韩精品中文字幕屁孩| 国产精品天干天干在线观看| 欧美亚洲第一页| 2021国产精品自产拍在线观看| 久久亚洲国产最新网站| 99视频免费观看| 久久久久国产一级毛片高清板| 成人免费一区二区三区| 999国产精品| 国产高清国内精品福利| 欧美五月婷婷| 日韩在线网址| 亚洲日本韩在线观看| 成色7777精品在线|