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