這里我們使用Anacondda的Python編程環(huán)境,使用Visual Studio Code軟件進(jìn)行開發(fā)。
Anaconda是專業(yè)為了方便于使用Python進(jìn)行數(shù)據(jù)挖掘研究而制作的一個應(yīng)用包,涵蓋了在各種數(shù)據(jù)挖掘研究涉及領(lǐng)域中使用的Python庫,而且自帶了專業(yè)用來處理軟件環(huán)境中依賴問題的conda包系統(tǒng)。
主要優(yōu)點是實現(xiàn)了外包管理與環(huán)境管理的各種功能,而且可以非常容易地處控制多版本Python共存、轉(zhuǎn)換以及各種第三方包使用上的問題。
Anaconda使用工具/命令conda來實現(xiàn)對package和environment的控制,其中就曾經(jīng)包括了python和相應(yīng)的配套開發(fā)工具。
Anaconda自帶人工智能環(huán)境,這里我們需要用到的numpy矩陣計算環(huán)境、pandas分析環(huán)境、matplotlib數(shù)據(jù)可視化環(huán)境等等會自動安裝,無需手動配置。
VSCode,全名Visual Studio Code,是由微軟公司研發(fā)出的一種輕量級程序編寫器,免費、開放且能力強勁。
它支持了基本上所有主要的程序語言的語法高光度、智能編碼補滿、自設(shè)定熱鍵、括號匹配、編碼片段、編碼對比Diff、GIT等功能,同時支援插件擴展功能,并根據(jù)個人網(wǎng)站發(fā)展或者云端使用發(fā)展做了調(diào)整。
該軟件跨平臺,支持Win、Mac和Linux,啟動界面如所示。
VS Code編程環(huán)境具備項目視圖和調(diào)試工具,可以讓我們更高效的進(jìn)行代碼分析與驗證。VS Code會自動檢測我們系統(tǒng)當(dāng)前環(huán)境進(jìn)行加載選擇。
這里為了方便后續(xù)開發(fā),我將數(shù)據(jù)可視化部分寫成類庫的模式,在后續(xù)算法驗證當(dāng)中,僅需輸入數(shù)據(jù)調(diào)用即可,類庫程序如圖所示。
圖表可視化部分是Plotting類,主要作用就是添加坐標(biāo)點進(jìn)行顯示。這里以queue隊列的數(shù)據(jù)形式進(jìn)行存儲,如圖所示。
路線規(guī)劃算法的基本概念為:移動機器人在有障礙物的周圍環(huán)境中根據(jù)相應(yīng)的評價準(zhǔn)則,尋求一個由初始狀態(tài)至達(dá)到目標(biāo)狀態(tài)之間的無碰路線。路徑規(guī)劃算法的還有一個劃分的方式,即可分為全局路徑規(guī)劃和局部路徑規(guī)劃。
全局路徑規(guī)劃是基于環(huán)境全局的信息,這包含了機器人在當(dāng)前狀況下檢測不到的所有信號。全局規(guī)劃把環(huán)境信息存放到一幅圖中,并利用這張圖尋找可能的路線。
由于全局算法通常要求花費大量的運算時間,因此不適合于高速多變的動態(tài)環(huán)境,并且由于全局路徑規(guī)劃必須要預(yù)先掌握全局的環(huán)境信息,也不適合于未知環(huán)境下的規(guī)劃任務(wù)。
局部路徑計算系統(tǒng)只考慮了機器人的瞬時環(huán)境信號,使得計算數(shù)量減少,效率明顯提高。但局部路徑規(guī)劃算法,有時并不一定可以讓機器人直接抵達(dá)目的地點,從而導(dǎo)致了計算全局不收斂。
對移動機器人來說,兼顧非完全微分約束的路徑規(guī)劃問題是該領(lǐng)域的難點所在。
非完整微分約束影響了機器人系統(tǒng)的運動速度并且約束也無法去積分,因此無法把這些束縛轉(zhuǎn)換為簡化的幾何束縛。
根據(jù)隨機采集的路徑規(guī)劃方法,尤其是快速隨機搜索樹方法,可以將各種約束集成在算法本身之中,因此可以很有效的解決有非完整微分約束的路徑規(guī)劃問題。
在深入研究自己自主規(guī)劃課題之前,應(yīng)先形成相對比較完善的自主規(guī)劃系統(tǒng),然后再以這個系統(tǒng)為指導(dǎo),對自己自主規(guī)劃的各種具體課題加以研究。
本節(jié)擬針對獨立人工智能機器人的思考方法、行動方式、任務(wù)行動等特征,形成與之相適應(yīng)的自主性體育運動規(guī)劃系統(tǒng)。
并根據(jù)人工智能機器人的數(shù)量種類和規(guī)模,把自主性運動計劃細(xì)分成單一人工智能機器人的運動計劃和多人工智能機器人協(xié)同的運動計劃二種規(guī)劃系統(tǒng)。
文章重點涉及了以下幾個常見的運動規(guī)劃算法:圖搜索法、RRT算法、人工勢場法、BUG算法等,并對部分方法的自身問題也進(jìn)行了一些改進(jìn)研究。
此次設(shè)計方案以算法的驗證為主,通過查閱相關(guān)文獻(xiàn),根據(jù)相關(guān)文獻(xiàn)資料確定此次設(shè)計實驗的算法,推導(dǎo)算法的實現(xiàn)過程,最終通過代碼進(jìn)行實現(xiàn)數(shù)據(jù)可視化分析來完成本文的工作,如圖所示。
此次設(shè)計先對圖搜索算法、RRT及RTT改進(jìn)算法、BUG算法、人工勢場法進(jìn)行理論的分析和闡述,通過Python編程+Matplotlib數(shù)據(jù)可視化的方式來對路徑搜索算法進(jìn)行可視化的展示和分析。
這個研究工作主要是指通過對ROS機器人系統(tǒng)所進(jìn)行的仿真實驗,而ROS技術(shù)(Robot Operating
System,下文簡寫“ROS”)則是指一個廣泛應(yīng)用在人工智能方面開放的多元操作系統(tǒng)。
它提供了控制系統(tǒng)所需要的全部特性,如硬件抽象性,系統(tǒng)底層的控制,對常用功能的應(yīng)用,進(jìn)程的數(shù)據(jù)傳遞,和包處理等。
它還具有用來檢索、翻譯、匯編、和跨計算機執(zhí)行代碼所必需的工具和庫函數(shù)的功能。
在ROS系統(tǒng)下可以通過Gazebo物理仿真+Rviz三維數(shù)據(jù)可視化的方式對算法進(jìn)行分析。在ROS中實現(xiàn)自己的路徑規(guī)劃算法需要以plugin的方式,并且繼承nav_core::BaseGlobalPlanner接口。
仿真測試部分在Gazebo環(huán)境下搭建機器人模型,通過仿真系統(tǒng)將激光雷達(dá)數(shù)據(jù)、里程計數(shù)據(jù)、姿態(tài)數(shù)據(jù)進(jìn)行模擬,傳感器數(shù)據(jù)傳遞到navigation導(dǎo)航框架當(dāng)中實現(xiàn)路徑規(guī)劃及自主導(dǎo)航功能。
-
編程
+關(guān)注
關(guān)注
88文章
3627瀏覽量
93809 -
人工智能
+關(guān)注
關(guān)注
1792文章
47409瀏覽量
238923 -
python
+關(guān)注
關(guān)注
56文章
4798瀏覽量
84810
發(fā)布評論請先 登錄
相關(guān)推薦
評論