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

fix: examples for hydrosurv and correct SOAR_README.md

parent 42a832fe
This commit is part of merge request !2. Comments created here will be created in the context of that merge request.
......@@ -18,7 +18,8 @@ action_schema = api.model(
),
"flight_style": fields.String(
required=False,
description="Platform-specific modes/flight styles to perform next action",
description="Platform-specific modes/flight styles to perform"
+ " next action",
example="orbit",
),
"latitude_waypoint": fields.Float(
......@@ -49,17 +50,8 @@ action_schema = api.model(
),
"send_environmental_data": fields.Boolean(
required=False,
description="To trigger the platform to send list of observations if any found",
example=False,
),
"scanline": fields.Boolean(
required=False,
description="To trigger the platform to scan-line",
example=False,
),
"scanpoint": fields.Boolean(
required=False,
description="To trigger the platform to send list of observations if any found",
description="To trigger the platform to send list of observations"
+ " if any found",
example=False,
),
},
......
"""
schema: platform-specific decoded status message (DRAFT)
"""
from . import full_message_schema, platform_schema, api
from . import full_message_schema, api
from flask_restx import fields
......@@ -22,17 +22,20 @@ observation_schema = api.model(
# properties of each observation?
"points_of_interest": fields.Float(
required=False,
description="Points from features of interest identified by platform if any found. DEFINE FORMAT.",
description="Points from features of interest identified by"
+ " platform if any found. DEFINE FORMAT.",
example="",
),
"region_surveyed": fields.Float(
required=False,
description="Region surveyed by given platform. DEFINE FORMAT. GEOJSON?",
description="Region surveyed by given platform. DEFINE FORMAT."
+ " GEOJSON?",
example="",
),
"quality_of_points": fields.Float(
required=False,
description="Quality/strength of points from features of interest identified by platform. DEFINE FORMAT.",
description="Quality/strength of points from features of interest"
+ " identified by platform. DEFINE FORMAT.",
example=0.98,
),
"additional_data": fields.Raw(
......
......@@ -11,7 +11,8 @@ region_schema = api.model(
{
"region": fields.Raw(
required=True,
description="Using GEOJSON, exact region of interest in rectangle format polygon",
description="Using GEOJSON, exact region of interest in rectangle"
+ " format polygon",
example={
"type": "FeatureCollection",
"features": [
......@@ -56,7 +57,8 @@ squad_metadata_schema = api.model(
),
"squad_mission_type": fields.String(
required=True,
description="Mission of given squad: `tracking`, `survey`, `inspection`",
description="Mission of given squad: `tracking`, `survey`"
+ ", `inspection`",
example="survey",
),
"squad_state": fields.Boolean(
......
"""
schema: platform-specific decoded status message (DRAFT)
"""
from . import full_message_schema, platform_schema, api
from . import full_message_schema, api
from flask_restx import fields
gps_schema = api.model(
......@@ -9,7 +9,10 @@ gps_schema = api.model(
{
"gps_source": fields.Float( # TODO: TBD with partners
required=False,
description="Source of gps position. E.g. USBL (external), platform itself (internal)",
description=(
"Source of gps position. E.g. USBL (external),"
+ "platform itself (internal)"
),
example="internal",
),
"latitude_type": fields.String(
......@@ -47,12 +50,17 @@ gps_schema = api.model(
)
sensor_schema = api.model(
"Sensor",
"SensorSchema",
{
"sensor_name": fields.String(
"sensor_ID": fields.Integer(
required=True,
description="unique identifier for platform",
example=2,
),
"serial": fields.String(
required=False,
description="Name of sensor (e.g. MBES for AH1 and SideScan for Ecosub",
example="MBES",
description="serial number of sensor",
example="mbes-001",
),
"sensor_status": fields.Boolean(
required=False,
......@@ -61,11 +69,12 @@ sensor_schema = api.model(
),
"additional_data": fields.Raw(
required=False,
description="Add any additional sensor-related data here.",
example={"sensor_loadtime_seconds": 30.0},
description="Any addition fields/data to be added here",
),
},
)
platform_status_message_schema = api.model(
"platformStatusMessage",
{
......@@ -74,7 +83,17 @@ platform_status_message_schema = api.model(
required=True,
description="Message header",
),
"platform": fields.Nested(platform_schema),
"platform_ID": fields.Integer(
required=True,
description="unique identifier for platform",
example=1,
),
"active": fields.Boolean(
required=False,
description="When a platform is in deployment (executing a"
+ " mission plan) this should be True",
example=True,
),
"platform_state": fields.String(
# TODO: Define dictionary with potential STATES of each platform
required=False,
......@@ -84,7 +103,8 @@ platform_status_message_schema = api.model(
),
"autonomy_plan_ID": fields.Integer(
required=False,
description="Last mission plan ID (according to Autonomy Engine's mission plan number) executed by platform",
description="Last mission plan ID (according to Autonomy Engine's"
+ " mission plan number) executed by platform",
example=1,
),
"mission_track_ID": fields.Integer(
......@@ -127,9 +147,8 @@ platform_status_message_schema = api.model(
example="Warning",
),
"gps_data": fields.List(
fields.Nested(
gps_schema
), # TODO: TBD Do we want a list of gps readings to allow > 1 reading i.e. platform + usbl
fields.Nested(gps_schema), # TODO: TBD Do we want a list of
# gps readings to allow > 1 reading i.e. platform + usbl
required=True,
description="Metadata pf each platform",
),
......@@ -145,7 +164,8 @@ platform_status_message_schema = api.model(
),
"battery_remaining_capacity": fields.Float(
required=True,
description="Battery remaining capacity % provided by respective platform/C2.",
description="Battery remaining capacity % provided by respective"
+ " platform/C2.",
example=80.0,
),
"sensor_config": fields.Nested(
......
......@@ -3,29 +3,120 @@ Squad of Adaptive Robots Project
-----------------------------------
## Message Data Flow Summary
| Partner | Message Type | Source | Destination | Via Comms Backbone? | Contains Serialized Vehicle-Specific File? |
| ------------ | ---------------------- | --------------------------- | --------------------------- | ------------------- | ------------------------------------------ |
| RHU | platform status | C2’s (Hydrosurv/Ecosub/Ah1) | Autonomy Engine | Yes | No |
| RHU | mission plan | Autonomy Engine | C2’s (Hydrosurv/Ecosub/Ah1) | Yes | No |
| RHU | planning configuration | GUI | Autonomy Engine | Yes | No |
| RHU | observation | Ecosub C2 | Autonomy Engine | Yes | No |
| Hydro-Surv | platform status | Reav-60 | Hydrosurv C2 | No | Yes |
| Hydro-Surv | platform status | Hydrosurv C2 | Autonomy Engine | Yes | No |
| Hydro-Surv | mission plan | Autonomy Engine | Hydrosurv C2 | Yes | No |
| Hydro-Surv | mission plan | Hydrosurv C2 | Reav-60 | No | Yes |
| Hydro-Surv | acknowledgement | Hydrosurv C2 | Comms Backbone (Audit) | Yes | No |
| Planet Ocean | platform status | Ecosub | Hydrosurv Adapter | No | Yes |
| Planet Ocean | platform status | Hydrosurv Adapter | Ecosub C2 | Yes | Yes |
| Planet Ocean | platform status | Ecosub C2 | Autonomy Engine | Yes | No |
| Planet Ocean | mission plan | Autonomy Engine | Ecosub C2 | Yes | No |
| Planet Ocean | mission plan | Ecosub C2 | Hydrosurv Adapter | Yes | Yes |
| Planet Ocean | mission plan | Hydrosurv Adapter | Ecosub | No | Yes |
| Planet Ocean | observation | Ecosub | Hydrosurv Adapter | No | Yes |
| Planet Ocean | observation | Hydrosurv Adapter | Ecosub C2 | Yes | Yes |
| Planet Ocean | observation | Ecosub C2 | Autonomy Engine | Yes | No |
| NOC | platform status | Ecosub | Hydrosurv Adapter | No | Yes |
| NOC | platform status | Hydrosurv Adapter | Ecosub C2 | Yes | Yes |
| NOC | platform status | Ecosub C2 | Autonomy Engine | Yes | No |
| NOC | mission plan | Autonomy Engine | Ecosub C2 | Yes | No |
| NOC | mission plan | Ecosub C2 | Hydrosurv Adapter | Yes | Yes |
| NOC | mission plan | Hydrosurv Adapter | Ecosub | No | Yes |
| Partner | Message Type | Source | Destination | Via Comms Backbone? | Contains Serialized Vehicle-Specific File? | Comment |
| --------------------- | ------------------------ | --------------------- | ------------------------------------------ | ------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------- |
| Hydrosurv (reav) | platform status-compiled | Reav-60 | Hydrosurv Adapter | No | Yes | N/A |
| Hydrosurv (reav) | platform status | Hydrosurv Adapter | Autonomy Engine | Yes | No | N/A |
| Hydrosurv (reav) | mission plan | Autonomy Engine | Hydrosurv Adapter | Yes | No | N/A |
| Hydrosurv (reav) | mission plan-compiled | Hydrosurv Adapter | Reav-60 | No | Yes | N/A |
| Hydrosurv (reav) | acknowledgement | Hydrosurv Adapter | Comms Backbone (Audit) | Yes | No | When hydrosurv adapter has (a) Received, (b) Sent Plan to Reav, and (c) Executed by Reav |
| RHU (autonomy engine) | platform status | C2’s Hydrosurv/Ecosub | Autonomy Engine | Yes | No | N/A |
| RHU (autonomy engine) | mission plan | Autonomy Engine | C2’s Hydrosurv/Ecosub | Yes | No | N/A |
| RHU (autonomy engine) | planning configuration | GUI | Autonomy Engine | Yes | No | N/A |
| RHU (autonomy engine) | observation | Ecosub C2 | Autonomy Engine | Yes | No | N/A |
| RHU (autonomy engine) | survey progress | Ecosub/AH1 C2 | Autonomy Engine | TBD | TBD | N/A |
| RHU (autonomy engine) | scanline | TBD | TBD | TBD | TBD | N/A |
| RHU (autonomy engine) | emergency | GUI | TBD – all | TBD | TBD | TBD – all platforms pre-compiled ABORT via Black box |
| Planet Ocean (ecosub) | platform status-compiled | Ecosub | Black Box TBC | No | Yes | Via Hermes + Router |
| Planet Ocean (ecosub) | platform status-compiled | Black Box TBC | Ecosub C2 | Yes | Yes | N/A |
| Planet Ocean (ecosub) | platform status | Ecosub C2 | Autonomy Engine | Yes | No | N/A |
| Planet Ocean (ecosub) | mission plan | Autonomy Engine | Ecosub C2 | Yes | No | N/A |
| Planet Ocean (ecosub) | mission plan | Ecosub C2 | Black Box TBC | Yes | Yes | N/A |
| Planet Ocean (ecosub) | mission plan-compiled | Black Box TBC | Ecosub | No | Yes | Via Hermes + Router |
| Planet Ocean (ecosub) | observation-compiled | Ecosub | Black Box TBC | No | Yes | Via Hermes + Router |
| Planet Ocean (ecosub) | observation-compiled | Black Box TBC | Ecosub C2 | Yes | Yes | N/A |
| Planet Ocean (ecosub) | observation | Ecosub C2 | Autonomy Engine | Yes | No | N/A |
| Planet Ocean (ecosub) | survey progress | TBD | TBD | TBD | TBD | N/A |
| Planet Ocean (ecosub) | survey progress | TBD | TBD | TBD | TBD | N/A |
| Planet Ocean (ecosub) | scanline | TBD | TBD | TBD | TBD | N/A |
| Planet Ocean (ecosub) | scanline | TBD | TBD | TBD | TBD | N/A |
| Planet Ocean (ecosub) | emergency | GUI | TBD – Ecosub (ABORT command via Black Box) | TBD | TBD | TBD – all platforms pre-compiled ABORT via Black box |
| NOC (AH1) | platform status-compiled | AH1 | Black Box TBC | No | Yes | Via Hermes + Router |
| NOC (AH1) | platform status-compiled | Black Box TBC | NOC C2 | Yes | Yes | N/A |
| NOC (AH1) | platform status | NOC C2 | Autonomy Engine | Yes | No | N/A |
| NOC (AH1) | scan point | Autonomy Engine | NOC C2 | Yes | No | N/A |
| NOC (AH1) | scan point-compiled | NOC C2 | Black Box TBC | Yes | Yes | Would this technically be a mission plan-compiled? |
| NOC (AH1) | scan point | Black Box TBC | Ecosub | No | Yes | Via Hermes + Router |
| NOC (AH1) | survey progress | TBD | TBD | TBD | TBD | TBD |
| NOC (AH1) | survey progress | TBD | TBD | TBD | TBD | TBD |
| NOC (AH1) | emergency | GUI | TBD – AH1 (ABORT command via Black Box) | TBD | TBD | TBD – all platforms pre-compiled ABORT via Black box |
| NOC (GUI) | planning configuration | GUI | Autonomy Engine | Yes | No | N/A |
| NOC (GUI) | emergency | GUI | TBD | TBD | TBD | TBD |
## Breakdown of Message Sources & Types
### 1/ Autonomy Engine
#### Transmit
* mission plan _(sent per platform??)_
* TBD:
* Will emergency commands be sent via the autonomy engine (from the GUI) or directly to the C2s?
#### Receive
* configuration file
* emergency stop all
* decoded ecosub status message
* decoded reav status message
* decoded autosub-hover status message
* decoded ecosub observation data _(from squad 1 platforms)_
----------------------------------
### 2/ Ecosub C2
#### Transmit
* compiled ecosub mission plan
* decoded ecosub status message
* autonomy configuration file
* decoded ecosub observation data
#### Receive
* mission plan
* encoded ecosub status message
* encoded ecosub observation data
----------------------------------
### 3/ Autosub C2
#### Transmit
* compiled autosub-hover mission plan
* decoded autosub-hover status message
* autonomy configuration file
#### Receive
* mission plan
* encoded autosub-hover status message
----------------------------------
### 4/ Reav C2
#### Transmit
* decoded reav-60 status message?
#### Receive
* mission plan
* encoded reav-60 status message?
----------------------------------
### 5/ Hermes Box/Hydrosurv Smart Router?
#### Transmit
* encoded ecosub status message
* encoded (or is this already decoded?) reav status message
* encoded autosub status message
* encoded ecosub observation data
* TBD:
* are there acknowledgment messages from platforms?
* how are we receiving beacon messages per platform?
#### Receive
* compiled ecosub mission plan
* compiled reav mission plan
* compiled autosub mission plan
* compiled ecosub emergency command
* compiled reav emergency command
* compiled autosub emergency command
------------------------------------
\ No newline at end of file
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