開源基準測試模擬器:BlueROV2 水下機器人的控制

拜讀An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot

非常感謝Esben Uth的幫助。

????????本文介紹了在 Simulink? 中實現的常用且低成本的遙控潛水器 (ROV) BlueROV2 的仿真模型環境,該環境已針對水下航行器的基準控制算法進行了設計和實驗驗證。BlueROV2 模型基于 Fossen 方程,包括車輛的運動學模型、車輛和水相互作用的流體動力學、推進器的動力學模型,最后是重力/浮力。流體動力學參數和推進器模型已在測試設施中得到驗證。基準模型還包括洋流,建模為恒定速度。將 ROV 連接到頂部站點設施的系繩已使用集總質量法建模,并作為 ROV 模型的力輸入實現。最后,為了展示基準模型的有用性,提出了一個案例研究,其中部署了 BlueROV2 來檢查海上單樁結構。該案例研究使用了為 BlueROV2 設計的滑模控制器。控制器通過遵循提供的低誤差軌跡來滿足為案例研究定義的設計標準。結果表明,該模擬器為未來在環境干擾影響下的位置控制和軌跡跟蹤控制方案建立了基準。

1.下載

本項目使用的是MATLAB R2024a,其他版本的不行,MATLAB 2022b版本的移步此處

2.界面介紹

?模擬選項窗格

第一部分是模擬選項窗格。要快速啟動仿真,可以按下圖Open Simulation按鈕

????????在啟動模擬之前,可以更改機器人的初始設置。可以同時改變初始位置和速度。使用復選框,可以啟用或禁用ROV及其運動的可視化。通過在仿真中禁用可視化,可以提高仿真速度。控制器或參考子系統可以使用左下方的按鈕打開。?

參數

?在本節中,可以添加或更改用于仿真的機器人和環境參數。

????????可以通過編輯相應的參數字段來更改機器人的各個參數以及環境。用戶創建的機器人和
環境可以通過使用位于下拉列表旁邊的垃圾桶來刪除。要選擇機器人或環境,請在任意一個
下拉列表中單擊所需的機器人或環境。要添加新的機器人或環境,請在下拉列表中選擇“添
加新”選項。

?推進器

????????本節用于定義由單個推進器提供的飽和力,以及確定位于機器人上的推進器的位置、方向和方向。仿真中用于飽和推進器的上限和下限可以在各自的文本字段中進行更改。可以在BlueROV2和BlueROV2升沉配置的預定義推進器分配之間進行切換。使用“No. 2”Of thrusters”旋轉器,推進器的數量可以在2到8個之間變化。每個推進器相對于六個自由度中的任何一個運動的位置、方向和方向都可以通過改變各自文本字段內的值來編輯。使用“重置TAM”按鈕,可以將推進器分配矩陣重置為初始BlueROV2重型配置。記住使用“save TAM”按鈕保存任何更改?。

外力

在本節中,可以啟用或禁用ROV上的外力。
如圖所示,可以啟用或禁用洋流和系繩的影響。為了在任何六個自由度中添加自定義外力,添加了一個額外的選項,這是在“手動力量”下編輯的。在與力分組在一起的文本字段中,可以編輯任意三種力的不同參數。?

傳感器干擾

?????????可以使用多個傳感器來確定機器人的位置和速度。這些傳感器可以與噪聲、延遲和漂移等干擾相關聯。本節使用戶能夠將此類干擾的效果添加到12種狀態中的任何一種。
????????如圖所示,所有位置和速度狀態都位于截面的左上角。使用每個狀態的單獨下拉菜單,可以選擇傳感器的擾動。如果選擇“理想”,則沒有傳感器干擾會影響所選狀態。在該部分的底部,位于一個表格,其中包含七個特定傳感器以及一個自定義傳感器。該表顯示了每個傳感器的以下參數。它包含狀態測量,采樣時間,延遲,方差和漂移。不可能改變任何傳感器的狀態測量值;但是,可以通過雙擊任意字段來編輯其余的設置。采樣時間應以Hz為單位設置,且不能等于或小于零。傳感器測量的延遲可以以秒為單位設置,方差可以以米、弧度或弧度每秒為單位設置,這與傳感器測量的狀態有關。傳感器的漂移被設置為每秒增加米或弧度。只有參考發生器和控制器子系統應該被編輯,其余子系統的設置可以從應用程序中編輯。框圖底部的范圍允許查看b幀和n幀的位置和速度。

