D2 – Arbitrary Native Process

The Nengoros simulator also allows to launch external applications (native processes) without necessity of any ROS support.

For the demo purposes there is a project `demonodes/native`. The project includes simple C++ application, which  writes messages into console (however, Nengoros does not redirect its STDOUT by default) and it writes messages also into the out_helloworld.txt file. When launching from Nengoros, this file will be located under the `nengo/simulator-ui/` folder.


It may be necessary to compile the application for particular OS, so:

cd demonodes/native

g++ helloworld.cpp


Running the Demo

Nengoros already has the corresponding demo script copied to the correct place, so run from the Nengo console:

run nr-demo/native/helloworld.py

This script does:

  • Creates one Neural Module without inputs/outputs (since this process does not communicate over the ROS network)
  • Adds the Neural Module to the Nengo network (thus starts the external process)
  • Adds a dummy signal generator


Now, the external process is running. This can be verified either by the process manager:

ps xm | grep demo

or by checking contents of the text file ‘nengo/simulator-ui/out_helloworld.txt‘. Try t delete the HelloWorld node from Nengo, the process should be stopped.