0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用MATLAB這把“利器”開發(fā)機(jī)器人

454398 ? 來源:電子發(fā)燒友網(wǎng) ? 作者:MathWorks楊興 ? 2016-01-21 10:29 ? 次閱讀

機(jī)器人絕對(duì)是當(dāng)前的一個(gè)熱門話題之一。從工業(yè)機(jī)器人到掃地機(jī)器人,從實(shí)驗(yàn)室機(jī)器人到各種創(chuàng)新玩具機(jī)器人,機(jī)器人逐漸走進(jìn)了大眾的視野,進(jìn)入了普通人的生活。不管是技術(shù)發(fā)燒友還是普通消費(fèi)者,都越來越多的把目光投向了機(jī)器人。隨著網(wǎng)絡(luò)眾籌的興起,技術(shù)創(chuàng)業(yè)的經(jīng)濟(jì)門檻降低,一個(gè)又一個(gè)明星眾籌項(xiàng)目也激發(fā)了越來越多的技術(shù)愛好者從關(guān)注到實(shí)踐,紛紛投身機(jī)器人開發(fā)的懷抱。每個(gè)人都期待著自己開發(fā)的創(chuàng)新原型,能稱為下一個(gè)被投資人或公眾所矚目的焦點(diǎn)。

古人云,“工欲善其事,必先利其器。” 現(xiàn)在讓我們來看看如何使用MATLAB 這個(gè)“利器” 來幫助我們快速實(shí)現(xiàn)我們的創(chuàng)意。

MATLAB 平臺(tái)

MATLAB 是全球知名的數(shù)據(jù)分析和處理軟件,這個(gè)紅色的二次曲面 LOGO 幾乎出現(xiàn)在每一所大學(xué)的教科書里。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖1 MATLAB LOGO

但事實(shí)上,它不再僅僅是那個(gè)我們?cè)趯W(xué)生時(shí)代所認(rèn)識(shí)的僅僅用于數(shù)據(jù)處理與畫圖的“超級(jí)計(jì)算器”,它在行業(yè)內(nèi)的應(yīng)用遠(yuǎn)比教育領(lǐng)域更為廣泛和深入。從下圖的工具箱結(jié)構(gòu)可以窺知一二。可以看到右側(cè)的深藍(lán)色模塊,它也為各個(gè)專門的應(yīng)用領(lǐng)域開發(fā)了一系列工具箱。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖2 MATLAB 工具箱

MATLAB/Simulink 算法開發(fā)平臺(tái)也幾乎是汽車、軍工等行業(yè)進(jìn)行控制算法設(shè)計(jì)的必備工具。基于 Simulink模型的建模、仿真、測試驗(yàn)證以及代碼生成,這種基于模型的設(shè)計(jì)理念 (MBD)也正在替代傳統(tǒng)的手寫 C 代碼的開發(fā)流程,成為算法開發(fā)的主流與未來的趨勢。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖3 基于模型的設(shè)計(jì)

那么,這對(duì)于開發(fā)機(jī)器人意味著什么呢?這意味著,你不僅可以擺脫繁復(fù)的 C 代碼編程,還可以借助 MATLAB 強(qiáng)大的工具箱系列,通過仿真來幫助你測試算法、優(yōu)化參數(shù)等等。如果用戶購買了代碼生成工具箱,還可以提取所生成的嵌入式 C/C++ 算法函數(shù),集成到自己外部的工程項(xiàng)目中去,如圖4左側(cè)箭頭,這也是商業(yè)產(chǎn)品開發(fā)的主流選擇。

電子發(fā)燒友《機(jī)器人技術(shù)特刊》,更多優(yōu)質(zhì)內(nèi)容,馬上下載閱覽


MATLAB/Simulink Support Package

我這里主要想介紹一下免費(fèi)硬件支持包: MATLAB/Simulink Support Package。它相當(dāng)于是 MATLAB 與各種低成本硬件之間的橋梁。

