################# define the group and start it finder = "resender.mpt.F2FPubSub"; # Jva (ROS) node that does this job modem = "nengoros.comm.nodeFactory.modem.impl.DefaultModem"; # custom modem here # create group with a name g = NodeGroup("MinMaxFinder", True); # create independent group called.. g.addNC(finder, "Finder", "java"); # start java node and name it finder g.addNC(modem,"Modem","modem") # add modem to the group g.startGroup() ################################## ################# setup the smart neuron and add it to the Nengo network modem = g.getModem() neuron = NeuralModule('MinMaxFinder', modem) # construct the smart neuron neuron.createEncoder("ann2rosFloatArr", "float",4) # termination = input of neuron (4xfloat) neuron.createDecoder("ros2annFloatArr", "float",2) # origin = output of neuron (min and max) many=net.add(neuron) # add it into the network #Create a white noise input function with params: baseFreq, maxFreq [rad/s], RMS, seed input=FunctionInput('Randomized input', [FourierFunction(.1, 10,1, 12), FourierFunction(.4, 20,1.5, 11), FourierFunction(.1, 10,0.9, 10), FourierFunction(.5, 11,1.6, 17)],Units.UNK) net.add(input) # Add to the network and connect to neuron net.connect(input,neuron.getTermination('ann2rosFloatArr')) print 'Configuration complete.'
turtlesim = "../testnodes/turtlesim/turtlesim_node" # turtle under this project act = "resender.turtle.Controller"; modemCls = "nengoros.comm.nodeFactory.modem.impl.DefaultModem"; # custom modem here ################################## ################# turtle 1 g = NodeGroup("zelvicka", True); g.addNC(turtlesim, "zelva", "native"); # start native node called zelva g.addNC(modemCls,"turtlemodem","modem") g.startGroup() modem = g.getModem() bigneuron = NeuralModule('TurtleController',modem) bigneuron.createDecoder("turtle1/pose", "pose") # origin bigneuron.createDecoder("turtle1/color_sensor", "color") # origin bigneuron.createEncoder("turtle1/command_velocity", "velocity") # termination many=net.add(bigneuron) #Create a white noise input function with parameters: baseFreq, maxFreq (rad/s), RMS, Seed input=FunctionInput('Randomized input', [FourierFunction(.5, 10, 6, 12), FourierFunction(2, 11, 5, 17)], Units.UNK) # Add the input node to the network and connect it to the smart enuron net.add(input) net.connect(input,many.getTermination('turtle1/command_velocity')) # make neural network and connect it to the smart neuron A=net.make('PositionData',neurons=10,dimensions=5,radius=20) net.connect(many.getOrigin('turtle1/pose'),A) # make neural network and connect it to the smart neuron B=net.make('ColorData',neurons=10,dimensions=3,radius=120) # RGB values observed in range of 100 net.connect(many.getOrigin('turtle1/color_sensor'),B)
################################## ################# define the group and start it finder = "resender.mpt.F2IPubSub"; # Jva (ROS) node that does this job modem = "nengoros.comm.nodeFactory.modem.impl.DefaultModem"; g = NodeGroup("MinMaxFinder", True); g.addNC(finder, "Finder", "java"); g.addNC(modem,"Modem","modem") g.startGroup() ################################## ################# setup the smart neuron and add it to the Nengo network modem = g.getModem() neuron = NeuralModule('MinMaxFinder', modem) neuron.createEncoder("ann2rosFloatArr", "float",4) neuron.createDecoder("ros2annFloatArr", "int",2,False) # HERE: decorer is asynchronous many=net.add(neuron) #Create a white noise input function with params: baseFreq, maxFreq [rad/s], RMS, seed input=FunctionInput('Randomized input', [FourierFunction(.1, 10,1, 12), FourierFunction(.4, 20,1.5, 11), FourierFunction(.1, 10,0.9, 10), FourierFunction(.5, 11,1.6, 17)],Units.UNK) net.add(input) # Add to the network and connect to neuron net.connect(input,neuron.getTermination('ann2rosFloatArr')) print 'Configuration complete.'