Commit 011b8b15 authored by Trishna Saeharaseelan's avatar Trishna Saeharaseelan
Browse files

refactor: update information for hydrosurv and examples

......@@ -4,13 +4,13 @@
"timestamp": "2022-11-16T00:00:00Z",
"version": 2,
"source": "autonomy_engine",
"destination": "soar.hydrosurv.reav-60.reav-60-1.to_platform.mission_plan",
"destination": "soar.hydrosurv.reav60.usvdecibel.to_platform.mission_plan",
"delivery_type": "publish",
"encoded": false
},
"payload":{
"message_type": "mission_plan",
"platform_ID": "reav-60-1",
"platform_ID": "usvdecibel",
"autonomy_engine_plan_ID": 1,
"plan": [
{
......
......@@ -5,7 +5,7 @@
"version": 2,
"source": "gui",
"destination": "soar.all.all.all.from_platform.planning_configuration",
"delivery_type": "publish",
"delivery_type": "broadcast",
"encoded": false
},
"payload":{
......@@ -76,24 +76,10 @@
{
"operator": "hydrosurv",
"model": "reav",
"platform_ID": "reav-60-1",
"platform_ID": "usvdecibel",
"active": true,
"emergency": {
"target_waypoint_latitude": 50.33611100020795,
"target_waypoint_longitude": -4.189772466767039,
"safe_command": "go_home",
"target_depth": 10.0
},
"min_altitude": 0.0,
"max_velocity": 0.9,
"min_velocity": 0.1,
"target_altitude": 0.0,
"endurance_relative_to_water_speed": {
"min_battery_rating": 2.25,
"max_battery_rating": 1.23,
"avg_battery_rating": 1.9
},
"additional_data": {}
}
]
},
......
......@@ -75,8 +75,8 @@
"platforms": [
{
"operator": "hydrosurv",
"model": "reav",
"platform_ID": "reav-60-1",
"model": "reav60",
"platform_ID": "usvdecibel",
"active": true,
"emergency": {
"target_waypoint_latitude": 50.33611100020795,
......
......@@ -4,14 +4,14 @@
"timestamp": "2022-11-16T00:00:00Z",
"version": 1,
"source": "hydrosurv_adapter",
"destination": "soar.hydrosurv.reav-60.reav-60-1.from_platform.acknowledgement",
"destination": "soar.hydrosurv.reav60.usvdecibel.from_platform.acknowledgement",
"delivery_type": "publish",
"encoded": false
},
"payload":{
"message_type": "acknowledgement",
"autonomy_engine_plan_ID": 1,
"platform_ID": "reav-60-1",
"platform_ID": "usvdecibel",
"approved": false
}
}
\ No newline at end of file
......@@ -4,13 +4,13 @@
"timestamp": "2022-11-16T00:00:00Z",
"version": 2,
"source": "autonomy_engine",
"destination": "soar.hydrosurv.reav-60.reav-60-1.to_platform.mission_plan",
"destination": "soar.hydrosurv.reav60.usvdecibel.to_platform.mission_plan",
"delivery_type": "publish",
"encoded": false
},
"payload":{
"message_type": "mission_plan",
"platform_ID": "reav-60-1",
"platform_ID": "usvdecibel",
"autonomy_engine_plan_ID": 1,
"plan": [
{
......
......@@ -4,7 +4,7 @@
"timestamp": "2022-11-16T00:00:00Z",
"version": 2,
"source": "hydrosurv_adapter",
"destination": "soar.hydrosurv.reav-60.reav-60-1.from_platform.platform_status",
"destination": "soar.hydrosurv.reav60.usvdecibel.from_platform.platform_status",
"delivery_type": "publish",
"encoded": false
},
......@@ -19,7 +19,7 @@
"longitude": -10.122,
"mission_plan_ID": 1,
"mission_track_ID": 4,
"platform_ID": "reav-60-1",
"platform_ID": "usvdecibel",
"platform_state": "ABORT",
"platform_timestamp": "2022-12-21T00:00:00Z",
"speed_over_ground": 4.5,
......
......@@ -8,7 +8,7 @@ emergency_schema = {
"properties": {
"safe_command": {
"type": "string",
"enum": ["go_home", "abort_now", "stop_mission"],
"enum": ["go_home", "abort_now", "stop_now", "surface_now"],
"description": "Command/Action that is native to respective"
+ " partner's platform/C2",
"example": "go_home",
......@@ -178,7 +178,6 @@ platform_schema = {
"platform_ID",
"active",
"model",
"emergency",
"min_altitude",
"min_velocity",
"max_velocity",
......
......@@ -524,7 +524,8 @@
"enum":[
"go_home",
"abort_now",
"stop_mission"
"stop_now",
"surface_now"
],
"example":"go_home",
"type":"string"
......@@ -666,7 +667,6 @@
"platform_ID",
"active",
"model",
"emergency",
"min_altitude",
"min_velocity",
"max_velocity"
......
......@@ -250,7 +250,7 @@ emergency_schema = {
"properties": {
"safe_command": {
"type": "string",
"enum": ["go_home", "abort_now", "stop_mission"],
"enum": ["go_home", "abort_now", "stop_now", "surface_now"],
"description": "Command/Action that is native to respective"
+ " partner's platform/C2",
"example": "go_home",
......
{
"components":{
"schemas":{
"MESSAGE":{
"description":"Full message definition with message-metadata in `header` and different message type schemas under `payload`",
"properties":{
"header":{
"$ref":"#/components/schemas/header"
},
"payload":{
"$ref":"#/components/schemas/payload"
}
},
"required":[
"header",
"payload"
],
"type":"object"
},
"acknowledgement":{
"properties":{
"approved":{
"description":"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected",
"type":"boolean"
},
"autonomy_engine_plan_ID":{
"description":"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
"example":1,
"type":"integer"
},
"message_type":{
"description":"Type of message",
"enum":[
"acknowledgement"
],
"example":"acknowledgement",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
}
},
"required":[
"message_type",
"autonomy_engine_plan_ID",
"platform_ID",
"approved"
],
"type":"object"
},
"header":{
"discriminator":{
"propertyName":"message_type"
},
"properties":{
"delivery_type":{
"default":"publish",
"description":"To publish or broadcast this message.",
"enum":[
"broadcast",
"publish"
],
"example":"publish",
"type":"string"
},
"destination":{
"description":"Publisher topic; What is the destination of this message",
"example":"ah1",
"type":"string"
},
"encoded":{
"description":"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false",
"example":false,
"type":"boolean"
},
"message_ID":{
"description":"An identifier for the type of message received.",
"example":"b427003c-0000-11aa-a1eb-bvcdfghjgfdd",
"type":"string"
},
"source":{
"description":"The sender; Where is this message from",
"example":"autonomy_engine",
"type":"string"
},
"timestamp":{
"description":"Timestamp of message",
"example":"2022-11-16T00:00:00Z",
"format":"date-time",
"type":"string"
},
"version":{
"description":"Version of comms backbone message format protocol",
"example":2.0,
"format":"float",
"type":"number"
}
},
"type":"object"
},
"mission_plan":{
"properties":{
"autonomy_engine_plan_ID":{
"description":"Unique identifier for this plangenerated by the Autonomy Engine",
"example":3,
"type":"integer"
},
"emergency":{
"default":false,
"description":"To indicate if this is an emergency. true = emergency and false = no emergency",
"example":false,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"mission_plan"
],
"example":"mission_plan",
"type":"string"
},
"plan":{
"items":{
"properties":{
"action":{
"description":"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`.",
"example":"move",
"type":"string"
},
"activate_payload":{
"description":"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`",
"example":true,
"type":"boolean"
},
"altitude":{
"description":"Altitude of next action",
"example":15.0,
"format":"float",
"type":"number"
},
"depth":{
"description":"Depth of next action",
"example":15.0,
"format":"float",
"type":"number"
},
"start_point_latitude":{
"description":"Start point, x-coordinate",
"example":-4.187143188645706,
"format":"float",
"type":"number"
},
"start_point_longitude":{
"description":"Start point, y-coordinate",
"example":50.37072283932642,
"format":"float",
"type":"number"
},
"target_waypoint_latitude":{
"description":"Target waypoint, x-coordinate",
"example":-4.187143188645706,
"format":"float",
"type":"number"
},
"target_waypoint_longitude":{
"description":"Target waypoint, y-coordinate",
"example":50.37072283932642,
"format":"float",
"type":"number"
},
"timeout":{
"description":"Timeout set to perform action",
"example":1800.0,
"format":"float",
"type":"number"
}
},
"required":[
"target_waypoint_latitude",
"target_waypoint_longitude"
],
"type":"object"
},
"type":"array"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
}
},
"required":[
"message_type",
"autonomy_engine_plan_ID",
"platform_ID",
"plan"
],
"type":"object"
},
"mission_plan_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"mission_plan_encoded"
],
"example":"mission_plan_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
},
"observation":{
"properties":{
"additional_data":{
"description":"Placeholder field for any additional data",
"example":{
"sensor_payload":false
}
},
"message_type":{
"description":"Type of message",
"enum":[
"observation"
],
"example":"observation",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"points_of_interest":{
"description":"Points from features of interest identified by platform if any found.",
"items":{
"properties":{
"latitude":{
"description":"Identified x-coordinate of point of interest",
"example":178.2,
"format":"float",
"type":"number"
},
"longitude":{
"description":"Identified y-coordinate of point of interest",
"example":-10.122,
"format":"float",
"type":"number"
},
"quality_of_point":{
"description":"Quality/strength of points from features of interest identified by platform.",
"example":0.98,
"format":"float",
"type":"number"
}
},
"required":[
"latitude",
"longitude"
],
"type":"object"
},
"type":"array"
},
"region_surveyed":{
"description":"Region surveyed by given platform. GEOJSON",
"example":"",
"nullable":true
}
},
"required":[
"message_type",
"platform_ID"
],
"type":"object"
},
"observation_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"observation_encoded"
],
"example":"observation_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
},
"payload":{
"discriminator":{
"mapping":{
"acknowledgement":"#/components/schemas/acknowledgement",
"mission_plan":"#/components/schemas/mission_plan",
"mission_plan_encoded":"#/components/schemas/mission_plan_encoded",
"observation":"#/components/schemas/observation",
"observation_encoded":"#/components/schemas/observation_encoded",
"planning_configuration":"#/components/schemas/planning_configuration",
"platform_status":"#/components/schemas/platform_status",
"platform_status_encoded":"#/components/schemas/platform_status_encoded"
},
"propertyName":"message_type"
},
"oneOf":[
{
"$ref":"#/components/schemas/acknowledgement"
},
{
"$ref":"#/components/schemas/mission_plan"
},
{
"$ref":"#/components/schemas/mission_plan_encoded"
},
{
"$ref":"#/components/schemas/observation"
},
{
"$ref":"#/components/schemas/observation_encoded"
},
{
"$ref":"#/components/schemas/planning_configuration"
},
{
"$ref":"#/components/schemas/platform_status"
},
{
"$ref":"#/components/schemas/platform_status_encoded"
}
]
},
"planning_configuration":{
"properties":{
"exclusion_zones":{
"description":"Exclusion zones for all platforms",
"items":{
"description":"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
"properties":{
"geometry_coordinates":{
"example":[
[
[
-4.1777839187560915,
50.34173405662855
],
[
-4.1777839187560915,
50.33820949229701
],
[
-4.143667777943875,
50.33820949229701
],
[
-4.143667777943875,
50.34173405662855
],
[
-4.1777839187560915,
50.34173405662855
]
]
],
"type":"array"
}
},
"type":"object"
},
"type":"array"
},
"message_type":{
"description":"Type of message",
"enum":[
"planning_configuration"
],
"example":"planning_configuration",
"type":"string"
},
"planning_config_ID":{
"description":"Unique identifier tagged to version of this configuration plan",
"example":3,
"type":"integer"
},
"region_of_interest":{
"description":"Region of interest for the entire operation",
"items":{
"description":"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
"properties":{
"geometry_coordinates":{
"example":[
[
[
-4.1777839187560915,
50.34173405662855
],
[
-4.1777839187560915,
50.33820949229701
],
[
-4.143667777943875,
50.33820949229701
],
[
-4.143667777943875,
50.34173405662855
],
[
-4.1777839187560915,
50.34173405662855
]
]
],
"type":"array"
}
},
"type":"object"
},
"type":"array"
},
"squads":{
"items":{
"properties":{
"no_of_platforms":{
"description":"Number of platforms",
"example":3,
"type":"integer"
},
"platforms":{
"description":"Squad consists of these platforms",
"items":{
"properties":{
"additional_data":{
"description":"Any addition fields/data to be added here",
"example":{
"new_sensor_a":"test_sensor",
"range":10.0
},
"type":"object"
},
"beacon_ID":{
"description":"Unique identifier (number) for the beacon associated to this platform",
"example":9407,
"type":"number"
},
"emergency":{
"properties":{
"safe_command":{
"description":"Command/Action that is native to respective partner's platform/C2",
"enum":[
"go_home",
"abort_now",
"stop_mission"
],
"example":"go_home",
"type":"string"
},
"target_depth":{
"description":"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`",
"example":10.0,
"format":"float",
"type":"number"
},
"target_waypoint_latitude":{
"description":"X-coordinate safe place for respective platform",
"example":-7.432,
"format":"float",
"type":"number"
},
"target_waypoint_longitude":{
"description":"Y-coordinate safe place for respective platform",
"example":50.365,
"format":"float",
"type":"number"
}
},
"required":[
"target_waypoint_latitude",
"target_waypoint_longitude",
"target_depth"
],
"type":"object"
},
"max_velocity":{
"description":"Maximum velocity set for platform",
"example":0.9,
"format":"float",
"type":"number"
},
"min_altitude":{
"description":"Minimum altitude set for platform",
"example":15.2,
"format":"float",
"type":"number"
},
"min_velocity":{
"description":"Minimum velocity set for platform",
"example":0.1,
"format":"float",
"type":"number"
},
"model":{
"example":"reav",
"type":"string"
},
"operator":{
"description":"Operator of platform",
"example":"noc",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"scan_sensor":{
"properties":{
"angle":{
"description":"Angle of range of swath width (in degrees)",
"example":140.0,
"format":"float",
"type":"number"
},
"frequency":{
"description":"Frequency of scanning sensor (in kHz)",
"example":700.0,
"format":"float",
"type":"number"
},
"sensor_type":{
"description":"Unique identifier for this platform",
"enum":[
"SIDESCAN",
"MBES"
],
"example":"MBES",
"type":"string"
},
"swath_width":{
"description":"Function of `target_altitude` for the platform's swath width (in metres)",
"example":38.0,
"format":"float",
"type":"number"
}
},
"type":"object"
},
"target_altitude":{
"description":"Target altitude set for platform. This affects swath width",
"example":15.0,
"format":"float",
"type":"number"
},
"turning_radius":{
"description":"Turning radius of platform (in metres)",
"example":1.0,
"format":"float",
"type":"number"
}
},
"required":[
"operator",
"platform_ID",
"model",
"emergency",
"min_altitude",
"min_velocity",
"max_velocity"
],
"type":"object"
},
"type":"array"
},
"squad_ID":{
"description":"Identifier of given squad",
"example":23,
"type":"integer"
},
"squad_mission_type":{
"description":"Mission of given squad: `tracking`, `survey`, `inspection`",
"enum":[
"tracking",
"survey",
"inspection"
],
"example":"survey",
"type":"string"
}
},
"required":[
"squad_ID",
"no_of_platforms",
"platforms",
"squad_mission_type"
],
"type":"object"
},
"type":"array"
}
},
"required":[
"message_type",
"planning_config_ID",
"squads",
"exclusion_zones",
"region_of_interest"
],
"type":"object"
},
"platform_status":{
"properties":{
"altitude":{
"description":"Target altitude in metres",
"example":20.0,
"format":"float",
"type":"number"
},
"autonomy_engine_plan_ID":{
"description":"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
"example":1,
"type":"integer"
},
"battery_remaining_capacity":{
"description":"Battery remaining % provided by respective C2",
"example":80.2,
"format":"float",
"type":"number"
},
"depth":{
"default":0.0,
"description":"Target depth in metres",
"example":50.0,
"format":"float",
"type":"number"
},
"heading":{
"description":"Angular distance relative to north, usually 000\u00b0 at north, clockwise through 359\u00b0, in degrees",
"example":124.3,
"format":"float",
"type":"number"
},
"health_status":{
"description":"Health status where 0 is OK, 1 is platform has an ERROR",
"example":false,
"type":"boolean"
},
"latitude":{
"description":"Latitude in decimal degrees.",
"example":178.2,
"format":"float",
"type":"number"
},
"localisation_east_error":{
"description":"Difference in EAST between deadreckoningand USBL update.",
"example":0.000129,
"format":"float",
"type":"number"
},
"localisation_north_error":{
"description":"Difference in NORTH between deadreckoning and USBL update.",
"example":0.000129,
"format":"float",
"type":"number"
},
"longitude":{
"description":"Longitude in decimal degrees.",
"example":-10.122,
"format":"float",
"type":"number"
},
"message_type":{
"description":"Type of message",
"enum":[
"platform_status"
],
"example":"platform_status",
"type":"string"
},
"mission_plan_ID":{
"description":"Mission plan ID according to platform-C2 system",
"example":1,
"type":"integer"
},
"mission_track_ID":{
"description":"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)",
"example":4,
"type":"integer"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"platform_state":{
"description":"Current state executed by platform. E.g. STOP, IDLE, ABORT.",
"example":"ABORT",
"type":"string"
},
"platform_timestamp":{
"description":"Timestamp for onboard platform status message",
"example":"2022-12-21T00:00:00Z",
"format":"date-time",
"type":"string"
},
"range_to_go":{
"description":"Estimated distance to reach next waypoint",
"example":124.3,
"format":"float",
"type":"number"
},
"sensor_config":{
"description":"Scanning sensor on platform available to be controlled by the Autonomy Engine",
"properties":{
"additional_data":{
"description":"Any addition fields/data to be added here",
"example":{
"payload":[
1.2,
434
]
},
"type":"object"
},
"sensor_on":{
"description":"Sensor switched on (true) or off (false)",
"example":true,
"type":"boolean"
},
"sensor_serial":{
"description":"serial number of sensor",
"example":"mbes-002a",
"type":"string"
}
},
"type":"object"
},
"speed_over_ground":{
"description":"Speed over ground",
"example":124.3,
"format":"float",
"type":"number"
},
"status_source":{
"description":"Indicate if this status message is from the platform or USBL",
"enum":[
"usbl",
"onboard_platform"
],
"example":"usbl",
"type":"string"
},
"thrust_applied":{
"description":"Thrust applied",
"example":124.3,
"format":"float",
"type":"number"
},
"transmission_mode":{
"description":"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)",
"enum":[
"acoustics",
"iridium",
"wifi",
"starlink"
],
"example":"wifi",
"type":"string"
},
"usbl_fix_seconds_ago":{
"description":"USBL Fix received x second ago.",
"example":10.0,
"format":"float",
"type":"number"
},
"water_current_velocity":{
"description":"Water current magnitude and direction",
"example":"124.3NE",
"type":"string"
}
},
"required":[
"message_type",
"platform_ID",
"status_source",
"platform_timestamp",
"latitude",
"longitude"
],
"type":"object"
},
"platform_status_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"platform_status_encoded"
],
"example":"platform_status_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
}
}
},
"info":{
"description":"SoAR message protocol in schemas",
"title":"SoAR Backbone Message Formats",
"version":"1.0"
},
"openapi":"3.0.2",
"paths":{
}
"components":{
"schemas":{
"MESSAGE":{
"description":"Full message definition with message-metadata in `header` and different message type schemas under `payload`",
"properties":{
"header":{
"$ref":"#/components/schemas/header"
},
"payload":{
"$ref":"#/components/schemas/payload"
}
},
"required":[
"header",
"payload"
],
"type":"object"
},
"acknowledgement":{
"properties":{
"approved":{
"description":"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected",
"type":"boolean"
},
"autonomy_engine_plan_ID":{
"description":"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
"example":1,
"type":"integer"
},
"message_type":{
"description":"Type of message",
"enum":[
"acknowledgement"
],
"example":"acknowledgement",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
}
},
"required":[
"message_type",
"autonomy_engine_plan_ID",
"platform_ID",
"approved"
],
"type":"object"
},
"header":{
"discriminator":{
"propertyName":"message_type"
},
"properties":{
"delivery_type":{
"default":"publish",
"description":"To publish or broadcast this message.",
"enum":[
"broadcast",
"publish"
],
"example":"publish",
"type":"string"
},
"destination":{
"description":"Publisher topic; What is the destination of this message",
"example":"ah1",
"type":"string"
},
"encoded":{
"description":"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false",
"example":false,
"type":"boolean"
},
"message_ID":{
"description":"An identifier for the type of message received.",
"example":"b427003c-0000-11aa-a1eb-bvcdfghjgfdd",
"type":"string"
},
"source":{
"description":"The sender; Where is this message from",
"example":"autonomy_engine",
"type":"string"
},
"timestamp":{
"description":"Timestamp of message",
"example":"2022-11-16T00:00:00Z",
"format":"date-time",
"type":"string"
},
"version":{
"description":"Version of comms backbone message format protocol",
"example":2.0,
"format":"float",
"type":"number"
}
},
"type":"object"
},
"mission_plan":{
"properties":{
"autonomy_engine_plan_ID":{
"description":"Unique identifier for this plangenerated by the Autonomy Engine",
"example":3,
"type":"integer"
},
"emergency":{
"default":false,
"description":"To indicate if this is an emergency. true = emergency and false = no emergency",
"example":false,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"mission_plan"
],
"example":"mission_plan",
"type":"string"
},
"plan":{
"items":{
"properties":{
"action":{
"description":"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`.",
"enum":[
"move",
"payload",
"dive",
"send_hits",
"scanline",
"scanpoint",
"go_home",
"surface_now",
"stop_mission",
"abort_now"
],
"example":"move",
"type":"string"
},
"activate_payload":{
"description":"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`",
"example":true,
"type":"boolean"
},
"altitude":{
"description":"Altitude of next action",
"example":15.0,
"format":"float",
"type":"number"
},
"depth":{
"description":"Depth of next action",
"example":15.0,
"format":"float",
"type":"number"
},
"start_point_latitude":{
"description":"Start point, y-coordinate",
"example":50.37072283932642,
"format":"float",
"type":"number"
},
"start_point_longitude":{
"description":"Start point, x-coordinate",
"example":-4.187143188645706,
"format":"float",
"type":"number"
},
"target_waypoint_latitude":{
"description":"Target waypoint, y-coordinate",
"example":50.37072283932642,
"format":"float",
"type":"number"
},
"target_waypoint_longitude":{
"description":"Target waypoint, x-coordinate",
"example":-4.187143188645706,
"format":"float",
"type":"number"
},
"timeout":{
"description":"Timeout set to perform action",
"example":1800.0,
"format":"float",
"type":"number"
}
},
"required":[
"target_waypoint_latitude",
"target_waypoint_longitude"
],
"type":"object"
},
"type":"array"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
}
},
"required":[
"message_type",
"autonomy_engine_plan_ID",
"platform_ID",
"plan"
],
"type":"object"
},
"mission_plan_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"mission_plan_encoded"
],
"example":"mission_plan_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
},
"observation":{
"properties":{
"additional_data":{
"description":"Placeholder field for any additional data",
"example":{
"sensor_payload":false
}
},
"message_type":{
"description":"Type of message",
"enum":[
"observation"
],
"example":"observation",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"points_of_interest":{
"description":"Points from features of interest identified by platform if any found.",
"items":{
"properties":{
"latitude":{
"description":"Identified y-coordinate of point of interest",
"example":178.2,
"format":"float",
"type":"number"
},
"longitude":{
"description":"Identified x-coordinate of point of interest",
"example":-10.122,
"format":"float",
"type":"number"
},
"quality_of_point":{
"description":"Quality/strength of points from features of interest identified by platform.",
"example":0.98,
"format":"float",
"type":"number"
}
},
"required":[
"latitude",
"longitude"
],
"type":"object"
},
"type":"array"
},
"region_surveyed":{
"description":"Region surveyed by given platform. GEOJSON",
"example":"",
"nullable":true
}
},
"required":[
"message_type",
"platform_ID"
],
"type":"object"
},
"observation_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"observation_encoded"
],
"example":"observation_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
},
"payload":{
"discriminator":{
"mapping":{
"acknowledgement":"#/components/schemas/acknowledgement",
"mission_plan":"#/components/schemas/mission_plan",
"mission_plan_encoded":"#/components/schemas/mission_plan_encoded",
"observation":"#/components/schemas/observation",
"observation_encoded":"#/components/schemas/observation_encoded",
"planning_configuration":"#/components/schemas/planning_configuration",
"platform_status":"#/components/schemas/platform_status",
"platform_status_encoded":"#/components/schemas/platform_status_encoded",
"survey":"#/components/schemas/survey",
"survey_encoded":"#/components/schemas/survey_encoded"
},
"propertyName":"message_type"
},
"oneOf":[
{
"$ref":"#/components/schemas/acknowledgement"
},
{
"$ref":"#/components/schemas/mission_plan"
},
{
"$ref":"#/components/schemas/mission_plan_encoded"
},
{
"$ref":"#/components/schemas/observation"
},
{
"$ref":"#/components/schemas/observation_encoded"
},
{
"$ref":"#/components/schemas/planning_configuration"
},
{
"$ref":"#/components/schemas/platform_status"
},
{
"$ref":"#/components/schemas/platform_status_encoded"
},
{
"$ref":"#/components/schemas/survey"
},
{
"$ref":"#/components/schemas/survey_encoded"
}
]
},
"planning_configuration":{
"properties":{
"exclusion_zones":{
"description":"Exclusion zones for all platforms",
"items":{
"description":"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
"properties":{
"geometry_coordinates":{
"example":[
[
[
-4.1777839187560915,
50.34173405662855
],
[
-4.1777839187560915,
50.33820949229701
],
[
-4.143667777943875,
50.33820949229701
],
[
-4.143667777943875,
50.34173405662855
],
[
-4.1777839187560915,
50.34173405662855
]
]
],
"type":"array"
}
},
"type":"object"
},
"type":"array"
},
"message_type":{
"description":"Type of message",
"enum":[
"planning_configuration"
],
"example":"planning_configuration",
"type":"string"
},
"planning_config_ID":{
"description":"Unique identifier tagged to version of this configuration plan",
"example":3,
"type":"integer"
},
"region_of_interest":{
"description":"Region of interest for the entire operation",
"items":{
"description":"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
"properties":{
"geometry_coordinates":{
"example":[
[
[
-4.1777839187560915,
50.34173405662855
],
[
-4.1777839187560915,
50.33820949229701
],
[
-4.143667777943875,
50.33820949229701
],
[
-4.143667777943875,
50.34173405662855
],
[
-4.1777839187560915,
50.34173405662855
]
]
],
"type":"array"
}
},
"type":"object"
},
"type":"array"
},
"squads":{
"items":{
"properties":{
"no_of_platforms":{
"description":"Number of platforms",
"example":3,
"type":"integer"
},
"platforms":{
"description":"Squad consists of these platforms",
"items":{
"properties":{
"active":{
"description":"If platform is active = True, and inactive = False",
"example":true,
"type":"boolean"
},
"additional_data":{
"description":"Any addition fields/data to be added here",
"example":{
"new_sensor_a":"test_sensor",
"range":10.0
},
"type":"object"
},
"beacon_ID":{
"description":"Unique identifier (number) for the beacon associated to this platform",
"example":2407,
"type":"number"
},
"emergency":{
"properties":{
"safe_command":{
"description":"Command/Action that is native to respective partner's platform/C2",
"enum":[
"go_home",
"abort_now",
"stop_now",
"surface_now"
],
"example":"go_home",
"type":"string"
},
"target_depth":{
"description":"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`",
"example":10.0,
"format":"float",
"type":"number"
},
"target_waypoint_latitude":{
"description":"Y-coordinate safe place for respective platform",
"example":50.365,
"format":"float",
"type":"number"
},
"target_waypoint_longitude":{
"description":"X-coordinate safe place for respective platform",
"example":-7.432,
"format":"float",
"type":"number"
}
},
"required":[
"target_waypoint_latitude",
"target_waypoint_longitude",
"target_depth"
],
"type":"object"
},
"endurance_relative_to_water_speed":{
"properties":{
"avg_battery_rating":{
"description":"Battery endurance rating during standard operational speed usage (m/s)",
"example":1.9,
"format":"float",
"type":"number"
},
"max_battery_rating":{
"description":"Battery endurance rating during maximum speed usage (m/s)",
"example":1.23,
"format":"float",
"type":"number"
},
"min_battery_rating":{
"description":"Battery endurance rating during maximum speed usage (m/s)",
"example":3.32,
"format":"float",
"type":"number"
}
},
"type":"object"
},
"max_velocity":{
"description":"Maximum velocity set for platform",
"example":0.9,
"format":"float",
"type":"number"
},
"min_altitude":{
"description":"Minimum altitude set for platform",
"example":15.2,
"format":"float",
"type":"number"
},
"min_velocity":{
"description":"Minimum velocity set for platform",
"example":0.1,
"format":"float",
"type":"number"
},
"model":{
"example":"reav",
"type":"string"
},
"operator":{
"description":"Operator of platform",
"example":"noc",
"type":"string"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"scan_sensor":{
"properties":{
"angle":{
"description":"Angle of range of swath width (in degrees)",
"example":140.0,
"format":"float",
"type":"number"
},
"frequency":{
"description":"Frequency of scanning sensor (in kHz)",
"example":700.0,
"format":"float",
"type":"number"
},
"sensor_type":{
"description":"Unique identifier for this platform",
"enum":[
"SIDESCAN",
"MBES"
],
"example":"MBES",
"type":"string"
},
"swath_width":{
"description":"Function of `target_altitude` for the platform's swath width (in metres)",
"example":38.0,
"format":"float",
"type":"number"
},
"warmup_time":{
"description":"Warmup time (seconds) for sensor to start up.",
"example":180.0,
"format":"float",
"type":"number"
}
},
"type":"object"
},
"target_altitude":{
"description":"Target altitude set for platform. This affects swath width",
"example":15.0,
"format":"float",
"type":"number"
},
"turning_radius":{
"description":"Turning radius of platform (in metres)",
"example":1.0,
"format":"float",
"type":"number"
}
},
"required":[
"operator",
"platform_ID",
"active",
"model",
"min_altitude",
"min_velocity",
"max_velocity"
],
"type":"object"
},
"type":"array"
},
"squad_ID":{
"description":"Identifier of given squad",
"example":23,
"type":"integer"
},
"squad_mission_type":{
"description":"Mission of given squad: `tracking`, `survey`, `inspection`",
"enum":[
"tracking",
"survey",
"inspection"
],
"example":"survey",
"type":"string"
}
},
"required":[
"squad_ID",
"no_of_platforms",
"platforms",
"squad_mission_type"
],
"type":"object"
},
"type":"array"
}
},
"required":[
"message_type",
"planning_config_ID",
"squads",
"exclusion_zones",
"region_of_interest"
],
"type":"object"
},
"platform_status":{
"properties":{
"altitude":{
"description":"Target altitude in metres",
"example":20.0,
"format":"float",
"type":"number"
},
"autonomy_engine_plan_ID":{
"description":"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
"example":1,
"type":"integer"
},
"battery_remaining_capacity":{
"description":"Battery remaining % provided by respective C2",
"example":80.2,
"format":"float",
"type":"number"
},
"depth":{
"default":0.0,
"description":"Target depth in metres",
"example":50.0,
"format":"float",
"type":"number"
},
"heading":{
"description":"Angular distance relative to north, usually 000\u00b0 at north, clockwise through 359\u00b0, in degrees",
"example":124.3,
"format":"float",
"type":"number"
},
"health_status":{
"description":"Health status where 0 is OK, 1 is platform has an ERROR",
"example":false,
"type":"boolean"
},
"latitude":{
"description":"Latitude (Y-coordinate) in decimal degrees.",
"example":178.2,
"format":"float",
"type":"number"
},
"localisation_east_error":{
"description":"Difference in EAST between deadreckoningand USBL update.",
"example":0.000129,
"format":"float",
"type":"number"
},
"localisation_north_error":{
"description":"Difference in NORTH between deadreckoning and USBL update.",
"example":0.000129,
"format":"float",
"type":"number"
},
"longitude":{
"description":"Longitude (X-coordinate) in decimal degrees.",
"example":-10.122,
"format":"float",
"type":"number"
},
"message_type":{
"description":"Type of message",
"enum":[
"platform_status"
],
"example":"platform_status",
"type":"string"
},
"mission_plan_ID":{
"description":"Mission plan ID according to platform-C2 system",
"example":1,
"type":"integer"
},
"mission_track_ID":{
"description":"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)",
"example":4,
"type":"integer"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"reav-x-1",
"type":"string"
},
"platform_state":{
"description":"Current state executed by platform. E.g. STOP, IDLE, ABORT.",
"example":"ABORT",
"type":"string"
},
"platform_timestamp":{
"description":"Timestamp for onboard platform status message",
"example":"2022-12-21T00:00:00Z",
"format":"date-time",
"type":"string"
},
"range_to_go":{
"description":"Estimated distance to reach next waypoint",
"example":124.3,
"format":"float",
"type":"number"
},
"sensor_config":{
"description":"Scanning sensor on platform available to be controlled by the Autonomy Engine",
"properties":{
"additional_data":{
"description":"Any addition fields/data to be added here",
"example":{
"payload":[
1.2,
434
]
},
"type":"object"
},
"sensor_on":{
"description":"Sensor switched on (true) or off (false)",
"example":true,
"type":"boolean"
},
"sensor_serial":{
"description":"serial number of sensor",
"example":"mbes-002a",
"type":"string"
}
},
"type":"object"
},
"speed_over_ground":{
"description":"Speed over ground",
"example":124.3,
"format":"float",
"type":"number"
},
"status_source":{
"description":"Indicate if this status message is from the platform or USBL",
"enum":[
"usbl",
"onboard_platform"
],
"example":"usbl",
"type":"string"
},
"thrust_applied":{
"description":"Thrust applied",
"example":124.3,
"format":"float",
"type":"number"
},
"transmission_mode":{
"description":"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)",
"enum":[
"acoustics",
"iridium",
"wifi",
"starlink"
],
"example":"wifi",
"type":"string"
},
"usbl_fix_seconds_ago":{
"description":"USBL Fix received x second ago.",
"example":10.0,
"format":"float",
"type":"number"
},
"water_current_velocity":{
"description":"Water current magnitude and direction",
"example":"124.3NE",
"type":"string"
}
},
"required":[
"message_type",
"platform_ID",
"status_source",
"platform_timestamp",
"latitude",
"longitude"
],
"type":"object"
},
"platform_status_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"platform_status_encoded"
],
"example":"platform_status_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
},
"survey":{
"properties":{
"latitude_A":{
"description":"Latitude of point A(intersection of normal)from waypoint A to survey line",
"example":178.2,
"format":"float",
"type":"number"
},
"latitude_B":{
"description":"Latitude of point B(intersection of normal)from waypoint B to survey line",
"example":178.2,
"format":"float",
"type":"number"
},
"latitude_C":{
"description":"Latitude of point C(intersection of normal)from waypoint C to survey line",
"example":178.2,
"format":"float",
"type":"number"
},
"latitude_D":{
"description":"Latitude of point D(intersection of normal)from waypoint D to survey line",
"example":178.2,
"format":"float",
"type":"number"
},
"latitude_E":{
"description":"Latitude of point E(intersection of normal)from waypoint E to survey line",
"example":178.2,
"format":"float",
"type":"number"
},
"longitude_A":{
"description":"Longitude of point A(intersection of normal)from waypoint A to survey line",
"example":-10.122,
"format":"float",
"type":"number"
},
"longitude_B":{
"description":"Longitude of point B(intersection of normal)from waypoint B to survey line",
"example":-10.122,
"format":"float",
"type":"number"
},
"longitude_C":{
"description":"Longitude of point C(intersection of normal)from waypoint C to survey line",
"example":-10.122,
"format":"float",
"type":"number"
},
"longitude_D":{
"description":"Longitude of point D(intersection of normal)from waypoint D to survey line",
"example":-10.122,
"format":"float",
"type":"number"
},
"longitude_E":{
"description":"Longitude of point E(intersection of normal)from waypoint E to survey line",
"example":-10.122,
"format":"float",
"type":"number"
},
"platform_ID":{
"description":"Unique identifier for this platform",
"example":"ecosub-2",
"type":"string"
},
"timestamp":{
"description":"Timestamp for onboard message",
"example":"2022-12-21T00:00:00Z",
"format":"date-time",
"type":"string"
},
"track_ID":{
"description":"Track number of action(s) currently executed by platform",
"example":1,
"type":"integer"
}
},
"required":[
"latitude_A",
"longitude_A",
"latitude_B",
"longitude_B",
"platform_ID"
],
"type":"object"
},
"survey_encoded":{
"properties":{
"data":{
"description":"encoded string. E.g. Base64 encoded",
"example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"type":"string"
},
"file_name":{
"description":"Name of file",
"example":"ah1-0238126349247372.bin",
"type":"string"
},
"is_binary":{
"description":"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
"example":true,
"type":"boolean"
},
"message_type":{
"description":"Type of message",
"enum":[
"survey_encoded"
],
"example":"survey_encoded",
"type":"string"
},
"mime_type":{
"description":"MIME type",
"example":"application/gzip",
"type":"string"
}
},
"required":[
"data",
"is_binary"
],
"type":"object"
}
}
},
"info":{
"description":"SoAR message protocol in schemas",
"title":"SoAR Backbone Message Formats",
"version":"1.0"
},
"openapi":"3.0.2",
"paths":{
}
}
\ 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