Я извиняюсь за сообщение здесь, так как у меня нет репутации 50, чтобы комментировать.
Ваша конфигурация:
Контроллер полета: PixHawk 2.1
Компьютер-компаньон: Raspberry Pi
Операционная система компьютера-компаньона: Ubuntu?
API-интерфейс для дрона компьютера-компаньона: dronekit
Чего не хватает для лучшего анализа: Автопилот состоит из контроллера полета и кода. В вашем случае это Ardupilot или PX4?
В случае с Ardupilot я мог бы ответить, где вы можете споткнуться. (PX4 аналогичен, но если вы используете дронкит, я настоятельно рекомендую использовать Ardupilot/вертолет вместо PX4; это мнение, основанное на опыте)
Попробуйте следующее по порядку
- в строке подключения, если wait_ready = false, то он никогда не будет поставлен на охрану, поэтому вы зацикливаетесь.
Это в основном связано с тем, что проверки, выполняемые для проверки готовности, аналогичны проверкам, выполняемым при постановке на охрану. .
Единственный случай, когда wait_ready = ложное срабатывание, — это когда используются маски проверки готовности, чтобы избежать проверок.
2. http://ardupilot.org/copter/docs/parameters.html#arming-check-arm-checks-to-peform-bitmask
показывает список проверок, сделанных автопилотом, при длительном включении маски для отключения определенных проверок.
Это должно позволить вам просмотреть список систем для регулярных проверок в случае сбоя.< br> Это должно быть похоже на PX4 с различиями в терминологии и порядке, но основная логика будет очень похожей.
Еще одна вещь, которая может быть неясна, — это порядок операций.
Ваш исходный код (или код в целом) -> использование Dronekit на компьютере взаимодействует с автопилотом через Ardupilot/PX4 -> Затем автопилот управляет дроном в соответствии с инструкциями.
Вот предостережение о программировании дрона.
Почти во всех случаях вы программируете инструкции для автопилота (контроллер полета, который взаимодействует с помощью Adrupilot/PX4), который затем выполняет действия. Автопилот со всей своей мудростью может отказаться выполнять какие-либо действия, если эти действия не проходят его проверки.
Этот отказ со стороны автопилота выполнять действия не отображается как ошибка, потому что это не ошибка. Вы дали ему действительное действие, и ему просто не хотелось его выполнять, так как вы провалили его проверки.
Это то, что может происходить в вашем случае.
person
Nashnir
schedule
03.09.2018