Automated Parsing and Conversion Of Vehicle-specific Data into Autonomous Vehicle Control Language...
-
Upload
reynold-mitchell -
Category
Documents
-
view
216 -
download
0
Transcript of Automated Parsing and Conversion Of Vehicle-specific Data into Autonomous Vehicle Control Language...
Automated Parsing and Conversion Of Vehicle-specific Data into Autonomous
Vehicle Control Language using Context-Free Grammars and XML Data Binding
CDR Duane Davis, USN
Outline
Autonomous Vehicle Command Language (AVCL)—What and Why?
Context-Free Grammars (CFG) and Vehicle-Specific Data Formats
Parsing Vehicle-Specific DocumentsTransformation of Parsed Vehicle-Specific
Data into AVCLSpecific Vehicle Implementation Summary
What (Why) is AVCL?
Autonomous Vehicle (AV) Ontology• Vehicle Independent• Schema-Governed
Extensible Markup Language (XML)
Automated Conversions• AVCL to Vehicle-Specific• Vehicle-Specific to AVCL
Ultimate Goals• Facilitate Interoperability • Support Pre-, Mid-, and Post-
Mission Data Requirements• Provide Intuitive Data
Access
AVCL
AAV 1
Support
AUV 2
AGV 2
AAV 2
AUV 1
AGV 1
AUV 2
AGV 2
AAV 2
AAV 1 Support
Support Support
Support Support
Support
AGV 1
AUV 1
AVCL Organization
Mission Specification (Tasking)• Scripted Behaviors• Declarative Goals
Mission Results• Synchronous
• Telemetry• Control Orders
• Asynchronous• Event Log
Communications
Mission SpecificationScripting
• Atomic Task-Level Commands
• Sequential Execution• Potential Parallelism
Declarative Goals• Finite State Machine
(FSM)• States Represent
Individual Goals• Transitions Executed
upon Goal Success or Failure
A Scripted AVCL AUV Mission:<UUVCommandScript> <Position> <XYPosition x="0.0" y="0.0"/> <Depth value="0.0"/> </Position> <Thrusters value="false"/> <MakeDepth value="25.0"/> <Waypoint> <XYPosition x="100.0" y="100.0"/> <SetPropeller> <AllPropellers value="100.0"/> </SetPropeller> </Waypoint> <Waypoint> <XYPosition x="500.0" y="100.0"/> </Waypoint> <MakeAltitude value="15"/> <Waypoint> <XYPosition x="500.0" y="200.0"/> </Waypoint> <Waypoint> <XYPosition x="0.0" y="0.0"/> </Waypoint> <MakeDepth value="0.0"/> <Quit/></UUVCommandScript>
AVCLMission Goals and Constraints
Task Level Commands
Vehicle-Specific Languages
PlannersRules & Templates
XSLT /XML Data Binding
AVCL TranslationsAVCL to Vehicle-Specific Data
• XSLT• XML Data Binding
Vehicle-Specific Data to AVCL• Context Free Grammars• XML Data Binding
Declarative to Scripted AVCL• A* Search• GraphPlan
Scripted to Declarative AVCL• Case-Based Reasoning• Bayesian Reasoning
CFGsCFGs
AVCL to Vehicle-Specific Data• XSLT• XML Data Binding
Vehicle-Specific Data to AVCL• Context Free Grammars• XML Data Binding
Declarative to Scripted AVCL• A* Search• GraphPlan
Scripted to Declarative AVCL• Case-Based Reasoning• Bayesian Reasoning
CFGs and Vehicle-Specific Data
Vehicle-Specific Data Formats Are:• Not XML (cannot use XSLT for translations)• Rigorously Defined• Unambiguous• Context Free Languages (CFL)• Can be Generated by Context Free Grammars (CFG)
A Seahorse AUV Station Keeping Order:
Start_Order : Station_Keep_OrderScheduling_Info_Is_Timed : TrueDestination_Latitude : 33.0 DegreesDestination_Longitude : -122.5 DegreesUntil_when : 90 MinutesTransit_Altitude : 15 MetersLoiter_Depth : 15 Feet
Context Free Grammar Definition
Terminals (the alphabet)
• Reserved Words• Numbers
Variables• Represent Substrings
Productions:• is a Variable• is a Sequence of
Variables and Terminals
• Means “Produces”• Define how Variables
Expand into Instances
Formal CFG Definition:
• is a Set of Variables• is a Set of Terminals• is a Set of Productions• is a Set of Start
Variables
A Simple Example (produces balanced parentheses):
A
A
SPTVG ,,,
VTPS
AAAAAG ,)((),,)(,,
Chomsky Normal Form (CNF)
No Useless Symbols• All terminals appear in at least one valid CFL string• All variables are used in the derivation of at least one
valid CFL string
NoεProductions• εis a “null” (no literal)
• Productions of the form where contains ε
Production Rule Form Restrictions• where , , and are variables• where is a variable and is a terminal
A
CBCA A BaA aA
CFG-Based ParsingCocke-Younger-Kasami (CYK) Algorithm
• Uses CNF Production Rules• Bottom up Parser• Organizes Data as a Binary Parse Tree
“-121.7”“-33.5” “15.0”“Waypoint”
DoubleDoubleDoubleWaypointTkn
LatLong
Position3D
Command
Parse Tree Translation
Depth-First Parse Tree Traversal• In-Order Traversal of the Source Document• Multiple Traversals—Symbol Table Generation
Template-Based AVCL Generation• Applied at Command Node Level• Full Traversal Unnecessary
Analogous to XSLT Transformation of XML• In Order vs. Arbitrary Order Input Document
Traversal• Arbitrary Order vs. In Order Output Document
Generation
Parse Tree Conversion
Generated AVCL Script Mission:<UUVCommandScript> <Position> <XYPosition x="0.0" y="0.0"/> </Position> <MakeDepth value="15.0"/> <Waypoint> <LatitudeLongitude latitude="-33.5" longitude="-121.7"/> <SetPropeller> <AllPropellers value="100.0"/> </SetPropeller> </Waypoint> . . .</UUVCommandScript>
“-121.7”“-33.5” “15.0”
DoubleDoubleDouble
LatLong
Position3D
“Waypoint”
WaypointTkn
Command
CommandLst
Mission
CommandLst
… …
LaunchCmd
… …
LaunchCmd
… …
CommandLst
Mission
Command
“Waypoint”
WaypointTkn
“-121.7”“-33.5” “15.0”
DoubleDoubleDouble
LatLong
Position3D
CommandLst
… …
Vehicle ImplementationsNPS ARIES
• Sequentially Executed Waypoints
• 11 Double-Precision Numbers• Implementation CFG
• 1 Unary ( ) Production• 14 Binary ( )
Productions
NPS Phoenix• Sequentially Executed Script
Commands (34)• Mixed Text and Numbers
• Implementation CFG• 22 Unary Productions• 39 Binary Productions
NAVO Seahorse• Command Set
• Sequentially Executed Script Commands (4)
• Start and End Commands• Mixed Text and Numbers
• Implementation CFG• 47 Unary Productions• 136 Binary Productions
WHOI REMUS• Command Set
• Locations• Sequential Objectives (14)• Mixed Text and Numbers
• Implementation CFG• 40 Unary Productions• 40 Binary Productions
aABCA
Questions?