Commit c5a1ebd2 authored by Trishna Saeharaseelan's avatar Trishna Saeharaseelan
Browse files

Merge branch '90-add-options-obj-to-primitives' into '67-mas-dt'

Add option obj for primitives when instruction is follow or navigate_to

See merge request !55
3 merge requests!59Release v2.0.0,!55Add option obj for primitives when instruction is follow or navigate_to,!36Resolve "Create temporary mas-dt branch for initial schema refactor"
Pipeline #248366 passed with stages
in 2 minutes and 4 seconds
......@@ -7,16 +7,26 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
### Removed
- Removed "repeat" primitive instruction's enum (planning config)
### Added
<<<<<<< HEAD
- Goal object in mission_plan message that consists of a GeoJSON feature (representing the part of primitive that is currently the goal of the given mission plan).
- A `partial` flag that indicates if a mission plan is a partial plan or the entire mission plan
=======
- Added "informational" to enum for primitive's instruction enum (planning configuration)
>>>>>>> 7f768c7 (refactor(planning_configuration): update primitive instruction's enum and new goal obj)
- Options to primitives (under planning_configuration message) which is only a property when a primitive has an instruction of "follow" or "navigate_to"
- Validate message_ID matches uuid format
- Add definition of instruction_set message
- Added optional primitives to squad schema
### Changed
- Added "instruction" as required under the primitive schema (planning configuration)
- Refactor instructeion_set into platform_instruction_set
- Refactor mission_plan schema autonomy_engine_plan_ID oneOf
- Update all example messages with valid UUIDs
......
......@@ -153,6 +153,11 @@
50.335942
]
}
},
"options": {
"repeat": true,
"reverse": true,
"acceptance_radius_m": 3000
}
}
]
......
......@@ -181,26 +181,66 @@ platform_schema = {
],
}
primitive_schema = {
options_schema = {
"type": "object",
"properties": {
"instruction": {
"type": "string",
"enum": [
"stay_inside",
"stay_outside",
"navigate_to",
"follow",
"repeat",
"cover",
],
"description": "How the associated feature should be used",
},
"feature": {
"$ref": "https://geojson.org/schema/Feature.json",
"repeat": {
"type": "boolean",
"description": "Repeat these set of primitives in order (e.g. 1->2->3->1->2...)",
"example": True,
},
"reverse": {
"type": "boolean",
"description": "Loop backwards through the set of primitives (e.g 1->2->-3->2->1...)",
"example": True,
},
"acceptance_radius_m": {
"type": "number",
"format": "float",
"description": "Acceptance radius (if applicable) to points of geometry in metres",
"example": 10000,
},
},
"required": ["feature"],
}
primitive_schema = {
"oneOf": [
{
"properties": {
"instruction": {
"type": "string",
"enum": [
"navigate_to",
"follow",
],
"description": "How the associated feature should be used",
},
"options": options_schema,
"feature": {
"$ref": "https://geojson.org/schema/Feature.json",
},
},
"required": ["feature", "instruction"],
},
{
"properties": {
"instruction": {
"type": "string",
"enum": [
"stay_inside",
"stay_outside",
"cover",
"informational",
],
"description": "How the associated feature should be used",
},
"feature": {
"$ref": "https://geojson.org/schema/Feature.json",
},
},
"required": ["feature", "instruction"],
},
]
}
squad_metadata_schema = {
......
......@@ -1947,27 +1947,69 @@
"primitives": {
"description": "Specification primitives - campaign-wide such as operating area and obstacles",
"items": {
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
"oneOf": [
{
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"navigate_to",
"follow"
],
"type": "string"
},
"options": {
"properties": {
"acceptance_radius_m": {
"description": "Acceptance radius (if applicable) to points of geometry in metres",
"example": 10000,
"format": "float",
"type": "number"
},
"repeat": {
"description": "Repeat these set of primitives in order (e.g. 1->2->3->1->2...)",
"example": true,
"type": "boolean"
},
"reverse": {
"description": "Loop backwards through the set of primitives (e.g 1->2->-3->2->1...)",
"example": true,
"type": "boolean"
}
},
"type": "object"
}
},
"required": [
"feature",
"instruction"
]
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"stay_inside",
"stay_outside",
"navigate_to",
"follow",
"repeat",
"cover"
],
"type": "string"
{
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"stay_inside",
"stay_outside",
"cover",
"informational"
],
"type": "string"
}
},
"required": [
"feature",
"instruction"
]
}
},
"required": [
"feature"
],
"type": "object"
]
},
"type": "array"
},
......@@ -2158,27 +2200,69 @@
"primitives": {
"description": "Squad primitives - includes platform group navigation instructions",
"items": {
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
"oneOf": [
{
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"navigate_to",
"follow"
],
"type": "string"
},
"options": {
"properties": {
"acceptance_radius_m": {
"description": "Acceptance radius (if applicable) to points of geometry in metres",
"example": 10000,
"format": "float",
"type": "number"
},
"repeat": {
"description": "Repeat these set of primitives in order (e.g. 1->2->3->1->2...)",
"example": true,
"type": "boolean"
},
"reverse": {
"description": "Loop backwards through the set of primitives (e.g 1->2->-3->2->1...)",
"example": true,
"type": "boolean"
}
},
"type": "object"
}
},
"required": [
"feature",
"instruction"
]
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"stay_inside",
"stay_outside",
"navigate_to",
"follow",
"repeat",
"cover"
],
"type": "string"
{
"properties": {
"feature": {
"$ref": "#/components/schemas/geojson.org.schema.Feature.json"
},
"instruction": {
"description": "How the associated feature should be used",
"enum": [
"stay_inside",
"stay_outside",
"cover",
"informational"
],
"type": "string"
}
},
"required": [
"feature",
"instruction"
]
}
},
"required": [
"feature"
],
"type": "object"
]
},
"type": "array"
},
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment