public PanTiltSetting Clone() { var clone = new PanTiltSetting(); clone.TiltPercent = TiltPercent; clone.PanPercent = PanPercent; return clone; }
public PanTiltSetting Clone() { var clone = new PanTiltSetting(); clone.TiltPercent = TiltPercent; clone.PanPercent = PanPercent; return(clone); }
public AutonomousTrackStateManager( IPanTiltController panTiltController , IScreen screen) : base(screen) { _screen = screen; _panTiltController = panTiltController; PursuitBoundaryLower = new PanTiltSetting(10, 40); PursuitBoundaryUpper = new PanTiltSetting(80, 90); Reset(); }
public PanTiltSetting CalculateNewSetting(PanTiltSetting currentSetting) { var newSetting = currentSetting.Clone(); var deviation = GetDeviationFromTarget(); var deflection = CalculatePercentDeflection(deviation); var xDeflection = Math.Abs(deviation.X) > DeadZone ? deflection.X : 0; var yDeflection = Math.Abs(deviation.Y) > DeadZone ? deflection.Y : 0; newSetting.PanPercent += xDeflection; newSetting.TiltPercent += yDeflection; return newSetting; }
public PanTiltSetting CalculateNewSetting(PanTiltSetting currentSetting) { var newSetting = currentSetting.Clone(); var deviation = GetDeviationFromTarget(); var deflection = CalculatePercentDeflection(deviation); var xDeflection = Math.Abs(deviation.X) > DeadZone ? deflection.X : 0; var yDeflection = Math.Abs(deviation.Y) > DeadZone ? deflection.Y : 0; newSetting.PanPercent += xDeflection; newSetting.TiltPercent += yDeflection; return(newSetting); }
public PanTiltSetting CalculateNewSetting(PanTiltSetting currentSetting) { var newSetting = new PanTiltSetting(); ThrottleMultipler = (4 * (-_throttleAxis + 1.1m)); // 1 to bias to +ve, .1 to ensure always non zero const decimal deadZone = 0.6m; if (Math.Abs(_panAxis) > deadZone) { newSetting.PanPercent = (currentSetting.PanPercent + (_panAxis * ThrottleMultipler)); } if (Math.Abs(_tiltAxis) > deadZone) { newSetting.TiltPercent = (currentSetting.TiltPercent + (_tiltAxis * ThrottleMultipler)); } return newSetting; }
public PanTiltSetting CalculateNewSetting(PanTiltSetting currentSetting) { var newSetting = new PanTiltSetting(); ThrottleMultipler = (4 * (-_throttleAxis + 1.1m)); // 1 to bias to +ve, .1 to ensure always non zero const decimal deadZone = 0.6m; if (Math.Abs(_panAxis) > deadZone) { newSetting.PanPercent = (currentSetting.PanPercent + (_panAxis * ThrottleMultipler)); } if (Math.Abs(_tiltAxis) > deadZone) { newSetting.TiltPercent = (currentSetting.TiltPercent + (_tiltAxis * ThrottleMultipler)); } return(newSetting); }
public void CalculateNewSettingCalibratedResolution() { var target = new Point(160, 120); var objective = new Point(128, 120); var config = new CaptureConfig { Resolution = new Resolution(320, 240) }; var strategy = new HandCalibratedModifierStrategy(config, target); strategy.Objective = objective; var setting = new PanTiltSetting(50, 50); var newSetting = strategy.CalculateNewSetting(setting); // AssertBuilder.Generate(newSetting, "newSetting"); // The following assertions were generated on 07-Mar-2015 #region CodeGen Assertions Assert.AreEqual(53.0720m, newSetting.PanPercent); Assert.AreEqual(50m, newSetting.TiltPercent); #endregion }
public void Start(PanTiltSetting setting) { Original = setting; _stopWatch.Restart(); Ticks = 0; }
private void CalibrateHalfAxis(int signMovement, PanTiltAxis axis) { decimal accumulatedDeviation = 0; bool foundColour; do { _screen.BeginRepaint(); ResetToCenter(); WaitServo("Relocated to center position. About to capture first detection"); var firstDetection = LocateColour(); DoStep("Center detection @ {0} is {1}", CurrentSetting, firstDetection.CentralPoint); accumulatedDeviation += signMovement * saccadePercentIncrement; var movementRequired = new PanTiltSetting(); if (axis == PanTiltAxis.Horizontal) { movementRequired.PanPercent = accumulatedDeviation; } else { movementRequired.TiltPercent = accumulatedDeviation; } _screen.WriteLine("Sign={0}", signMovement); _screen.WriteLine("Axis={0}", axis); _screen.WriteLine("Saccade={0}", accumulatedDeviation); MoveRelative(movementRequired); WaitServo("Settle time after moving to new detection location {0}. About to capture new detection.", movementRequired); var newDetection = LocateColour(); DoStep("New detection @ {0} is {1}", CurrentSetting, newDetection.CentralPoint); foundColour = newDetection.IsDetected; if (foundColour) { Func <PointF, float> getAxisValue; if (axis == PanTiltAxis.Horizontal) { getAxisValue = p => p.X; } else { getAxisValue = p => p.Y; } var pixelDeviation = Convert.ToInt32(getAxisValue(newDetection.CentralPoint) - getAxisValue(firstDetection.CentralPoint)); var axisReadings = _currentResolutionReadings[axis]; if (axisReadings.ContainsKey(pixelDeviation)) { axisReadings[pixelDeviation].AllReadings.Add(accumulatedDeviation); } else { axisReadings.Add(pixelDeviation, new ReadingSet(accumulatedDeviation)); } _screen.WriteLine("Deviation={0}", pixelDeviation); } _screen.WriteLine("First={0}", firstDetection.CentralPoint); _screen.WriteLine("New={0}", newDetection.CentralPoint); }while (foundColour && Math.Abs(accumulatedDeviation) < 60); }
public void InvokeMoveAbsolute(PanTiltSetting setting) { }
public PanTiltSetting CalculateNewSetting(PanTiltSetting currentSetting) { throw new NotImplementedException(); }