add stop iteration of algorithm if any measure on 60-120 angles is incorrect
This commit is contained in:
@@ -113,6 +113,11 @@ abstract class AbstractAlgorithm(val thisCar: Car, val exchanger: Exchanger<IntA
|
||||
return
|
||||
}
|
||||
val command = getCommand(anglesDistances, state)
|
||||
|
||||
if (command == null) {
|
||||
return
|
||||
}
|
||||
|
||||
afterGetCommand(command)
|
||||
println(Arrays.toString(command.directions))
|
||||
println(Arrays.toString(command.distances))
|
||||
@@ -137,7 +142,7 @@ abstract class AbstractAlgorithm(val thisCar: Car, val exchanger: Exchanger<IntA
|
||||
}
|
||||
|
||||
protected abstract fun getCarState(anglesDistances: Map<Angle, AngleData>): CarState?
|
||||
protected abstract fun getCommand(anglesDistances: Map<Angle, AngleData>, state: CarState): RouteMetricRequest
|
||||
protected abstract fun getCommand(anglesDistances: Map<Angle, AngleData>, state: CarState): RouteMetricRequest?
|
||||
protected abstract fun afterGetCommand(route: RouteMetricRequest)
|
||||
|
||||
|
||||
|
||||
@@ -104,14 +104,18 @@ class RoomBypassingAlgorithm(thisCar: Car, exchanger: Exchanger<IntArray>) : Abs
|
||||
}
|
||||
}
|
||||
|
||||
override fun getCommand(anglesDistances: Map<Angle, AngleData>, state: CarState): RouteMetricRequest {
|
||||
override fun getCommand(anglesDistances: Map<Angle, AngleData>, state: CarState): RouteMetricRequest? {
|
||||
|
||||
val dist0 = anglesDistances[Angle(0)]!!
|
||||
val dist60 = anglesDistances[Angle(60)]!!
|
||||
val dist60 = anglesDistances[Angle(70)]!!
|
||||
val dist90 = anglesDistances[Angle(90)]!!
|
||||
val dist120 = anglesDistances[Angle(120)]!!
|
||||
val dist120 = anglesDistances[Angle(110)]!!
|
||||
val sonarAngle = carAngle - 90
|
||||
|
||||
if (anglesDistances.filter { it.value.angle.degs() >= 60 && it.value.angle.degs() <= 120 && it.value.distance == -1 }.size != 0) {
|
||||
return null
|
||||
}
|
||||
|
||||
if (calibrateAfterRotate) {
|
||||
if (Math.abs(dist60.distance - dist120.distance) > 4) {
|
||||
println("Flaw in align found, correcting")
|
||||
|
||||
Reference in New Issue
Block a user