这个例子展示了如何实现MAVLink微服务,比如任务协议和参数协议在Simulink®中使用MAVLink序列化程序和MAVLink反序列化程序块。万博1manbetx
此示例使用:
MATLAB®
万博1manbetxSimulink®
无人机工具箱™
状态流™
仪表控制工具箱™
DSP系统工具箱™
MAVLink中的任务协议微服务允许地面控制站(GCS)与无人机通信,以发送和接收执行任务所需的任务信息。任务协议微服务允许您:
将任务从地面军事系统上传到无人机
从无人机上下载任务
设置当前任务项
MAVLink中的参数协议微服务允许您在无人机和地面军事系统之间交换表示重要配置信息的参数。参数表示为键值对。
此示例说明了如何:
从QGC和无人机向包含28个参数的列表中读取和写入数据。
要开始,请执行以下步骤:
1.打开示例HelperMavlinkMissionandParamProtocol在MATLAB中创建文件并单击跑. 这将创建初始化Simulink中的数据并将自动驾驶仪参数上载到QGC所需的工作区变量。万博1manbetx
2.通过单击在Simulink中启动示例模型万博1manbetx开放模型在本页的顶部。您还可以在单击后随时使用以下命令启动模型开放模型按钮一次:
开放式系统('使用mavlink.slx解释任务和参数');
Simu万博1manbetxlink模型包括:
1.模型设置:模型中的此区域由两个子系统块组成-初始化功能和全局数据存储。这些块用于根据基本工作区中生成的信号初始化模型中使用的数据。
2.协议接收:模型中的此区域包括接收udp
用于从QGC接收UDP数据的子系统块。子系统包含一个Simulink函数,该函数在每个模拟步骤中通过UDP从QGC读取MAVLink数据。接收到的MAVLink数据被传递到状态万博1manbetx流程图进行解码和解析。
3.任务协议:模型中的该区域由两个子系统块组成,它们向QGC发送任务请求和任务确认。这些函数从实现任务微服务的状态流程图中调用。
4.任务和参数协议:在模型中实现任务和参数逻辑的状态流程图。
接收到的MAVLink数据在进程udp
万博1manbetxSimulink函数,然后传递给执行四项任务的Stateflow逻辑:
A.接收:此Stateflow subchart从QGC接收任务,并解码任务中的航路点。它实现了任务微服务协议,将任务从QGC上传到无人机,如中所述将任务上载到车辆.
B发送参数:此Stateflow子图表通过遵循参数协议将在基本工作区中创建的参数上载到QGC,如中所述读取所有参数.
CSendSingleParams:此Stateflow子图表定义了如何将单个参数从无人机发送到QGC,如中所述读取单个参数.
DWriteSingleParam:此Stateflow子图表定义如何更新QGC中的参数值,并在无人机上查看这些值,如中所述写入参数.
5.读取接收的航路点和参数的逻辑:Stateflow实现两个协议并输出接收的航路点和上传的参数值。
下一节解释如何将任务从QGC上传到无人机。
1.启动QGC并导航到平面图.
2.预先计划好的任务,任务计划,可与此示例一起使用。点击开放模型在本页顶部,将计划文件保存到计算机。保存.plan文件后,启动QGC,然后单击文件>打开将计划上传至QGC。
上传计划后,任务在QGC中可见。
3.运行Simulin万博1manbetxk模型。Simulink模型通过MAVLink向QGC发送心跳消息,从而与QGC建立连接。
4.点击上载在QGC界面右上角,从QGroundControl上传任务。
5.观察上传任务的前两个航路点的纬度和经度值是否显示在Simulink中。万博1manbetx
6.通过将航路点拖动到平面图中的不同位置,更改QGC中的航路点1和航路点2。点击上传修改后的任务需要上传.
7.观察Simulink中航路点1和2的修改纬度/经度值。万博1manbetx
当你运行示例HelperMavlinkMissionandParamProtocolMATLAB命令窗口中的文件,一个工作空间变量服装创建,这是一个包含28个飞行参数的数组。
运行Simulink模型时,它连接万博1manbetx到QGC,QGC从Simulink读取参数。
参数可以在QGC中可视化和修改:
1.导航到车辆设置QGC中的窗格。选择参数标签。
2.在参数选项卡,选择另外列出QGC从Simulink读取的所有参数。万博1manbetx
3.该模型显示GDNC_TSTAR和GDNC_TURN_LEAD参数的值。单击GDNC_TSTAR和GDNC_TURN_LEAD参数,并在QGC中修改其相应值。
4.QGC使用参数协议microservice将这些修改参数的值写入Simulink。观察Simulink中正在修改的参数值。万博1manbetx
本例中解释的状态流程图未实现以下场景:
如果无人机和QGC之间的通信在某个点中断并重新连接,则任务协议上传应在无人机在断开连接之前从其传输数据的航路点后恢复。
您可以修改Stateflow图表,以便即使在通信中断时,Stateflow也能记住最后发送的航路点。