0

我按照以下链接的示例代码

http://android.dronekit.io/first_app.html

当我设置 API VehicleApi.getApi(this.drone).arm(true); vehicleState.isFlying() 自动变为 true。

谁能告诉我这个问题是什么?

我需要的是:1.起飞,降落

我从一些网站上了解到,dronekit-android 不支持模式更改。如果是这样,我应该如何发送mavlink消息起飞和降落?到目前为止,我可以成功地将mavlink消息发送到PX4板。

感谢回复。

谢谢你的回复。

BR肖恩

4

2 回答 2

0

如果您跟踪dronekit-android 中的一些代码,您可以看到这里isFlying设置的代码如下。

boolean isFlying = systemStatus == MAV_STATE.MAV_STATE_ACTIVE || ...;

MAV_STATE_ACTIVE,在这里定义状态

系统处于活动状态,可能已经在空中。电机已接合。

所以isFlying并不意味着它是空中的,而只是电机已打开。当您打电话时会发生这种情况,VehicleApi.getApi(this.drone).arm(true);因为您此时实际上是在武装车辆。

对于起飞,您想使用 ControlApi。ControlApi.getApi(drone).takeOff(desired_altitude, listener)对于你需要使用的土地VehicleApi.getApi(drone).setVehicleMode(VehicleMode.COPTER_LAND, listener)

您正在查看的示例代码非常古老。我建议您遵循github 上的示例应用程序。

于 2017-01-06T07:14:48.017 回答
0

我之前没有尝试过 android-dronekit ,我注意到src文件夹在github上已经两年多没有更新了。

我建议你使用python-dronekit,因为在 python 中有一个强大的库叫做pymavlink并在python-dronekit中使用。如果需要,您可以构建超级应用程序,但首先尝试在 python 中起飞和降落。

于 2018-03-07T23:03:00.810 回答