Сроки Миссия не выполняет миссии

Я хочу сделать график времени, где дрон посещает точку и выполняет миссию горячей точки там. Но в настоящее время дрон только взлетает, миссия заканчивается, и дрон возвращается обратно. Я проверил onProgress, не так много можно найти.

Вот мой код

fun initTimelineMission() {
        if (!isHomePointSet) {
            Log.e(TAG, "Home point not set")
        } else {
            val elements = ArrayList<TimelineElement>()

            missionControl = MissionControl.getInstance()
            //val preEvent: TimelineEvent? = null
            val listener = MissionControl.Listener { element, event, error ->
                updateTimelineStatus(element, event, error)
            }

            elements.add(TakeOffAction())
            elements.add(GoToAction(altitude.toFloat()))
            val attitude = Attitude(0.0f, Rotation.NO_ROTATION, Rotation.NO_ROTATION)
//            val gimbalAction = GimbalAttitudeAction(attitude);
//            gimbalAction.setCompletionTime(2.0);
//            elements.add(gimbalAction);

            pointsToVisit.forEach({ point -> //pointsToVisit is an arraylist containing way points
                val gimbalAction = GimbalAttitudeAction(attitude);
                gimbalAction.setCompletionTime(2.0);
                elements.add(gimbalAction);
                elements.add(GoToAction(point, altitude.toFloat()))

                val hotpointMission = HotpointMission()
                hotpointMission.hotpoint = point
                hotpointMission.altitude = altitude.toDouble()
                hotpointMission.radius = radius
                hotpointMission.angularVelocity = angularVelocity
                val startPoint = HotpointStartPoint.NEAREST
                hotpointMission.startPoint = startPoint
                val heading = HotpointHeading.TOWARDS_HOT_POINT
                hotpointMission.heading = heading

                elements.add(HotpointAction(hotpointMission, SURRONDING_ANGLE))
            })
            elements.add(GoHomeAction())

            if (null != missionControl && missionControl!!.scheduledCount() > 0) {
                missionControl?.unscheduleEverything()
                missionControl?.removeAllListeners()
            }

            missionControl?.scheduleElements(elements)
            missionControl?.addListener(listener)

        }
    }

    fun startTimeline() {
        if (MissionControl.getInstance().scheduledCount() > 0) {
            MissionControl.getInstance().startTimeline()

        } else {
            Log.e(TAG, "Mission not initiated")
        }
    }

0 ответов

Другие вопросы по тегам