Experiment Model Specification

Schema Document Properties

Target Namespace:
 http://schemas.humanbrainproject.eu/SP10/2014/ExDConfig
Element Qualifiers:
 By default, local element declarations belong to this schema’s target namespace.
Attribute Qualifiers:
 By default, local attribute declarations have no namespace.
Imports:This schema imports schema(s) from the following namespace(s): - http://schemas.humanbrainproject.eu/SP10/2015/ExDConfig/scxml

Global Declarations

Element: ExD

Name:ExD
Type:ExD
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The root element of a experiment configuration model must be an ExD object.

XML Instance Representation

<ExD> ExD </ExD>

Global Definitions

Complex Type: BibiConf

Super-types None
Sub-types None
Name:BibiConf
Abstract:no
Documentation:This type denotes the BIBI configuration used for this experiment. It is described using a reference to the BIBI model in the src attribute and an attribute processes to specify the number of processes that should be used to run the experiment. The default value for processes is 1.

Properties

Attribute src
Name:src
Type:string
Multiplicity:[1]
Documentation:The path to the BIBI configuration that specifies the model, the neural network and the connection between those.
Attribute processes
Name:processes
Type:positiveInteger
Multiplicity:[0..1]
Default Value:1
Documentation:The number of processes that should be used to run the neural network simulation. If this value is larger than 1, a dedicated simulation setup for distributed simulation of the neural network is used.

XML Instance Representation

<... src="string [1]" processes="positiveInteger [0..1]"/>

Complex Type: CameraPose

Super-types None
Sub-types None
Name:CameraPose
Abstract:no
Documentation:This type denotes a camera pose. Unlike the robot pose, a camera pose is specified using a position of the camera and a point to which the camera looks at. The camera is always rotated with the up vector z (0,0,1).

Properties

Element cameraPosition
Name:cameraPosition
Type:Position
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The position of the camera
Element cameraLookAt
Name:cameraLookAt
Type:Position
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The position to which the camera should look at

XML Instance Representation

<...>
   <cameraPosition> Position </cameraPosition> [1]
   <cameraLookAt> Position </cameraLookAt> [1]
</...>

Complex Type: ConfFile

Super-types None
Sub-types None
Name:ConfFile
Abstract:no
Documentation:This type denotes a configuration entry. Configuration entries are used for multiple purposes, therefore the type of the configuration entry is set explicitly in an attribute called type. The actual configuration is referenced as a file through the src attribute.

Properties

Attribute src
Name:src
Type:string
Multiplicity:[1]
Documentation:The path to the file that acts as configuration. Files specified as configuration are automatically considered whe an experiment is deployed.
Attribute type
Name:type
Type:ConfType
Multiplicity:[1]
Documentation:The type of the configuration entry describes what this entry is used for. The NRP allows both predefined and custom entries.

XML Instance Representation

<... src="string [1]" type="ConfType [1]"/>

Complex Type: EnvironmentModel

Super-types None
Sub-types None
Name:EnvironmentModel
Abstract:no
Documentation:This type defines the necessary configuration for an environment. It combines the specification of an environment model through the src attribute and a robot pose using the element robotPose.

Properties

Element robotPose
Name:robotPose
Type:RobotPose
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The position of the robot
Attribute src
Name:src
Type:string
Multiplicity:[1]
Documentation:A path to an SDF file that specifies the scene

XML Instance Representation

<... src="string [1]">
   <robotPose> RobotPose </robotPose> [1]
</...>

Complex Type: ExD

Super-types None
Sub-types None
Name:ExD
Abstract:no
Documentation:This type is the root type for an experiment configuration.

Properties

