def execute(self, previousBehavior): ai = self.behaviorManager.lastArduinoInput vi = self.behaviorManager.lastVisionInput bs = self.behaviorManager.behaviorStack bm = self.behaviorManager.ballManager output = PilotCommands(ai) if utilities.crashed(ai): bs.append(self) bs.append(Uncrash(self.behaviorManager)) return None elif ai.leftDist < self.minDist and ai.leftDist <= ai.rightDist: output.forwardSpeed = -self.forwardSpeed output.turnSpeed = self.turnSpeed self.logger.debug("Avoiding wall on the left") bs.append(self) # TODO implement a timeout elif ai.rightDist < self.minDist: output.forwardSpeed = -self.forwardSpeed output.turnSpeed = -self.turnSpeed self.logger.debug("Avoiding wall on the right") bs.append(self) # TODO implement a timeout output.rollerCommand = RollerCommands.FORWARD output.winchCommand = WinchCommands.DOWN output.rampCommand = RampCommands.UP return output
def execute(self, previousBehavior): ai = self.behaviorManager.lastArduinoInput vi = self.behaviorManager.lastVisionInput bs = self.behaviorManager.behaviorStack bm = self.behaviorManager.ballManager output = PilotCommands(ai) if (previousBehavior != self): self.init(ai) if utilities.crashed(ai): bs.append(self) if self.crashedFront and self.crashedBack: self.logger.warn("Crashed front and back. This really sucks.") output.turnSpeed = 127 elif self.crashedFront: output.forwardSpeed = -self.forwardSpeed output.turnSpeed = self.turnSpeed * ((1 if self.crashedLeft else 0) - (1 if self.crashedRight else 0)) else: # crashed back output.forwardSpeed = self.forwardSpeed output.turnSpeed = self.turnSpeed * ((1 if self.crashedLeft else 0) - (1 if self.crashedRight else 0)) else: output = None output.rollerCommand = RollerCommands.FORWARD output.winchCommand = WinchCommands.DOWN output.rampCommand = RampCommands.UP return output
def execute(self, previousBehavior): ai = self.behaviorManager.lastArduinoInput vi = self.behaviorManager.lastVisionInput bs = self.behaviorManager.behaviorStack bm = self.behaviorManager.ballManager if utilities.crashed(ai): bs.append(Uncrash(self.behaviorManager)) elif self.avoidWalls and utilities.nearWall(ai): bs.append(AvoidWall(self.behaviorManager)) output = PilotCommands(ai) output.forwardSpeed = self.forwardSpeed output.rollerCommand = RollerCommands.FORWARD output.winchCommand = WinchCommands.DOWN output.rampCommand = RampCommands.UP return output