Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gcs update #13

Merged
merged 7 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
- [Tracking and detection](./basic_concepts/detec_track.md)
- [Classification and identification](./basic_concepts/class_ident.md)
- [C-UAS Location](./basic_concepts/cuas_location.md)
- [Special cases](./common_uses/examples.md)
- [Special cases](./common_uses/special_cases.md)
- [Basic example](./common_uses/basic_example.md)
- [Intercepting C-UAS](./common_uses/intercepting.md)
- [Visualizing data](./track2kml/track2kml.md)

49 changes: 49 additions & 0 deletions docs/src/common_uses/basic_example.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## Basic example

Here are record examples extracted from the [basic COURAGEOUS example file](../res/example_basic.json).

Using BearingElevation:
```json
...
{
"alarm": {
"active": true,
"certainty": 1
},
"classification": "Unknown",
"location": {
"$type": "BearingElevation",
"bearing": 43.563024999999996,
"elevation": 2.211875
},
"record_number": 4,
"time": 1696255068480
},
...
```
Using Position3d and including the `identification` and `velocity` optional fields:
```json
...
{
"classification": "UAV",
"identification": "UAV description",
"alarm": {
"active": false,
"certainty": 0.55
},
"location": {
"$type": "Position3d",
"height_amsl": 47.15314324164956,
"lat": 51.158929232973726,
"lon": 2.7414165702140973
},
"record_number": 0,
"time": 1696421411207,
"velocity": {
"east": -2.14297,
"north": 1.69235,
"up": -0.86349
}
},
...
```
aleokdev marked this conversation as resolved.
Show resolved Hide resolved
48 changes: 43 additions & 5 deletions docs/src/common_uses/intercepting.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,57 @@
Systems that intercept the communication between GCS and UAV require a
specific logging procedure.

**Logging both the GCS and the UAV under the same detection set/track is an error
and will make such data unusable**.

### 1. UAV logging
When a UAV is detected or tracked, the system should log the UAV position
instances in the same record set[^1] under a unique `uas_id`.

### 2. GCS logging
The GCS location must be logged under a different record set[^1], but should
contain the same `uas_id` as the UAV records, so as to link both.
The GCS location can be logged either in the same record set[^1] or a different one with the same
`uas_id`.

### 3. UAV Home location
In the case of C-UAS systems that are capable of extracting the **home location** of the UAV,
it should be included in the UAV record set[^1] using the `uav_home_location` member.

### Example

This is set of records extracted from the [intercepting C-UAS COURAGEOUS format example](../res/example_intercepting.json).

```json
...
{
"classification": "UAV",
"identification": "UAV Description",
"alarm": {
"active": true,
"certainty": 1
},
"location": {
"$type": "Position3d",
"height_amsl": 52.33707466137043,
"lat": 51.15836795030467,
"lon": 2.736868683313011
},
"record_number": 2,
"time": 1696421607569
},
{
"classification": "GCS",
"identification": "GCS Description",
"alarm": {
"active": true,
"certainty": 1
},
"location": {
"$type": "Position3d",
"height_amsl": 9,
"lat": 51.157409,
"lon": 2.740082
},
"record_number": 3,
"time": 1696421411207
},
...
```

[^1]: detection set or track (members of `detection`or `tracks`, respectively).
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ As is expected, this diversity gives rise to a variety of structures
depending on the system in question. As a result, some systems
require extra effort when logging data.

This chapter offers a set of examples intended to act as a reference
for both the format and the results expected using the track visualizer
(track2kml).




