у нас есть небольшие проблемы с тем, чтобы Dronekit работал с нашим коптером. До сих пор мы тестировали все с помощью SITL, и все работает нормально, однако этот успех не очень хорошо перешел на реальную вещь.
Наша установка: Windows GCS с запущенным Mavproxy (ведущий через COM9, выходы UDP для сценария Dronekit и планировщика миссий) и базовый сценарий Dronekit (взлет и приземление). См. Диаграмму для более ясного объяснения.
Мы используем следующую команду при запуске MAVProxy: mavproxy.exe --master = com9,57600 --out = udp: 127.0.0.1: 14550 --out = udp: 127.0.0.1: 14551 --console
Проблема, с которой мы сталкиваемся, связана с подключением к транспортному средству (http://python.dronekit.io/guide/connecting_vehicle.html), мы можем подключиться к дрону и получить некоторую информацию о плате. Однако тогда мы не получаем контрольное сообщение в течение 30 секунд, что приводит к тайм-ауту.
>>> APM:Copter V3.5.2 (4322ffda)
>>> PX4: 1d6bf64c NuttX: 1a99ba58
>>> Frame: QUAD
>>> PX4v3 0020002E 30365110 35323931
Traceback (most recent call last):
File "C:/Users/simon/PycharmProjects/uas_lol/test_mission.py", line 32, in <module>
vehicle = connect(connection_string, wait_ready=True, baud=57600, heartbeat_timeout=120)
File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2849, in connect
vehicle.wait_ready(True)
File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2199, in wait_ready
timeout)
dronekit.APIException: wait_ready experienced a timeout after 30 seconds.
Process finished with exit code 1
Мы можем обойти тайм-аут, установив wait_ready = False. Используя это, мы можем подключиться к транспортному средству и вооружить дрон. Когда дело доходит до взлета, это работает только иногда. Мы обнаруживаем, что это с большей вероятностью сработает (взлетит), когда мы сбросим MAVProxy.
Я хотел бы подтвердить, что подключение к дрону по udp 127.0.0.1:14550 с Планировщиком миссий работает отлично.
Мы будем очень признательны за любое понимание того, что мы делаем неправильно, спасибо!