陷入Pymav中的wait_heartbeat()链接这里链接

问题描述 投票:0回答:1

我对 HereLink 和 Pymavlink 还很陌生。

我有一个连接到 Linux 机器的 HereLink RC 控制器。 RC 与 Airunit 配对:

Air-unit ← - - - - - - → RC ↔ Linux 机器(运行 pymavlink)

在 Linux 机器内,我有一个非常简单的 Python 脚本:

master = mavutil.mavlink_connection('udp:192.168.144.133:14550', baud=57600)

master.wait_heartbeat()

while True:
    try:
        print(master.recv_match().to_dict())
    except:
        pass
    time.sleep(0.1)

我的代码卡在

wait_heartbeat()
函数上。如果我在 Linux 机器上打开 QGC 应用程序,这个
wait_heartbeat()
功能就会开始工作,然后我开始接收消息。看起来 QGC 正在幕后施展我不知道的魔法。

如果有人能帮助找出这背后的原因和逻辑,我将非常感激:)

python-3.x mavlink
1个回答
0
投票

有同样的问题。

Ubuntu 22.04.4。 Python 3.12.2。 HolyBro Pixhawk 6C。 PX4 1.14.0 固件。电缆:PC 上的 USB-A 到 Pixhawk 上的 USB-C。

udev 文件:

SUBSYSTEM=="tty", ATTRS{idVendor}=="3185", ATTRS{idProduct}=="0038", SYMLINK+="ttyPixhawk"

代码:

from pymavlink import mavutil
master = mavutil.mavlink_connection("/dev/ttyPixhawk", 115200)
master.wait_heartbeat()

永远不会从 wait_heartbeat() 调用中返回。如果我运行 QGroundControl (4.3.0) 然后退出,我上面的代码就可以工作。

用户 MerseyViking 去年也经历过这种情况(为什么我的 Pixhawk 4 拒绝通过 USB 串行通信?

我已经尝试了大部分 pymavlink 示例脚本。同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.