下載安裝官方免費(fèi)的 MATLAB/Simulink Support package,簡單設(shè)置好對(duì)應(yīng)的板卡后,Simulink 框圖或者 MATLAB腳本便可以一鍵編譯下載到硬件運(yùn)行了,如下圖右側(cè)箭頭。這對(duì)于快速實(shí)現(xiàn)早期創(chuàng)意非常有用,尤其是對(duì)小的開發(fā)團(tuán)隊(duì)來說,可以將注意力更多的放到算法設(shè)計(jì)與開發(fā)上,而不是基本的 C 代碼實(shí)現(xiàn)。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖4 從模型到實(shí)現(xiàn)

MATLAB/Simulink Support Package為一系列所支持的板卡提供了基本的驅(qū)動(dòng)模塊,只需要在軟件界面上進(jìn)行簡單的配置,就可以將實(shí)現(xiàn)框圖式的算法模型一鍵下載到硬件板卡上去,有助于我們快速實(shí)現(xiàn)早期創(chuàng)意,縮短原型開發(fā)周期。

通過它,我們可以很容易實(shí)現(xiàn)與這些硬件通訊,讀取數(shù)據(jù)到 MATLAB 環(huán)境進(jìn)行分析和處理,輕松下載 Simulink這種框圖式的算法來實(shí)現(xiàn)各種有創(chuàng)意的應(yīng)用。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖5 MATLABSimulink Support Package

案例介紹

下面,我們使用 Arduino MEGA 2560來演示如何實(shí)現(xiàn)將模型一鍵下載到硬件。這是一個(gè)非常簡單的例子:使用光敏電阻來控制LED燈的明暗。

硬件連線

簡單的說就是利用光敏電阻與固定電阻串聯(lián)形成分壓電路,并將分壓電壓讀入Arduino,然后用這個(gè)值來輸出控制發(fā)光二極管的明暗。將分壓電壓值讀入Arduino的A1 引腳;將發(fā)光二極管的正極連接PWM的第二個(gè)引腳,如下圖所示。其它的基本連線不再繁述。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖6 硬件連線圖

軟件準(zhǔn)備

通過 MATLAB 主界面上的 Add-Ons 的 Get Hardware Support Packages向?qū)?,選擇所需要安裝的支持包。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖7 安裝包下載入口

選擇 Arduino,根據(jù)向?qū)崾鞠螺d或安裝支持包。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖8 下載安裝向?qū)?/p>

安裝完成后,打開Simulink Library Browser 中的Simulink Support Package for Arduino Hardware庫,如下圖。我們可以看到為 Arduino提供的一系列驅(qū)動(dòng)模塊,從模塊的示意圖以及端口的符號(hào),我們可以大概推測它的作用:從各種類型的板卡接口讀取或輸出信號(hào)

另外從左側(cè)樹狀圖可以看到,還提供了 Ethernet Shield 與 Wifi Shield 的驅(qū)動(dòng)模塊。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖9 Arduino 支持庫

建模

Simulink 建模簡單可以描述為模塊的拖拽與連線的過程。

我們需要從A1端口(分壓線接入)讀取分壓信號(hào),所以從庫里拖入一個(gè) Analog Input模塊,并雙擊設(shè)置端口號(hào)為1,設(shè)置采樣時(shí)間為 0.01 S。另外還需要輸出到 PWM的第二個(gè)引腳( LED連接處),所以拖入一個(gè) PWM 模塊,并雙擊設(shè)置端口號(hào)為2。

為了簡化整個(gè)下載過程,我們這里對(duì)信號(hào)不做任何算法處理,直接將兩個(gè)模塊連接起來,如下圖。這也就意味著 LED 的亮度與光敏電阻狀態(tài)直接相關(guān)。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖10 模型截圖

編譯下載

Simulink Support Package for Arduino Hardware支持幾乎所有的 Arduino 型號(hào)。在點(diǎn)擊紅色方框的按鈕編譯下載之前,需要通過配置頁面來指定當(dāng)前所使用的 Arduino 板卡類型,如下圖。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖11 設(shè)置Arduino板卡

確保 Arduino 與電腦相連,點(diǎn)擊上圖模型截圖中紅色方框的編譯按鈕,框圖將會(huì)自動(dòng)生成C/C++ 代碼,并后臺(tái)自動(dòng)調(diào)用 Arduino IDE 進(jìn)行編譯下載到 Arduino板卡上去。

