X3D Model Documentation: AriesEspduPrototype.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "https://www.web3d.org/specifications/x3d-3.1.dtd">
  3  <X3D profile='Immersive' version='3.1 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.1.xsd'>
  4       <head>
  5            <component level='1name='DIS'/>
  6            <meta name='titlecontent=' AriesEspduPrototype.x3d '/>
  7            <meta name='descriptioncontent='Prototype for a DIS enabled (including articulated parameters) for inclusion in a VRML/X3D Scene. Articulation parameters are in AUV Dynamics (AUV Workbench) order.'/>
  8            <meta name='creatorcontent='Duane Davis'/>
  9            <meta name='translatorcontent='Vrml97ToX3dNist'/>
 10            <meta name='createdcontent='21 November 2003'/>
 11            <meta name='modifiedcontent='20 October 2019'/>
 12            <meta name='referencecontent=' UuvBoxTest.xml '/>
 13            <meta name='referencecontent='UuvBoxTest.disbin'/>
 14            <meta name='referencecontent='UuvBoxTest.disbin.disbinidx'/>
 15            <meta name='errorscontent='EspduTransformTrace needs revision'/>
 16            <meta name='subjectcontent='Distributed Interactive Simulation DIS ESPDU Aries AUV'/>
 17            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.x3d '/>
 18            <meta name='generatorcontent=' Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html '/>
 19            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 20            <meta name='licensecontent='../../license.html'/>
 21       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AriesAUV, ArticulationParameterControl, ArticulationParameterScriptRoutes, ET, HideTraceText, TRACETRANSFORM

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: Aries

