Exemplo n.º 1
0
        private async void Init_Mission(object sender, RoutedEventArgs value)
        {
            double nowLat = Convert.ToDouble(DD.Location().Latitude());
            double nowLng = Convert.ToDouble(DD.Location().Longitude());

            WaypointMission = new WaypointMission()
            {
                waypointCount                    = 4,
                maxFlightSpeed                   = 15,
                autoFlightSpeed                  = 10,
                finishedAction                   = WaypointMissionFinishedAction.NO_ACTION,
                headingMode                      = WaypointMissionHeadingMode.AUTO,
                flightPathMode                   = WaypointMissionFlightPathMode.NORMAL,
                gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY,
                exitMissionOnRCSignalLostEnabled = false,
                pointOfInterest                  = new LocationCoordinate2D()
                {
                    latitude  = 0,
                    longitude = 0
                },
                gimbalPitchRotationEnabled = true,
                repeatTimes = 0,
                missionID   = 0,
                waypoints   = new List <Waypoint>()
                {
                    InitDumpWaypoint(nowLat + 0.001, nowLng + 0.0015),
                    InitDumpWaypoint(nowLat + 0.001, nowLng - 0.0015),
                    InitDumpWaypoint(nowLat - 0.001, nowLng - 0.0015),
                    InitDumpWaypoint(nowLat - 0.001, nowLng + 0.0015),
                }
            };
        }
Exemplo n.º 2
0
        /// <summary>
        /// Mission path of parking lot R25 of the Texas Tech University
        /// </summary>
        /// <returns> <see cref="WaypointMission"/> </returns>
        public static WaypointMission GetR25Mission()
        {
            WaypointMission mission = new WaypointMission();

            mission.waypointCount                    = 0;
            mission.maxFlightSpeed                   = 15;
            mission.autoFlightSpeed                  = 10;
            mission.finishedAction                   = WaypointMissionFinishedAction.NO_ACTION;
            mission.headingMode                      = WaypointMissionHeadingMode.USING_WAYPOINT_HEADING;
            mission.flightPathMode                   = WaypointMissionFlightPathMode.NORMAL;
            mission.gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY;
            mission.exitMissionOnRCSignalLostEnabled = false;
            mission.pointOfInterest                  = new LocationCoordinate2D()
            {
                latitude  = 0,
                longitude = 0
            };
            mission.gimbalPitchRotationEnabled = true;
            mission.repeatTimes = 0;
            mission.missionID   = 0;
            mission.waypoints   = new List <Waypoint>()
            {
                InitWaypoint(33.586253, -101.881052, 3, 90, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                InitWaypoint(33.585668, -101.881044, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.585668, -101.881149, 3, -180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.585666, -101.881288, 3, -180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.585690, -101.881288, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.586256, -101.881284, 3, -90, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.STOP_RECORD
                    }
                })
            };
            return(mission);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Mission path of parking lot R16 of the Texas Tech University
        /// </summary>
        /// <returns> <see cref="WaypointMission"/> </returns>
        public static WaypointMission GetR16Mission()
        {
            WaypointMission mission = new WaypointMission();

            mission.waypointCount                    = 0;
            mission.maxFlightSpeed                   = 15;
            mission.autoFlightSpeed                  = 10;
            mission.finishedAction                   = WaypointMissionFinishedAction.AUTO_LAND;
            mission.headingMode                      = WaypointMissionHeadingMode.USING_WAYPOINT_HEADING;
            mission.flightPathMode                   = WaypointMissionFlightPathMode.NORMAL;
            mission.gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY;
            mission.exitMissionOnRCSignalLostEnabled = false;
            mission.pointOfInterest                  = new LocationCoordinate2D()
            {
                latitude  = 0,
                longitude = 0
            };
            mission.gimbalPitchRotationEnabled = true;
            mission.repeatTimes = 0;
            mission.missionID   = 0;
            mission.waypoints   = new List <Waypoint>()
            {
                InitWaypoint(33.588462, -101.875579, 3, 90, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                InitWaypoint(33.588483, -101.875543, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588639, -101.875553, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588637, -101.875607, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588510, -101.875615, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588462, -101.875579, 3, -180, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.STOP_RECORD
                    }
                }),
            };
            return(mission);
        }
