水下机器人的设计与实现

机器人

533人已加入

描述

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

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

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

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

算法设计

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

matlab

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

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

matlab

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

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

matlab

系统仿真

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

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

matlab

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

matlab

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

matlab

原型开发

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

matlab

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

水下实验

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

matlab

小结

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

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

对于未来的工作,同学们可以试着了解 UAV Toolbox Support Package for PX4 Autopilots。

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

再次祝贺该团队成员以及他们的指导老师!也希望同学们的参赛经验和 MATLAB 技能可以帮助到大家之后的就业或深造!

后浪

时间荏苒,2023 年第十八届中国研究生电子设计大赛也刚刚落下帷幕,让我们看看今年哪些队伍获得了 MathWorks 企业专项奖,并期待来自这些优秀团队的经验/技术分享!

MathWorks 企业专项奖

队伍名 学校 作品名
一等奖
超高效率喵 西安交通大学 面向未来配电网的模块化电力电子变压器设计
二等奖
原芯光电 华中科技大学 面向 400G 长距相干通信的国产集成调谐光模块
信心满满 南京信息工程大学 基于 5G 外辐射源雷达的低空目标探测系统
三等奖
怎么才三陈 浙江理工大学 基于毫米波雷达的人体动作实时识别装置
勇往“直”前 江西理工大学 直线感应电机全局优化及测控平台设计

还在等什么,点击“阅读原文”,立即下载安装 UAV Toolbox Support Package 支持包开始吧!  

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分