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); }
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); }
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("======================================================"); }
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; } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); CarPoint targetMissionRoot = (CarPoint)target; }
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); //} }