如何在Android中编写代码以将航点发送到我的3DRobotics无人机?

时间:2015-11-21 22:34:07

标签: dronekit-android 3dr

下午好。

目前我正在尝试在"主要活动中编写代码"向我的IRIS无人机发送一些航路点,但它只在积分为5时才有效。你能检查一下我的代码并给我一些关于发生了什么的建议,以及如何向我的无人机发送更多航路点?我非常感谢您的帮助,因为我是Android的新成员:

代码:

public void onBtnConnectTap3(View view) {

        if (this.drone.isConnected()) {
        this.drone.disconnect();
         } else {
        Spinner connectionSelector = (Spinner) findViewById(R.id.selectConnectionType);
        int selectedConnectionType = connectionSelector.getSelectedItemPosition();

        Bundle extraParams = new Bundle();
        if (selectedConnectionType == ConnectionType.TYPE_USB) {
            extraParams.putInt(ConnectionType.EXTRA_USB_BAUD_RATE, DEFAULT_USB_BAUD_RATE); // Set default baud rate to 57600
        } else {
            extraParams.putInt(ConnectionType.EXTRA_UDP_SERVER_PORT, DEFAULT_UDP_PORT); // Set default baud rate to 14550
        }
        ConnectionParameter connectionParams = new ConnectionParameter(selectedConnectionType, extraParams, null);
        this.drone.connect(connectionParams);
        }

        currentMission = new Mission();
        currentMission.clear();

        for (int i = 1; i < 20; i++) {

        waypoint2=new Waypoint();
        yaw=new YawCondition();
        waypoint2.setCoordinate(new LatLongAlt( i, i, i));
        yaw.setAngle(i);
        missionI3 = waypoint2;
        currentMission.addMissionItem(missionI3);
        missionI2=yaw;
        currentMission.addMissionItem(missionI2);
        }

         this.drone.generateDronie();
         this.drone.setMission(currentMission, true);
         this.drone.arm(true);

        }

Dependencies in Build.gradle:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.o3dr.android:dronekit-android:2.3.11'
    }

我想知道您是否也知道如何在Android中为3DRobotics无人机开发应用程序,同时考虑到我的主要来源是:http://android.dronekit.io/first_app.htmlhttp://android.dronekit.io/javadoc/

提前感谢您的回答。

1 个答案:

答案 0 :(得分:4)

我不完全确定您要完成的任务,但我发现您的代码中存在一些可能的错误。

  1. 使用最新的dronekit-android。目前的版本是2.7.0。您可以在此处https://bintray.com/3drobotics/maven/dronekit-android/view

  2. 了解最新版本
  3. 你正在组建一个包含38个项目(19个航点和19个偏航)的任务。通过将航点坐标设置为1,1,1 ... 19,19,19,您正在做一件非常不安全的事情。你的车辆会飞到我认为你不想要的地方。

  4. 我不确定你为什么generateDronie()。根据文档

      

    生成动作以创建dronie任务,并将其上传到连接的无人机。

  5. 一个dronie是一个特定类型的任务,将飞行自拍路径。

    1. setMission()是正确的。但是,代码的最后一步是布防车辆。你需要告诉无人机实际执行任务。您可以使用startMission()类中的MissionApi方法执行此操作。

    2. 使用相同的用户交互小心设置和启动任务。 setMission()始终无法上传到车辆。如果是这种情况,startMission()将运行上次成功上传到车辆的任务。

      您可以通过收听广播AttributeEvent.MISSION_SENT来验证上传是否成功。

    3. 您可以通过向您认为缺少或需要澄清的API添加javadoc来为文档做出贡献。