dronekit-python: Vehicle.commands.download() timeout when called multiple times on a telemetry link brokered by MAVProxy

When calling Vehicle.commands.download() and Vehicle.commands.wait_ready() repeatedly through MAVProxy, the wait_ready() always fail after a number of trials:

  File "/usr/local/lib/python2.7/dist-packages/dronekit/__init__.py", line 2650, in wait_ready
    return self._vehicle.wait_ready('commands', **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/dronekit/__init__.py", line 2182, in wait_ready
    timeout)
dronekit.APIException: wait_ready experienced a timeout after 30 seconds.

The above error is guaranteed to be thrown when running the following integration test:

https://gist.github.com/tribbloid/13d1bb022c0b681a9ee4a65f1067376e

I don’t know if its a DK issue or MAVProxy issue. So I’ll just submit a failed test to both projects. Please resolve it if DK is not the culprit.

About this issue

  • Original URL
  • State: open
  • Created 8 years ago
  • Comments: 19 (4 by maintainers)

Commits related to this issue

Most upvoted comments

Assuming that your connection string is ok, sometimes you just need to extend the timeout period to get rid of the issue. Here is what I do:

  1. vehicle = connect(…, wait_ready=None) --> or do not set wait_ready
  2. vehicle.wait_ready(True, timeout=<timeout_in_seconds>)

This will connect with the vehicle and then wait until all the main messages have been received up to timeout_in_seconds