0

我在飞机上安装了 Ardupilot,使用 3DR Radio 回到地面上的 Raspberry Pi,做一些基于地理和姿态的高级数学运算,并向飞行员提供音频反馈(而不是看屏幕)。

我正在使用 Dronekit-python,它又使用 Mavproxy 和 Mavlink。我发现我只能以大约 3hz 的频率向 Pi 获取新的姿态数据——而且我不确定瓶颈在哪里:

  • 3DR 以 57.6 khz 运行,一切顺利
  • 我已关闭将日志从 Ardupilot 自动推送到 Pi(Mavproxy 的一部分)
  • Pi 可以根据需要随时通过 DroneKit Python API 请求姿态数据(滚动、偏航等),但大约每 1/3 秒才获取新数据(即值的变化)。

我对底层架构的了解不够深入,无法理解瓶颈可能是什么——有人能帮忙吗?从基地到计划再回来的往返消息响应时间是否可能(从我读过的内容来看,其他人似乎从 Mavlink 获得了大约 8hz)?还是 Mavproxy、Mavlink 和 Drone Kit 组合的延迟?或者在 Ardupilot 或 Telemetry 中是否有一些设置可以驱动这个。

我知道这不一定是 DroneKit 问题,但不确定它的去向,因为它跨越了很多组件。

4

1 回答 1

0

请求单个数据包应该可以工作,但这绝不意味着每秒请求很多次。

为了每秒多次获取某个数据包,请设置流。流将每秒触发一定次数,然后将自动发送与其关联的任何数据包。ATTITUDE 消息位于名为 的组中EXTRA1

假设您希望每秒接收 10 条 ATTITUDE 消息。调用相关参数SR0_EXTRA1。这定义了每秒发送的态度数据包的数量。默认值为 4。尝试将该参数增加到 10。

于 2015-09-14T03:04:19.147 回答