Index for ProtoDeclare definition: AriesEspdu
-->
 22       <Scene>
 23            <WorldInfo title='AriesEspduPrototype.x3d'/>
 24            <ExternProtoDeclare name='Ariesappinfo='Acoustic Radio Interactive Exploratory Server (ARIES) is an operational NPS-designed Unmanned Underwater Vehicle (AUV)'   url=' "../../../Savage/Robots/UnmannedUnderwaterVehicles/AriesPrototype.x3d#Aries" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesPrototype.x3d#Aries" "../../../Savage/Robots/UnmannedUnderwaterVehicles/AriesPrototype.wrl#Aries" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesPrototype.wrl#Aries" '>
 25                 <field name='hullNametype='SFStringaccessType='inputOutput'
                appinfo='can be overridden at instantiation time only'/>
 26                 <field name='hullColortype='SFColoraccessType='inputOutput'/>
 27                 <field name='planeColortype='SFColoraccessType='inputOutput'/>
 28                 <field name='translationtype='SFVec3faccessType='inputOutput'/>
 29                 <field name='rotationtype='SFRotationaccessType='inputOutput'/>
 30                 <field name='set_portRpmtype='SFFloataccessType='inputOnly'/>
 31                 <field name='set_stbdRpmtype='SFFloataccessType='inputOnly'/>
 32                 <field name='set_forwardRudderstype='SFFloataccessType='inputOnly'/>
 33                 <field name='set_afterRudderstype='SFFloataccessType='inputOnly'/>
 34                 <field name='set_forwardPlanestype='SFFloataccessType='inputOnly'/>
 35                 <field name='set_afterPlanestype='SFFloataccessType='inputOnly'/>
 36                 <field name='set_forwardVerticalThrustertype='SFFloataccessType='inputOnly'/>
 37                 <field name='set_afterVerticalThrustertype='SFFloataccessType='inputOnly'/>
 38                 <field name='set_forwardLateralThrustertype='SFFloataccessType='inputOnly'/>
 39                 <field name='set_afterLateralThrustertype='SFFloataccessType='inputOnly'/>
 40                 <field name='set_ST725Rangetype='SFFloataccessType='inputOnly'
                appinfo='meters along sonar axis'/>
 41                 <field name='set_ST1000Rangetype='SFFloataccessType='inputOnly'
                appinfo='meters along sonar axis'/>
 42                 <field name='set_ST725Bearingtype='SFFloataccessType='inputOnly'
                appinfo='degrees about vertical axis'/>
 43                 <field name='set_ST1000Bearingtype='SFFloataccessType='inputOnly'
                appinfo='degrees about vertical axis'/>
 44                 <field name='set_ST725Intensitytype='SFFloataccessType='inputOnly'
                appinfo='signal-to-noise ratio decibels'/>
 45                 <field name='set_ST1000Intensitytype='SFFloataccessType='inputOnly'
                appinfo='signal-to-noise ratio decibels'/>
 46            </ExternProtoDeclare>
 47            <ProtoDeclare name='AriesEspduappinfo='Aries unmanned underwater vehicle with IEEE DIS EspduTransform wrapper bundled together in a single prototype'>
 48                 <ProtoInterface>
 49                      <field name='hullNametype='SFStringvalue='AriesAUVaccessType='inputOutput'
                     appinfo='up to 11 characters maps to EspduTransform marking'/>
 50                      <field name='hullColortype='SFColorvalue='.9 .9 .9accessType='inputOutput'
                     appinfo='hull color for this UUV instance'/>
 51                      <field name='planeColortype='SFColorvalue='.1 .1 .8accessType='inputOutput'
                     appinfo='plane color for this UUV instance'/>
 52                      <field name='translationtype='SFVec3fvalue='0 0 0accessType='inputOutput'
                     appinfo='initial position prior to first ESPDU receipt'/>
 53                      <field name='rotationtype='SFRotationvalue='0 0 1 0accessType='inputOutput'
                     appinfo='initial orientation prior to first ESPDU receipt'/>
 54                      <field name='siteIDtype='SFInt32value='0accessType='inputOutput'/>
 55                      <field name='applicationIDtype='SFInt32value='1accessType='inputOutput'/>
 56                      <field name='entityIDtype='SFInt32value='2accessType='inputOutput'/>
 57                      <field name='readIntervaltype='SFTimevalue='0.1accessType='inputOutput'
                     appinfo='network read periodicity'/>
 58                      <field name='writeIntervaltype='SFTimevalue='1.0accessType='inputOutput'
                     appinfo='network write periodicity'/>
 59                      <field name='networkModetype='SFStringvalue='networkReaderaccessType='inputOutput'
                     appinfo='Override default EspduTransform value so that listening occurs by default'/>
 60                      <field name='addresstype='SFStringvalue='239.255.5.8accessType='inputOutput'
                     appinfo='multicast address'/>
 61                      <field name='porttype='SFInt32value='62040accessType='inputOutput'
                     appinfo='multicast port'/>
 62                      <field name='traceNodeEnabledtype='SFInt32value='-1accessType='inputOutput'
                     appinfo='Set to 0 to activate EspduTransformTrace'/>
 63                 </ProtoInterface>
 64                 <ProtoBody>
 65                      <!-- ============================= -->
 66                      <Group>
 67 
                         <!-- ROUTE information for ET node:  [from articulationParameterArray to ArticulationParameterControl.set_articulationParameters ] [from translation to TRACETRANSFORM.set_translation ] [from rotation to TRACETRANSFORM.set_rotation ] -->
                         <EspduTransform DEF='ETcontainerField='children'>
 68                                <IS>
 69                                     <connect nodeField='markingprotoField='hullName'/>
 70                                     <connect nodeField='siteIDprotoField='siteID'/>
 71                                     <connect nodeField='applicationIDprotoField='applicationID'/>
 72                                     <connect nodeField='entityIDprotoField='entityID'/>
 73                                     <connect nodeField='readIntervalprotoField='readInterval'/>
 74                                     <connect nodeField='writeIntervalprotoField='writeInterval'/>
 75                                     <connect nodeField='networkModeprotoField='networkMode'/>
 76                                     <connect nodeField='addressprotoField='address'/>
 77                                     <connect nodeField='portprotoField='port'/>
 78                                     <connect nodeField='translationprotoField='translation'/>
 79                                     <connect nodeField='rotationprotoField='rotation'/>
 80                                </IS>
 81                                <!-- applet 0 1 2, auv dynamics 36 1 1 -->
 82                                <Switch whichChoice='0'>
 83 
 84                                          <IS>
 85                                               <connect nodeField='hullNameprotoField='hullName'/>
 86                                               <connect nodeField='hullColorprotoField='hullColor'/>
 87                                               <connect nodeField='planeColorprotoField='planeColor'/>
 88                                          </IS>
 89                                     </ProtoInstance>
 90                                </Switch>
 91                                <Group DEF='ArticulationParameterScriptRoutes'>
 92 
 93                                          <field name='set_articulationParameterstype='MFFloataccessType='inputOnly'/>
 94                                          <field name='portRpmtype='SFFloataccessType='outputOnly'/>
 95                                          <field name='stbdRpmtype='SFFloataccessType='outputOnly'/>
 96                                          <field name='forwardVerticalThrustertype='SFFloataccessType='outputOnly'/>
 97                                          <field name='afterVerticalThrustertype='SFFloataccessType='outputOnly'/>
 98                                          <field name='forwardLateralThrustertype='SFFloataccessType='outputOnly'/>
 99                                          <field name='afterLateralThrustertype='SFFloataccessType='outputOnly'/>
