示例#1
0
        public static float PredictValue(float ThrottlePosition, float Engine_RPM, float Acceleration_GS)
        {
            // Create ML Context with seed for repeteable/deterministic results
            MLContext mlContext = new MLContext(seed: 0);

            var carPointSample = new CarPoint()
            {
                ThrottlePosition = ThrottlePosition,
                Engine_RPM       = Engine_RPM,
                Acceleration_Gs  = Acceleration_GS
            };

            ITransformer trainedModel;

            using (var stream = new FileStream(modelOutputPath, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                trainedModel = mlContext.Model.Load(stream, out var modelInputSchema);
            }

            // Create prediction engine related to the loaded trained model
            var predEngine = mlContext.Model.CreatePredictionEngine <CarPoint, CarPointSpeedPrediction>(trainedModel);

            // Score
            var resultprediction = predEngine.Predict(carPointSample);

            return(resultprediction.Speed_MPH);
        }
示例#2
0
文件: GMManager.cs 项目: abhi66/mcr
    void Start()
    {
        gameFinished = false;
        startC.SetBool("Hide", true);
        moveNow = false;

        StartCoroutine(Signal());

        StartCoroutine(ManualUpdate());
        plyr = Camera.main.GetComponent <CameraController> ().car.GetComponent <CarPoint> ();
        plyr.GetComponent <PathFollow> ().enabled   = false;
        plyr.GetComponent <MoveToObject> ().enabled = false;

        totalMoney = PlayerPrefs.GetInt("Money", 500);
    }
示例#3
0
        public static void TestModel()
        {
            // Create ML Context with seed for repeteable/deterministic results
            MLContext mlContext = new MLContext(seed: 0);

            // Common.ConsoleHelper.PrintRegressionMetrics(trainer.ToString(), metrics);

            var carPointSample = new CarPoint()
            {
                Time                = "2018-04-08 10:32:55.390684",
                Seconds             = 772.693372F,
                Latitude_Y_Degrees  = 30.321299F,
                Longitude_X_Degrees = -97.75582299999999F,
                Distance_Miles      = 7.96F,
                Speed_MPH           = 30.647F,
                SteeringAngle       = -0.9F,
                ThrottlePosition    = 2F,
                Engine_RPM          = 1624F,
                Lateral_Gs          = -0.01F,
                Acceleration_Gs     = -0.05F
            };

            ITransformer trainedModel;

            using (var stream = new FileStream(modelOutputPath, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                trainedModel = mlContext.Model.Load(stream, out var modelInputSchema);
            }

            // Create prediction engine related to the loaded trained model
            var predEngine = mlContext.Model.CreatePredictionEngine <CarPoint, CarPointSpeedPrediction>(trainedModel);

            //Score
            var resultprediction = predEngine.Predict(carPointSample);

            Console.WriteLine("======================================================");
            Console.WriteLine($"Predicted speed: {resultprediction.Speed_MPH:0.####}, actual speed: 30.647");
            Console.WriteLine("======================================================");
        }
示例#4
0
    void OnSceneGUI()
    {
        CarPoint targetMissionRoot = (CarPoint)target;

        if (Event.current.type != EventType.keyDown)
        {
            return;
        }
        if (Event.current.keyCode == KeyCode.P)
        {
            Ray        worldRay = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(worldRay, out hit))
            {
                GUIUtility.GUIToScreenPoint(Event.current.mousePosition);
                GameObject nextPoint = Instantiate(Resources.Load <GameObject>("CarPoint"), hit.point, Quaternion.identity, targetMissionRoot.transform.parent) as GameObject;
                CarPoint   point     = nextPoint.GetComponent <CarPoint>();
                targetMissionRoot.transform.LookAt(nextPoint.transform);
                targetMissionRoot.NextPoints.Add(point);
                Selection.activeObject     = nextPoint;
                Selection.activeGameObject = nextPoint;
            }
        }
    }
示例#5
0
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     CarPoint targetMissionRoot = (CarPoint)target;
 }
示例#6
0
        private void ReadGPS(byte[] bytes)
        {
            MemoryStream ms = new MemoryStream(bytes);
            BitReader br = new BitReader(ms);

            var alarmType = br.ReadUInt32();//告警类型
            var gpsState = br.ReadUInt32();//gps状态
            var lat = br.ReadUInt32();//纬度
            var lon = br.ReadUInt32();//经度
            var height = br.ReadUInt16();//高度
            var speed = br.ReadUInt16();//速度
            var direction = br.ReadUInt16();//方向
            var dtime = DateTime.Now;
            try
            {
                dtime = br.ReadDateTime();// 日期
            }
            catch (Exception e)
            {
                throw e;
            }

            double lati = lat/1000000.0;
            double loni = lon/1000000.0;

            var type = Convert.ToString(alarmType, 2);
            type = type.PadLeft(32, '0');//
            var typeArray = type.ToCharArray();
            Array.Reverse(typeArray);//反转一下 好与文档中对应

            List<AlarmType> alarmlist = new List<AlarmType>();
            if (typeArray[1] == '1')
            {
                alarmlist.Add(AlarmType.超速报警);
            }
            if (typeArray[7] == '1')
            {
                alarmlist.Add(AlarmType.电瓶欠压);
            }

            var state = Convert.ToString(alarmType, 2);
            state = state.PadLeft(32, '0');//
            var stateArray = state.ToCharArray();
            Array.Reverse(stateArray);//反转一下 好与文档中对应
            var gState = false;
            if (stateArray[1] == '1')
            {
                gState = true;
            }
            var accState = false;
            if (stateArray[0] == '1')
            {
                accState = true;
            }
            if (alarmlist.Count == 0)
            {
                alarmlist.Add(AlarmType.无报警);
            }
            CarPoint point = new CarPoint(dtime,loni, lati, Convert.ToInt16(height));
            point.Alarms=alarmlist;
            point.Direction=Convert.ToInt16(direction);
            point.Speed = Convert.ToInt16(speed);

            point.GpsState = gState;
            point.AccState = accState;
            ACC acc = new ACC()
            {
                ACCState = accState,
                point = point,
                Terminalid = this.terminalid
            };
            this.EventACC(acc);

            EventPointer(point);
            //foreach (var alarm in alarmlist)
            //{

            //    dtime = dtime.AddMilliseconds(1);
            //}
        }