我为这里的消息道歉,因为我没有 50 名声望来发表评论。
您的配置:
飞控:PixHawk 2.1
配套电脑:树莓派
配套电脑 操作系统:Ubuntu?
伴侣电脑无人机 API:dronekit
更好的分析缺少什么:自动驾驶仪由飞行控制器和代码组成。在您的情况下是 Ardupilot 还是 PX4?
在 Ardupilot 的情况下,我也许可以回答您可能在哪里绊倒。(PX4 类似,但如果您使用的是dronekit,我强烈建议您使用 Ardupilot/copter 而不是 PX4;这是基于经验的意见)
按顺序尝试以下
- 在连接字符串中,如果 wait_ready = false 那么它永远不会首先准备好,因此您会陷入循环。
这主要是因为检查它是否准备好所做的检查与布防中所做的检查相似。
wait_ready = false 武器的唯一情况是使用武装检查掩码来避免检查。
2. http://ardupilot.org/copter/docs/parameters.html#arming-check-arm-checks-to-peform-bitmask
显示自动驾驶仪完成的检查列表,同时使用面具进行长时间武装以关闭某些检查。
这应该允许您通过系统列表进行定期检查,以防出现故障。
这在 PX4 中应该是相似的,但术语和顺序有所不同,但底层逻辑将非常相似。
另一件可能不清楚的是操作的顺序。
您的源代码(或一般代码)-> 在计算机上使用 Dronekit 通过 Ardupilot/PX4 与自动驾驶仪对话-> 自动驾驶仪然后按照说明驾驶无人机
这是对无人机编程的警告。
在几乎所有情况下,您都在为自动驾驶仪(使用 Adrupilot/PX4 进行交互的飞行控制器)编写指令,然后自动驾驶仪执行这些操作。如果这些动作未能通过检查,自动驾驶仪可能会拒绝执行任何动作。
拒绝自动驾驶仪部分执行操作不会显示为错误,因为它不是错误。你给了它一个有效的动作,它只是不想执行它,因为你没有通过它的检查。
这就是你的情况可能发生的事情。