Section author: Viktor Vorobev <vorobev@in.tum.de>

NRP Repositories

The HBP Neurorobotics Project consists of numerous repositories, which contain the NRP code base, patches to the third-party libraries and software, 3D models, template experiments, settings and service applications. Mainly these repositories are stored in Bitbucket. Some of them are private and are available only for core developers. The others are public and you can contribute to the development of the NRP, having cloned them to your workspace and creating the pull request with your changes afterwards.

Below you can find a short description of these repositories.

BrainSimulation

Python project. It implements the module hbp_nrp_distributed_nest for the distributed brain interface for the CLE. You can refer the code API documentation and Brain Simulation developer space.

brainvisualizer

JavaScript project. This is the Frontend brain visualizer Bower component.

bulletphysics

C++ project. Bullet is an alternative physics engine we can use in Gazebo (but generally we don’t). This is a slightly modified fork of the official repo.

CLE

Python project. Here the module hbp_nrp_cle is implemented. The Closed Loop Engine is the middle-ware putting all the pieces of the Neurorobotics Platform together on the server. In particular, it is connecting Gazebo and NEST through our Transfer Functions mechanism.

For the following reference use Closed Loop Engine developer space and dedicated tutorials.

ExDBackend

Python project. This repository is implementing the backend side of the NRP through hbp_nrp_backend, hbp_nrp_cleserver, hbp_nrp_commons and hbp_nrp_watchdog modules. REST calls and back office logic are handling user request to set up a new simulation. It is also handling the simulation live flow using states.

For the following reference use

and dedicated tutorials.

ExDFrontend

JS project. The Frontend application (Web Cockpit) of the Neurorobotics Platform and all required Bower components.

ExperimentControl

Python project. This repository contains hbp_nrp_excontrol, which implements the state machine logic of the CLE and ExDBackend.

Experiments

This repository holds the template experiments and the XSD schemas for project files.

frontendStateMachineEditor

JS project. This repository implements the experiment designer’s graphical editor.

gazebo

C++ project. Gazebo is our world and robot simulation engine. This is a modified fork of the official repository.

GazeboRosPackages

ROS packages project. The gazebo ROS packages and plugins that we use in the NRP.

gzweb

Mixed project. The gzbridge Gazebo-NRP communication layer + frontend assets + frontend gzweb code (provided duplicately in ExDFrontend as a Bower component).

Models

This repository holds all NRP template models: robots, environments, brains, and their respective XSD schemas.

MUSIC

C++ project. MUSIC is a brain simulator communication library that we might use for brain distribution, but not yet. This is a modified fork of the official repository.

mvapich2

C++ project. Mvapich2 is the MPI implementation we use for the distributed BrainSimulation. This is a modified fork of the official repository.

nest-simulator

C++ project. Nest is our main brain simulator. It is used over PyNN in the CLE. This is a modified fork of the official repository.

Neurorobotics Platform

This is a meta-repository holding the installation documentation to the Neurorobotics Platform source repositories and the changelogs. The corresponding installation instructions can be found in the current guides as well.

nrpBackendProxy

TypeScript project. The NRP Backend Proxy is handling backend server management for the clients, passing initial calls over. It is also acting as a storage server, handling user experiments and models persistence. Look at the developers page for this repository.

nrp-core

C++ project. The future core NRP multi-simulation synchronization component.

opensim

C++ project. Opensim is used by Gazebo to simulate muscles. This is modified fork from the official opensim repository.

retina

C++ project. Retina is a library used in experiments with retina-based vision (ICubs for example). It is optional.

sdformat

C++ project. SDFormat is the library handling SDF files for Gazebo. This is a modified fork of the official repository. Refer to dedicated developers page.

server-scripts

Start scripts for the CLE (gzserver, rosbridge, …).

simbody

C++ project. Simbody is used by Gazebo to provide the physics layer for opensim. This is a modified fork from the official repository.

SlurmClusterMonitor

SPlisHSPlasH

C++ project. This is our fork of the SPlisHSPlasH particle physics simulator that we integrate in Gazebo.

user-scripts

This repository contains configuration and install scripts and resources for the NRP.

VirtualCoach

Python project. This repository contains pynrp, which is a python scripting client for the NRP server. Refer these pages for more information developer page,, tutorials and user manual