Dronekit python车辆连接超时

时间:2016-07-09 06:29:54

标签: dronekit-python dronekit

我正试图在我的独唱无人机上使用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,但是没有用。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。降级后pymavlink也构建了旧版本的dronekit。我使用2.0.0及其工作。这是dronekit版本的链接:https://github.com/dronekit/dronekit-python/releases

答案 1 :(得分: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 repo获取最新的dronekit和pymavlink版本。