#FORMAT python # Load in saved weights from offline training # Inputs are the two front sensor readings # Output is a translate value, used to control the robot from pyrobot.brain import Brain from pyrobot.brain.conx import * from time import * class NNBrain(Brain): def setup(self): self.n = Network() self.n.addLayers(2,1,1) self.maxvalue = self.robot.range.getMaxvalue() self.doneLearning = 1 self.n.loadWeightsFromFile("E05M01.wts") self.n.setLearning(0) def scale(self, val): x = val / self.maxvalue if x > 1: return 1.0 else: return x def step(self): # Set inputs front = [s.distance() for s in self.robot.range["front"]] self.n['input'].copyActivations([self.scale(front[0]), self.scale(front[1])]) self.n.propagate() translateActual = self.n['output'].activation[0] print "move", translateActual self.translate(translateActual) def INIT(engine): return NNBrain('NNBrain', engine)