An open-source SW tool for simulating large-scale hybrid neural network systems.
Official site of this project: http://nengoros.wordpress.com.
This is Nengoros, a tool which merges Nengo and rosjava_core in order to simulate large-scale hybrid neural systems capable of interfacing with real robotic systems.
Author Jaroslav Vitku, research under Alife group on Department of Cybernetics on CTU in Prague.
The simulator is composed of the following parts (all credits to their authors):
nengo/README_origNengo.rst
)Rosjava_core - java-based implementation of ROS core
-and potentially with some necessary ROS-components (e.g. messages) included
Together, these packages provide mostly platform-independent tool for simulating hybrid neural systems usable e.g. for experiments with e.g.:
Note that links in this section will be "browsable" only offline or from the github page of this project on: http://jvitku.github.io/nengoros/.
Javadoc for sub-projects which are not available here can be generated from the particular project folder by the following command:
./gradlew javadoc
Te resulting documentation will be placed under [projectName]/build/doc/
folder.
pip install -U wstool
download fortran
brew install gfortran
download virtualenv and wrapper
sudo pip install virtualenv
sudo pip install virtualenvwrapper
create ~/.virtualenvs directory
source /usr/local/bin/virtualenvwrapper.sh
create your virtualenv
mkvirtualenv nengoros
source ~/.virtualenvs/nengoros/bin/activate
pip install numpy
pip install scipy
Make folder with workspace:
mkdir -p ~/workspace && cd ~/workspace
In case of ROS not installed, point the ROS_PACKAGE_PATH into this folder (add to your ~/.profie or ~/.bashrc file )
export ROS_PACKAGE_PATH=~/workspace
Download Nengoros configuration:
git clone -b nengoros-master-v0.0.5 https://github.com/jvitku/nengoros.git
Download all repositories and install them (./tool -h)
cd nengoros
./tool -unrf
In Eclipse, import all auto-generated projects from nengoros folder (it is necessary to check the check-box search for nested projects
, and after importing delete the projectTemplate), clean & build them in Eclipse.
Now the simulator can be launched from class files generated by Eclipse. In order to launch GUI, start the script under nengo/simulator-ui:
./nengo
In order to launch command-line interface, start the:
./nengo-cl
Demos for the Nengoros can be found on the official project sitehttp://nengoros.wordpress.com.
Additionaly, there are two choices how to learn with NengoROS:
nengo/simulator-ui/demo
nengo/simulatori-ui/nr-demo
demonodes
, where all demos are placed, see its readme for all information.The project nengo/simulator
has the src folder set to: src/java/test/ctu
to ensure that all Nengo tests are omitted, in order to run also Nengo tests, set this folder to src/java/test
.
The tool script is used to update the multi-project from repositories. Now, the complete.rosinstall version is suported. Various older versions are placed under .versions
folder. In case you want to choose which version to use, e.g. for rosbased (creates .rosinstal file):
wstool init -j8 . .versions/rosbased.rosinstall
Run the tool script:
./tool -unrf
..this will:
jroscore
folder etc..)THe script tool can update all projects from remote repositories:
./tool -h
Describes development of the project, the TODO chapter can be found in the changelog.md
file.
Completely rewritten NeuralModule and DefaultNeuralModule.
Added support for multiple Terminations for Encoder. Each Encoder now has MultiTermination. Now, the following can be used to add the weighted Termination module2.newTerminationFor(F2FPubSub.ann2ros,[0.01,0.1,0.02,0.02])
, see nr-demo/basic/multitermination.py
.
vivae/vivaeplugin
project.Added three possibilities how to sync time between Nengo and ROS nodes: TimeMaster, TimeIgnore and TimeSlave. These are used in the ca.nengo.util.impl.NodeThreadPool.step()
.
Added demos representing time synchronization in the project demonodes/basic, the corresponding python scripts are located under nr-demo/basic/time*
The first stable version. Version is mainly taken from my older repositories on bitbucket.org.
Includes demos on rosjava, ROS nodes and native process.
Communication with ROS nodes is synchronous or asynchronous