首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QGroundControl连接mavlink (在RPi上)

使用QGroundControl连接mavlink (在RPi上)
EN

Stack Overflow用户
提问于 2020-11-24 14:12:40
回答 2查看 1.1K关注 0票数 0

我正在尝试通过3DR无线电遥测将Mavlink (安装在RPi上)与QGroundControl连接,以便从RPi传输遥测数据,而不依赖于Ardupilot/Px4飞行控制器。我想使用mavlink的消息格式来实现GPS或位置等数据的传输,而不依赖于ardupilot/PX4。

到目前为止,我已经从mavlink git中获取了示例代码,并按照说明构建了代码。我启动了QGroundControl,并且能够从QGC接收系统ID和组件ID。我修改了代码,将心跳从RPI-mavlink传输到QGroundControl。

代码语言:javascript
复制
mavlink_msg_heartbeat_pack(system_id, 200, &msg, MAV_TYPE_HELICOPTER, MAV_AUTOPILOT_GENERIC, MAV_MODE_GUIDED_ARMED, 0, MAV_STATE_ACTIVE);

int len_hb = write_message(msg);

在构建并执行这段代码之后,我希望QGroundControl能够连接/显示收到的消息,但在QGroundControl上却什么都没有。

我需要了解我所做的是不是正确的方式,或者是否有预先定义的方法来建立这种交流。请帮助我在没有ardupilot/Px4的情况下完成消息传输的文档(如果有)。如果有人能在这个问题上指导我,那将是非常有帮助的。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-12-01 21:06:31

如果使用RPi,则不需要3DR无线电遥测。您可以通过WiFi或远程终端设备连接RPi,以发送/接收Mavlink数据。您需要:

  1. Wire the RPi to the flight controller;
  2. Setup the Mavlink port in the QGroundControl,让飞行控制器将数据发送到遥测端口;pymavlink将mavlink-router安装到

,您可以在地面站接收mavlink数据,您可以使用pymavlink发送mavlink消息。有一个sample code

票数 1
EN

Stack Overflow用户

发布于 2021-06-18 23:39:31

如果我没理解错的话,那么你要做的就是用树莓派开发你自己的飞行控制器。并且,您希望它在QGC中被检测为车辆。

您从mavlink存储库引用的示例代码在地面站上用于接收来自飞行控制器的消息,并向其发送命令消息。但是,您正在尝试从飞行控制员向地面站发送消息。

您首先要做的是保持以1 1Hz的频率发送心跳消息,如mavlink文档页面上的heartbeat microservice中所述。我猜,如果QGroundControl连续5秒接收到来自车辆的心跳信号,它就会检测到车辆。在此之后,您还必须以1 1Hz的频率发送心跳,否则即使您正在向QGC发送其他mavlink消息,QGC也会显示通信丢失。

最重要的是,有许多mavlink消息,可以对不同的飞行控制器有不同的解释。因此,在某些情况下,你要么必须在一定程度上将你的代码与现有的飞行控制器相匹配,要么你必须修改QGC以适应你实现飞行控制器的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64981118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档