拒绝随波逐流!设计与实现可控的水下机器人

这个“长着三个触角”的水下机器人看上去是不是很萌?它使用的是一种新型的由三个球形磁耦合矢量推进器组成的推进系统。与传统的水下机器人使用多个固定推进器来实现多自由度(DOF)推进相比,矢量推进器具有多自由度、寄生推力小,以及效率高等优势。

在设计包含多个矢量推进器的水下机器人时,为了实现机器人在水下三维空间中对运动轨迹的精准跟踪,如何设计多推进器的推力布局、运动控制和控制分配等算法,显得十分重要且极具挑战!

面对这些挑战,来自西南石油大学三位研究生黄宇杰、刘里宵和张又文所组成的 MTGA 团队,在王宇副教授的指导下,利用 MATLAB 设计、仿真和实现的水下机器人(如上动画)。他们的作品在 2022 年获得第十七届中国研究生电子设计竞赛 MathWorks 企业专项奖的第一名以及全国二等奖

让我们来进一步看看这个作品的设计和实现细节!

算法设计

针对所采用的磁耦合矢量推进器,团队设计了一种基于遗传算法的推力布局算法(如下图)。这个算法在矢量推进器的复杂非线性约束下,优化三个矢量推进器的安装位置和角度,实现了最大的六自由度解耦广义推力。

图片

利用这个推力布局算法确定三个推进器的安装位置和角度后,团队接下来需要考虑的是如何实现这个水下机器人多个自由度的运动和矢量推进,为此他们需要设计运动控制系统对三个电机和六个舵机的进行协同控制。

为了达到稳定的运动控制,团队将水下机器人多自由度运动解耦到水平面和垂直深度上分别进行:在垂直深度上,采用PID控制算法;在水平面上采用的是基于Lyapunov函数的反步法,并采用RBF神经网络对执行器输出饱和进行补偿。最后利用推进器推力分配模型对每个推进器的电机和舵机进行单独控制,输出所需要的推力。

图片

这其中一个关键步骤是如何得到推进器推力分配模型,也就是由六自由度期望广义推力得到协同控制三个电机和六个舵机的九个控制量。为此,团队定义了一个如下的凸优化问题,其目标是在之前确定的最优推进器布局下,考虑可重构磁耦合推进器的最大重构角和最大推力限制,最小化误差和能量消耗的总和。

团队使用传统的拉格朗日方法来求解这个带有非线性约束条件的凸优化问题,实时得到最优的控制分配方案。他们在MATLAB中进行算法参数调整和实时性优化,保证算法能在可控的迭代次数内实现较好的收敛情况。

图片

系统仿真

MTGA 团队在 MATLAB 中实现了推力布局、运动控制和控制分配等算法后,并建立了 Simulink 模型进行仿真。这使得他们可以在不利用原型进行实验的情况下调试、测试和验证所设计的算法,从而节省时间和成本。

他们所构建的 Simulink 模型包括三个主要模块:控制器、控制分配和基于机器人动力学的被控对象。

图片

每个模块都是使用 Simulink 库提供的模型和少量手写的 MATLAB 函数来构建的。例如,下图展示了他们在 Simulink 中建立的水下机器人的动力学模型。

图片

他们利用 Simulink 仿真得到的水平面下轨迹跟踪结果,您可以看到通过反步法控制得到的运动轨迹基本与参考轨迹重合。 

图片

原型开发

团队不仅构建了 Simulink 仿真系统,还采用如下模块化和基于总线的设计开发了水下机器人原型。他们使用了 Holybro Pixhawk 4(PX4)作为通信和控制计算平台,该平台是基于 Pixhawk FMUv5 项目的开源硬件。PX4 是一个广泛用于开发自主系统的开源平台,特别是用于开发无人机。它最初由  Lorenz Meier 于 2011 年开发,并已发展成为一个庞大的开源社区。

图片

团队并没有再从头手写控制分配算法的 C 代码,而是使用 MATLAB Coder 将 MATLAB 下编写控制分配算法自动转换为 C 代码,然后对代码进行少量修改后将其部署到 PX4 控制器上。这种使用 MATLAB Coder 进行自动代码生成的开发方式节省了他们的开发时间并提高了效率。

水下实验