100                                          <field name='forwardRudderstype='SFFloataccessType='outputOnly'/>
101                                          <field name='afterRudderstype='SFFloataccessType='outputOnly'/>
102                                          <field name='forwardPlanestype='SFFloataccessType='outputOnly'/>
103                                          <field name='afterPlanestype='SFFloataccessType='outputOnly'/>
104                                          <field name='ST725Rangetype='SFFloataccessType='outputOnly'/>
105                                          <field name='ST725Bearingtype='SFFloataccessType='outputOnly'/>
106                                          <field name='ST1000Rangetype='SFFloataccessType='outputOnly'/>
107                                          <field name='ST1000Bearingtype='SFFloataccessType='outputOnly'/>
  <![CDATA[
                
ecmascript:

MAXRPM        = 700;
MAXTHRUSTER   = 24;
MAXSONARRANGE = 30;

function initialize()
{
   forwardRudders          = 0;
   afterRudders            = 0;
   forwardPlanes           = 0;
   afterPlanes             = 0;
   portRpm                 = 0;
   stbdRpm                 = 0;
   forwardVerticalThruster = 0;
   afterVerticalThruster   = 0;
   forwardLateralThruster  = 0;
   afterLateralThruster    = 0;
   ST1000Bearing           = 0;
   ST1000Range             = 0; // MAXSONARRANGE;
   ST725Bearing            = 0;
   ST725Range              = 0; // MAXSONARRANGE;
}

function set_articulationParameters( value, timestamp )
{
   forwardRudders          =  value[0];
   afterRudders            = -value[0];
   forwardPlanes           = -value[1];
   afterPlanes             =  value[1];
   portRpm                 =  value[2] / MAXRPM;
   stbdRpm                 =  value[3] / MAXRPM;
   forwardVerticalThruster =  value[4] / MAXTHRUSTER;
   afterVerticalThruster   =  value[5] / MAXTHRUSTER;
   forwardLateralThruster  =  value[6] / MAXTHRUSTER;
   afterLateralThruster    =  value[7] / MAXTHRUSTER;
   ST1000Bearing           =  value[8];   
   ST1000Range             =  value[9];
   if      (ST1000Range <= 0)
            ST1000Range = 0;
   else if (ST1000Range > MAXSONARRANGE)
            ST1000Range = 0; // MAXSONARRANGE;
   ST725Bearing            =  value[11];
   ST725Range              =  value[12];
   if      (ST725Range <= 0)
            ST725Range = 0;
   else if (ST725Range > MAXSONARRANGE)
            ST725Range = 0; // MAXSONARRANGE;
}

              
]]>
109                                     </Script>
110                                     < ROUTE  fromNode='ET' fromField='articulationParameterArray' toNode='ArticulationParameterControl' toField='set_articulationParameters'/>
111                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='portRpm' toNode='AriesAUV' toField='set_portRpm'/>
112                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='stbdRpm' toNode='AriesAUV' toField='set_stbdRpm'/>
113                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='forwardVerticalThruster' toNode='AriesAUV' toField='set_forwardVerticalThruster'/>
114                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='afterVerticalThruster' toNode='AriesAUV' toField='set_afterVerticalThruster'/>
115                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='forwardLateralThruster' toNode='AriesAUV' toField='set_forwardLateralThruster'/>
116                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='afterLateralThruster' toNode='AriesAUV' toField='set_afterLateralThruster'/>
117                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='forwardRudders' toNode='AriesAUV' toField='set_forwardRudders'/>
118                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='afterRudders' toNode='AriesAUV' toField='set_afterRudders'/>
119                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='forwardPlanes' toNode='AriesAUV' toField='set_forwardPlanes'/>
120                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='afterPlanes' toNode='AriesAUV' toField='set_afterPlanes'/>
121                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='ST725Range' toNode='AriesAUV' toField='set_ST725Range'/>
122                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='ST725Bearing' toNode='AriesAUV' toField='set_ST725Bearing'/>
123                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='ST1000Range' toNode='AriesAUV' toField='set_ST1000Range'/>
124                                     < ROUTE  fromNode='ArticulationParameterControl' fromField='ST1000Bearing' toNode='AriesAUV' toField='set_ST1000Bearing'/>
125                                </Group>
126                           </EspduTransform>
127                           <Switch DEF='HideTraceTextwhichChoice='-1'>
128                                <IS>
129                                     <connect nodeField='whichChoiceprotoField='traceNodeEnabled'/>
130                                </IS>
131 
                              <!-- ROUTE information for TRACETRANSFORM node:  [from ET.translation to set_translation ] [from ET.rotation to set_rotation ] -->
                              <Transform DEF='TRACETRANSFORM'>
