0

我正在尝试在我的单人无人机上使用dronekit 运行 helloworld.py。

我的环境是

dronekit==2.7.0
pymavlink>=2.0.0

当我尝试运行简单的 helloworld 示例时,vehicle.connect()超时。

ERROR LOADING MAVNATIVE - falling back to python implementation
Connecting to udpin:0.0.0.0:14550...
>>> Link timeout, no heartbeat in last 5 seconds
>>> No heartbeat in 30 seconds, aborting.
Traceback (most recent call last):
  File "/log/solo-script/helloworld.py", line 9, in <module>
    vehicle = connect("0.0.0.0:14550", wait_ready=True, baud=57600, heartbeat_timeout=30)
  File "/log/solo-script/env/lib/python2.7/site-packages/dronekit/__init__.py", line 2787, in connect
    vehicle.initialize(rate=rate, heartbeat_timeout=heartbeat_timeout)
  File "/log/solo-script/env/lib/python2.7/site-packages/dronekit/__init__.py", line 2060, in initialize
    raise APIException('Timeout in initializing connection.')
dronekit.APIException: Timeout in initializing connection.

我也尝试将 pymavlink 降级到 1.1.73,但没有奏效。任何帮助深表感谢。

4

2 回答 2

0

我有同样的问题。降级 pymavlink 后还构建了旧版本的dronekit。我使用了 2.0.0 并且它工作正常。这里是dronekit 版本的链接:https ://github.com/dronekit/dronekit-python/releases

于 2016-08-20T19:29:07.333 回答
0

确保您使用的是 python2。Dronekit 使用 pymavlink,并且dronekit 代码已更改为 python3,但 pymavlink 在 python3 中给我带来了很多问题,它在 python2 中运行良好。

它看起来像vehicle.initialize方法中的一个问题,但是尝试设置wait_ready = False,如果它有效,那么你的独奏它不会发送dronekit期望的参数:

 # Default parameters when calling wait_ready() or wait_ready(True).
 self._default_ready_attrs = ['parameters', 'gps_0', 'armed', 'mode', 'attitude']

尝试更新您的单独固件并从他们的 git 存储库获取最新的dronekit 和 pymavlink 版本。

于 2017-06-22T20:44:14.307 回答