开源基准测试模拟器: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后可以正常使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

联想 SR590 服务器 530-8i 更换损坏的硬盘

坏了的硬盘会自动亮黄灯。用一个空的新盘来替换,新盘最好不要有东西。但是有东西可能也没啥,因为我看 RAID 控制器里有格式化的选项 1. 从 IPMI 把服务器关机,电源键进入绿色闪烁状态 2. 断电,推开塑料滑块拉出支架,…

【多模态处理篇三】【DeepSeek语音合成:TTS音色克隆技术揭秘】

最近帮某明星工作室做AI语音助手时遇到魔幻需求——要求用5秒的咳嗽声克隆出完整音色!传统TTS系统直接翻车,生成的语音像得了重感冒的电音怪物。直到祭出DeepSeek的TTS音色克隆黑科技,才让AI语音从"机器朗读"进化到"声临其境"。今天我们就来扒开这个声音…

Bybit事件技术分析

事件概述 2025年2月21日UTC时间下午02:16:11,Bybit的以太坊冷钱包(0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4)因恶意合约升级遭到资金盗取。根据Bybit CEO Ben Zhou的声明,攻击者通过钓鱼攻击诱骗冷钱包签名者错误签署恶意交易…

002简单MaterialApp主题和Scaffold脚手架

002最简单的MaterialApp主题和Scaffold脚手架使用导航栏_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1RZ421p7BL?spm_id_from333.788.videopod.episodes&vd_source68aea1c1d33b45ca3285a52d4ef7365f&p1501.MaterialApp纯净的 /*MaterialApp 是主题,自带方向设…

本地部署AI模型 --- DeepSeek(二)---更新中

目录 FAQ 1.Failed to load the model Exit code: 18446744072635812000 FAQ 1.Failed to load the model Exit code: 18446744072635812000 问题描述: 🥲 Failed to load the model Error loading model. (Exit code: 18446744072635812000). Unkn…

FastAPI系列:Ubuntu部署FastAPI项目实战

这篇文章提供了在Ubuntu上部署FastAPI应用程序的详细指南。首先,读者将学习如何创建项目目录并设置Python虚拟环境,接着安装FastAPI、Uvicorn和Gunicorn等必要依赖。随后,文章指导用户编写基本的FastAPI应用程序代码,并使用Gunico…

【ECMAScript6】

【ECMAScript6】 01. ES6介绍02. let和const命令03. 模板字符串04. 函数之默认值、剩余参数05. 函数之扩展运算符、箭头函数06. 箭头函数this指向和注意事项07. 解构赋值08. 扩展的对象的功能(简写)09. Symbol类型10. Set集合数据类型11. Map数据类型12.…

基于 sklearn 的均值偏移聚类算法的应用

基于 sklearn 的均值偏移聚类算法的应用 在机器学习和数据挖掘中,聚类算法是一类非常重要的无监督学习方法。它的目的是将数据集中的数据点划分为若干个类,使得同一类的样本点彼此相似,而不同类的样本点相互之间差异较大。均值偏移聚类&…

浅谈HTTP及HTTPS协议

1.什么是HTTP? HTTP全称是超文本传输协议,是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…

故障诊断 | Matlab实现基于DBO-BP-Bagging多特征分类预测/故障诊断

故障诊断 | Matlab实现基于DBO-BP-Bagging多特征分类预测/故障诊断 目录 故障诊断 | Matlab实现基于DBO-BP-Bagging多特征分类预测/故障诊断分类效果基本介绍模型描述DBO-BP-Bagging蜣螂算法优化多特征分类预测一、引言1.1、研究背景和意义1.2、研究现状1.3、研究目的与方法 二…

使用Open WebUI下载的模型文件(Model)默认存放在哪里?

🏡作者主页:点击! 🤖Ollama部署LLM专栏:点击! ⏰️创作时间:2025年2月21日21点21分 🀄️文章质量:95分 文章目录 使用CMD安装存放位置 默认存放路径 Open WebUI下…

第48天:Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式

#知识点 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、Log4j 一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工…

计算机毕业设计SpringBoot+Vue.js中小型医院网站(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

在 compare-form.vue 中添加 compareDate 隐藏字段,并在提交时自动填入当前时间

在 compare-form.vue 中添加 compareDate 隐藏字段,并在提交时自动填入当前时间。 提交表单时存入的对象是FakeRegistration,这个对象里面有compareDate字段,刚好表格查询的对象也是FakeRegistration,所以表格展示的时间就是刚才…

ARM Cortex-M处理器中的MSP和PSP

在ARM Cortex-M系列处理器中,MSP(主堆栈指针)和PSP(进程堆栈指针)是两种不同的堆栈指针,主要用于实现堆栈隔离和提升系统可靠性。以下是它们的核心区别和应用场景: 1. 基本定义 MSP(…

STM32——HAL库开发笔记24(定时器5—超声波测距)(参考来源:b站铁头山羊)

一、原理 本次实验采用HC-SR04超声波传感器,结构及功能如下图 超声波传感器可以用来测距。距离 声速(340m/s) *传播时间 / 2。 这个传感器有四个引脚,其中VCC接电源正极,GND接电源负极 , Trig : 用来启动测量 &…

LCC并行光模块、PLCC并行光模块和POB并行光模块的区别

一、封装结构与材料差异 PLCC(Plastic Leaded Chip Carrier) 封装材料:采用塑料材质,引脚数量较多(20-84个),引脚分布在四周12散热设计:通常通过PCB基板嵌装铜散热片提升散热性能8…

WIFI的SSID超长,隐藏,重复 (2.4G和5G差异)

目录 1、2.4G和5G的频率范围‌ 2、2.4G和5G的差异‌: 3、隐藏ssid显示为\x00 4、 重复的ssid名称 扩展 前言 最近处理wifi设备时发现,小小一个ssid就有超多的问题。 不是中文转义就是超长,现在还发现空字符的,原来时对方路由隐藏了…

FS800DTU联动OneNET平台数据可视化View

目录 1 前言 2 环境搭建 2.1 硬件准备 2.2 软件环境 2.3 硬件连接 3 注册OneNET云平台并建立物模型 3.1 参数获取 3.2 连接OneNET 3.3上报数据 4 数据可视化View 4.1 用户信息获取 4.2 启用数据可视化View 4.3 创建项目 4.4 编辑项目 4.5 新增数据源 4.6 数据过滤器配置 4.6 项…

Linux时间日期类指令

1、data指令 基本语法: date : 显示当前时间date %Y : 显示当前年份date %m : 显示当前月份date %d : 显示当前哪一天date “%Y-%m-%d %H:%M:%S" : 显示年月日时分秒date -s 字符串时间 : 设置系统时…