
MATLAB/Simulink:萬物皆可仿真 MATLAB是由美國MathWorks公司出品的一款商業數學軟件。它是一個多功能的科學計算平臺,將算法開發、數據分析、矩陣計算等諸多強大功能集成在一個易于操作的視窗環境中。MATLAB下的Simulink更是被認為可以“仿真任何系統”。正是由于MATLAB/Simulink的強大功能,它在機器人領域得到了廣泛的運用。
機器人系統主要由機械結構、傳感器、嵌入式硬件、自動控制、決策執行算法這五個部分組成,MATLAB對這幾大部分的開發研究都提供了很好的支持。
對于機器人算法研究人員(尤其是高校的碩士博士),首選工具必然是MATLAB,因為它簡便快捷,封裝性好,更重要的是全世界幾乎所有的算法大牛、精英教授都會首先公布對應的MATLAB源碼,然后在逐步改寫成其他語言進行實際應用。相對于其他仿真環境,MATLAB在機器人的開發研究中有著極大的優勢:硬件多樣化:預設Arduino和樹莓派的硬件包,支持微控制器、PLC、FPGA、GPU等多種設備。不僅僅可以仿真,更可以對硬件進行直接的控制。

Simulink直接仿真控制Arduino和樹莓派編程環境多樣化:支持C/C++,可以直接連接到ROS系統。

直接連接ROS系統可以自動生成代碼:MATLAB Coder和Simulink Coder可以根據你建立的模型自動生成控制代碼,大大減輕工作量,開發神器有木有? 工具箱:關于機器人設計開發,你想要的,這里都有
MATLAB/Simulink最強大的功能在于其針對各種特殊需求定制的工具箱,接下來我將按照機器人的開發流程為大家逐一介紹。1、 機器人機械結構設計
Simscape可以用來設計和分析三維剛體機械結構(譬如汽車平臺、機械臂等等)。除此之外,它還可以使用電氣、液壓或氣動以及其他組件進行多域系統建模。

Simscape
你可以直接在模型庫(命令行輸入sm_lib)里選擇自己想要添加的塊,模型庫提供了常見的機械結構如簡單的幾何體、轉動副、齒輪、帶輪…當然對于復雜的零部件,你也可以先在SolidWorks里面建立好模型然后導入。

Simscape三維模型庫
如下圖所示,我們用仿真實現控制機械將物體從一個傳送到搬運到另一個上面。

機械臂仿真2、 機器人傳感器融合
機器人用傳感器感知外部物理環境,常見的傳感器有紅外、超聲、慣性姿態傳感IMU、激光雷達、攝像頭等等。
RoboticsSystem Toolbox可以讓你通過ROS直接連接到傳感器并且對傳回來的信息進行校準、降噪等操作。

通過ROS連接到傳感器
同時,針對機器視覺,MathWorks開發了單獨的工具箱Computer Vision Toolbox。它支持單目、立體、魚眼等相機的校準,提供了對象的檢測跟蹤,特征提取和匹配等算法,同時可以根據數據進行三維重建和3D點云處理。

配準和拼接一系列點云3、嵌入式
Simulink提供了一系列的嵌入式硬件支持,你可以在Add-Ons的最后一行添加所需要仿真或者控制的硬件。

添加硬件支持
點開后下載相應的插件即可使用,這些插件不僅可以仿真,更可以直接控制單片機硬件。

Arduino插件下載4 、自動控制
你可以使用Simulink系統性地分析、設計復雜系統在時域和頻域中的行為。對此用過Simulink的同學應該是再熟悉不過了。

Simulink設計控制系統
你可以利用根軌跡法來自動調節補償器參數,并且同時指定多個調節目標,比如干擾參考跟蹤、穩定裕度等等。5、 決策執行算法
完成了上述步驟后,我們就可讓機器人完成最終的執行和決策功能了。
使用雷達或者視覺傳感器的數據,你可以通過Simultaneous Localization and Mapping (SLAM)創建環境地圖,從而實現自動路徑規劃到達指定位置。
你也可以使用Deep Learning Toolbox深度學習工具箱或者強化學習來實現端到端的機器人控制策略。

基于強化學習的機器人控制測量 MATLAB控制移動機器人的一個實例:TurtleBot1 、TurtleBot介紹
TurtleBot是一個低成本的、帶有開源軟件的個人機器人套件,它的目的是給入門級的機器人愛好者或從事移動機器人編程開發者提供一個基礎平臺。通過直接使用TurtleBot自帶的軟硬件,開發者可以專注于應用程序,避免了從頭開始“造輪子”的麻煩。
TurtleBot可以說是搭載ROS系統中最為重要的機器人,每個版本的ROS測試都會以TurtleBot為主,包括ROS2也率先在TurtleBot上進行了大量測試。所以TurtleBot對ROS兼容性很好。你可以在ROS社區中獲得大量關于TurtleBot的相關資源,很多功能包都能直接復用到自己的移動機器人平臺上。

TurtleBot全線產品2 、使用MATLAB進行建圖和路徑規劃
我們的目標就是將TurtleBot從房間的開始位置移動到指定位置。

Turtlebot開始和結束位置
使用MATLAB控制移動機器人的方法發如下圖所示,主要分為導入地圖、規劃路徑,循跡行走三個步驟。

MATLAB控制移動機器人步驟
在導入地圖時,你可以使用二值圖像直接建立柵格地圖。

導入柵格地圖
或者連接ROS,使用SLAM實時生成地圖。

使用SLAM實時生成地圖

通過路徑規劃,可以尋找到起始點到目標位置距離最短的路徑。

路徑規劃
你可以在MATLAB里讓小車按照規劃好路徑行走。

循跡行走
當你對你的仿真結果滿意后,你可以將相同的代碼直接部署到實際的TurtleBot機器人上看看實際運行效果。

TurtleBot實際運行效果 尾聲 本文著重講解了MATLAB/Simulink以及一系列工具箱在機器人開發中的使用。梳理了整個機器人開發流程和MathWorks公司相對應的產品線。并通過TurtleBot的一個實例來介紹MATLAB如何仿真并實際控制機器人硬件的。受于篇幅限制,本文只列舉MATLAB/Simulink部分功能,你可以在官網查看更多相關信息。
隨著“中國制造2025”和“工業4.0”的提出,中國機器人領域在最近幾年也得到了飛速的發展。而作為機器人開發研究的重要工具,MATLAB/Simulink也將賦予機器人更多可能。了解更多機器人解決方案:(復制到瀏覽器打開)https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23453你可以申請30天免費試用的MathWorks工具包:(復制到瀏覽器打開)https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23453