Virtue Controller

The virtue controller plugin checks that the simulation does not exhibit irrationality or invalid behavior. There are a few Checker classes in the virtue.cpp implementation that are of interest:

RationalityChecker

Checks that the ego object does not change size. Checks that the normed velocity is not negative.

SafetyChecker

Checks that reported acceleration does not exceed 20 m/s. Checks that acceleration derived from velocity deltas does not exceed 20 m/s. Checks that simulation step increases by one in each check pass.

MissingLaneBoundariesChecker

Checks that there are no missing lane boundaries, given the configured components.

Triggers

As with vehicles, plugin trigger event names are dependent on the given name of a plugin in a simulation. This is by default the name of the plugin itself, which is used in this documentation.

<virtue>/failure

Triggers when the virtue controller detects a violation of requirements.

No arguments are accepted. Inline short-form is implicitly supported.

Defaults

The following help can be viewed with cloe-engine usage virtue:

Name: virtue
Type: controller
Path: ~/.conan/data/cloe-plugin-virtue/0.25.0/cloe/develop/package/722452d8f3bfc1eef1fc5de534638769b66120b8/lib/cloe/controller_virtue.so
Usage: {
  "init_phase": "integer :: time during which initialization is performed",
  "lane_sensor_components": "array of string :: array of lane-sensor components to be checked"
}
Defaults: {
  "init_phase": 100000000,
  "lane_sensor_components": []
}

JSON Schema

The following can be viewed with cloe-engine usage --json virtue:

{
  "$id": "~/.conan/data/cloe-plugin-virtue/0.25.0/cloe/develop/package/722452d8f3bfc1eef1fc5de534638769b66120b8/lib/cloe/controller_virtue.so",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "description": "performs various quality assurance measures",
  "properties": {
    "init_phase": {
      "description": "time during which initialization is performed",
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "type": "integer"
    },
    "lane_sensor_components": {
      "description": "array of lane-sensor components to be checked",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "title": "virtue",
  "type": "object"
}