此時(shí),你用手捂住光敏電阻,便會(huì)看到 LED 燈亮度的變化。

在線調(diào)試

對(duì)于 Arduino MEGA 2560等型號(hào),還支持在線調(diào)試。在配置頁面,除了選擇型號(hào)外,如下圖設(shè)置為 ‘External mode’。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖12 設(shè)置在線調(diào)試運(yùn)行

點(diǎn)擊圖中的綠色仿真按鈕。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖13 在線調(diào)試

此時(shí),框圖同樣被生成代碼并編譯下載到 Arduino 上運(yùn)行,同時(shí) Simulink 模型運(yùn)行,雙擊打開示波器 Scope 模塊實(shí)時(shí)看到當(dāng)前所讀取的傳感器信號(hào)。這個(gè)數(shù)據(jù)也可以保存下載,做后期傳感器標(biāo)定與分析。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖14 信號(hào)波形

傳感器標(biāo)定,也就是經(jīng)常都需要將原始值進(jìn)行線性或非線性縮放以及平移,得到有物理含義的數(shù)值,比如自定義的光照強(qiáng)度等級(jí)。如下圖,中間接入一個(gè)簡單的查表模塊進(jìn)行線性縮放。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

后續(xù)

支持一鍵下載的硬件除了舉例的 Arduino之還有很多,算法的設(shè)計(jì)也可以非常復(fù)雜。實(shí)際上,越是復(fù)雜的算法,才越能體現(xiàn)框圖式算法設(shè)計(jì)方法的優(yōu)勢。

下載安裝對(duì)應(yīng)的硬件支持包之后,幫助文檔里都會(huì)提供由淺入深的應(yīng)用案例。如下圖是一個(gè)LEGO解魔方算法的一個(gè)案例。

如何使用MATLAB 這把“利器”開發(fā)機(jī)器人

圖15 LEGO解魔方算法模型

打開這個(gè)模型,點(diǎn)擊編譯,就可以把這個(gè)算法完整下載到 LEGO 機(jī)器人上去了,有興趣的可以自己親自動(dòng)手試一試。

圖16 LEGO解魔方

結(jié)語