仿真結構

????????下圖顯示了仿真模型的Simulink框圖。如果禁用可視化選項,它們對應的塊將被移除。

3.報錯解決

本次主要遇到兩個問題,MATLAB版本兼容問題、ROVsimulator版本沖突問題

3.1MATLAB版本的不兼容性

github上一共提供了兩個版本的ROVSimulator,一個對應MATLAB 2022b,一個對應MATLAB 2024a,對應的MATLAB版本不對是無法使用ROVSimulator的。

3.2ROVSimulator版本沖突問題

錯誤如下:

計算 'ROV_Simulation/Reference Generator/VR Tracer' 中的 MATLAB S-Function 'vrtracer' 的注冊方法 'Start' 時出錯。以下是產生此錯誤的 MATLAB 調用堆棧(文件名和行號): ['E:\MATLAB\toolbox\sl3d\sl3d\@vrworld\open.m'] [32] ['E:\MATLAB\toolbox\sl3d\sl3d\vrtracer.m'] [147] ['E:\MATLAB\toolbox\sl3d\sl3d\+vr\callbacks.m'] [226] 原因: Error reading virtual world file: C:/Users/BP21JL/AppData/Roaming/MathWorks/MATLAB Add-Ons/Apps/ROVSimulator/Dependencies/Animation/Good_world_BlueRov.x3d: Can't open file for reading. 組件:Simulink | 類別:Block 錯誤

這個錯誤是我在起初使用的是MATLAB 2020b版本的所用到的ROVSimulato為MATLAB2022b版本的,但我在github上閱讀資料包時發現,有ROVSimulato2024a版本的,于是我更新了MATLAB 2024a,并且使用了ROVSimulator2024a,但是殘余的ROVSimulato導致Good_world_BlueRov.x3d路徑為ROVSimulator版本的路徑,后更改路徑為ROVSimulator2024a/Dependencies/Animation/Good_world_BlueRov.x3d后可以正常使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70635.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk = 35

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk 35 三個報錯信息如下 第一個 WARNING:We recommend using a newer Android Gradle plugin to use compileSdk 35This Android Gradle plugin (7.1.2) was tested up to compileSdk 32This warning…

HTML5特殊字符

HTML中常用的特殊符號一般都以“&”開頭,以“;”結束。

本地大模型編程實戰(23)用智能體(Agent)實現基于SQL數據構建問答系統(2)

本文將用 智能體(Agent) 實現對 SQLite 數據庫的查詢:用戶用自然語言提出問題,智能體也用自然語言根據數據庫的查詢結果回答問題。 本次將分別在英文、中文環境下,使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做實驗。…

nodejs npm install、npm run dev運行的坎坷之路

1、前面的種種都不說了,好不容易運行起來oap-portal項目,運行idm-ui項目死活運行不起來,各種報錯,各種安裝,各種卸載nodejs,卸載nvm,重裝,都不好使。 2、甚至后來運行npm install會…

gotool在線工具集

1. 包含各種 sql 處理 2. 包含 json 處理 3. 包含 圖片處理 4. 跨平臺傳輸 gotool

猿大師播放器:智慧交通Web網頁低延遲播放監控RTSP H.265視頻解決方案

在智慧城市建設加速推進的今天,智慧交通作為城市"神經系統"正面臨前所未有的發展機遇。據統計,2023年全國交通視頻監控設備保有量已突破4500萬臺,日均產生的視頻數據量超50PB。但在這些龐大數字背后,行業卻普遍面臨著&q…

Web自動化之Selenium控制已經打開的瀏覽器(Chrome,Edge)

在使用selenium進行web自動化或爬蟲的時候,經常會面臨登錄的情況,對于這種情況,我們可以利用Selenium控制已經打開的瀏覽器,從而避免每次都需要重新打開瀏覽器并進行登錄的繁瑣步驟。 目錄 說明 啟動瀏覽器 注意 --user-data-dir說明 代碼設定 代碼 改進代…