Element name
Name:name
Type:string
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:This element denotes the name of the experiment as it appears in the experiment list.
Element thumbnail
Name:thumbnail
Type:ThumbnailFile
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:This element references a path to a thumbnail that is used to give the user a forecast to the experiment.
Element description
Name:description
Type:string
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:This description will appear in the experiment description and provide a short description explaining what the experiment is all about.
Element timeout
Name:timeout
Type:double
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The timeout of an experiment is the time an experiment is allowed to run by default, specified in seconds. If that time has elapsed, the users are asked whether they want to extend the runtime of the simulation. On the servers, this will only be allowed if the timeout fits within the cluster allocation.
Element configuration
Name:configuration
Type:ConfFile
Multiplicity:[0..*]
Nillable:no
Abstract:no
Documentation:An experiment may have multiple configuration entries. Despite configuration entries can be specified in anywhere in the ExD element, they must appear together.
Element maturity
Name:maturity
Type:MaturityType
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The maturity of an experiment determines whether it is shown by default to the user or only browsable in dev mode.
Element environmentModel
Name:environmentModel
Type:EnvironmentModel
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The environment model of an experiment specifies the used world file for a simulation and the pose where the robot should be spawned.
Element visualModel
Name:visualModel
Type:VisualModel
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:With the visual model, an experiment can specify an alternatively used model for the frontend visualization. This is helpful in case the robot model used in gazebo is very detailed and thus hard to visualize on the client. On the server, there may be more resources available to simulate more complex models.
Element bibiConf
Name:bibiConf
Type:BibiConf
Multiplicity:[1]
Nillable:no
Abstract:no
Documentation:The bibiConf element of an experiment configuration specifies the
Element experimentControl
Name:experimentControl
Type:ExperimentControl
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The experiment control lists all state machines that control the experiment.
Element experimentEvaluation
Name:experimentEvaluation
Type:ExperimentControl
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The experiment evaluation element lists all state machines that evaluate the success of a simulated experiment.
Element cameraPose
Name:cameraPose
Type:CameraPose
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The camera pose specifies the initial position of the camera when a simulation is started.
Element rosLaunch
Name:rosLaunch
Type:RosLaunch
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:The roslaunch element species the path to a ROSLaunch file that is executed when the experiment is simulated. If no file is specified, no ROSLaunch file is executed at the beginning of an experiment.
Element rngSeed
Name:rngSeed
Type:positiveInteger
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:If specified, this element specifies the random number generator seed. If this field is left blank, a seed is generated and therefore, the simulation is not 100% deterministic. If a seed is specified here, this seed is used for the robot and neural simulation, making the simulation much more deterministic.
Element physicsEngine
Name:physicsEngine
Type:PhysicsEngine
Multiplicity:[0..1]
Nillable:no
Abstract:no
Documentation:If specified, this element denotes the physics simulator that should be used. We currently support either ODE or OpenSim.

XML Instance Representation

<...>
   <name> string </name> [1]
   <thumbnail> ThumbnailFile </thumbnail> [1]
   <description> string </description> [1]
   <timeout> double </timeout> [0..1]
   <configuration> ConfFile </configuration> [0..*]
   <maturity> MaturityType </maturity> [0..1]
   <environmentModel> EnvironmentModel </environmentModel> [1]
   <visualModel> VisualModel </visualModel> [0..1]
   <bibiConf> BibiConf </bibiConf> [1]
   <experimentControl> ExperimentControl <!-- Uniqueness Constraint - uniqueExperimentControlSelector - tns:stateMachineField(s) - @id--></experimentControl> [0..1]
   <experimentEvaluation> ExperimentControl <!-- Uniqueness Constraint - uniqueExperimentEvaluationSelector - tns:stateMachineField(s) - @id--></experimentEvaluation> [0..1]
   <cameraPose> CameraPose </cameraPose> [0..1]
   <rosLaunch> RosLaunch </rosLaunch> [0..1]
   <rngSeed> positiveInteger </rngSeed> [0..1]
   <physicsEngine> PhysicsEngine </physicsEngine> [0..1]
</...>

Complex Type: ExperimentControl

Super-types None
Sub-types None
Name:ExperimentControl
Abstract:no
Documentation:This type depicts a list of state machines

Properties

Element stateMachine
Name:stateMachine
Type:StateMachine
Multiplicity:[1..*]
Nillable:no
Abstract:no
Documentation:The actual state machines of this list of state machines

XML Instance Representation

<...>
   <stateMachine> StateMachine </stateMachine> [1..*]
</...>

Complex Type: Position

Super-types None
Sub-types None
Name:Position
Abstract:no
Documentation:This type denotes a position with x, y and z coordinates.

Properties

Attribute x
Name:x
Type:double
Multiplicity:[1]
Documentation:The x coordinate of the position
Attribute y
Name:y
Type:double
Multiplicity:[1]
Documentation:The y coordinate of the position
Attribute z
Name:z
Type:double
Multiplicity:[1]
Documentation:The z coordinate of the position

XML Instance Representation

<... x="double [1]" y="double [1]" z="double [1]"/>

Complex Type: RobotPose

Super-types None
Sub-types None
Name:RobotPose
Abstract:no
Documentation:This type represents a robot pose. It consists of a position part (x, y and z coordinates) and a rotation part (ux, uy, uz and theta). All fields are double precision values.

Properties

Attribute x
Name:x
Type:double
Multiplicity:[1]
Documentation:The x coordinate of the robot position
Attribute y
Name:y
Type:double
Multiplicity:[1]
Documentation:The y coordinate of the robot position
Attribute z
Name:z
Type:double
Multiplicity:[1]
Documentation:The z coordinate of the robot position
Attribute ux
Name:ux
Type:double
Multiplicity:[1]
Attribute uy
Name:uy
Type:double
Multiplicity:[1]
Attribute uz
Name:uz
Type:double
Multiplicity:[1]
Attribute theta
Name:theta
Type:double
Multiplicity:[1]