Expand Down
115 changes: 115 additions & 0 deletions docs/src/res/example_basic.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{
"detection": [
{
"records": [
{
"alarm": {
"active": true,
"certainty": 1
},
"classification": "Unknown",
"location": {
"$type": "BearingElevation",
"bearing": 43.563024999999996,
"elevation": 2.211875
},
"record_number": 4,
"time": 1696255068480
},
{
"alarm": {
"active": true,
"certainty": 1
},
"classification": "Unknown",
"location": {
"$type": "BearingElevation",
"bearing": 42.719274999999996,
"elevation": 2.336875
},
"record_number": 5,
"time": 1696255069035
}
]
}
],
"static_cuas_location": {
"height_amsl": 11.4,
"lat": 51.156888,
"lon": 2.738243
},
"system_name": "CUAS system name",
"tracks": [
{
"name": "Track name",
"records": [
{
"classification": "UAV",
"identification": "UAV description",
"alarm": {
"active": false,
"certainty": 0.55
},
"location": {
"$type": "Position3d",
"height_amsl": 47.15314324164956,
"lat": 51.158929232973726,
"lon": 2.7414165702140973
},
"record_number": 0,
"time": 1696421411207,
"velocity": {
"east": -2.14297,
"north": 1.69235,
"up": -0.86349
}
},
{
"classification": "UAV",
"identification": "UAV Description",
"alarm": {
"active": true,
"certainty": 0.70
},
"location": {
"$type": "Position3d",
"height_amsl": 48.20321620520593,
"lat": 51.158403612017516,
"lon": 2.7383094375955803
},
"record_number": 1,
"time": 1696421518341,
"velocity": {
"east": -2.14297,
"north": 1.69235,
"up": -0.86349
}
},
{
"classification": "UAV",
"identification": "UAV Description",
"alarm": {
"active": true,
"certainty": 1
},
"location": {
"$type": "Position3d",
"height_amsl": 52.33707466137043,
"lat": 51.15836795030467,
"lon": 2.736868683313011
},
"record_number": 2,
"time": 1696421607569,
"velocity": {
"east": -2.14297,
"north": 1.69235,
"up": -0.86349
}
}
],
"uas_id": 1
}
],
"vendor_name": "Company Name",
"version": "0.4.1"
}
53 changes: 53 additions & 0 deletions docs/src/res/example_basic.kml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"><Document><Schema name="schema_name" id="schema"><SimpleField name="record_number" type="uint"><displayName><![CDATA[<b>Record Number</b>]]></displayName></SimpleField><SimpleField name="classification" type="string"><displayName><![CDATA[<b>Classification</b>]]></displayName></SimpleField><SimpleField name="alarm" type="bool"><displayName><![CDATA[<b>Alarm</b>]]></displayName></SimpleField><SimpleField name="alarm_certainty" type="float"><displayName><![CDATA[<b>Alarm Certainty</b>]]></displayName></SimpleField><SimpleField name="identification" type="string"><displayName><![CDATA[<b>Identification</b>]]></displayName></SimpleField><SimpleField name="velocity" type="string"><displayName><![CDATA[<b>Velocity</b>]]></displayName></SimpleField></Schema><Style id="track_style"><IconStyle><scale>0.5</scale><Icon><href>http://earth.google.com/images/kml-icons/track-directional/track-0.png</href></Icon></IconStyle><LineStyle><colorMode>random</colorMode><width>5</width></LineStyle><BalloonStyle><text><![CDATA[<b>Track $[name]</b></br>
Select a point on the track for more information.]]></text></BalloonStyle></Style><Style id="origin_style"><IconStyle><Icon><href>http://maps.google.com/mapfiles/kml/pushpin/red-pushpin.png</href></Icon><scale>0.5</scale></IconStyle><BalloonStyle><text><![CDATA[<table border="1">
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/record_number/displayName]
</th>
<td style="text-align: left;">
$[schema_name/record_number]
</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/classification/displayName]
</th>
<td style="text-align: left;">
$[schema_name/classification]
</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/alarm/displayName]
</th>
<td style="text-align: left;">
$[schema_name/alarm]
</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/alarm_certainty/displayName]
</th>
<td style="text-align: left;">
$[schema_name/alarm_certainty]
</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/identification/displayName]
</th>
<td style="text-align: left;">
$[schema_name/identification]
</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">
$[schema_name/velocity/displayName]
</th>
<td style="text-align: left;">
$[schema_name/velocity]
</td>
</tr>
</table>]]></text></BalloonStyle></Style><Style id="cuas_style"><IconStyle><Icon><href>http://maps.google.com/mapfiles/kml/paddle/blu-circle.png</href></Icon><scale>0.5</scale></IconStyle><BalloonStyle><text><![CDATA[<b>CUAS</b></br>
Static Location of the CUAS.]]></text></BalloonStyle></Style><Style id="uav_home_style"><IconStyle><Icon><href>https://maps.google.com/mapfiles/kml/paddle/H.png</href></Icon><scale>0.5</scale></IconStyle><BalloonStyle><text><![CDATA[<b>UAV Home location</b></br>
The home location of the UAV intercepted by the CUAS.]]></text></BalloonStyle></Style><Folder><name>Detection Sets</name><Folder><name>Unnamed detection set</name><description>UAV unique ID: None</description><Placemark><name>4</name><ExtendedData><SchemaData schemaUrl="#schema"><SimpleData name="record_number">4</SimpleData><SimpleData name="classification">Unknown</SimpleData><SimpleData name="alarm">On</SimpleData><SimpleData name="alarm_certainty">100</SimpleData><SimpleData name="identification">&lt;i&gt;empty&lt;/i&gt;</SimpleData><SimpleData name="velocity">&lt;i&gt;not given&lt;/i&gt;</SimpleData></SchemaData></ExtendedData><styleUrl>origin_style</styleUrl><TimeStamp><when>2023-10-02T13:57:48.48Z</when></TimeStamp><LineString><extrude>0</extrude><tessellate>0</tessellate><altitudeMode>absolute</altitudeMode><coordinates>2.738243,51.156888,11.4 2.7392273338853164,51.157538842386124,15.260273589381331</coordinates></LineString></Placemark><Placemark><name>5</name><ExtendedData><SchemaData schemaUrl="#schema"><SimpleData name="record_number">5</SimpleData><SimpleData name="classification">Unknown</SimpleData><SimpleData name="alarm">On</SimpleData><SimpleData name="alarm_certainty">100</SimpleData><SimpleData name="identification">&lt;i&gt;empty&lt;/i&gt;</SimpleData><SimpleData name="velocity">&lt;i&gt;not given&lt;/i&gt;</SimpleData></SchemaData></ExtendedData><styleUrl>origin_style</styleUrl><TimeStamp><when>2023-10-02T13:57:49.035Z</when></TimeStamp><LineString><extrude>0</extrude><tessellate>0</tessellate><altitudeMode>absolute</altitudeMode><coordinates>2.738243,51.156888,11.4 2.7392119024335324,51.157547829831536,15.47826773576542</coordinates></LineString></Placemark></Folder></Folder><Folder><name>Tracks</name><Folder><name>Track name (UAV)</name><Placemark><styleUrl>track_style</styleUrl><name>Track name (UAV)</name><gx:MultiTrack><altitudeMode>absolute</altitudeMode><gx:Track><altitudeMode>absolute</altitudeMode><when>2023-10-04T12:10:11.207Z</when><gx:coord>2.7414165702140973 51.158929232973726 47.15314324164956</gx:coord><when>2023-10-04T12:11:58.341Z</when><gx:coord>2.7383094375955803 51.15840361201752 48.20321620520593</gx:coord><when>2023-10-04T12:13:27.569Z</when><gx:coord>2.736868683313011 51.15836795030467 52.33707466137043</gx:coord><ExtendedData><SchemaData schemaUrl="#schema"><gx:SimpleArrayData name="record_number"><gx:value>0</gx:value><gx:value>1</gx:value><gx:value>2</gx:value></gx:SimpleArrayData><gx:SimpleArrayData name="classification"><gx:value>UAV</gx:value><gx:value>UAV</gx:value><gx:value>UAV</gx:value></gx:SimpleArrayData><gx:SimpleArrayData name="alarm"><gx:value>Off</gx:value><gx:value>On</gx:value><gx:value>On</gx:value></gx:SimpleArrayData><gx:SimpleArrayData name="alarm_certainty"><gx:value>55</gx:value><gx:value>70</gx:value><gx:value>100</gx:value></gx:SimpleArrayData><gx:SimpleArrayData name="identification"><gx:value>UAV description</gx:value><gx:value>UAV Description</gx:value><gx:value>UAV Description</gx:value></gx:SimpleArrayData><gx:SimpleArrayData name="velocity"><gx:value>-0.86349 m/s down, -2.14297 m/s west, 1.69235 m/s north</gx:value><gx:value>-0.86349 m/s down, -2.14297 m/s west, 1.69235 m/s north</gx:value><gx:value>-0.86349 m/s down, -2.14297 m/s west, 1.69235 m/s north</gx:value></gx:SimpleArrayData></SchemaData></ExtendedData></gx:Track></gx:MultiTrack></Placemark></Folder></Folder><Placemark><name>Static CUAS Location</name><styleUrl>cuas_style</styleUrl><Point><extrude>false</extrude><altitudeMode>absolute</altitudeMode><coordinates>2.738243,51.156888,11.4</coordinates></Point></Placemark></Document></kml>
Loading
Loading