LANDRS Flight Mission - landrs-toolkit/landrs-drone-TOAST GitHub Wiki
Develop methods for flying a drone mission and acquiring data using the LANDRS Ontology.
Challenges
- We need to create Class Instances but they need to be partially defined before the flight, data being added during and at the end of the flight. SHACL validation will be problematic here.
- We need an input form for the flight definition data.
- Generation if the Flight KG class instances and wiring them up should be configured via SHACL/Shapes.
Approach
-
We will start with a configured
landrs:UAV
with alandrs:flightControlSystem
andlandrs:flightControllerBoard
connected to a number oflandrs:sensor
instances. -
We will assume a suitable
sosa:FeatureOfInterest
exists and points to ansosa:ObservableProperty
which, in turn, points to the sensors that can measure it. -
We need to define the pilot information (Orcid, Chris is 0000-0001-8214-7177) via
prov:Role
,pro:Agent
andpro:Association
. -
To fly a mission we need to select the flight plan generated by a Ground Control Station (GCS). The format is documented here in 'Ardupilot, Mavlink Mission Files'. From this we can generate a
sosa:procedure
. -
We need to create class instances for the Knowledge Graph from the form input using a SHACL Shape file.
Proposed workflow,
- Input the following
- mission name
- mission description
- select wp file
- select
sosa:ObservableProperty
- select pilot
prov:agent
- From this data, use Shape file
ttl/flight_shapes.ttl
to createlocn:geometry
landrs:Place
- partial
sosa:ObservationCollection
- partial
landrs:Flight
sosa:Procedure
prov:Association
- To instigate flight
- Update Mavlink with
sosa:ObservationCollection
andSosa:sensor
connected tososa:ObservableProperty
- start logging (add option to log when drone goes to AUTO?)
- Update Mavlink with
- At start of flight
- add
prov:startedAtTime
with start time and attach tososa:ObservationCollection
- add
- During flight
- add new
sosa:Observation
at specified intervals, add these tososa:ObservationCollection
- add new
- At end of flight
- add
prov:endedAtTime
with end time and attach tososa:ObservationCollection
- create
landrs:ObservationDataset
(second phase)
- add
The process is then,
- Pick GCS mission as the flight basis
- Capture user input for a subset of the data,
sosa:observedProperty
and the pilotprov:Agent
- Create and link the set of "red" nodes shown below using shacl file
ttl/flight_shapes.ttl
- Run mission acquiring data and adding to
sosa:ObservationCollection
- Finalize flight and create
landrs:ObservationDataset
(assuming we have implemented a Data service)
Knowledge Graph
- Purple nodes are prerequisites for flights.
- Yellow nodes get created during the flight
- Red nodes need to be created before the flight with partial data
- Orange nodes, need to be created after the flight, but stage II
- Grey nodes, inheritance only
- Green node, the GCS file, not really a node.
Questions
- For the
prov:Association
for the pilot, shouldn't it link to oursosa:Procedure
since it inheritsprov:plan
? I changed it above anyway. - Permanent storage for currently selected Flight? In ini file?