Exemplo n.º 4
0
        public SDKError LoadMission(String json_mision)
        {
            JArray points = JArray.Parse(json_mision);

            int    waypointCount   = points.Count;
            double maxFlightSpeed  = 15; // meters per second TODO
            double autoFlightSpeed = 10; // meters per second TODO
            int    missionID       = 0;  //TODO

            List <Waypoint> waypoints = new List <Waypoint>(waypointCount);

            foreach (JObject point in points)
            {
                JObject coord       = (JObject)point.SelectToken("coord");
                JArray  coordinates = (JArray)coord.SelectToken("coordinates");
                double  latitude    = (double)coordinates.First[0];
                double  longitude   = (double)coordinates.First[1];
                double  gimbalPitch = (double)point.SelectToken("angulo");
                double  speed       = (double)point.SelectToken("velocidad"); // meters per second
                double  altitude    = (double)point.SelectToken("altura");
                int     stayTime    = (int)point.SelectToken("tiempo");
                int     rotation    = (int)point.SelectToken("rotacion");
                waypoints.Add(InitWaypoint(latitude, longitude, altitude, gimbalPitch, speed, stayTime, rotation));
                System.Diagnostics.Debug.WriteLine("lat {0}, lng {1})", latitude, longitude);
            }


            WaypointMission mission = new WaypointMission()
            {
                waypointCount                    = points.Count,
                maxFlightSpeed                   = maxFlightSpeed,
                autoFlightSpeed                  = autoFlightSpeed,
                finishedAction                   = WaypointMissionFinishedAction.GO_HOME,
                headingMode                      = WaypointMissionHeadingMode.AUTO,
                flightPathMode                   = WaypointMissionFlightPathMode.NORMAL,
                gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY,
                exitMissionOnRCSignalLostEnabled = false,
                gimbalPitchRotationEnabled       = true,
                repeatTimes                      = 1,
                missionID = missionID,
                waypoints = waypoints
            };

            //LoadMission
            SDKError loadError = DJISDKManager.Instance.WaypointMissionManager.GetWaypointMissionHandler(0).LoadMission(mission);

            System.Diagnostics.Debug.WriteLine("LOAD MISSION: " + loadError.ToString());

            return(loadError);
        }
