D8 – Multiple Terminations for one Encoder

This recent modification of NeuralModule class allows the Nengo simulator to connect multiple signal sources (Origins) into one Encoder, which then encodes data and sends as ROS messages on selected ROS topic.

Now, each Encoder has one default Nengo Termination, but new Terminations can be further added. The Encoder then computes weighted sum of signals on its Terminations and publishes the result as ROS messages.

Running the Demo

The demo script is located under `simulator-ui/nr-demo/basic/multitermination.py` and shows the communication with two MinMax ROS nodes. The first NeuralModule features Encoder with default Termination connected to one signal generator. The second one features three newly added Terminations with weighted inputs (default weight, custom weight and weight matrix) which are connected each to own signal generator.

Two neural modules wired in the Nengo GUI. The lower module features multiple Terminations connected to one Encoder (source of ROS messages sent to a ROS node)

Two neural modules wired in the Nengo GUI. The lower module features multiple Terminations connected to one Encoder (source of ROS messages sent to a ROS node).

Note that default Termination has the name which corresponds to the ROS topic (and name of Encoder) and newly added Terminations have auto-generated names.

ROS network featuring two MinMax nodes with their Modems. Both NodeGroups are automatically pushed into own namespace, so that unique ROS names are achieved.

ROS network featuring two MinMax nodes with their Modems. Both NodeGroups are automatically pushed into own namespace, so that unique ROS names are achieved.

Here is the resulting interactive simulation.

Interactive Nengo simulation with two NeuralModules.

Interactive Nengo simulation with two NeuralModules.

Advertisements