terasoft
MATLAB & Simulink自主移動機器人的應用發展

MATLAB® & Simulink® 於自主移動機器人的應用發展

MATLAB & Simulink 為開發自主移動機器人(AMR)、服務機器人和其他無人地面車輛(UGV) 提供演算法、建模、模擬工具,以及ROS和硬體連接支援。

使用 MATLAB 與 Simulink,可達成:

  • 導入機器人的虛擬模型並完善機械設計和電氣元件的需求
  • 模擬慣性導航系統(INS)和GNSS感測器的感測器模型
  • 使用粒子濾波器和蒙地卡羅定位等演算法進行機器人定位
  • 使用同步定位和地圖建構(SLAM)演算法建立環境地圖
  • 使用路徑規劃演算法(如A*或 RRT)尋找最佳路徑
  • 使用路徑指標(如平滑度和障礙物淨距)評估路徑的最適性
  • 使用路徑追蹤和避障控制演算法以在動態環境中進行導航
  • 為目標硬體自動生成生產程式碼

平台開發

建立或導入實體模型,並模擬輪型機器人和步行機器人的動力學。加入接觸力和扭力等實際限制,分析演算法對硬體平台的影響。

使用MATLAB與Simulink,可達成:

  • 使用運動學運動模型和車輪編碼器進行典型的自主移動機器人設計,例如差速驅動或阿克曼轉向(Ackermann steering)
  • 設計詳細的動態模型,以實體建模方式描述機器人的機械結構
  • 匯入來自CAD軟體的機械設計,並在單一模擬模型中將其與電氣和控制系統連接起來
  • 連結Gazebo等外部機器人模擬器,以作為模擬環境
  • 連接至ROS/ROS2中介軟體
感知與定位

感知與定位

利用機器人視覺建立環境地圖並定位自主移動機器人。使用感測器模型和預建演算法開發地圖繪製、定位和物體偵測應用,讓自主移動機器人能夠了解其周圍環境和位置。

使用MATLAB與Simulink,可達成:

  • 模擬並融合IMU和GPS感測器讀數,以實現精確的姿態估測
  • 對於配備光達的機器人,
  • 使用自適應蒙地卡羅演算法(AMCL)來進行定位透過光達或單眼視覺SLAM建立和視覺化2D和3D地圖
  • 使用SLAM Map Builder應用程式以互動方式修改迴路封閉(loop closure),進而提高地圖準確性
  • 透過建立本車為中心的佔據網格地圖來呈現動態環境
  • 使用深度學習和機器學習演算法(例如YOLO、SSD和CNN)檢測、識別和追蹤物體,以實現安全的機器人導航

運動規劃與控制

為自主移動機器人尋找到達目的地的路徑。產生航點並發送控制指令,使其遵循全域路徑或局部軌跡。為了使機器人能夠在未知環境中導航,MATLAB & Simulink 提供了搜尋式和採樣式的規劃演算法,以及路徑追蹤控制演算法。

使用MATLAB與Simulink,您的機器人可達成:

  • 使用A*演算法和RRT演算法尋找最短/無障礙路徑
  • 在動態環境中透過局部重新規劃(local replanning),安全地繞過障礙物
  • 使用平滑度和與障礙物的距離等指標來視覺化和評估路徑的最適性
  • 透過非線性模型預測控制來最佳化路徑
  • 使用純追蹤(Pure Pursuit) 控制器穩定追蹤規劃路徑
  • 使用向量場直方圖(VFH)計算轉向指令以避開障礙物
  • 使用DDPG等強化學習方法以避開障礙物
基於模擬的測試

基於模擬的測試

透過模擬找出設計錯誤,並降低硬體實測的風險和成本。對於移動機器人應用,MATLAB & Simulink提供互動式應用程式和模擬工具,以優化效能並縮短開發及測試時間。

使用MATLAB與Simulink,可達成:

  • 產生軌跡來模擬感測器運動並校準其效能
  • 透過分析里程估計值來消除車輪編碼器的誤差
  • 使用抽象模型快速驗證自主移動演算法或建立更高精度的模型
  • 與Gazebo進行時間同步的偕同模擬(co-simulation),並在閉環迴路(closed-loop)環境中測試演算法
  • 在部署於機器人平台之前,透過模擬測試導航演算法在各類極端情境的表現
  • 自動產生C/C++、VHDL® /Verilog®、CUDA® C/C++ 程式碼,用於快速原型設計和生產用途