XML Instance Representation

<... x="double [1]" y="double [1]" z="double [1]" ux="double [1]" uy="double [1]" uz="double [1]" theta="double [1]"/>

Complex Type: RosLaunch

Super-types None
Sub-types None
Name:RosLaunch
Abstract:no
Documentation:This type denotes a Ros Launchfile configuration.

Properties

Attribute src
Name:src
Type:string
Multiplicity:[1]
Documentation:The path to a ROSLaunch file

XML Instance Representation

<... src="string [1]"/>

Complex Type: SCXMLStateMachine

Super-types StateMachine < SCXMLStateMachine (by extension)
Sub-types None
Name:SCXMLStateMachine
Abstract:no
Documentation:This type denotes an SCXML state machine. SCXML is a W3C standard for state charts. However, state machines in this format are currently not run. State machines in SCXML are currently not interpreted.

Properties

Element
Name:
Type:anyType
Multiplicity:[0..1]
Nillable:no
Abstract:no
Attribute src
Name:src
Type:string
Multiplicity:[0..1]

XML Instance Representation

<... src="string [0..1]"> <!-- 'StateMachine' super type was not found in this schema. Some elements and attributes may be missing. -->
   <scxml> ... </scxml> [0..1]
</...>

Complex Type: SMACHStateMachine

Super-types StateMachine < SMACHStateMachine (by extension)
Sub-types None
Name:SMACHStateMachine
Abstract:no
Documentation:This type depicts a SMACH state machine. It is specified using a path to the source code of the state machine.

Properties

Attribute src
Name:src
Type:string
Multiplicity:[1]
Documentation:The path to an Python script that describes the state machine. This script has to have a variable with global scope that must have the name sm or stateMachine.

XML Instance Representation

<... src="string [1]"> <!-- 'StateMachine' super type was not found in this schema. Some elements and attributes may be missing. -->
</...>

Complex Type: StateMachine

Super-types None
Sub-types
  • SMACHStateMachine (by extension)
  • SCXMLStateMachine (by extension)
Name:StateMachine
Abstract:yes
Documentation:This abstract type depicts a state machine. Currently, State Machines in SMACH or SCXML are supported, though state machines in SCXML are currently ignored.

Properties

Attribute id
Name:id
Type:string
Multiplicity:[1]
Documentation:Any state machine must have an identifier. This identifier is used to communicate with the state machine and therefore must be an identifier.

XML Instance Representation

<... id="string [1]"/>

Complex Type: VisualModel

Super-types None
Sub-types None
Name:VisualModel
Abstract:no
Documentation:This type defines a visual model (for example for the robot) as used in the frontend.

Properties

Element visualPose
Name:visualPose
Type:RobotPose
Multiplicity:[1]
Nillable:no
Abstract:no
Attribute src
Name:src
Type:string
Multiplicity:[1]
Attribute scale
Name:scale
Type:double
Multiplicity:[0..1]

XML Instance Representation

<... src="string [1]" scale="double [0..1]">
   <visualPose> RobotPose </visualPose> [1]
</...>

Simple Type: ConfType

Super-types None
Sub-types None
Name:ConfType
Content:Union of following types: ConfTypeEnumerationstring
Documentation:This type denotes a configuration type which can be a standard configuration type or a custom type. The latter is just any string.

Simple Type: ConfTypeEnumeration

Super-types string < ConfTypeEnumeration (by restriction)
Sub-types None
Name:ConfTypeEnumeration
Content:Base XSD Type: stringvalue comes from list: {‘3d-settings’}
Documentation:This enumeration lists the standard configuration types used in the NRP.

Members

  • 3d-settings

Simple Type: MaturityType

Super-types string < MaturityType (by restriction)
Sub-types None
Name:MaturityType
Content:Base XSD Type: stringvalue comes from list: {‘development’|’production’}
Documentation:This type denotes a maturity of an experiment. It can either be development or production.

Members

  • development
  • production

Simple Type: PhysicsEngine

Super-types string < PhysicsEngine (by restriction)
Sub-types None
Name:PhysicsEngine
Content:Base XSD Type: stringvalue comes from list: {‘ode’|’opensim’}
Documentation:This enumeration contains the physics engines supported by the NRP. This includes the standard physics engine ODE and OpenSim.

Members

  • ode
  • opensim

Simple Type: ThumbnailFile

Super-types string < ThumbnailFile (by restriction)
Sub-types None
Name:ThumbnailFile
Content:Base XSD Type: stringpattern = [a-zA-Z0-9._-/]*.(png|gif|jp[e]?g)
Documentation:This type denotes a path to an image file. The supported extensions are .png, .jpg, .jpeg and .gif. The file name must not contain whitespaces.