0

我正在尝试做一个简单的Takeoff命令。

下面是代码:

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {
                alertUser("Error: " + executionError);
            }

            @Override
            public void onTimeout() {

                alertUser("timeout");

            }
        });

虽然我正在设法 ARM 直升机,但起飞命令总是返回错误,有executionError3 或 4,我不知道这是什么意思?任何人有executionError代码的含义?或者也许知道是什么问题?

4

1 回答 1

2

[已解决]。以下是代码正常工作需要采取的步骤:

1.

VehicleApi.getApi(this.drone).arm(true, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {

            }

            @Override
            public void onTimeout() {

            }
        });

onSuccess确保您在方法中得到正确的响应。

2.

VehicleApi.getApi(drone).setVehicleMode(VehicleMode.COPTER_GUIDED);

这是我的问题所在。我以某种方式设法将直升机放入Guided_NoGps 根据 Arducopter 文档,这种模式可以在没有足够 GPS 卫星数量的情况下使用。您还需要 GPS 中的 3DFix 才能切换到Guided模式。您需要确保您拥有超过 9 个稳定的卫星锁,否则此代码将无法正常工作。

3.

运行下面的代码

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(int executionError) {
                alertUser("Error: " + executionError);
            }

            @Override
            public void onTimeout() {

                alertUser("timeout");

            }
        });

我已经在基于 PX4 控制器的真实四轴飞行器上对此进行了测试。您还需要 ArduCopter 3.4 版(或更高版本)

于 2017-04-29T15:07:59.303 回答