【Alertmanager】Alertmanager告警路由,告警靜默,告警抑制,高可用的實現

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Python全…

Vue3 + Vite + TS,使用 配置項目別名屬性:resolve

使用 resolve 配置全局項目路徑別名 1.優化了開發中單頁面引用其他模塊的路徑復雜性 2.妥妥解決了,組件復用當中提高開發效率 // 不使用配置 import { useStore } from ../../../stores // 使用配置 可根據開發者需求任意定義,較多 import { useStore…

Linux主機用戶登陸安全配置

Linux主機用戶登陸安全配置 在Linux主機上進行用戶登錄安全配置是一個重要的安全措施,可以防止未經授權的訪問。以下是如何創建用戶hbu、賦予其sudo權限,以及禁止root用戶SSH登錄,以及通過ssh key管理主機用戶登陸。 創建用戶hbu 使用具有…

基于 SpringBoot Vue 的生鮮商城系統設計和實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

設計模式-結構性模式

結構型模式主要關注類或對象的組合,旨在通過識別簡單的結構關系來設計更復雜的結構。以下是幾種常見的結構型設計模式: 1. 適配器模式(Adapter Pattern) 將一個類的接口轉換成客戶端所期望的另一個接口,使得原本由于接…

VantUI官網更新2025,移動端前端開發

Vant 2 - Mobile UI Components built on Vue https://vant-ui.github.io/vant/v2/#/zh-CN/quickstart Vant 4 - A lightweight, customizable Vue UI library for mobile web apps. https://vant-ui.github.io/vant/#/zh-CN Vant Weapp - 輕量、可靠的小程序 UI 組件庫,微…

《我的AUTOSAR之路》Det 解析

Det 解析 1. 引言和功能概述2. Errors2.1 開發錯誤(Development Errors)2.2 運行時錯誤(Runtime Errors)2.3 臨時故障(Transient Faults)3 錯誤查詢默認錯誤追蹤器(Default Error Tracer,DET) 1. 引言和功能概述 默認錯誤追蹤器(DET):該規范描述了默認錯誤追蹤器(…

電腦連接示波器顯示波形

通過網線連接示波器和電腦,將示波器波形顯示在電腦上直接復制圖片至報告中,以下是配置步驟。 一、設備 網線,Tektronix示波器,電腦 二、使用步驟 1.用網線連接電腦和示波器 2.電腦關掉WiFi,查看IPv4網關地址&#xf…

npm i 失敗權限問題

安裝完node之后, 測試全局安裝一個最常用的 express 模塊進行測試 失敗,但是用管理員權限打開cmd 安裝就成功。 報錯如下: npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

上海創智學院(測試)算法筆試(ACM賽制)部分例題

1.第一個題,大概題目意思是求n句話中最長的單詞和最短的單詞 這個題目做的有點磕巴,好幾年沒有寫過c/c了,連string的復制都不會寫了,哈哈哈,太笨了 后面一點點撿起來,還是寫出來了,本身沒啥&…

編寫一個程序,輸出 “Hello, World!“(Python版)

編寫一個程序,輸出 "Hello, World!" 在 Python 中,輸出 “Hello, World!” 的程序非常簡單。你只需要使用 print 函數即可。以下是代碼示例: print("Hello, World!")將這段代碼保存為一個 .py 文件(例如 hel…

python實戰項目58:采集蜻蜓FM熱門音頻top排行榜

python實戰項目58:采集蜻蜓FM熱門音頻top排行榜 一、采集流程介紹二、數據接口采集三、使用xpath提取頁面數據1、抓包,找到數據接口2、發送請求,獲取數據3、提取數據4、保存數據一、采集流程介紹 蜻蜓FM熱門音頻top排行榜的鏈接為: https://m.qingting.fm/rank/,首頁如下圖…

【Matlab仿真】Matlab Function中如何使用靜態變量?

背景 根據Simulink的運行機制,每個采樣點會調用一次MATLAB Function的函數,兩次調用之間,同一個變量的前次計算的終值如何傳遞到當前計算周期來?其實可以使用persistent變量實現函數退出和進入時內部變量值的保持。 persistent變…