Raspberry pi 将mavlink(RPi上)与QGroundControl连接

Raspberry pi 将mavlink(RPi上)与QGroundControl连接,raspberry-pi,telemetry,mavlink,qgroundcontrol,Raspberry Pi,Telemetry,Mavlink,Qgroundcontrol,我正在尝试通过3DR无线电遥测将Mavlink(安装在RPi上)与QGroundControl连接,以便在不依赖Ardupilot/Px4 FlightController的情况下从RPi传输遥测数据。我想使用mavlink的消息格式实现GPS或Postion等数据的传输,而不依赖ardupilot/PX4 到目前为止,我已经从git获取了示例代码,并按照说明构建了代码。我启动QGroundControl并能够从QGC接收系统ID和组件ID。我修改了代码,将心跳信号从RPI mavlink传输到

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

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

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上没有可用的内容

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);
我需要了解我所做的是否是正确的方式,或者是否有预定义的方法来建立这种沟通。请帮助我完成无需ardupilot/Px4的信息传输所需的文档(如有)。如果有人能在这个问题上指导我,那将非常有帮助


谢谢

如果您使用RPi,您不需要3DR无线电遥测。您可以通过WiFi或LTE连接RPi以发送/接收Mavlink数据。你需要:

  • )
  • ,让飞行控制器将数据发送到遥测端口
  • 安装到RPI上
  • )
  • 当您可以在地面站接收mavlink数据时,您可以使用pymavlink发送mavlink消息。有一个

  • 如果我正确理解了这个问题,那么您正在尝试使用raspberry pi开发您自己的飞行控制器。并且,您希望它在QGC中被检测为车辆

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

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

    除此之外,还有许多mavlink消息,它们可以对不同的飞行控制器进行不同的解释。因此,在某一点上,您要么必须在一定程度上将代码与现有的飞行控制器相匹配,要么必须修改QGC以处理如何实现飞行控制器