用Simulink编程无人机万博1manbetx
概述
在本次网络研讨会中,您将学习如何使用Simulink万博1manbetx®允许您使用PARROT的Simulink支持包为手掌大小的四轴飞行器设计和部署飞行控制器万博1manbetx万博1manbetx®Minidrones。它将描述使用的四轴飞行器平台,使其工作所需的传感器和算法,以及支持包和Simulink附加工具如何实现从建模和仿真到飞行的完整的基于模型的设计工作流程。万博1manbetx万博1manbetx该工作流程可以帮助在硬件部署和测试之前快速迭代飞行控制器设计。教授、讲师和培训人员可以利用这个网络研讨会及其方法在课堂上向工程专业的本科生和研究生教授控制系统。
突出了
- 学习编写低成本、手掌大小、可靠的迷你无人机
- 了解基于模型的设计——从建模到硬件部署
- 使用航空航天Blockset™几分钟内就能启动运行
- 使用万博1manbetx仿真软件编码器™记录飞行数据并访问自动生成的C代码
主讲人简介
Greg Drayer Andrade是产品营销经理航空航天工具箱,航空航天Blockset™而且万博1manbetxSimulink硬件支持万博1manbetxArduino的®,树莓派™,乐高®头脑风暴®,Android™而且iOS设备,Pixhawk PX4自动驾驶仪而且鹦鹉®Minidrones.他建立在Simulink平台之上,确保M万博1manbetxathWorks技术能够解决最突出的市场问题,并为建模、仿真和自动代码生成带来特定于行业和领域的功能。他与开发部门、应用工程部门、其他市场部门和销售部门密切合作,帮助确定产品方向,并交付各种产品和应用相关项目。
你好,每个人。我叫格雷格,我在MathWorks的Simulink产品营销万博1manbetx部门工作。在本次网络研讨会中,您将学习如何使用Simulink为手掌大小的四轴飞行万博1manbetx器设计、模拟和部署飞行控制器。它的支持万博1manbetx包PARROT迷你无人机和航空航天积木。本次网络研讨会旨在作为入门资源,将介绍Simulink,四轴飞行器硬件,以及如何使用Simulink附加工具来开发从飞机建模和仿真到部署和飞行万博1manbetx分析的完整工作流程。让我们开始吧。
我们将使用这个大纲来实现今天的网络研讨会目标。将简要介绍Simulink,其附加工具,PARROT迷你无人机的Simulink支万博1manbetx持包,以及硬件本身。万博1manbetx我还会提到如何利用这个网络研讨会来补充大学课程和其他培训活动中的教与学目标。
我将向您展示如何使用Aerospace Blockset来建模和模拟依赖于大气和其他环境条件的飞机和其他机载车辆。然后我们将介绍您需要做什么,将这个模拟带到现实世界,并在PARROT微型无人机上部署飞行控制算法。为此,我将展示如何替换飞机固件,如何使用现成的sim部署和飞行示例在Aerospace Blockset中飞行,以及如何使用Simulink Coder记录飞行数据。万博1manbetx然后我将结束这次网络研讨会。
让我们来看看我们在这次网络研讨会中使用的软件工具和材料。对于这次网络研讨会,我使用了MATLAB®发布2017b, Simuli万博1manbetxnk,以及PARROT迷你无人机、万博1manbetxAerospace Blockset、Simulink Coder和Simulink 3D动画™的Simulink支持包。请注意,Simulink包含了Simulink 3D动画的演示许可证,这万博1manbetx使我们可以在不修改所使用的虚拟现实文件的情况下以3D方式可视化模拟。
在硬件方面,我使用了PARROT的“滚动蜘蛛”迷你无人机、安全护目镜、迷你无人机附带的一根微型USB线、一个支持蓝牙的USB加密狗万博1manbetx®低能耗的驱动器,额外的电池,包括一个迷你无人机,和一个充电器。本次网络研讨会中提供的材料也适用于PARROT Mambo迷你无人机,该无人机于2018年1月开始支持。万博1manbetx
在这篇介绍中,我想回答六个问题。这将有助于让每个人都了解本次网络研讨会所需的背景知识,并邀请您进一步调查。
好吧。什么是基于模型的设计?基于模型的设计是一种能够快速且具有成本效益地开发动态系统的过程,包括控制系统、信号处理和通信系统。在基于模型的设计中,系统模型处于开发过程的中心,从需求开发到设计、实现和测试。模型是一个可执行的规范,您可以在整个开发过程中不断地对其进行细化。
Simulink是什么?万博1manbetx万博1manbetxSimulink是一个用于多域仿真和基于模型的设计的框图环境。它支持万博1manbetx系统级设计、仿真、自动代码生成以及嵌入式系统的持续测试和验证。万博1manbetxSimulink提供了图形化编辑器、可定制的块库以及用于建模和模拟动态系统的求解器。
什么是PARROT迷你无人机?PARROT微型无人机是超紧凑的飞行动力系统,有四个螺旋桨,使它们成为四轴飞行器,它们可以通过智能手机或平板电脑控制。多亏了自动驾驶系统,它们可以变得非常稳定。它们可以结合来自3轴陀螺仪和3轴加速度计的信号,用于飞行高度的压力传感器,用于近地精确飞行的超声波传感器,以及可用于光流和图像处理的下向摄像头。
现在知道了什么是Simulink,什么是万博1manbetxPARROT迷你无人机,什么是PARROT迷你无人机的Simulink支持包?万博1manbetx该支持包万博1manbetx是基于Simulink的官方MathWorks硬件支持插件,允许您通过蓝牙无线设计、模拟和部署PARROT迷你无人机的飞行控制算法。万博1manbetx它可以让你使用机载传感器的组合来开发、模拟和测试飞行控制算法。有了PARROT迷你无人机和Simulink支持包,你就有了一个万博1manbet万博1manbetxx低成本、手掌大小的实验室,可以在教室或家里进行反馈控制实验。
什么是Simuli万博1manbetxnk附加组件?它们提供哪些功能?万博1manbetxSimulink插件是扩展Simulink功能的MathWorks工具。Simu万博1manbetxlink产品系列包括基于事件的建模、物理建模、控制系统、信号处理和无线通信、代码生成、实时仿真和测试、验证和验证、3D可视化和报告的附加工具。
在超过40个Simulink附加工具万博1manbetx中,我想重点介绍我们将在本次网络研讨会中使用的两个。Aerospace Blockset是一个Sim万博1manbetxulink附加工具,它扩展了用于建模和模拟飞机、航天器、火箭、推进系统和无人驾驶飞行器的模块。
万博1manbetxSimulink Coder是一个附加工具,用于从Simulink图(Stateflow)中生成和执行C和c++代码®图表,MATLAB函数。生成的源代码可用于实时和非实时应用程序,包括仿真加速、快速原型和硬件在环仿真。
为什么MathWorks要为PARROT微型无人机开万博1manbet万博1manbetxx发Simulink支持?原因有以下三点。首先,帮助教授和教师培训学生使用无人机作为一个流行的硬件平台基于模型的设计。第二,利用高等教育证明的解决方案,帮助行业创新者理解和采用基于模型的设计。
第三,让人们对基于模型的设计在关键的现实应用中的影响产生兴趣和认识。我们希望您利用这些功能,了解如何将这些功能应用到您的家庭课堂或项目中,并帮助您在几小时内启动并运行,而不是几周或几个月。
除了本次网络研讨会之外,如果您的迷你无人机工作有问题或故障排除步骤,我们将在文档中提供详细的步骤,并附有MATLAB Answers™,可以从硬件目录页面中找到。让我们继续,看看我们如何使用航天Blockset建模和模拟无人机。
航天Blockset提供了一个现成的模拟构建和飞行的例子,我们基于这个网络研讨会。在本节中,您将学习如何从Aerospace Blockset示例中找到并打开四轴飞行器项目的实例。您将简要介绍该示例如何使用此应用程序的最佳实践,向您展示如何运行无人机的仿真,可视化结果的方法,如何修改模型以自定义飞行仿真输入,以及航空航天块集示例提供的飞行控制器的概述。
您可以通过在MATLAB命令窗口中输入doc,选择Aerospace Blockset,单击示例,滚动到四轴飞行器项目来查找并打开仿真模型。在文档页上,您可以找到关于这个示例的详细信息。您也可以在MATLAB命令窗口中输入以下命令直接打开它。
项目环境配置完成后,将出现三个新窗口:Simulink项目名称Quadcopter,四轴飞行器飞行仿真模型的顶层,以及使用Simulink 3D动画的无人机可万博1manbetx视化窗口。Simu万博1manbetxlink项目是一个环境,它允许我们组织与本示例相关的文件、设置和用户定义的任务,并包含它们的一个实例,我们可以在用户的Simulink项目文件夹中本地修改它们,而无需覆盖在Aerospace Blockset中成型的示例文件。
让我们简单介绍一下仿真模型。该模型由六个橙色的主要子系统块组成,其中包含动态系统的数学表示。有一个数学表示的动力学机身,传感器,环境,和飞行控制系统。还有一些块用于为仿真提供输入命令并获得可视化输出。
这里的四个子系统是可变子系统,让我们可以在不同的子系统选择之间切换,因此它们的名称是可变的。在这种情况下,称为飞行控制系统FCS的块不是一个变体子系统,但它是一个建模子系统,这意味着块内容引用了另一个Simulink模型。万博1manbetx在这个模型的顶层还有几个其他的模块用来设置模拟的速度,还有一个模块用来在达到不希望的飞行条件时使模拟停止。
要运行无人机的模拟,您所需要做的就是按下播放键,您将看到Simulink获得系统在T Final中指定的持续时间内的时间响应,然后停止。万博1manbetx您可以使用设置步伐块来更改模拟运行的速度。
例如,您可以在真实的每一秒中只运行十分之一秒的模拟,并将采样时间增加到100微秒,以可视化四轴飞行器的慢动作动画。在运行模拟时,你可以看到迷你无人机的3D模型从地面起飞并盘旋。
如果双击可视化子系统,您将发现另外两个选项。首先,来自各个州的信号被连接到标准座舱飞行仪表显示器上。该仪器将显示飞机变量的测量,在这种情况下,人工地平线,高度计,空速指示器,航向指示器,爬升率指示器,以及四个推进器的RPM百分比指示器。相关信号在提取飞行仪表子系统中找到。
其次,该可视化块包含用于不同子系统的选项,以捕获或显示仿真结果。默认情况下激活的变量是一个Simulink 3D动画选项。万博1manbetx由变量VSS可视化控制的其他三个选项是用于可视化变量和状态的时间响应的范围;工作空间以保存MATLAB工作空间上的时间响应变量及其用于飞行后仿真分析的方法,例如,使用Aerospace Toolbox;和飞行齿轮,一个飞行模拟器渲染飞机动力学在这个第三方和开源模拟器通常用于航空航天工业。
在本次网络研讨会中,我们将使用为所有Simulink用户启用的演示许可来依万博1manbetx赖Simulink 3D动画渲染选项。我们将看到飞行模拟输入的变化如何导致飞机模拟行为的变化。
要修改四轴飞行器飞行模拟输入,可以使用命令子系统。这个有其他四个变体,可以让您选择用于模拟的输入信号的源。有Simulink构建器方法万博1manbetx、操纵杆选项、数据输入变体和从电子表格文件读取。
命令子系统使用的默认变体采用信号构建器,这是我们在本次网络研讨会中使用的一个简单选项。这个变体允许你定义XYZ和盘旋、俯仰、滚转命令作为飞行控制器的参考信号。你可以在信号生成器上修改这些信号,并在模拟中观察飞机行为的变化。您将使用本次网络研讨会中已经介绍过的可视化选项之一。
飞行控制器在FCS子系统中。当我们双击它时,它会打开该块引用的另一个模型。这被称为模型子系统,它包含在基本的Simulink库中。万博1manbetx在这种情况下,该模型子系统包含并封装了最终将部署在无人机上的飞行控制算法。
请记住,仿真模型是基于模型的设计的中心,在我们在真正的硬件上尝试设计之前,它有助于在仿真中测试设计。这有助于在我们准备在硬件上测试之前完善控制设计,也有助于防止测试期间出现各种问题,包括损坏和崩溃。您只能想象MBD对于比迷你无人机更关键的系统的开发和生命周期是多么重要。
让我们看看飞行控制系统里有什么。子系统中的算法是我们的控制器可以包含的内容的一个例子。这个飞行控制器的设计来自于麻省理工学院的Sertac Karaman教授和Fabian Riether教授的工作。它利用包含硬件抽象层的飞机指令感官输入,并向电机和碰撞预测标志提供输出,帮助我们在检测到失稳时停止模拟或飞行。
请知道本次网络研讨会中的飞行控制器是Aerospace Blockset附带的四轴飞行器项目示例的一部分,仅用于此目的。如果您有兴趣设计自己的状态估计器和飞行控制器,您可以从探索飞行控制系统块中的控制器和估计器模型子系统开始。
然而,飞行控制设计超出了本次网络研讨会的范围,但我们邀请您使用这些子系统来提出您自己的设计。例如,麻省理工学院的学生已经使用控制器子系统来实现状态反馈控制器和LQR控制器,作为本科生和研究生反馈控制课程的一部分。
在模拟中设计和调优飞行控制器后,您可能想要生成代码并在迷你无人机硬件上进行测试。现在我们已经更好地了解了无人机的仿真模型及其工作原理,我们可以继续深入了解硬件。
网络研讨会的这一部分将向您介绍如何设置将飞行控制器部署到迷你无人机所需的硬件和无线通信。为了在PARROT微型无人机上部署飞行控制器设计,您首先需要使用Add-On资源管理器下载硬件支持包,并遵循提供的硬件设置步骤。万博1manbetx这将帮助您安装PARROT提供的自定义固件,让Simulink用户设计并将自己的飞行控制算法集成到飞机软件系统中。万博1manbetx固件更换通过一个微型usb连接进行,可能需要大约5分钟。
更换固件后,根据您的操作系统,您应该遵循特定的步骤来启用主机与迷你无人机之间的无线通信。适用于运行Windows系统的计算机®,您将需要启用低功耗蓝牙接口,支持芯片组和驱动程序,或使用具有这些特征的USB加密狗。万博1manbetx对于Windows,推荐的驱动程序是CSR Harmony无线软件堆栈版本2.1.63.0。
对于支持的每一种操作系统—windows、Mac和Linux万博1manbetx®-支持包文万博1manbetx档包括更详细的设置和故障排除步骤。此外,对于某些特定的配置,我们的技术支持团队提供了MATLAB答案,可以帮助解决任何持续的连接问题。万博1manbetx
在用无人机验证蓝牙连接后,在用控制器设计任何飞行测试之前,值得使用支持包中包含的模板来执行桌面测试,其中我们只移动螺旋桨。万博1manbetx为此,您可以通过在MATLAB命令窗口中输入parrot_gettingstarted打开模板,然后单击Deploy To Hardware。
诊断查看器窗口提供有关代码生成、编译、文件传输和执行无人机进程的信息。在这一点上,模型已经准备好在无人机上运行。要运行它,首先在诊断查看器上单击这里打开飞行控制用户界面,并可选地设置您希望模型执行的持续时间。注意此时不要增加飞行控制UI上的功率增益,因为螺旋桨可能会产生足够的推力来启动不受控制的飞行。
接下来,点击开始,你将在迷你无人机上执行你的算法。在这种情况下,循环中没有飞行控制器算法,我们只是向电机发送信号,以确保工具链和蓝牙通信正常工作。
在这些验证完成后,我们可以通过单击Stop来中断算法的执行。飞行控制用户界面让我们下载飞行日志和MAT文件与飞行数据从迷你无人机到当前目录。检索这些文件以便记录和分析是一个很好的实践。一旦热电联产过程已经用无人机进行了测试,我们现在就可以准备部署来自航空航天区块集示例的飞行控制器设计,并执行实际的试飞。
飞行控制器设计就绪,无人机硬件设置和测试完毕后,我们现在将讨论网络研讨会的试飞和分析部分。首先,使用Aerospace Blockset示例,我们将设置硬件目标,专门将代码部署到PARROT微型无人机,并且我们将确保我们已经启用了数据记录,以利用Simulink Coder提供的功能来记录传感器和飞行控制器信号,用于飞行后分析。万博1manbetx
然后,我们将执行第一次试飞,这与支持包在航空航天Blockset,你应该能够在几个小时内复制,甚至更少。万博1manbetx然后,我将解释如何修改命令输入以跟踪用信号生成器定义的高度参考信号,以及如何获取飞行数据以进行分析和可视化。
回到包含Aerospace Bloc万博1manbetxkset示例的Simulink项目,从项目中设置硬件目标,您所需要的只是单击工具条上可用的快捷方式。然后,在四轴飞行器飞行仿真模型上,双击FCS子系统。要在飞机上启用数据记录,您可以在MATLAB命令窗口中输入以下内容。
当启用数据记录时,Simulink模型将在飞行到存储的传感器飞行控制万博1manbetx器信号之前尝试分配内存。请注意,迷你无人机每次飞行只能存储这么多数据,减少飞行持续时间参数T Final,将让您控制分配多少内存。
如果所需内存超过无人机容量,则在飞行控制用户界面上按“开始”键时,Simulink模型将不执行。万博1manbetx考虑到这些因素,我们准备用Aerospace Blockset尝试飞行控制船。然而,其他重要的考虑因素如下。
所有的飞行都是试飞。你应该在模拟中测试飞行控制器的设计和输入是否符合性能标准。在一个足够大的房间里进行试飞,例如,一个至少20英尺× 20英尺× 10英尺高的房间。采取合理的注意措施,防止损坏飞机、周围环境、观察员和您自己。
在超声波灵敏度方面,小房间可能会因为超声波信号在墙壁和家具上反弹而导致飞行稳定性问题。地面材料,例如地毯,可能会吸收超声波信号,影响飞行稳定性。
在相机灵敏度上,地面上的模式可能会影响光流性能和飞行稳定性。照明条件也可能影响光流和图像处理性能和飞行稳定性。记住这些考虑因素,让我们先尝试一下Aerospace Blockset例子中的悬停飞行。
我们单击“部署到硬件”。让Sim万博1manbetxulink构建并将飞行控制器传输到无人机。打开飞行控制用户界面,单击“开始”。确保所有参与者都知道即将进行的试飞。对于每次飞行,最好的做法是下载飞行日志和带有飞行数据的MAT文件,以便飞行后分析。
现在,我将稍微修改飞行控制系统,并引入参考信号,将它们部署到无人机上。我将尝试在左右方向上改变y轴的参考信号,并根据所示的方形信号使无人机改变位置为飞行。为了这个网络研讨会,我为飞行控制器创建了一个可变子系统,让我可以选择这个作为一个选项。
一旦选择,我就进行模拟,在模拟中验证预期的行为,然后部署到硬件并进行测试。我在飞行控制界面上部署到硬件上。这是结果:无人机起飞并保持在中心位置,然后在y中遵循给定的参考信号。
飞行完成后,我从迷你无人机检索飞行日志和MAT文件。我们可以使用存储在MAT文件中的数据来绘制和可视化传感器信号、方向、电机输出、高度、轨迹、位置、速度、光流速度和电池充电百分比。
类似地,我创建了另一个变体系统,改变z轴的参考信号,使无人机改变飞行轮廓显示的高度。我再次进行模拟以验证预期的行为,然后将其部署到硬件上进行测试。
我部署到硬件上。打开飞行控制界面,这是结果。无人机起飞到1米高度,爬升到2米高度,再下降1米,然后下降到地面。
最后,让我们谈谈如何直接从Simulink中提供高度设定点。万博1manbetx我们称之为在外部模式下运行飞行控制器,它在硬件上构建和部署Simulink模型,同时允许在从框图执行期间更新某些参数。万博1manbetx
在这种情况下,我们使用飞行控制器的这种变体,并利用这个仪表板块在飞行过程中手动修改无人机的高度。我部署到硬件上。打开飞行控制UI,这里是试飞的结果。无人机起飞到大约一米的高度,然后按照我从Simulink编辑器发送的高度命令飞行。万博1manbetx
您可以自己尝试对参考信号进行一些其他更改,以测试这个飞行控制器。然而,这个设计只是一个起点,并没有使用大气压力传感器等。你会对飞行控制器做些什么改变让它使用大气压力传感器时更加稳健?
本次网络研讨会的目的是提供使用Simulink模拟建造和飞行手掌大小的无人机的入门资源,您可以使用它来学习控制系统和基于模型的设计。万博1manbetx现在你可以深入研究飞行控制系统,并提出自己的飞行控制策略,设计模拟和测试飞行。现在,您还可以开始使用基于模型的设计(Model-Based Design)来导航V图,并使用Simulink支持的任何模拟、代码生成以及验证和验证工作流的工具来开发技术。万博1manbetx万博1manbetx
最后,这里有一些额外的资源,您可以使用它们来了解更多关于基于模型的设计、Simulink、PARROT迷你无人机的Simulink支持包、Aerospace Blockset,以及如何通过MATLAB 万博1manbetxCentral™、File万博1manbetx Exchange和MATLAB Answers加入社区。谢谢你的加入。我们期待在未来看到您的项目。
您也可以从以下列表中选择一个网站
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。