示例#1
0
	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
示例#2
0
	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
示例#3
0
	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