最后,团队利用所开发的原型进行了一些水下实验来检测算法性能。下图展示了水下机器人原型在泳池中自主跟踪所设定参考轨迹的实验结果。

图片

小结

MTGA 团队利用 MATLAB 设计、仿真和实现了水下机器人。他们结合磁耦合推进器的矢量输出特性,创新性的采用遗传算法为水下机器人布局推进器提供了新思路。在此基础上,通过建立高效的推力分配模型,实现了上层运动控制与底层推进器控制的模块化分离设计。

创新性的设计和富有成果的工作使得 MTGA 团队不仅赢得了第十七届研究生电子设计竞赛的奖项,还同时向我们展示了当代中国研究生的风采!

对于未来的工作,同学们可以试着了解 UAV Toolbox Support Package for PX4® Autopilots (https://ww2.mathworks.cn/matlabcentral/fileexchange/70016-uav-toolbox-support-package-for-px4-autopilots

下载并安装这个支持包后,大家可以直接从 MATLAB 和 Simulink 访问 PX4 的外设,非常方便!此外,借助 Embedded Coder,可以自动将代码或者模型生成 C/C++ 代码,并使用 PX4 工具链构建和部署专门针对 Pixhawk 以及 Pixracer 飞行管理单元的算法。这将有助于同学们运用业界广泛使用的基于模型的设计(https://ww2.mathworks.cn/solutions/model-based-design.html)的开发流程,来实现更高效的系统设计和软件部署。

 免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。包括一些人工智能基础入门视频+AI常用框架实战视频、图像识别、OpenCV、NLP、YOLO、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文等。

下面是部分截图,加我免费领取

目录

一、人工智能免费视频课程和项目

二、人工智能必读书籍

三、人工智能论文合集

四、机器学习+计算机视觉基础算法教程

最后,我想说的是,自学人工智能并不是一件难事。只要我们有一个正确的学习方法和学习态度,并且坚持不懈地学习下去,就一定能够掌握这个领域的知识和技术。让我们一起抓住机遇,迎接未来!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以点击链接领取 

二维码详情

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:哈希表讲解

哈希表 1.哈希概念2.通过关键码确定存储位置2.1哈希方法2.2直接定址法2.3除留余数法 3.哈希冲突概念4.解决哈希冲突4.1闭散列4.1.1概念4.1.2哈希表扩容4.1.3存储位置的状态4.1.4关于键值类型4.1.5代码实现 4.2开散列4.2.1概念4.2.2哈希表扩容4.2.3代码实现 4.3开闭散列的对比 1…

界面控件DevExpress WinForms Sunburst组件,轻松可视化分层扁平数据!

DevExpress WinForms Sunburst控件允许用户以紧凑和视觉上吸引人的方式可视化分层和扁平数据。 DevExpress WinForms有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用的应用程序,无论是Office风…

ChatGPT到底是如何运作?

自从2022年11月30日发布以来,ChatGPT一直占据着科技届的头条位置,随着苹果的创新能力下降,ChatGPT不断给大家带来震撼,2023年11月7日,首届OpenAI开发者大会在洛杉矶举行,业界普遍认为,OpenAI的开…

11.28C++

#include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&#xff1a;" << endl;getline(cin,str);int size str.size();int a0,b0,c0,d0,e0;for(int i0; i < size; i){if(str.at(i) > A && str…

Element-ui合并table表格列方法

merageCell({ row, column, rowIndex, columnIndex }) {if (columnIndex 0 || columnIndex 1) {const property columnIndex 0 ? name : firstDeptName;// 获取当前行的property&#xff0c;这里看自己的需要&#xff0c;改成根据哪个去判断const currentPropertyVal row…

Webshell流量分析

Webshell流量分析 常见的一句话木马: asp一句话 <%eval request("pass")%> aspx一句话 <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%> php一句话 <?php @eval($_POST["pass&…

【华为数通HCIP | 网络工程师】821刷题日记-BFD和VRRP 及重点(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

iconfont 使用彩色图标

1、下载iconfont到本地 2、全局安装 iconfont-tools npm install -g iconfont-tools 3、在iconfont解压目录下执行命令、一直回车 iconfont-tools 4、文件拷贝 执行完上述命令后会生成iconfont-weapp目录&#xff0c;将iconfont-weapp目录下的iconfont-weapp- icon.css文件…

【23真题】比985还难的双非!

今天分享的是23年长春工业大学807的信号与系统试题及解析。 本套试卷难度分析&#xff1a;本套试题难度中等偏上&#xff0c;题量不少&#xff0c;难度不小&#xff01;状态方程考察的淋漓尽致。另外还有电路题。这所双非院校的真题比90%的211难&#xff0c;甚至比一部分985更…

接手了一个外包开发的项目,我感觉我的头快要裂开了~

嗨&#xff0c;大家好&#xff0c;我是飘渺。 最近&#xff0c;我和小伙伴一起接手了一个由外包团队开发的微服务项目&#xff0c;这个项目采用了当前流行的Spring Cloud Alibaba微服务架构&#xff0c;并且是基于一个“大名鼎鼎”的微服务开源脚手架&#xff08;附带着模块代…

【工具使用】Keil常用的调试操作整理介绍

目录 一、软件调试使用 1.1 基本调试操作 1.2 调试窗口 二、注意事项 一、软件调试使用 1.1 基本调试操作 上文已经说过在线调试和模拟调试的配置过程&#xff0c;但无论是在线还是模拟调试&#xff0c;调试技巧工具的使用都是一样的。 点击红色d&#xff0c;进入调试 可…

C++ 红黑树的封装

一.map/set的封装 在实现了红黑树的部分功能后&#xff0c;我们可以便可以将红黑树作为底层结构来封装map 和 set &#xff0c;但是问题也随之而来。我们都知道map是k-v的数据模型&#xff0c;而set是k的数据模型&#xff0c;我们难道要去使用两棵红黑树来封装吗&#xff1f;显…

Centos7安装配置nginx

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解&#xff08;如有不正确的地方欢迎各位小伙伴在评论区提意见&#xff0c;小编会及时修改&#xff09; Centos7安装配置nginx Nginx介绍 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务&#xff0c;也…

使用MAT分析内存泄漏(mac)

前言 今天主要简单分享下Eclipse的Memory Analyzer在mac下的使用。 一、Mat&#xff08;简称&#xff09;干什么的&#xff1f; 就是分析java内存泄漏的工具。 二、使用步骤 1.下载 mac版的现在也分芯片&#xff0c;别下错了。我这里是M2芯片的&#xff0c;下载的Arch64的。 …

在Mysql中,什么是回表,什么是覆盖索引,索引下推?

一、什么是回表查询&#xff1f; 通俗的讲就是&#xff0c;如果索引的列在 select 所需获得的列中&#xff08;因为在 mysql 中索引是根据索引列的值进行排序的&#xff0c;所以索引节点中存在该列中的部分值&#xff09;或者根据一次索引查询就能获得记录就不需要回表&#x…

WPF前端实现人脸扫描动画效果

前言 本章实现的效果主要通过OpacityMask与LinearGradientBrush(径向渐变) 的组合应用来实现。最终实现效果如下: LinearGradientBrush线性渐变画刷 LinearGradientBrush其实很简单,我们只需要关注5个属性,使用这5个属性你就可以完成这个画刷几乎所有的变化。 属性介…

FOC系列(三)----AS5600磁编码器

一、 关于AS5600 1.1 芯片内部框图和引脚功能介绍 具体的内容大家可以查看数据手册&#xff1a;AS5600数据手册&#xff0c;在这里只是对一下重要的地方进行说明。    系统框图如下&#xff1a;    电源设计选项&#xff0c;我在设计时选择的是第二种电源方案&#xff0c…

推荐6款交互设计软件,助你事半功倍!

交互软件可以帮助设计师从“可用性”和“用户体验”的角度优化他们的作品。如果设计师想创建一个令人满意的交互设计作品&#xff0c;一个方便的交互设计软件是必不可少的。当然&#xff0c;交互软件只是我们实现目标的一种手段。根据设计师的个人喜好和方便&#xff0c;选择易…

可以免费使用的Axure在线版来了

Axure作为一种功能强大的原型设计工具&#xff0c;一直受到设计师的青睐。然而&#xff0c;其高昂的价格可能成为一个门槛&#xff0c;限制了一些设计师的选择。但不用担心&#xff0c;现在有一个免费的Axure在线工具即时设计&#xff0c;功能更完整&#xff0c;更划算&#xf…

基于字面的文本相似度计算和匹配搜索

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…