Skip to content

Commit 24702c0

Browse files
committed
Revise tolerance checking
1 parent fa29fcb commit 24702c0

1 file changed

Lines changed: 9 additions & 15 deletions

File tree

nextcontrol/src/main/kotlin/dev/nextftc/nextcontrol/ControlSystem.kt

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,10 @@ class ControlSystem(
6161
*/
6262
val reference: KineticState by interpolator::currentReference
6363

64-
/**
65-
* The last raw (unfiltered) measurement
66-
*/
67-
var lastRawMeasurement: KineticState = KineticState();
68-
6964
/**
7065
* The last filtered measurement
7166
*/
72-
var lastFilteredMeasurement: KineticState = KineticState();
67+
var lastMeasurement: KineticState = KineticState();
7368

7469
/**
7570
* Calculates the output power given the current state of the system. In the case that your
@@ -84,8 +79,7 @@ class ControlSystem(
8479
fun calculate(sensorMeasurement: KineticState = KineticState()): Double {
8580
val filteredMeasurement = filter.filter(sensorMeasurement)
8681

87-
lastRawMeasurement = sensorMeasurement;
88-
lastFilteredMeasurement = filteredMeasurement;
82+
lastMeasurement = filteredMeasurement;
8983

9084
val error = interpolator.currentReference - filteredMeasurement
9185

@@ -99,16 +93,16 @@ class ControlSystem(
9993
* Whether the system is within a specified tolerance of the goal
10094
*
10195
* @param tolerance how close to the goal is considered within tolerance
102-
* @param useFilteredMeasurement whether to use a filtered or raw measurement
10396
*
10497
* @return whether the system is within tolerance of the goal
98+
*
99+
* @author rowan-mcalpin
105100
*/
106-
@JvmOverloads
107-
fun isWithinTolerance(tolerance: Double, useFilteredMeasurement: Boolean = true): Boolean {
108-
return abs(
109-
(goal - (if (useFilteredMeasurement) lastFilteredMeasurement else
110-
lastRawMeasurement)).position
111-
) <= tolerance;
101+
fun isWithinTolerance(tolerance: KineticState): Boolean {
102+
return(
103+
abs((goal - lastMeasurement).position) <= tolerance.position &&
104+
abs((goal - lastMeasurement).velocity) <= tolerance.velocity &&
105+
abs((goal - lastMeasurement).acceleration) <= tolerance.acceleration)
112106
}
113107

114108
/**

0 commit comments

Comments
 (0)