Exemplo n.º 5
0
        /// <summary>
        /// This creates a test mission,
        /// It will create a square path around given origin point
        /// </summary>
        /// <param name="loc"> the origin of the square path that will be followed</param>
        /// <returns> <see cref="WaypointMission"/>  </returns>
        public static WaypointMission GetTestMission(LocationCoordinate2D loc)
        {
            WaypointMission mission = new WaypointMission();

            mission.waypointCount                    = 0;
            mission.maxFlightSpeed                   = 15;
            mission.autoFlightSpeed                  = 10;
            mission.finishedAction                   = WaypointMissionFinishedAction.NO_ACTION;
            mission.headingMode                      = WaypointMissionHeadingMode.AUTO;
            mission.flightPathMode                   = WaypointMissionFlightPathMode.NORMAL;
            mission.gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY;
            mission.exitMissionOnRCSignalLostEnabled = false;
            mission.pointOfInterest                  = new LocationCoordinate2D()
            {
                latitude  = 0,
                longitude = 0
            };
            mission.gimbalPitchRotationEnabled = true;
            mission.repeatTimes = 0;
            mission.missionID   = 0;
            mission.waypoints   = new List <Waypoint>()
            {
                InitWaypoint(loc.latitude + 0.00001, loc.longitude + 0.000015, 3, 0, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                InitWaypoint(loc.latitude + 0.00001, loc.longitude - 0.000015, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(loc.latitude - 0.00001, loc.longitude - 0.000015, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(loc.latitude - 0.00001, loc.longitude + 0.000015, 3, 0, new List <WaypointAction>()
                {
                })
            };
            return(mission);
        }
        private void RedrawWaypoint()
        {
            List <BasicGeoposition> waypointPositions = new List <BasicGeoposition>();
            WaypointMission         mission           = WaypointMissionViewModel.Instance.WaypointMission;

            for (int i = 0; i < mission.waypoints.Count(); ++i)
            {
                if (waypointLayer.MapElements.Count == i)
                {
                    MapIcon waypointIcon = new MapIcon()
                    {
                        Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/waypoint.png")),
                        NormalizedAnchorPoint = new Point(0.5, 0.5),
                        ZIndex = 0,
                    };
                    waypointLayer.MapElements.Add(waypointIcon);
                }

                var geolocation = new BasicGeoposition()
                {
                    Latitude = mission.waypoints[i].location.latitude, Longitude = mission.waypoints[i].location.longitude
                };
                (waypointLayer.MapElements[i] as MapIcon).Location = new Geopoint(geolocation);
                waypointPositions.Add(geolocation);
            }
            if (routeLayer.MapElements.Count == 0 && waypointPositions.Count >= 2)
            {
                var polyline = new MapPolyline
                {
                    StrokeColor     = Color.FromArgb(255, 0, 255, 0),
                    Path            = new Geopath(waypointPositions),
                    StrokeThickness = 2
                };
                routeLayer.MapElements.Add(polyline);
            }
            else
            {
                var waypointPolyline = routeLayer.MapElements[0] as MapPolyline;
                waypointPolyline.Path = new Geopath(waypointPositions);
            }
        }
Exemplo n.º 7
0
 private void init_mission(double autoFlightSpeed, WaypointMissionFinishedAction action, WaypointMissionHeadingMode heading_mode)
 {
     missionCreated = true;
     mission        = new WaypointMission()
     {
         waypointCount                    = 0,
         maxFlightSpeed                   = 15,
         autoFlightSpeed                  = autoFlightSpeed,
         finishedAction                   = action,
         headingMode                      = heading_mode,
         flightPathMode                   = WaypointMissionFlightPathMode.NORMAL,
         gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY,
         exitMissionOnRCSignalLostEnabled = false,
         pointOfInterest                  = new LocationCoordinate2D()
         {
             latitude  = 0,
             longitude = 0
         },
         gimbalPitchRotationEnabled = false,
         repeatTimes = 0,
         missionID   = 0,
         waypoints   = new List <Waypoint>()
     };
 }
Exemplo n.º 8
0
        /// <summary>
        /// Test mission path of parking lot R25 of the Texas Tech University
        /// </summary>
        /// <returns> <see cref="WaypointMission"/> </returns>
        public static WaypointMission GetR17Mission()
        {
            WaypointMission mission = new WaypointMission();

            mission.waypointCount                    = 0;
            mission.maxFlightSpeed                   = 15;
            mission.autoFlightSpeed                  = 10;
            mission.finishedAction                   = WaypointMissionFinishedAction.NO_ACTION;
            mission.headingMode                      = WaypointMissionHeadingMode.USING_WAYPOINT_HEADING;
            mission.flightPathMode                   = WaypointMissionFlightPathMode.NORMAL;
            mission.gotoFirstWaypointMode            = WaypointMissionGotoFirstWaypointMode.SAFELY;
            mission.exitMissionOnRCSignalLostEnabled = false;
            mission.pointOfInterest                  = new LocationCoordinate2D()
            {
                latitude  = 0,
                longitude = 0
            };
            mission.gimbalPitchRotationEnabled = true;
            mission.repeatTimes = 0;
            mission.missionID   = 0;
            mission.waypoints   = new List <Waypoint>()
            {
                /*left*/
                InitWaypoint(33.588915, -101.875378, 3, -90, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                InitWaypoint(33.588911, -101.875216, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588983, -101.875514, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589006, -101.875515, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589032, -101.875515, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589057, -101.875513, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589105, -101.875503, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589132, -101.875506, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589159, -101.875509, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589179, -101.875509, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589207, -101.875514, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589231, -101.875515, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589254, -101.875505, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589283, -101.875513, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589305, -101.875512, 3, -90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589329, -101.875511, 3, -90, new List <WaypointAction>()
                {
                }),
                /*up*/
                InitWaypoint(33.589354, -101.875502, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589357, -101.875468, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589359, -101.875440, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589362, -101.875410, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589365, -101.875377, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589367, -101.875349, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589367, -101.875320, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589363, -101.875290, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589365, -101.875261, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589365, -101.875230, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589362, -101.875197, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589364, -101.875143, 3, 0, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589362, -101.875110, 3, 0, new List <WaypointAction>()
                {
                }),
                /*right*/
                InitWaypoint(33.589330, -101.875030, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589311, -101.875027, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589284, -101.875027, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589259, -101.875025, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589234, -101.875025, 3, 90, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.589209, -101.875028, 3, 90, new List <WaypointAction>()
                {
                }),
                /*moving*/
                InitWaypoint(33.589205, -101.875068, 3, 180, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.STOP_RECORD
                    }
                }),
                InitWaypoint(33.589088, -101.875072, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588968, -101.875048, 3, 180, new List <WaypointAction>()
                {
                }),
                /*down*/
                InitWaypoint(33.588951, -101.875047, 3, 180, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                InitWaypoint(33.588942, -101.875084, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588943, -101.875120, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588933, -101.875217, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588933, -101.875259, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588933, -101.875250, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588932, -101.875281, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588930, -101.875313, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588927, -101.875345, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588928, -101.875376, 3, 180, new List <WaypointAction>()
                {
                }),
                InitWaypoint(33.588925, -101.875408, 3, 180, new List <WaypointAction>()
                {
                }),
                /*moving 2*/
                InitWaypoint(33.588960, -101.875452, 3, 0, new List <WaypointAction>()
                {
                }),
                /*inner 1 left*/
                InitWaypoint(33.589032, -101.875451, 3, 90, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.START_TAKE_PHOTO
                    }
                }),
                /*temp move away*/
                InitWaypoint(33.589029, -101.875483, 3, 0, new List <WaypointAction>()
                {
                    new WaypointAction()
                    {
                        actionType = WaypointActionType.STOP_RECORD
                    }
                })
            };
            return(mission);
        }