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

这个“长着三个触角”的水下机器人看上去是不是很萌?它使用的是一种新型的由三个球形磁耦合矢量推进器组成的推进系统。与传统的水下机器人使用多个固定推进器来实现多自由度(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官方,朋友如果需要可以点击链接领取 

二维码详情

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值