hbp_nrp_cle.cle package

The package contains the implementation of the Closed Loop Engine.

The CLE interface grants complete control over both the physic and the neural simulations. The two simulation can be started, advanced, paused and resetted in a synchronous manner.

Two implementation of the CLE interface are given:

  1. ClosedLoopEngine is a fully parallel implementation in which the physics simulation, the neural simulation and the transfer functions run in separate threads. Currently, a bug in NEST makes it impossible to use this implementation as running the neural simulation in a separate thread causes a segmentation fault.

  2. SerialClosedLoopEngine is an implementation that overcomes the NEST bug by running the neural simulation and the transfer functions in the same thread, obviously reducing the performances.

The ROSCLEServer module provides utility classes to run the Closed Loop Engine in a separate process, while communicating with it through ROS services.

SERVICE_ADD_ROBOT(sim_id)
SERVICE_DELETE_TRANSFER_FUNCTION(sim_id)
SERVICE_GET_BRAIN(sim_id)
SERVICE_GET_ROBOTS(sim_id)
SERVICE_GET_TRANSFER_FUNCTIONS(sim_id)
SERVICE_SET_BRAIN(sim_id)
SERVICE_SET_TRANSFER_FUNCTION(sim_id)
SERVICE_SIM_PAUSE_ID(sim_id)
SERVICE_SIM_RESET_ID(sim_id)
SERVICE_SIM_START_ID(sim_id)
SERVICE_SIM_STATE_ID(sim_id)
SERVICE_SIM_STOP_ID(sim_id)
ros_handler(func)[source]

A decorator for ROS handlers.

Parameters

func – the function to decorate.

Returns

a wrapped function