gpt4 book ai didi

node.js - 如何使用mavlink从NodeJs发送数据到APM?

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:53 38 4
gpt4 key购买 nike

如何使用node-mavlink从NodeJS将参数写入ArduPilot(APM)?例如更改地理围栏启用?

最佳答案

您应该在此处阅读 mavlink 参数协议(protocol)的文档:http://qgroundcontrol.org/mavlink/parameter_protocol

基本思想是,您发送 PARAM_SET 消息来设置参数值,然后等待具有您所设置的值的 PARAM_VALUE 消息形式的 ACK只需设置即可。

enter image description here

PARAM_SETPARAM_VALUE 消息的文档位于 mavlink 定义 XML 文件中:https://github.com/omcaree/node-mavlink/blob/c30f8a63ca6a1ebc1669fefcd07bb3780540e41b/src/mavlink/message_definitions/v1.0/common.xml#L966

以下是创建和发送 PARAM_SET 消息以启用地理围栏的(未经测试)示例。

我检查了ArduCopter/APM:Copter parameter documentation了解您想要的参数名为 FENCE_ENABLE,并且值 1 表示它已启用。我检查了mavlink message definition for the MAV_PARAM_TYPE enum了解 param_type 参数的枚举值以指定 UINT_8(我对 bool 参数类型的最佳猜测)。

myMAV.createMessage(
"PARAM_SET",
{
'target_system': 1,
'target_component': 1,
'param_id': 'FENCE_ENABLE',
'param_value': 1.0,
'param_type': 1
},
function(message) {
serialport.write(message.buffer);
});

(有关如何加载和初始化库的信息,请参阅 "Initialization" section of the node-mavlink documentation。)

我还没有编写从无人机接收ACK的代码,但是"Parsing Data" section of the documentation将指导您如何做到这一点。

关于node.js - 如何使用mavlink从NodeJs发送数据到APM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855028/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com