arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...
MATLAB/Simulink:萬物皆可仿真 MATLAB是由美國MathWorks公司出品的一款商業(yè)數(shù)學(xué)軟件。它是一個多功能的科學(xué)計算平臺,將算法開發(fā)、數(shù)據(jù)分析、矩陣計算等諸多強大功能集成在一個易于操作的視窗環(huán)境中。MATLAB下的Simulink更是被認為可以“仿真任何系統(tǒng)”。正是由于MATLAB/Simulink的強大功能,它在機器人領(lǐng)域得到了廣泛的運用。
機器人系統(tǒng)主要由機械結(jié)構(gòu)、傳感器、嵌入式硬件、自動控制、決策執(zhí)行算法這五個部分組成,MATLAB對這幾大部分的開發(fā)研究都提供了很好的支持。
對于機器人算法研究人員(尤其是高校的碩士博士),首選工具必然是MATLAB,因為它簡便快捷,封裝性好,更重要的是全世界幾乎所有的算法大牛、精英教授都會首先公布對應(yīng)的MATLAB源碼,然后在逐步改寫成其他語言進行實際應(yīng)用。相對于其他仿真環(huán)境,MATLAB在機器人的開發(fā)研究中有著極大的優(yōu)勢:硬件多樣化:預(yù)設(shè)Arduino和樹莓派的硬件包,支持微控制器、PLC、FPGA、GPU等多種設(shè)備。不僅僅可以仿真,更可以對硬件進行直接的控制。
Simulink直接仿真控制Arduino和樹莓派編程環(huán)境多樣化:支持C/C++,可以直接連接到ROS系統(tǒng)。
直接連接ROS系統(tǒng)可以自動生成代碼:MATLAB Coder和Simulink Coder可以根據(jù)你建立的模型自動生成控制代碼,大大減輕工作量,開發(fā)神器有木有? 工具箱:關(guān)于機器人設(shè)計開發(fā),你想要的,這里都有
MATLAB/Simulink最強大的功能在于其針對各種特殊需求定制的工具箱,接下來我將按照機器人的開發(fā)流程為大家逐一介紹。1、 機器人機械結(jié)構(gòu)設(shè)計
Simscape可以用來設(shè)計和分析三維剛體機械結(jié)構(gòu)(譬如汽車平臺、機械臂等等)。除此之外,它還可以使用電氣、液壓或氣動以及其他組件進行多域系統(tǒng)建模。
Simscape
你可以直接在模型庫(命令行輸入sm_lib)里選擇自己想要添加的塊,模型庫提供了常見的機械結(jié)構(gòu)如簡單的幾何體、轉(zhuǎn)動副、齒輪、帶輪…當(dāng)然對于復(fù)雜的零部件,你也可以先在SolidWorks里面建立好模型然后導(dǎo)入。
Simscape三維模型庫
如下圖所示,我們用仿真實現(xiàn)控制機械將物體從一個傳送到搬運到另一個上面。
機械臂仿真2、 機器人傳感器融合
機器人用傳感器感知外部物理環(huán)境,常見的傳感器有紅外、超聲、慣性姿態(tài)傳感IMU、激光雷達、攝像頭等等。
RoboticsSystem Toolbox可以讓你通過ROS直接連接到傳感器并且對傳回來的信息進行校準、降噪等操作。
通過ROS連接到傳感器
同時,針對機器視覺,MathWorks開發(fā)了單獨的工具箱Computer Vision Toolbox。它支持單目、立體、魚眼等相機的校準,提供了對象的檢測跟蹤,特征提取和匹配等算法,同時可以根據(jù)數(shù)據(jù)進行三維重建和3D點云處理。
配準和拼接一系列點云3、嵌入式
Simulink提供了一系列的嵌入式硬件支持,你可以在Add-Ons的最后一行添加所需要仿真或者控制的硬件。
添加硬件支持
點開后下載相應(yīng)的插件即可使用,這些插件不僅可以仿真,更可以直接控制單片機硬件。
Arduino插件下載4 、自動控制
你可以使用Simulink系統(tǒng)性地分析、設(shè)計復(fù)雜系統(tǒng)在時域和頻域中的行為。對此用過Simulink的同學(xué)應(yīng)該是再熟悉不過了。
Simulink設(shè)計控制系統(tǒng)
你可以利用根軌跡法來自動調(diào)節(jié)補償器參數(shù),并且同時指定多個調(diào)節(jié)目標(biāo),比如干擾參考跟蹤、穩(wěn)定裕度等等。5、 決策執(zhí)行算法
完成了上述步驟后,我們就可讓機器人完成最終的執(zhí)行和決策功能了。
使用雷達或者視覺傳感器的數(shù)據(jù),你可以通過Simultaneous Localization and Mapping (SLAM)創(chuàng)建環(huán)境地圖,從而實現(xiàn)自動路徑規(guī)劃到達指定位置。
你也可以使用Deep Learning Toolbox深度學(xué)習(xí)工具箱或者強化學(xué)習(xí)來實現(xiàn)端到端的機器人控制策略。
基于強化學(xué)習(xí)的機器人控制測量 MATLAB控制移動機器人的一個實例:TurtleBot1 、TurtleBot介紹
TurtleBot是一個低成本的、帶有開源軟件的個人機器人套件,它的目的是給入門級的機器人愛好者或從事移動機器人編程開發(fā)者提供一個基礎(chǔ)平臺。通過直接使用TurtleBot自帶的軟硬件,開發(fā)者可以專注于應(yīng)用程序,避免了從頭開始“造輪子”的麻煩。
TurtleBot可以說是搭載ROS系統(tǒng)中最為重要的機器人,每個版本的ROS測試都會以TurtleBot為主,包括ROS2也率先在TurtleBot上進行了大量測試。所以TurtleBot對ROS兼容性很好。你可以在ROS社區(qū)中獲得大量關(guān)于TurtleBot的相關(guān)資源,很多功能包都能直接復(fù)用到自己的移動機器人平臺上。
TurtleBot全線產(chǎn)品2 、使用MATLAB進行建圖和路徑規(guī)劃
我們的目標(biāo)就是將TurtleBot從房間的開始位置移動到指定位置。
Turtlebot開始和結(jié)束位置
使用MATLAB控制移動機器人的方法發(fā)如下圖所示,主要分為導(dǎo)入地圖、規(guī)劃路徑,循跡行走三個步驟。
MATLAB控制移動機器人步驟
在導(dǎo)入地圖時,你可以使用二值圖像直接建立柵格地圖。
導(dǎo)入柵格地圖
或者連接ROS,使用SLAM實時生成地圖。
使用SLAM實時生成地圖
通過路徑規(guī)劃,可以尋找到起始點到目標(biāo)位置距離最短的路徑。
路徑規(guī)劃
你可以在MATLAB里讓小車按照規(guī)劃好路徑行走。
循跡行走
當(dāng)你對你的仿真結(jié)果滿意后,你可以將相同的代碼直接部署到實際的TurtleBot機器人上看看實際運行效果。
TurtleBot實際運行效果 尾聲 本文著重講解了MATLAB/Simulink以及一系列工具箱在機器人開發(fā)中的使用。梳理了整個機器人開發(fā)流程和MathWorks公司相對應(yīng)的產(chǎn)品線。并通過TurtleBot的一個實例來介紹MATLAB如何仿真并實際控制機器人硬件的。受于篇幅限制,本文只列舉MATLAB/Simulink部分功能,你可以在官網(wǎng)查看更多相關(guān)信息。
隨著“中國制造2025”和“工業(yè)4.0”的提出,中國機器人領(lǐng)域在最近幾年也得到了飛速的發(fā)展。而作為機器人開發(fā)研究的重要工具,MATLAB/Simulink也將賦予機器人更多可能。了解更多機器人解決方案:(復(fù)制到瀏覽器打開)https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23453你可以申請30天免費試用的MathWorks工具包:(復(fù)制到瀏覽器打開)https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23453
總結(jié)
以上是生活随笔為你收集整理的arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单一课和综合课的划分依据_武夷岩茶产地如
- 下一篇: 学美甲一般多少钱啊?