D9 – ROSjava – Using GUI for ROS Nodes

In Nengoros, it is possible also to create hybrid networks with ROS nodes without use of scripting interface, directly from the GUI.

For each Neural Module of arbitrary properties, the user is allowed to create his own GUI template. Good example how to do this for ROS nodes can be found under project logic/gates, where:

  • The  folder python/nef/templates contains definition of GUI templates
  • The folder images/nengoIcons contains their graphical representations

Data from the project must be copied/linked under the nengo/simulator-ui project to appropriate places (see the logic/gates/python/README.md file for more information). The copying/linking can be simplified by the use of script demonodes/linkdata which is able to deploy data to correct place. For more information run:

./linkdata -h

After creating the template, the template jython file has to be imported on startup. This is done by addingits name into the file: nengo/simulator-ui/python/nef/templates/__init__.py .

Now, the Nengoros is able to launch arbitrary external ROS node by dragging and dropping its template into the Nengo GUI. In order to do this, you have to:

Drag and drop the top-level network

Drag and drop Neural Module, e.g. trapezoid fuzzy membership function in this case:


Nengo asks for preferred name and whether to push contained ROS nodes into own namespace. After clicking OK, the ROS node(s) is launched and the Neural Module with corresponding origins/terminations is added. Now continue as with a normal Nengo network.