主要内容

用Simulink实现任务协议和参数协议等微服务的数据交换金宝app

这个例子展示了如何实现MAVLink微服务任务的协议参数协议使用Simulink®中的MAVLink Serializer和MAVLink Deserializer块。金宝app

这个示例使用:

  • MATLAB®

  • 金宝app仿真软件®

  • 无人机工具箱™

  • Stateflow™

  • 仪器控制工具箱™

  • DSP系统工具箱™

MAVLink中的任务协议微服务允许地面控制站(GCS)与无人机通信,发送和接收执行任务所需的任务信息。Mission协议微服务允许您:

  • 从地面监控系统上传任务到无人机上

  • 从无人机上下载一个任务

  • 设置当前任务项

MAVLink中的参数协议微服务允许你在无人机和GCS之间交换代表重要配置信息的参数。参数表示为键值对。

这个例子解释了如何:

  • 从GCS上传一个包含10个路径点的任务到Simulink中模拟的无人机。金宝app使用QGroundControl (QGC)gc。如果主机上没有安装QGC,请从以下网站下载在这里

  • 从QGC和无人机读取和写入数据到28个参数的列表。

设计模型

要开始,请遵循以下步骤:

1.打开exampleHelperMAVLinkMissionAndParamProtocol文件,单击运行.这将创建在Simulink中初始化数据并将自动驾驶参数上传到QGC所需的工作区变量。金宝app

2.在Simulink中通过单击启动示例模型金宝app开放模式在这一页的顶部。单击后,您还可以使用以下命令在任何时候启动模型开放模式按钮:

open_system (“MissionAndParameterProtocolUsingMAVLink.slx”);

Simu金宝applink模型包括:

1.模型设置:模型中的这个区域由两个子系统块组成——初始化函数和全局数据存储。这些块用于从基本工作空间中生成的信号初始化将在模型中使用的数据。

2.协议的处方:模型中的这个区域由receive_udp子系统块,用于从QGC接收UDP数据。子系统包含一个Simulink函数,在每个仿真步骤金宝app中,通过UDP从QGC读取MAVLink数据。接收到的MAVLink数据被传递给一个状态流图进行解码和解析。

3.任务的协议:模型中的这个区域由两个子系统块组成,它们向QGC发送任务请求和任务确认。这些函数是从实现任务微服务的状态流图中调用的。

4.任务及参数协议:在模型中实现任务和参数逻辑的状态流程图。

接收到的MAVLink数据在process_udp金宝appSimulink函数,然后传递给执行四个任务的statflow逻辑:

一个。ReceivingMission:这个statflow子图从QGC接收一个任务,并解码任务中的路径点。它实现了任务微服务的协议,将任务从QGC上传到无人机,如上传一个任务到飞行器上

b。SendingParams:这个statflow子图通过遵循参数协议将在基本工作空间中创建的参数上传到QGC,如阅读所有参数

c。SendSingleParams:这个statflow子图定义了如何将单个参数从从属组件发送到QGC,如读单参数

d。WriteSingleParam:这个statflow子图定义了如何从QGC更新参数值,并在无人机上看到它们,如写参数

5.逻辑读取接收的路径点和参数: statflow实现两个协议,输出接收到的路点和上传的参数值。

下一节解释如何从QGC上传一个任务到无人机。

从QGC上传一个任务到无人机,并运行Simulink模型金宝app

1.启动QGC并导航到平面图

2.一个预先计划的任务,MissionProtocol.plan,可与本示例一起使用。点击开放模式将计划文件保存到您的计算机。保存.plan文件之后,启动QGC,然后单击文件>开放上载计划予QGC。

上传计划后,任务在QGC中可见。

3.运行Simuli金宝appnk模型。Simu金宝applink模型通过MAVLink向QGC发送HEARTBEAT消息,从而与QGC建立连接。

4.点击上传在QGC界面右上角上传QGroundControl的任务。

5.观察在Simulink中显示的上传任务的前两个路径点的纬度和经度值。金宝app

6.通过将路径点拖到计划中的不同位置来更改QGC中的waypoint1和waypoint2。点击上传修改后的任务上传要求

7.在Simulink中观察路径点1和2的纬度/经度值的修改。金宝app

修改QGC中的参数并发送到Simulink金宝app

当你运行exampleHelperMAVLinkMissionAndParamProtocol文件,一个工作空间变量apParams,这是一个由28个飞行参数组成的数组。

当您运行Simulink模型时,它金宝app连接到QGC, QGC从Simulink读取参数。

可在QGC中可视化和修改参数:

1.导航到车辆设置窗格中。选择参数选项卡。

2.在参数选项卡上,选择其他以列出QGC从Simulink读取的所有参数。金宝app

3.该模型显示GDNC_TSTAR和GDNC_TURN_LEAD参数的值。单击“GDNC_TSTAR”和“GDNC_TURN_LEAD”参数,在QGC中修改对应的值。

4.QGC使用参数协议微服务将这些修改后的参数值写入Simulink。金宝app观察在Simulink中被修改的参数值。金宝app

其他可以尝试的事情

本例中解释的状态流图没有实现以下场景:

  • 如果无人机与QGC之间的通信在某一时刻中断并重新连接,则在断开之前无人机传输数据的航路点之后,任务协议上传应恢复。

您可以修改statflow图表,以便即使通信中断,statflow也能记住最后传输的路径点。