使用MATLAB/Simulink Support Package 相當(dāng)于鋪平了從Simulink 到硬件實(shí)現(xiàn)的路,使得不擅長寫 C 代碼的人可以徹底擺脫代碼實(shí)現(xiàn)的困擾,借助 Simulink 平臺(tái)也能輕易的開發(fā)出更多有趣的應(yīng)用來。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2957

    瀏覽量

    229892
  • 人工智能
    +關(guān)注

    關(guān)注

    1789

    文章

    46397

    瀏覽量

    236612
  • 機(jī)器人技術(shù)

    關(guān)注

    18

    文章

    186

    瀏覽量

    31579
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    matlab機(jī)器人

    請(qǐng)問一下機(jī)器人的計(jì)算工作是否用MATLAB在計(jì)算呢?能簡單說明一下嗎?
    發(fā)表于 05-30 16:58

    什么是工業(yè)機(jī)器人

    3個(gè)階段:70年代的萌芽期,80年代的開發(fā)期和90年代的適用化期。70年代是世界科技發(fā)展的一個(gè)里程碑:人類登上了月球,實(shí)現(xiàn)了金星、火星的軟著陸。我國也發(fā)射了人造衛(wèi)星。世界上工業(yè)機(jī)器人應(yīng)用掀起一個(gè)高潮
    發(fā)表于 01-19 10:58

    nao機(jī)器人與其他機(jī)器人的區(qū)別

    相比于之前的機(jī)器人,NAO機(jī)器人穿上人類的服裝,那就像是一個(gè)真人出現(xiàn)在我們面前似得,NAO機(jī)器人的四肢設(shè)計(jì)的非常的靈活,具有多個(gè)自由度的身體,使得NAO機(jī)器人能夠靈敏的行走以及參加一
    發(fā)表于 02-13 15:43

    第2章 機(jī)器人控制MATLAB 仿真程序

    第2章 機(jī)器人控制MATLAB 仿真程序
    發(fā)表于 09-24 11:34

    第3章 機(jī)器人控制MATLAB 仿真程序

    第3章 機(jī)器人控制MATLAB 仿真程序
    發(fā)表于 09-24 11:36

    第9章 機(jī)器人控制MATLAB 仿真程序

    第9章 機(jī)器人控制MATLAB 仿真程序.zip
    發(fā)表于 09-24 11:45

    機(jī)器人基礎(chǔ)書籍

    列舉部分學(xué)習(xí)過程中接觸的部分書籍,部分有中文版,部分有更新版本。1.機(jī)器人基礎(chǔ)書籍適合入門的書籍:機(jī)器人學(xué)機(jī)器人建模規(guī)劃與控制機(jī)器人學(xué)、機(jī)器
    發(fā)表于 05-22 06:53

    請(qǐng)問未來機(jī)器人可以進(jìn)行FPGA開發(fā)嗎?

    隨著人工智能技術(shù)的發(fā)展,機(jī)器人已經(jīng)開始接管人類的部分工作,例如快遞、工廠作業(yè)、餐廳服務(wù)員甚至媒體編輯---紐約時(shí)報(bào)就聘請(qǐng)了一位機(jī)器人做總編。未來,機(jī)器人可以介入半導(dǎo)體設(shè)計(jì)開發(fā)嗎?例如,
    發(fā)表于 10-10 06:33

    機(jī)器人的定義是什么?工業(yè)機(jī)器人的應(yīng)用有哪些?

    機(jī)器人的定義是什么?機(jī)器人優(yōu)點(diǎn)和缺點(diǎn)是什么?機(jī)器人是由哪些部分組成的?工業(yè)機(jī)器人的應(yīng)用有哪些?
    發(fā)表于 07-05 06:48

    淺談差速機(jī)器人的純軌跡跟蹤仿真

    差速機(jī)器人的純軌跡跟蹤仿真(Matlab)剛?cè)腴T,有的地方不對(duì),煩請(qǐng)大家指正。目錄差速機(jī)器人的純軌跡跟蹤仿真(Matlab)1 差速機(jī)器人運(yùn)
    發(fā)表于 09-01 08:11

    基于Matlab的開源六自由度協(xié)作機(jī)器人實(shí)驗(yàn)平臺(tái)

    一前言針對(duì)機(jī)器人相關(guān)專業(yè)的教學(xué)需求,商飛信息科技開發(fā)出此開源六自由度協(xié)作機(jī)器人實(shí)驗(yàn)平臺(tái)。該平臺(tái)有以下幾大特色機(jī)器人本體采用自主設(shè)計(jì)的3Kg負(fù)載六自由度協(xié)作
    發(fā)表于 09-07 07:10

    機(jī)器人簡介

    業(yè)、建筑業(yè),或是危險(xiǎn)的工作[1]。同時(shí),機(jī)器人的研究和開發(fā)制造一直將下面三條原則作為機(jī)器人開發(fā)的準(zhǔn)則。即:...
    發(fā)表于 09-07 06:05

    基于Matlab和VR技術(shù)的移動(dòng)機(jī)器人建模及仿真

    利用 Matlab 建立移動(dòng)機(jī)器人的動(dòng)力學(xué)模型 ,在虛擬現(xiàn)實(shí) (VR )環(huán)境下 ,實(shí)時(shí)仿真移動(dòng)機(jī)器人路徑跟蹤的運(yùn)動(dòng)特性 ,為基于 Internet 的機(jī)器人遙操作試驗(yàn)搭建了仿真平臺(tái) 。
    發(fā)表于 09-20 06:24

    基于MATLAB機(jī)器人運(yùn)動(dòng)仿真研究

    基于MATLAB機(jī)器人運(yùn)動(dòng)仿真研究:按照一定的要求對(duì)一種柱面坐標(biāo)機(jī)器人進(jìn)行了參數(shù)設(shè)計(jì),討論了該機(jī)器人的運(yùn)動(dòng)學(xué)問題,然后在MATLAB 環(huán)境
    發(fā)表于 12-29 23:53 ?128次下載

    基于Matlab的機(jī)構(gòu)與機(jī)器人分析資料下載

    基于Matlab的機(jī)構(gòu)與機(jī)器人分析資料下載
    發(fā)表于 05-25 10:35 ?12次下載