為什么要強(qiáng)調(diào)MATLAB的重要性?
不管是在學(xué)術(shù)界還是工業(yè)界,MATLAB無論從應(yīng)用廣度,及受眾滿意度得分都非常高,究其原因,無外乎以下幾點(diǎn):
在學(xué)術(shù)界,并非每個(gè)人都是計(jì)算類專業(yè)出身,當(dāng)計(jì)算機(jī)編程語言學(xué)習(xí)的不多,但又需要處理科學(xué)研究中的大量實(shí)驗(yàn)數(shù)據(jù)時(shí),使用其他編程語言就相對(duì)較為困難。
這時(shí),不同于其他需要編寫底層邏輯語言,且編程邏輯與人們進(jìn)行計(jì)算的思路和表達(dá)方式都大體相同的MATLAB就顯得額外親切。
這對(duì)于非計(jì)算機(jī)類的朋友而言,是十分友善的存在。
業(yè)內(nèi)流傳已久的捷徑黑科技MATLAB已經(jīng)成為本科、碩博士,必須使用的研究工具之一。
而在工業(yè)界,如果你是工程師,在工程應(yīng)用這一塊,就更廣了,機(jī)器人、通信、嵌入式、圖像處理等功能應(yīng)有盡有。
有朋友用MATLAB寫了一個(gè)爬蟲的程序,獲取了智聯(lián)招聘平臺(tái)上關(guān)于MATLAB的四千多條招聘信息,獲取關(guān)鍵詞如下圖:
MATLAB簡(jiǎn)單易學(xué),降低用戶的數(shù)學(xué)基礎(chǔ)和計(jì)算機(jī)編程語言的要求,具有友好的工作平臺(tái)和編程環(huán)境,涵蓋了近600個(gè)工程中需要用到數(shù)學(xué)處理函數(shù),強(qiáng)大的計(jì)算機(jī)數(shù)據(jù)處理能力。用來做大數(shù)據(jù)處理,建模仿真等。
除開MATLAB編程,還有一個(gè)還有“變態(tài)”般存在的Simulink工具箱。
拖出我們需要的功能模塊,按照個(gè)人需求連接各個(gè)模塊,設(shè)置好參數(shù),無需編程,即可快速搭建各個(gè)系統(tǒng)模型。
當(dāng)然,這些都是一些程序軟件上的,還有一個(gè)更有趣的,MATLAB的硬件支持包MATLAB/Simulink Support Package!
如上圖所示,這就意味著,我們可以在MATLAB中配置好Simulink仿真模型,然后結(jié)合MATLAB中的STM32芯片的器件支持包,通過STM32CubeMX的聯(lián)用,實(shí)現(xiàn)了芯片配置,最后轉(zhuǎn)換為完整的C代碼文件。
近年AI(人工智能)技術(shù)、機(jī)器人技術(shù)飛速發(fā)展,MATLAB怎么能落伍。為了給用戶提供多維度的技術(shù)提升,今年MATLAB R2020a上線升級(jí)多多功能。
增加了人工智能,深度學(xué)習(xí),機(jī)器人控制和規(guī)劃等的工具箱,其中包括機(jī)器人運(yùn)動(dòng)控制,路徑規(guī)劃,感知,SLAM等等方面的工具。就我個(gè)人而言,本職是做機(jī)器人控制這一塊的。
在機(jī)器人應(yīng)用這塊,MATLAB對(duì)于初學(xué)者更是十分友好,提供了足夠多的工具箱。不管是運(yùn)動(dòng)控制還是路徑規(guī)劃。
亦或是視覺SLAM等等。而在機(jī)器人控制中,路徑規(guī)劃是機(jī)器人完成各種任務(wù)的基礎(chǔ),一直也是業(yè)界研究的熱點(diǎn),之前版本的MATLAB也有相關(guān)的涉及。
非常喜聞樂見的是,最近發(fā)布的MATLAB R2020a在這塊也有新的突破:添加了多個(gè)路徑規(guī)劃函數(shù),可供用戶直接進(jìn)行調(diào)用,修改系統(tǒng)的一些控制參數(shù)即可完成路徑規(guī)劃系統(tǒng)的搭建,快速完成實(shí)驗(yàn)仿真或工業(yè)設(shè)計(jì)。
關(guān)于機(jī)器人運(yùn)動(dòng)規(guī)劃
在路徑規(guī)劃的研究上,學(xué)術(shù)界研究人員提出了許多規(guī)劃方法:如人工勢(shì)場(chǎng)法、單元分解法、隨機(jī)路標(biāo)圖(PRM)法、快速搜索樹(RRT)法等。
機(jī)器人運(yùn)動(dòng)規(guī)劃的基本任務(wù)可以描述為:從開始位置到目標(biāo)位置的運(yùn)動(dòng)。
這一任務(wù)通常涉及到兩項(xiàng)基本問題:
1、如何躲避構(gòu)型空間中出現(xiàn)的障礙物(幾何路徑規(guī)劃)
2、如何滿足機(jī)器人本身在機(jī)械、傳感方面的速度、加速度等限制(不確定性、反饋、微分約束等)
其中,基于抽樣的運(yùn)動(dòng)規(guī)劃算法是用于解決第1個(gè)問題的重要方法,其核心思想為:先對(duì)機(jī)器人的單個(gè)構(gòu)型進(jìn)行碰撞檢測(cè),建立無碰撞構(gòu)型的數(shù)據(jù)庫,再對(duì)不同的構(gòu)型進(jìn)行采樣以生成無碰撞路徑。
該算法的優(yōu)點(diǎn)在于具有通用性,只需要針對(duì)不同的機(jī)器人運(yùn)動(dòng)規(guī)劃問題進(jìn)行合理的參數(shù)調(diào)整。
該算法的缺點(diǎn)在于完備性較弱,即當(dāng)參數(shù)設(shè)置不合理時(shí),即使存在可行的路徑,也不一定能夠找到。
典型的抽樣規(guī)劃方法有綜合查詢方法和單一查詢方法兩類。
前者首先構(gòu)建路線圖,先通過采樣和碰撞檢測(cè)建立完整的無向圖,以得到構(gòu)型空間的完整連接屬性。再通過圖搜索即可得到可行的路徑。
后者則從特定的初始構(gòu)型出發(fā)局部建立路線圖,在構(gòu)型空間中延伸樹型數(shù)據(jù)結(jié)構(gòu),最終使它們相連。
傳統(tǒng)的人工勢(shì)場(chǎng)、單元分解法需要對(duì)空間中的障礙物進(jìn)行精確建模,當(dāng)環(huán)境中的障礙物較為復(fù)雜時(shí),將導(dǎo)致規(guī)劃算法計(jì)算量較大。
基于隨機(jī)采樣技術(shù)的PRM法可以有效解決高維空間和復(fù)雜約束中的路徑規(guī)劃問題。
本文以MATLAB R2020a,結(jié)合PRM算法進(jìn)行一個(gè)路徑規(guī)劃的仿真。
*值得一提的是,更新后的MATLAB,可以直接調(diào)用PRM函數(shù),而不需要用戶再去進(jìn)行PRM算法程序的編寫,可以讓用戶快速完成簡(jiǎn)單路徑規(guī)劃的仿真,
只需要13行代碼就可以實(shí)現(xiàn),如下圖所示:
總之,MATLAB R2020a真的香,各位看官著實(shí)得親自嘗嘗鮮吶!
了解更多機(jī)器人解決方案:(復(fù)制到瀏覽器打開)
https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23450
你可以申請(qǐng)30天免費(fèi)試用工具包:(復(fù)制到瀏覽器打開)
https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23450
-------------------------------
原創(chuàng)不易,莫要白票,如果覺得有點(diǎn)用的話,請(qǐng)毫不留情地轉(zhuǎn)發(fā)朋友圈吧,因?yàn)檫@將是我寫更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!