import nef from ca.nengo.math.impl import FourierFunction from ca.nengo.model.impl import FunctionInput from ca.nengo.model import Units from ctu.nengoros.modules.impl import DefaultNeuralModule as NeuralModule from ctu.nengoros.modules.impl import DefaultAsynNeuralModule as AsynNeuralModule from ctu.nengoros.comm.nodeFactory import NodeGroup as NodeGroup from ctu.nengoros.comm.rosutils import RosUtils as RosUtils # creates nef network and adds it to nengo (this must be first in the script) net=nef.Network('Random Turtle Control Demo') net.add_to_nengo() # here: delete old (toplevel) network and replace it with the newly CREATED one ################################## #RosUtils.setAutorun(False) # Do we want to autorun roscore and rxgraph? (tru by default) RosUtils.prefferJroscore(False) # Turlte prefers roscore before jroscore (don't know why..) ################################## turtlesim = "rosrun turtlesim turtlesim_node" # command to start turtle installed in ROS act = "resender.turtle.Controller"; g = NodeGroup("Turtlesim", True); # create group of ROS nodes (equals to one neural subsystem) g.addNode(turtlesim, "Turtlesim", "native"); # add Node Configuration (turtle) to the group of nodes module = NeuralModule('TurtleController', g) # configure modem, that is: # -createDecoder = create origin (output) of Nengo module # -what comes from ROS modules is decoded and passed to the output of subsystem in Nengo # -createEncoder = create termination (input) of Nengo module # -what comes from ANN in Nengo is encoded into messages and sent to ROS modules # modem should be able to encode/decode (all) messages used in own NodeGroup module.createDecoder("turtle1/pose", "pose") # origin
from design.ea.matrix.hnn import HNNWMatrixEA as EA from design.ea.matrix.hnn.impl import HNNInd as Ind from hanns import inFactory import modules from modules import mathNodes from modules import routing from hanns import spiketofloat from hanns import floattospike import inspect import os from ca.nengo.model.impl import NetworkImpl, NoiseFactory, FunctionInput, NetworkArrayImpl from ctu.nengoros.comm.rosutils import RosUtils as RosUtils RosUtils.prefferJroscore(False) actualIn=0; actualOut=0; # how to read input and output weights from individual in java def setInW(w): useDesigned = False if (useDesigned): #w = ind.getMatrix().get2DInMatrixNo(actualIn); w = ind.m.getRange(0,16); else: for i in range(len(w)): for j in range(len(w[i])): w[i][j]=0.2 return w; def setOutW(w): # TODO: support for multidimensional outputs