【问题标题】:ArduPilot, Dronekit-Python, Mavproxy and Mavlink - Hunt for the BottleneckArduPilot、Dronekit-Python、Mavproxy 和 Mavlink - 寻找瓶颈
【发布时间】:2015-09-14 01:39:26
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: dronekit-python


    【解决方案1】:

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

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

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

    【讨论】:

    • 会尝试 - 我的 APM 似乎是似乎不乐意更改 SR0 设置的集合之一(至少通过 Mission Planner);将进行固件更新并在此之后立即尝试(正如一些线程所建议的那样)。你知道什么 SR0_Params 控制流式传输吗? SR1 设置是否也与我的安装相关 - 3DR 在平面 (APM) 和接地 (Pi) 端使用 USB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2021-11-25
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多