迷你无人机比赛助力航电和控制教学
作者 : Hamidreza Nemati,西英格兰大学
在学生时期,我经常觉得工程理论与其解决实际问题的实践应用之间相差甚远。比如,我发现航空航天工程专业的大部分课程都未讲解如何应对导航或图像处理挑战的主题。我想,之所以对此避而不谈,部分原因是有观点认为,这些主题属于计算机科学家的专业领域,而非航空航天工程师的专业领域。我一直觉得这种观点很奇怪,因为我们生活在一个复杂的世界里,需要使用多学科方法来教会工科学生如何解决实际难题。
现在,作为一名讲师,我可以借此机会弥合我在学生时期认识到的这种差距。为此,我借鉴了自己作为博士后研究员参加并赢得 MathWorks 迷你无人机比赛所取得的经验。这项比赛在世界各个国家/地区举行。在比赛中,学生们先要使用 Simulink® 设计、仿真和实现基于视觉的循线算法,然后在 Parrot® Mambo 迷你无人机(图 1)上进行实际飞行测试,将自己的解决方案与其他学生的解决方案一较高下。
作为参赛者,我需要了解如何在运用工程理论的同时,考虑现实环境对无人机部署的影响,这要比课堂上学到的知识多得多。与此同时,我也在基于模型的设计以及导航和图像处理算法的开发、实现和优化方面收获了宝贵的经验。作为一名讲师,我希望我的学生能够从这种经验中受益。因此,我将 MathWorks 迷你无人机比赛直接纳入到了我面向大三学生教授的航电和控制课程。在 2021 至 2022 学年教授这版课程时,我将学生分成了六个小组。这些小组先在 Simulink 中开发并调整他们的算法,最后在决赛中轮流对这些算法进行测试。尽管发生了一些重大事故,但与我当时一样,学生们也从这次经历中收获颇丰,这让他们兴致勃勃。
课程结构设计
在考虑如何教授该课程时,我决定采用与迷你无人机比赛相同的结构,让学生通过一系列里程碑来完成整个设计。该结构主要涵盖英国工程专业能力和个人承诺标准的知识与理解这两个方面,以及设计、开发和工程问题解决方面。
不过,在开始设计工作之前,我留出了一些时间来确保学生们对他们所需的概念有深入的了解。我从回顾 MATLAB® 和 Simulink 基础知识入手,让学生们学习了《MATLAB 入门之旅》和《Simulink 入门之旅》教程。另外,我还向学完《Stateflow 入门之旅》教程的学生提供了额外学分,以鼓励他们提前学习如何创建、编辑和仿真状态机。我知道,在课程后期,需要规划飞行状态时,他们将会庆幸自己已掌握了这些技能。
在接下来的几周里,该课程涵盖飞机动力学和建模、无人机航电设备,以及迷你飞行器(包括 Parrot 迷你无人机)的运动学和动力学等主题。本系列的最后一节课重点讲述计算机视觉基础知识,这为学生们完成本课程的第一个项目奠定了必要的基础。
开发计算机视觉算法
我把全班学生分成了由四到六名学生组成的小组,让他们完成第一个重要里程碑,那就是在 MATLAB 中开发直线检测算法。为了帮助他们入门,我将一些基本的边缘、直线和目标检测方法纳入到了讲义中。学生们还在 MATLAB 和 Simulink 中学完了《图像处理入门之旅》教程。他们要实现的直线检测算法是迷你无人机飞行控制系统中图像处理组件的一部分。作为比赛(和我的课程)的一部分,学生们会获得该系统的基本 Simulink 模型(图 2)。他们先要实现 Image Processing System 模块,然后再处理 Control System 模块。
除了基本的边缘和直线检测算法,学生们还需要实现圆形检测算法,用来识别无人机在飞行路径末端要降落的小着陆区(图 3)。我鼓励学生们探索先进的图像处理技术,并为他们提供额外的学分,用于实现阴影去除或光照不变测度。学生们在直线检测和圆形检测算法方面提出的创新想法给我留下了深刻的印象。对于这两种算法,他们都想出了让我意想不到的有趣方法。
路径规划
下一个重要里程碑是在 Simulink 控制系统模型中实现 Path Planning 模块。在该阶段,我将术语“路径规划”与“轨迹跟踪”作了区分,以便学生们能够开发独立于路径物理参数(如长度和几何形状)的算法。于是,他们使用了路径颜色,并根据从图像中获得的信息计算所需的所有参数。该模块采用学生图像处理算法的结果作为输入(图 4)。
如同图像处理算法那样,我也向学生们介绍了一些常用的路径规划算法,包括 RRT、RRT* 和 A*,但不会让他们拘泥于这些方法。各小组先让无人机沿直线路径飞行,直到它到达一个路口,然后他们再基于自己的算法进行构建,直到无人机能够沿着完整路径飞行并降落到着陆区。为了测试自己的算法,这些小组使用 MathWorks 提供的无人机模型在 Simulink 中运行了闭环仿真(图 5)。在实现过程中,学生们再次展现了他们的创造性思维;有个小组实现的一种算法成功导航了整个路径,而根本没有改变无人机航向!
图 5. 仿真无人机沿路径飞行。
控制设计和调整
在学生们实现了路径规划算法后,我就把教学重点转向了姿态和高度控制设计。我让他们通过以下方法重新调整了比例-积分-微分控制器的增益:使用优化算法,尽可能降低积分绝对误差、积分均方误差、积分时间加权绝对误差乃至均方根误差这些标准之一。MathWorks 提供的基础模型中包含姿态和高度控制器,但我提醒学生们不要过于激进。我强烈建议,作为总体实现策略的一部分,他们应让设计简洁明了,因为我深知,如果设计过于复杂或控制器调整过度,则可能会导致在真实硬件上进行测试时困难重重。
当学生们处理无模型线性控制器(如 PID)时,我还向他们介绍了基于模型的线性控制设计,包括线性二次调节器 (LQR)。此外,我还比较了实施 LQR 与更先进的非线性控制策略(称为滑动模式控制 (SMC))时的性能,以说明当存在不确定性和外部干扰的情况下应用稳健控制器的效果。然而,考虑到 SMC 会受到意外高频振动的影响,我实现了一个连续滑动模式控制 (CSMC),以便能够根据滑动面的分数指数消除这种振动,并确保控制系统性能稳定。为了比较线性 (PID) 和非线性 (CSMC) 控制设计的性能,我们运行了仿真,并在 MATLAB 中绘制了生成的路径(图 6)。有些同事对我向本科生教授基于模型的控制技术(如 LQR)感到很惊讶。我解释说,一旦我们有了工作模型,其实就很容易将 PID 控制器替换为 LQR 控制器,并演示如何应用先进的控制方法。
部署到 Parrot 迷你无人机上
对于最后一个里程碑,学生们需要在真实硬件上运行他们在 Simulink 中建模、仿真和验证的算法。在这一步,他们需要使用 Simulink Support Package for Parrot Minidrones,通过蓝牙® 将算法无线部署到 Parrot Mambo 迷你无人机上。
无人机比赛在布里斯托尔机器人实验室举行,有几名实验室研究人员观看了决赛。活动当天,MathWorks 的工程师们也到场协助搭建比赛环境。
第一次飞行测试并没有达到各小组的预期,主要是因为学生们把增益设得太高,并且对控制器调整过度。真实无人机并未像他们在仿真中看到的那样沿着路径稳定飞行,而是表现出飞行姿态不稳,并且遭受了多次严重撞击。虽然学生们起初很失望,但很快重振旗鼓,调整了增益并对设计的各个方面进行了简化,以将他们当前面临的实际影响均考虑在内。其中一个小组的无人机成功完成了整个赛程,为他们赢得了比赛。赛后,多个小组留下来继续改进他们的算法,这充分展现了全班同学对该项目的兴趣有多浓厚。
学生们不断高涨的热情,是我想在明年继续教授该课程并将迷你无人机比赛作为课程核心的诸多原因之一。我也期待着我的学生们能有机会参加英国或邻国官方的 MathWorks 迷你无人机比赛。
2023 年发布