public RobotInterface() { InitializeComponent(); Updater.Interval = new TimeSpan(0, 0, 0, 0, 10); //setting graph titles Updater.Tick += Updater_Tick; Osc_LinearSpeedOdometry.SetTitle("Linear speed from odometry"); Osc_AngularSpeedOdometry.SetTitle("Angular speed from odometry"); Osc_ErrorLinearAngularSpeed.SetTitle("Error Linear/angular speed"); //actual values Osc_LinearSpeedOdometry.AddOrUpdateLine((int)GraphLineID.LinearSpeed, maxPointsOnGraph, "LinearSpeed"); Osc_AngularSpeedOdometry.AddOrUpdateLine((int)GraphLineID.AngularSpeed, maxPointsOnGraph, "AngularSpeed"); //errors Osc_AngularSpeedOdometry.AddOrUpdateLine((int)GraphLineID.ErrorAngularSpeed, maxPointsOnGraph, "AngularSpeedError"); Osc_LinearSpeedOdometry.AddOrUpdateLine((int)GraphLineID.ErrorLinearSpeed, maxPointsOnGraph, "LinearSpeedError"); Osc_AngularSpeedOdometry.ChangeLineColor((int)GraphLineID.ErrorAngularSpeed, System.Drawing.Color.DarkViolet); Osc_LinearSpeedOdometry.ChangeLineColor((int)GraphLineID.ErrorLinearSpeed, System.Drawing.Color.LightGreen); Updater.Start(); }
//Incoming Events public void OnPositionDataProcessedEvent(object sender, PositionDataProcessedArgs e) { if (toggleFreeze == 0) { angularSpeedError = robot.vitesseAngulaireConsigne - e.VitesseAngulaireFromOdometry; linearSpeedError = robot.vitesseLineaireConsigne - e.VitesseLineaireFromOdometry; Osc_LinearSpeedOdometry.AddPointToLine((int)GraphLineID.LinearSpeed, e.Timestamp, e.VitesseLineaireFromOdometry); Osc_AngularSpeedOdometry.AddPointToLine((int)GraphLineID.AngularSpeed, e.Timestamp, e.VitesseAngulaireFromOdometry); Osc_AngularSpeedOdometry.AddPointToLine((int)GraphLineID.ErrorAngularSpeed, e.Timestamp, angularSpeedError); Osc_LinearSpeedOdometry.AddPointToLine((int)GraphLineID.ErrorLinearSpeed, e.Timestamp, linearSpeedError); } }