132                                     < ROUTE  fromNode='ET' fromField='translation' toNode='TRACETRANSFORM' toField='set_translation'/>
133                                     < ROUTE  fromNode='ET' fromField='rotation' toNode='TRACETRANSFORM' toField='set_rotation'/>
134                                </Transform>
135                           </Switch>
136                      </Group>
137                 </ProtoBody>
138            </ProtoDeclare>
139            <!-- ============================== -->
140            <Viewpoint description='AriesEspdu Prototype'/>
141            <Group>
142                 <ProtoInstance name='AriesEspdu'>
143                      <fieldValue name='networkModevalue='networkReader'/>
144                      <fieldValue name='translationvalue='0 0.4 0'/>
145                 </ProtoInstance>
146            </Group>
147            <Anchor description='AriesEspdu Prototypeparameter='"target=_blank"'   url=' "AriesEspduExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduExample.x3d" "AriesEspduExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduExample.wrl" '>
148                 <Shape>
149                      <Appearance>
150                           <Material diffuseColor='0 1 1emissiveColor='0 1 1'/>
151                      </Appearance>
152                      <Text string='"AriesEspduPrototype" "is a prototype definition file" "" "To see an example scene" "click on any text and view" "AriesEspduExample"'>
153                           <FontStyle justify='"MIDDLE" "MIDDLE"'/>
154                      </Text>
155                 </Shape>
156            </Anchor>
157       </Scene>
158  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AriesAUV, ArticulationParameterControl, ArticulationParameterScriptRoutes, ET, HideTraceText, TRACETRANSFORM

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: Aries

Index for ProtoDeclare definition: AriesEspdu
-->
X3D Tooltips element index: Anchor, Appearance, component, connect, EspduTransform, ExternProtoDeclare, field, fieldValue, FontStyle, Group, head, IS, Material, meta, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, ROUTE, Scene, Script, Shape, Switch, Text, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 17 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

     
This node has 14 outgoing ROUTEs, which is greater than $maxROUTEdepth=8
ArticulationParameterControl
Script
portRpm
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_portRpm
SFFloat
ArticulationParameterControl
Script
stbdRpm
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_stbdRpm
SFFloat
ArticulationParameterControl
Script
forwardVerticalThruster
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_forwardVerticalThruster
SFFloat
ArticulationParameterControl
Script
afterVerticalThruster
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_afterVerticalThruster
SFFloat
ArticulationParameterControl
Script
forwardLateralThruster
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_forwardLateralThruster
SFFloat
ArticulationParameterControl
Script
afterLateralThruster
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_afterLateralThruster
SFFloat
ArticulationParameterControl
Script
forwardRudders
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_forwardRudders
SFFloat
ArticulationParameterControl
Script
afterRudders
SFFloat

ROUTE
event to
(1)
AriesAUV
ProtoInstance
set_afterRudders
SFFloat

line 142
ProtoInstance
AriesEspdu
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      AriesAUV
ProtoInstance
Aries
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

ET
EspduTransform
articulationParameterArray
MFFloat

ROUTE
event to
(1)
ArticulationParameterControl
Script
set_articulationParameters
MFFloat
ET
EspduTransform
translation
SFVec3f

ROUTE
event to
(1)
TRACETRANSFORM
Transform
set_translation
SFVec3f
ET
EspduTransform
rotation
SFRotation

ROUTE
event to
(1)
TRACETRANSFORM
Transform
set_rotation
SFRotation

line 147
Anchor
description='AriesEspdu Prototype' 
User-interaction hint for this node. 

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduPrototypeIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->