Skip to main content
Jump to: navigation, search

Difference between revisions of "Apogy/UserGuide"

(Assembly Links)
(The Data Products Search View)
 
(156 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Apogy User's Guide =
+
= Table Of Contents =
 
+
== Table Of Contents ==
+
 
__TOC__
 
__TOC__
  
== Introduction ==
+
= Introduction =
Apogy was originally developed at the Canadian Space Agency to control space exploration rovers and their associated sensors. Integrating all these system developed by many different contractors and allowing them to be controlled as an integrated entity represented a challenge. In order works, a tool to plan, validate, execute and monitor integrated operations to support multiple missions was required. The technical team soon realized that a reusable framework could save a lot of work and allow for future growth. Apogy is the result of this thinking.
+
Apogy was originally developed at the Canadian Space Agency to control space exploration rovers and their associated sensors. Integrating all these systems developed by many different contractors and allowing them to be controlled as an integrated entity represented a challenge. In order works, a tool to plan, validate, execute and monitor integrated operations to support multiple missions was required. The technical team soon realized that a reusable framework could save a lot of work and allow for future growth. Apogy is the result of this thinking.
  
 
Apogy was built to:
 
Apogy was built to:
Line 12: Line 10:
 
# Maximizes reuse between missions (keep the work to the specifics of each mission);
 
# Maximizes reuse between missions (keep the work to the specifics of each mission);
  
In order to so, Apogy :
+
In order to so, Apogy:
  
 
# Is a component-based architecture that allows systems (ex: instruments, rovers, satellites) to “plug-in” and allow the system developer to concentrate on their system specific needs and the tooling to use them.
 
# Is a component-based architecture that allows systems (ex: instruments, rovers, satellites) to “plug-in” and allow the system developer to concentrate on their system specific needs and the tooling to use them.
 
# Makes use of Open Source librairies that are Eclipse Public License compatible;
 
# Makes use of Open Source librairies that are Eclipse Public License compatible;
  
== Concepts ==
+
= Overview =
  
=== Systems ===
+
In Apogy, users control [[Apogy/Concepts#System| ''Systems'']] by invoking commands (through Programs) and monitor the System's health through telemetry (i.e. states).
  
In Apogy, a ''System'' is an entity that can execute commands and provide its state information. Typically ''Systems'' represent actual hardware (ex: a rover, a camera, a robotic arm) but can be used to represent something more abstract (a planning system, a resource dispatcher, etc.).  
+
These Systems are operated in a Environment which defines such things as Digital Elevation Maps, orbit models, sun position, etc (i.e. what the Environment contains).
  
In Apogy, a user makes use of the ''Systems'' to perform tasks in a given ''Environment''. The ''System'' supports commands and reports on it status through its telemetry : the ''System'' is defined by its interfaces. Given this definition, a ''System'' can be modeled as a class : ''methods'' represent commands (with their parameters and return value) and the ''attributes'' represent states returned as part of telemetry. In Apogy, a ''System'' is defined using the [https://www.eclipse.org/modeling/emf/ Eclipse Modeling Framework].  
+
{| class="wikitable"
 +
|-
 +
|  colspan="1" style="text-align:center; | [[File:Apogy_User_Systems_Environment_Diagram.png |500px|alt=]]
 +
| User, System, Environment and Data Product.
 +
|}
  
In Apogy a ''System'' is named and is defined in EMF model. This model that includes:
+
The System's command produces result (i.e. returned value, such as an Image, an error code, etc.) that Apogy geo-locates and time tags. This allows the results to be displayed within the 3D Environment. This helps in maintaining the situational awareness of the operator and keep the data in context.
  
# The [[Apogy/UserGuide#System Interface Class|System Interface Class]] defining the commands and attributes it supports;
+
== Installing Apogy ==
# A list of Connection Points where other sub-system can be attached;
+
# A list of Assembly Links that are used to assemble a System's sub-System (in composite Systems);
+
# A topology of nodes that are used to defined the system representation in 3D;
+
# A list of Topology Bindings that are used to bind attributes of the interface class to behavior in the topology (ex: binding the value of a 3D transform  to the value of a revolute joint position);
+
  
Simple ''Systems'' can be assembled together to create composites ''Systems'' (ex: [[Apogy/Examples#Integrated Rover | Integrated Rover Example]]). This allows sub-systems to be modeled independently and reused as part of different assemblies. The assemblies of ''Systems'' is supported through ''System Type Members'', ''Connection Points'' and ''Assembly Links''.
+
TODO
  
==== System Interface Class ====
+
== Launching Apogy ==
 +
TODO
  
The System's Interface Class refers to the ''EClass'' that defined the methods and attributes of the System. Only methods and attributes defined in the interface can be accessed by Apogy to create commands, display values, bind attributes, etc.
+
= Quick Start =
  
==== System Type Members ====
+
To get you started quickly, we will import an existing [[Apogy/Concepts#Session| ''Session'']] (one of the example) and then used it to command the [[Apogy/Examples#Integrated Rover | ''Integrated Rover'']] example.
  
Composite System include ''Type Members'' that refers to other ''System''. These ''Type Members'' can be made accessible to the parent ''System''.
+
== Importing an Existing Session ==
  
[[File:Apogy_Composite_System.png|thumb|center|alt=|''An example of a composite System and its Type Members. For example, type member platform is of type MobilePlatform.'']]
+
#Launch Apogy.
 +
#Open the ''Welcome'' perspective if not already opened:
 +
##In the top menu bar, select [[Image:Apogy_Perspective_Icon.png|Open New Perspective]]. This will open the ''Add Perspective'' pop-up.
 +
## In the pop-up, select the '''''Projects''''' perspective;
 +
## Press ''OK''.
 +
#In the ''Welcome'' perspective, select the '''''Projects''''' view;
 +
#In the ''Registry'' list, select '''''org.eclipse.apogy.example.rover.apogy''''';
 +
#Press ''Import'' . This will bring up the ''New Apogy Project'' wizard;
 +
#Change the name of the project to '''''MyFirstProject''''', then press ''Finish''.
 +
#In the ''Workspace'' list, select the project you just created, then press ''Open''.
 +
#Verify that the ''Workspace'' list displays your project as '''''<Active> MyFirstProject'''''
  
 +
You now have you first Apogy Session loaded ! This session contains a [[Apogy/Examples#Integrated Rover | ''Integrated Rover'']] System, a Surface Worksite ([http://asrl.utias.utoronto.ca/datasets/3dmap/a200_met.html the Mars Emulation Terrain at the Canadian Space Agency]) and a few [[Apogy/Concepts#Program| ''Programs'']].
  
Apogy allows operation to be called on a composite System member (ex: calling rover→mobilePlateform.moveForward(1.25)) in a hierarchical fashion. System can be compose at multiple levels (i.e. a System can have type members that are themselves composites Systems and so on.). The [[Apogy/Examples#Integrated Rover | Integrated Rover]] is an example of such a System.
+
== Instantiating the Variables ==
  
==== Connection Points ====
+
Before we start our system, we will open the ''Programs'' perspective to get ready for invoking commands.
 +
#Open the ''Programs'' perspective if not already opened:
 +
##In the top menu bar, select [[Image:Apogy_Perspective_Icon.png|Open New Perspective]]. This will open the ''Add Perspective'' pop-up.
 +
## In the pop-up, select the '''''Programs''''' perspective;
 +
## Press ''OK''.
  
''Connection Points'' define physical locations where other sys-system are expected to be connected. To used the analogy of a construction toy's blocks, connections point points define the brick studs.  
+
The ''Programs'' perspective provides the view required to created, edit, delete and invoque Programs. At this point, we will bring up the 3D Viewer to show what is in the environment:
 +
#In the top menu bar, select Window→Show View. This will open the ''Add View'' pop-up.
 +
## In the pop-up, select the '''''Apogy Views&rarr;3D Viewer''''' view;
 +
## Press ''OK''.
  
[[File:Apogy_System_Connection_Points_And_Topology.png|thumb|center|alt=|''A System connection points and relationship to the System's topology. connection points (yellow rectangles) and topology Nodes (blue rounded rectangles).]]
+
The 3D Viewer should show the terrain, the sky, and possibly the Sun, the Moon and the stars (depending on the time-of-day). We are ready to instantiate our system:
  
 +
#On the status bar, confirm that the [[Apogy/Concepts#Context | ''Context'']]  shows Simulated.
 +
#Press ''Start''. The ''Start'' button should become disabled, and the ''Stop'' button enabled.
  
They are named and refer to a Node defined in the System's topology. The ''root connection point'' is implicit and always refer to the System's root topology node.
+
The ''rover'' [[Apogy/Concepts#Variable | ''Variable '']]  has now been instanciated. In the 3D Viewer, you should see the rover standing on the corner of the terrain. We are almost ready to roll!
  
==== Assembly Links ====
+
== Invoking Existing Commands ==
  
''Assembly Links'' describe how systems are attached to each other in composite ''Systems''.
+
We are now ready to invoke commands on the rover. For now, we will used the commands (or ''Operation Call'' in Apogy parlance) :
  
[[File:Apogy_Composite_System_Assembly.png|thumb|center|alt=|''A composite system assembly using connection points (yellow rectangles) and assembly links (black arrows).'']]
+
#In the ''Programs'' perspective, select the '''''Programs''''' view;
 +
#In the ''Programs'' list, select ''A.B'';
 +
#Select the ''Program'' view: it should be display a list of ''Operation Call''.
 +
#In the ''Operation Call'', select ''Start'', then press ''Invoke''. This will start the rover.
 +
#Ensure you have the 3D Viewer showing the rover and the terrain.
 +
#In the ''Operation Call'', select ''Move Forward'', then press ''Invoke''. The rover should start moving forward.
 +
#In the ''Operation Call'', select ''Stop Motion'', then press ''Invoke''. The rover should stop moving.
  
 +
You may have noticed that flags displaying a date have been popping-up in the 3D Viewer as ''Operation Call'' were being invoked. These flags mark the location of the System when the ''Operation Call'' returned and show the time at which the ''Operation Call'' execution completed.
  
In the construction toy's analogy, the assembly links represent a construction set's instructions. The assembly links are named and refers to their parent's connection point to which the subsystem ''root connection point'' is attached.
+
=== Preventing the rover from moving through the terrain ===
  
=== Variables ===
+
You may have noticed that the rover wheels where driving through the terrain, and not on top of it. This is due to the very simple simulation that is updating the rover position based on its speed (the rover only moves on the XY plane and changes its azimuth). This is of course, not very realistic.
  
A use can define multiple instances for a given ''System'' (ex: '''''vehicle1''''' and '''''vehicle2''''' of type [[Apogy/Examples#Skid-Steered Wheeled Mobile Platform | MobilePlateformApogySystem]]). Similar to the way multiple variables of a given type are defined in programming languages, Apogy uses the concept of ''Variable''.
+
Apogy provides a PoseCorrector concept that can be used to maintain a System wheels (or feet in the case of the example Lander) in contact with the ground. Lets enable the pose corrector. For this, we will use the Vehicle Pose view:
 +
#In the top menu bar, select Window→Show View. This will open the ''Add View'' pop-up.
 +
## In the pop-up, select the '''''Vehicle Pose''''' view;
 +
## Press ''OK''.
 +
#In the ''Vehicle Pose'' view, press ''Select...''. This will bring up the ''Variable Feature Reference'' wizard.
 +
#In the wizard, under ''Variable'', select '''''rover''''', then under ''Sub-Type'', select '''''mobilePlateform''''';
 +
#Press ''OK''
 +
#In the ''Vehicle Pose'', select the ''Pose Corrector'' tab;
 +
#Check ''enabled''
 +
#Invoke the ''Operation Call'' used before : The rover wheels should now follow the terrain !
  
Each ''Variable'' has a name (that should be unique) and refers to the type of ''System'' it represents. ''Variable'' can refer to simple or complex ''System''.
+
== Creating New Commands ==
  
=== Contexts ===
+
Up to now we have been invoking ''Operation Call'' that were already defined in a program. Lets now create our own ''Operation Call'':
  
When developing complex operations sequence or testing scripts that command Systems to perform tasks, a user often needs to run such commands on some sort of simulated version of the Systems.  
+
#In the ''Programs'' perspective, select the '''''Programs''''' view;
 +
#Select the ''TODO Program Group'', then press ''New Program''. This will bring up the ''New Program Wizard'':
 +
#On the left side, select OperationCallsList (this is a ''Program'' that is a simple list of ''Operation Call'')
 +
#Press ''Next'';
 +
#Change the program's name to '''''MyFirstProgram'''''; press ''Finish''.
 +
#In the Program List, select the program you just created.
 +
##Select the ''Program'' view, then press ''New''. This will bring up the ''New Operation Call'' wizard;
 +
#Change the name to ''Deploy Arm'', then press ''Next'';
 +
#Select the roboticArm sub-system as the system we want to use:
 +
##Under Variable, select '''''rover''''';
 +
##Under Sub-Type, select '''''integratedRoboticArm&rarr;roboticArm''''';
 +
#Now lets select the operation we want to call:
 +
## Under Operation, select '''''moveTo(EDouble, EDouble, EDouble, EDouble)''''', then press ''Next'';
 +
##Lets set the operation parameters (here the destination joint angles values):
 +
##In the left end side, select the first argument ('''''turretAngle''''') and type its value ('''''0.0''''' degrees) in the ''Value'' field on the right.
 +
##Repeat the previous step for each of the arguments:
 +
### '''''shoulderAngle''''' = '''''0.0''''' degrees
 +
### '''''elbowAngle''''' = '''''-90.0''''' degrees
 +
### '''''wristAngle''''' = '''''0.0''''' degrees
 +
# Save the session by pressing the ''Save'' button in the top menu.
 +
# Test you command by pressing ''Invoke''!
  
In other cases, during development, a specific sub-system of a larger assembly may not yet have an implementation that communicates with it's hardware (or the hardware may not yet be available). A way for the user to work on operational sequence or scripts should be made available.
+
== Browsing the Data Product ==
  
In order to addresses such cases, Apogy makes use of ''Context''. At it's base, a ''Context'' maps ''Variable'' to actual implementations of the Interface Class of its System and sub-systems. By doing so, when a ''Variable'' is instanciated, the actual ''Interface Class Implementation'' specified in the ''Context'' is used. Used together with a System Interface sub-classes, ''Context'' allows commands and script to be executed in a transparent fashion in diverse implementation settings.  
+
Up to now, we have been issuing commands, but we have not been looking at the Data Product (i.e. return value) generated by the Operation Calls. Lets do that now:
 +
 
 +
#Open the ''Data Products'' perspective if not already opened:
 +
##In the top menu bar, select [[Image:Apogy_Perspective_Icon.png|Open New Perspective]]. This will open the ''Add Perspective'' pop-up.
 +
## In the pip-up, select the '''''Data Products''''' perspective;
 +
## Press ''OK''.
 +
#In the ''Data Products Search'', select the first ''Start'' operation call.
 +
#The ''Data Products Details'' view now shows the metadata associated with the result of the operation call such as:
 +
##The ''Context'' that was active when the call was made;
 +
##The name and description that have been associated with result;
 +
##The Relative pose of the result relative to the System that  executed the call;
 +
##The absolute pose of the result relative to the active Worksite;
 +
##The time at the reception of the result;
 +
#The ''Data Products Value Details'' now show the actual value return (in our case, a Boolean value).
 +
 
 +
= The User Interface =
 +
 
 +
== Perspectives ==
 +
 
 +
=== Overview ===
 +
Apogy makes use of the [https://www.tutorialspoint.com/eclipse/eclipse_perspectives.htm Perspective] concept as defined in Eclipse. A ''Perspective'' is a group of ''Views'' that are related to each other or are used together for a given task. In Apogy:
 +
* Only one ''Perspective'' is active at any given time.
 +
* Multiple ''Perspectives'' can have multiple instance of the same ''View'' (in general).
 +
* Users [[Apogy/FAQ#How can I create a custom Perspective in Apogy ?  | can create custom Perspectives on the fly ]].
 +
* Custom Perspective can be [[Apogy/FAQ#How can I share a Perspective I created live? | exported]] / [[Apogy/FAQ#How can I import a Perspective I exported earlier? | imported]] as a way to shared them between users.
 +
 
 +
Perspective are accessed from the main menu to [[Apogy/FAQ#How can I open Perspective in Apogy ? | open]], [[Apogy/FAQ#How can I create a custom Perspective in Apogy ? | create ]] and [[Apogy/FAQ#How can I switch between Perspective in Apogy ? | select ]] the active perspective.
 +
 
 +
=== Apogy Perspectives ===
 +
Apogy provides a few Perspectives that are used for basics functions:
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
|+ The Apogy's Perspectives
 
|-
 
|-
| colspan="1" style="text-align:center; | [[File:Apogy_Context_Example_1.png|600px|alt=Simulated Context active.]]
+
! Name
| colspan="1" style="text-align:center; | [[File:Apogy_Context_Example_2.png|600px|alt=Real Context active.]]
+
! Description
 +
! Included Views
 +
! View Description
 +
|-
 +
| rowspan="2" | [[Apogy/UserGuide#The Welcome Perspective | Welcome]]
 +
| rowspan="2" | Default perspective that is shown when you first launch Apogy.
 +
| [[Apogy/UserGuide#The Welcome View | Welcome]]
 +
| Show the welcome message for Apogy.
 +
|-
 +
| [[Apogy/UserGuide#The Projects View | Projects]]
 +
| View used to create / load / import and export [[Apogy/Concepts#Session | ''Sessions'']].
 +
|-
 +
| rowspan="4" | [[Apogy/UserGuide#The Systems Perspective | Systems]]
 +
| rowspan="4" | Perspective used to defined [[Apogy/Concepts#Variable | ''Variables'']], [[Apogy/Concepts#Context | ''Contexts'']] and [[Apogy/Concepts#Initial Conditions | ''Initial Conditions'']].
 +
| [[Apogy/UserGuide#The Variables View | Variables]]
 +
| View used to display, create and delete [[Apogy/Concepts#Variable  | ''Variables'']].
 +
|-
 +
| [[Apogy/UserGuide#The Contexts View | Contexts]]
 +
| View used to display, create, edit, delete and activate [[Apogy/Concepts#Context | ''Contexts'']].
 +
|-
 +
| [[Apogy/UserGuide#The Initial Conditions View | Initial Conditions]]
 +
| View used to display, create, edit, delete, collect and apply [[Apogy/Concepts#Initial Conditions | ''Initial Conditions'']].
 +
|-
 +
| [[Apogy/UserGuide#The Runtime View | Runtime]]
 +
| View used to display the instances of each of the Variable's System and type members.
 +
|-
 +
| rowspan="5" | [[Apogy/UserGuide#The Programs Perspective Programs| Programs]]
 +
| rowspan="5" | Perspective used to define [[Apogy/Concepts#Program Group | ''Program Groups'']] and [[Apogy/Concepts#Program | ''Programs'']].
 +
| [[Apogy/UserGuide#The Programs View | Program<u>s</u>]]
 +
| View used to display, create and delete [[Apogy/Concepts#Program Group | ''Program Groups'']] and [[Apogy/Concepts#Program | ''Programs'']].
 +
|-
 +
| [[Apogy/UserGuide#The Program View | Program]]
 +
| View used to edit and invoke a [[Apogy/Concepts#Program | ''Program'']] and its [[Apogy/Concepts#Operation Call | ''Operation Calls'']].
 +
|-
 +
| [[Apogy/UserGuide#The Runtime View | Runtime]]
 +
| View used to displays the instances of each of the Variable's System and type members.
 +
|-
 +
| [[Apogy/UserGuide#The Arguments View| Arguments]]
 +
| View used to edit the selected [[Apogy/Concepts#Operation Call | ''Operation Call'']] arguments.
 +
|-
 +
| [[Apogy/UserGuide#The Documentation View| Documentation]]
 +
| View used to display documentation associated with the selected [[Apogy/Concepts#Operation Call | ''Operation Call'']] or Operation Calls arguments.
 +
|-
 +
| rowspan="6" | [[Apogy/UserGuide#The Earth Surface Worksite Perspective | Earth Surface Worksite]]
 +
| rowspan="6" | Perspective used to create / edit [[Apogy/Concepts#Earth Surface Worksite | ''Earth Surface Worksites'']].
 +
| [[Apogy/UserGuide#The Earth Surface Worksites View | Earth Surface Worksite<u>s</u>]]
 +
| Show the list of available Earth Surface Worksites and allows the user to create / import / export / delete and activate [[Apogy/Concepts#Earth Surface Worksite | ''Earth Surface Worksites'']].
 +
|-
 +
| [[Apogy/UserGuide#The Maps View | Maps]]
 +
| View used to create / edit and delete the Maps contained in a [[Apogy/Concepts#Earth Surface Worksite | ''Earth Surface Worksites'']].
 +
|-
 +
| [[Apogy/UserGuide#The Digital Elevation Maps View | Digital Elevation Maps (DEMs)]]
 +
| View used to create / edit / delete [[Apogy/Concepts#Cartesian Triangular Mesh Layer | ''CartesianTriangularMeshURLMapLayer'']]in the selected [[Apogy/Concepts#Map | ''Map'']] of a Earth Surface Worksite. Also used to edit the appearance of [[Apogy/Concepts#Image Layers | ''Image Layers'']] that are applied to the CartesianTriangularMeshURLMapLayer.
 +
|-
 +
| [[Apogy/UserGuide#The Image Layers View | Image Layers]]
 +
| View used to create / edit / delete [[Apogy/Concepts#Image Layers | ''Image Layer'']] for the selected [[Apogy/Concepts#Map | ''Map'']] of a Earth Surface Worksite.
 +
|-
 +
| [[Apogy/UserGuide#The Features Of Interest View | Feature Of Interest]]
 +
| View used to create / edit / delete [[Apogy/Concepts#Feature Of Interest Layer | ''FeatureOfInterest Layers '']] for the selected [[Apogy/Concepts#Map | ''Map'']] of a Earth Surface Worksite.
 +
|-
 +
| [[Apogy/UserGuide#The Other Layers View | Other Layers]]
 +
| View used to create / edit / delete other layers for the selected Map of a Earth Surface Worksite.
 +
|-
 +
| rowspan="2" | [[Apogy/UserGuide#The Earth View Perspective  | Earth View]]
 +
| rowspan="2" | Perspective used to display the Earth as a whole. Used for displaying orbits and flying vehicle trajectories.
 +
| [[Apogy/UserGuide#The Earth View | Earth View]]
 +
| Show the Earth as a whole together with the ''Earth View Layers'' that have been defined in the active Earth View Configuration.
 +
|-
 +
| [[Apogy/UserGuide#The Earth View Configuration View | Earth View Configuration]]
 +
| View used to create / edit and delete ''Earth View Layers'' used in the active Earth View Configuration.
 +
|-
 +
| rowspan="2" | [[Apogy/UserGuide#The Time Sources Perspective | Time Sources ]]
 +
| rowspan="2" | Perspective used to create / edit / delete [[Apogy/Concepts#Time Source | ''TimeSources'']] used in the Session.
 +
| [[Apogy/UserGuide#The Time Source View | Time Sources]]
 +
| Displays the list of available TimeSource and provided support to create / edit / delete and set the Session active ''TimeSource''.
 +
|-
 +
| [[Apogy/UserGuide#The Time Source Details View | Time Source Details]]
 +
| View used to display and edit the selected [[Apogy/Concepts#Time Source | ''TimeSource'']]  details.
 +
|-
 +
| rowspan="3" | [[Apogy/UserGuide#The Data Products Perspective  | Data Products ]]
 +
| rowspan="3" | Perspective used to display / create / edit and delete [[Apogy/Concepts#Data Products | ''Data Products'']].
 +
| [[Apogy/UserGuide#The Data Products Search View | Data Products Search ]]
 +
| Displays the list of available [[Apogy/Concepts#Data Products | ''Data Products'']] and provided support to create / edit / delete and search the list of ''Data Products''.
 +
|-
 +
|[[Apogy/UserGuide#The Data Product Details View | Data Product Details]]
 +
| View used to display the details of the selected [[Apogy/Concepts#Data Products | ''Data Products'']] in the ''Data Products Search'' view.
 +
|-
 +
|-
 +
| [[Apogy/UserGuide#The Data Product Value Details View | Data Product Value Details]]
 +
| View used to display the details of the value contained in the selected [[Apogy/Concepts#Data Products | ''Data Products'']].
 +
|-
 +
| rowspan="5" | [[Apogy/UserGuide#The 3D Viewing Perspective | 3D Viewing]]
 +
| rowspan="5" | Perspective used to display the environment in 3D.
 +
| [[Apogy/UserGuide#The 3D Viewer | 3D Viewer]]
 +
| Displays the environment rendered in 3D.
 +
|-
 +
| [[Apogy/UserGuide#The Node Search View | Node Search]]
 +
| Provides functions to search the environment [[Apogy/Concepts#Topology  | ''topology '']] for particular [[Apogy/Concepts#Node | ''Nodes'']].
 +
|-
 +
| [[Apogy/UserGuide#The Node Presentation View| Node Presentation]]
 +
| View used to display the [[Apogy/Concepts#Node Presentation | ''Node Presentation'']] for the selected Node (selected in the ''Node Search'' or the ''Topology Tree'').
 +
|-
 +
| [[Apogy/UserGuide#The Topology Tree View| Topology Tree]]
 +
| View used to display the topology tree and the details of the selected [[Apogy/Concepts#Node | ''Node'']].
 +
|-
 +
|-
 +
| [[Apogy/UserGuide#The Node Distance View| Node Distance]]
 +
| View used to display the relative position/orientation and distance between two selected [[Apogy/Concepts#Node | ''Node'']].
 +
|-
 +
| rowspan="5" | Earth Atmosphere
 +
| rowspan="5" | Perspective used to create / edit [[Apogy/Concepts#Earth Atmosphere Worksite | ''Earth Atmosphere Worksites'']].
 +
| Earth Atmosphere Worksites
 +
| Show the list of available [[Apogy/Concepts#Earth Atmosphere Worksite | ''Earth Atmosphere Worksites'']] and allows the user to create / import / export / delete and activate [[Apogy/Concepts#Earth Atmosphere Worksite | ''Earth Atmosphere Worksites'']].
 
|-
 
|-
| colspan="1" style="text-align:center; | ''Simulated'' Context selected as the active context.
 
| colspan="1" style="text-align:center; | ''Real'' Context selected as the active context.
 
 
|}
 
|}
  
In the example above, 3 ''Variable'' have been defined:
+
Additional plug-ins may contribute more Perspectives (such as the Apogy Example plug-ins) that provide System specifics views that are use to control and monitor specific Systems.
  
# '''''myRover''''' : Refers to a System which Interface Class is ''Rover'', which has 2 sub-classes:
+
== The Welcome Perspective ==
## ''RoverSimulated'' : A simulated implementation of the Rover;
+
## ''RoverReal'' : An implementation that connects to the actual hardware rover.
+
# '''''myArm''''' : Refers to a System which Interface Class is ''Arm'', which has 2 sub-classes:
+
## ''ArmSimulated'' : A simulated implementation of the Arm;
+
## ''ArmReal'' : An implementation that connects to the actual hardware robot.
+
# '''''myLidar''''' :  Refers to a System which Interface Class is ''Lidar''. In this cas, the Lidar hardware being no yet completed, only 1 sub-class is available:
+
## ''LidarSimulated'' : A simulated implementation of the Lidar;
+
  
The user has created 2 ''Context'' : '''''Simulated''''' and '''''Real'''''. In this case, both real and simulated version of the rover and arm are used, but the Lidar hardware not being available, both ''Context'' make use of the simulated implementation (LidarSimulated) of the Lidar. This setup allows command sequence or scripts to be developed and tested now using the Simulated context, and later used with the real world implementation when the actual Systems become available.
+
This is the default perspective that is shown when you first launch Apogy. If provides basic information about yout installation of Apogy and access to the [[Apogy/Concepts#Session | ''Sessions'']].
  
While many ''Context'' can be defined in a given ''Session'', only one can be selected as the active context. The ''Context'' definition includes:
+
[[File:Apogy Welcome Perspective.png |center|800px|The Welcome Perspective]]
# A name (should be unique);
+
# The DataSet where results will be stored. This allows result from different Context to be saved separately (this is often useful to keep data from a simulated run separate from data produced by actual, real System).
+
  
=== Time Source ===
+
==== The Welcome View ====
  
TODO
+
The Welcome View show the welcome message of Apogy. It is divided into 2 sections:
  
=== Environment ===
+
[[File:Apogy Welcome View.png|center|800px|The Welcome View]]
  
The Environment contains the following:
+
*On the top, the '''''Apogy''''' section displays the description of Apogy.
 +
*On the bottom, the '''''Help''''' section displays the help of Apogy.
  
# the ''Variables'' in use
+
==== The Projects View ====
# the list of available ''Contexts'' and the one currently active;
+
# the list of available ''Worksite'' and the one currently active;
+
# the list of available ''Time Source'' and the one currently active;
+
  
Contains the definitions of worksite, time sources and Systems;
+
The Projects View shows the [[Apogy/Concepts#Session | ''Sessions'']] available. It is divided into 2 sections:
  
Defines what the user has to work with in a specific mission such as the System instances.
+
[[File:Apogy Projects View.png|center|800px|The Projects View]]
  
# Contains the definitions of the ''Worksite'', ''Time Sources'' and the registered ''Apogy Systems'';
+
*On the left, the '''''Workspace''''' section displays the list of [[Apogy/Concepts#Session | ''Sessions'']] projects that are currently in the Apogy workspace. This section includes 5 buttons:
# Defines what you have to work with in a specific deployment;
+
**The '''Open''' button is used to open the selected [[Apogy/Concepts#Session | ''Session'']].
 +
**The '''New''' brings up a Wizard to create a new Session from scratch.
 +
**The '''Delete''' button deletes the selected Session.
 +
**The '''Import''' button brings up a Wizard used to import archived Session into the Apogy workspace.
 +
**The '''Export''' button brings up a Wizard used to export the selected Session to an archive.
 +
*On the right, the ''Registry'' section displays the list of registered [[Apogy/Concepts#Session | ''Sessions'']] contributed by the installed plug-ins. This section includes one button:
 +
**The '''Import''' button brings up a Wizard used to import the selected registered Session into the Apogy workspace.
  
==== Worksites ====
+
== The Systems Perspective ==
  
# Defines the area that the System are operating in for the particular mission;
+
The Systems Perspective is used to defined [[Apogy/Concepts#Variable | ''Variables'']], [[Apogy/Concepts#Context | ''Contexts'']] and [[Apogy/Concepts#Initial Conditions | ''Initial Conditions'']].
# Include a priori information about the area (e.g. Digital Elevation Maps (DEMs), orbital imagery, etc.);
+
 +
[[File:Apogy Systems Perspective.png |center|800px|The Systems Perspective ]]
  
Inherently generic concept that could be specialized as required (e.g. Earth surface);
+
=== The Variables View ===
  
=== Session ===
+
The Variables View is used to display, create and delete [[Apogy/Concepts#Variable | ''Variables'']].
  
In Apogy, the ''Session'' is the entity that contains all the configuration and data that are required to make use of Systems. The session is implemented as an Eclipse Project with a Apogy nature, and as such, is mapped to the host file system. Sessions can be exported/imported to and from archived files (''.zip'').
+
[[File:Apogy Variables View.png |center|800px|The Variables View]]
  
The ''Session'' project includes a central resource (''session.sym'') that contains most of the configuration elements (Variable, Context, InitialCondition, etc) and also has referecens to other ressources contained in the project (scripts, data products, etc). In Apogy there is <u>at most one active Session at any given time</u>.
+
*The left end side displays the variables defined in the Session. For composite systems, the tree shows all of the System's [[Apogy/Concepts#System Type Members | ''System Type Members'']]. This section includes 2 buttons:
 +
** The '''New''' button brings up a Wizard used to create a new Variable.  
 +
** The '''Delete''' button deletes the selected Variable.
  
The Session contains:
+
=== The Contexts View ===
  
# the ''Environment'' being used;
+
The Contexts View  is used to display, create, edit, delete and activate Contexts. It is divided in 3 sections:
# the list of available ''InitialConditions'';
+
  
==== Surface <i>Worksites</i> ====
+
[[File:Apogy Contexts View.png |center|800px|The Contexts View]]
  
* Defines a ''Worksite'' that resides on the surface of a Celestial body (e.g. Earth)
+
*On the left, the '''''Contexts''''' section displays the list of Contexts available in the Session. The section includes 3 buttons:
 +
**The '''New''' button brings up a Wizard used to create a new Context.
 +
**The '''Delete''' button deletes the selected Context.
 +
**The '''Activate''' button makes the selected Context the Session's active Context.
 +
*On the top right, the '''''Implementation''''' section displays the [[Apogy/Concepts#System Interface Class |''System Interface Class'']] for each of the Variable and, when applicable, the Variable's type members. The ''System Interface Class'' of a Variable (or a Variable's type member) can be changed by clicking in the Implementation column : a pull down menu then shows the available implementation class for the ''System Interface Class''.
 +
*On the bottom right, the '''''Details''''' section displays the details of the selected Variable or Variable's type member.
  
===== Reference Frame =====
+
=== The Initial Conditions View ===
  
TODO!
+
The Initial Conditions View used to display, create, edit, delete, collect and apply [[Apogy/Concepts#Initial Conditions |''Initial Conditions'']]. It is divided into 4 sections:
  
===== <i>Maps</i> =====
+
[[File:Apogy Initial Conditions View.png |center|800px|The Initial Conditions View]]
 +
*On the left, the '''''Available Initial Conditions''''' section displays the list of Initial Conditions available in the Session. The section also includes 4 buttons:
 +
**The '''New''' button brings up a Wizard used to create a new Initial Conditions.
 +
**The '''Delete''' button deletes the selected Initial Conditions.
 +
**The '''Collect''' button collect the Session System's states and saves them to the selected Initial Conditions.
 +
**The '''Apply''' button applies the selected Initial Conditions to the Session System's.
  
* A component of a ''Worksite'' that contains ''Map Layers'' sharing a common pose relative to the ''Worksite'' origin;
+
*In the center, on the top, the '''''Initial Conditions Overview''''' section displays an overview of the selected Initial Conditions.
* A '''''Map Layer''''' contains the actual data about the ''Worksite'' (e.g. DEM, Orbital Imagery, Slope, etc.);
+
*In the center, on the bottom, the '''''Initial Conditions Details''''' section provides the details of the Initial Conditions for each Variable.
 +
*On the right, the '''''Initialization Details''''' section provide display and edit function for the element of the Initial Conditions selected in the '''''Initial Conditions Details''''' section.
  
====== <i>MapLayer</i> ======
+
=== The Runtime View ===
  
* Currently support ''MapLayers'':
+
The Runtime View displays the instances of each of the Variable's System and type members. Note that this view is populated only after the Variables are instantiated.
** '''''Triangular Mesh Map Layer''''' (a meshed DEM);
+
** '''''Features Of Interest Map Layer''''' (specific locations in the ''Worksite'');
+
** '''''Image Map Layer''''' (Image and its physical size on the ''Worksite'');
+
  
===== <i>EarthSky</i> =====
+
[[File:Apogy Runtime View.png |center|800px|The Runtime View ]]
  
* Contains the Celestial bodies of interest (Sun, Moon, Stars);
+
== The Programs Perspective ==
* Ephemerides updates based on time and the ''Worksite'' location;
+
* Represented in the ''Topology''
+
  
==== Orbital Worksites ====
+
This perspective is used to display, create and edit Program Groups and Programs.
  
=== <i>Time Sources</i> ===
+
[[File:Apogy Programs Perspective.png |center|800px|The Programs Perspective]]
  
* '''''Time Sources''''' are used to feed the time to the ''Session''.
+
=== The Program<u>s</u> View ===
* This, in turn, updates the position of the sky elements (Sun, Moon, Stars);
+
* The ''Time Sources'' element contains the available ''Time Sources'', only one of which is set as the ''Session Active Time Source'';
+
* The ''Time Sources View'' can be used to access the various time source parameters.
+
  
==== Available <i>Time Sources</i> ====
+
The Programs View is used to display, create and delete [[Apogy/Concepts#Program Groups | ''Program Groups'']] and [[Apogy/Concepts#Program | ''Programs'']].
  
{| border="1" cellpadding="2"
+
[[File:Apogy Programs View.png |center|800px|The Programs View]]
! Name
+
! Description
+
|-
+
| '''''Fixed Time Source'''''
+
| A ''Time Source'' representing a fixed date and time.
+
|-
+
| '''''Current Time Source'''''
+
| A ''Time Source'' that represents the current time, updated at a regular interval.
+
|-
+
| '''''Selection-based Time Source'''''
+
| A ''Time Source'' that updates its time upon the selection of any ''Timed'' element in the UI.
+
|-
+
| '''''Browseable Time Source'''''
+
| A ''Time Source'' that can be browsed, reset, played forward or reset, and accelerated.
+
|-
+
| '''''Operation Calls Result List Time Source'''''
+
| A specialized ''Browseable Time Source'' that allows browsing a list of ''Operation Calls''.
+
|}
+
  
=== <i>Types</i>, <i>Variables</i> & <i>Contexts</i> ===
+
*The tree viewer on the left displays the list of available Program Group and the Program they contain.
 +
*The right end side includes 3 buttons:
 +
**The '''New Group''' button brings up a Wizard used to create a new Program Group.
 +
**The '''New Program''' button brings up a Wizard used to create a new Program.
 +
**The '''Delete''' button deletes the Program Group or Program selected. Note that deleting a Program Group also deletes the Programs it contains.
  
==== <i>Types</i> ====
+
=== The Program View ===
  
* A '''''Type''''' defines an entity that can execute commands and provides telemetry:
+
The Program View is used to edit and invoke Programs. Currently, [[Apogy/Concepts#Operation Call List| ''Operation Call List'']] and [[Apogy/Concepts#Java Script Program | '' Java Script Program '']] are supported. Depending on the type of Program, this view displays different elements.
** Similar to an Interface Control Document (ICD);
+
** Used to specify what a ''Variable'' represents;
+
* Type can include ''Type Members'' in their definitions;
+
* Types include an ''API Adapter'' that acts as a bridge between Apogy and the ''Interface Class'';
+
  
===== <i>Interface Class</i> =====
+
In both case, the tool bar includes a '''Run''' action to execute the Program.
  
* An '''''Interface Class''''' is the specific (i.e. real-world) Java type of the Apogy ''Type''
+
==== The Program View - Operation Call List ====
  
==== Apogy <i>System</i> ====
+
When the Program selected in the Programs View is an [[Apogy/Concepts#Operation Call List | ''Operation Call List'']], the view display the list of [[Apogy/Concepts#Operation Call | ''Operation Call'']].
  
* Is the "LEGO block" of Apogy;
+
[[File:Apogy Program View Ops Call List.png |center|800px|The Programs View displaying an Operation Call List Program]]
* A '''''System''''' is a specialization of ''Type'';
+
* Adds functions to assemble systems together through ''Connection Points'' and ''Assembly Links'';
+
* Provide 3D representation of the ''System'';
+
  
* A given ''System'' may have multiple implementations (e.g. Stub, Simulated, etc.);
+
*The table on the left displays the list of Operation Call contained in the selected Operation Call List.
* Implementation specific details transparent to Apogy: what matters is the interface.
+
*The right end side includes 3 buttons:
 +
**The '''Invoke''' button triggers the execution of the selected Operation Call.  
 +
**The '''New''' button brings up a Wizard used to create a new Operation Call.
 +
**The '''Delete''' button deletes the selected Operation Call.
  
===== <i>Connection Points</i> & <i>Assembly Links</i> =====
+
==== The Program View - Java Script Program ====
  
* A '''''Connection Point''''' represents a location in the ''System'' (as represented by a topology node) where another ''Type'' could connect to this System.
+
When the Program selected in the Programs View is a [[Apogy/Concepts#Java Script Program | ''Java Script Program'']], the view display the source code of the script.
* An '''''Assembly Link''''' actually provides the link between a ''Connection Point'' and another Type.
+
  
* In the diagram below, one could say that the ''Connection Points'' act like hooks while the ''Assembly Links'' act like strings.
+
[[File:Apogy Program View JavaScript.png |center|800px|The Programs View displaying a Java Script Program]]
  
===== Simple <i>Systems</i> =====
+
*The full path of the script is display at the top.
 +
**The '''Browse...''' button bring up a File Selection Wizard used to set the path to the file containing the script.
 +
**The '''Reload''' button force the script file to be reloaded.
 +
**The '''Save''' button saves the displayed source code of the script to the file.
 +
*The bottom text editor allow the script source code to be displayed and edited.
  
* It has no ''Type Member'' (i.e. it has no sub-systems);
+
=== The Arguments View ===
* It typically represents a "building block" (sub-system) that can be used in the assembly of more complex ''Systems'';
+
  
===== Complex <i>Types</i> =====
+
The Arguments View is used display the selected Operation Call arguments and edit their values. It is divided into 3 sections:
  
* Has one or more ''Type Members'';
+
[[File:Apogy Arguments View.png |center|800px|The Arguments View]]
* Represents an assembly of sub-systems into an integrated ''System'';
+
*At the top, the '''''Operation Call Overview''''' displays a summary of the Operation Call being edited.
* Complex Systems can also be nested;
+
*At the bottom:
 +
**On the left, the '''''Parameters''''' section displays the name and type of the argument in the first column and its associated value in the second column.
 +
**On the right, the '''''Parameter's Value''''' section allows the selected Parameter to be edited.
  
==== <i>Variables</i> & <i>API Adapters</i> ====
+
=== The Documentation View ===
  
===== <i>Variables</i> =====
+
The Documentation View is used to display documentation associated with the selected [[Apogy/Concepts#Operation Call  | ''Operation Call'']] or Operation Calls arguments.
  
* A '''''Variable''''' is a reference to a ''Type (System)'' <u>instance</u>;
+
[[File:Apogy Documentation View.png |center|800px|The Documentation View]]
* A ''Variable'' name should be unique;
+
* Multiple ''Variables'' of the same ''Type'' can be defined;
+
  
===== <i>API Adapter</i> =====
+
The documentation presented is the one that was defined in the [https://wiki.eclipse.org/Xcore XCore] model of the [[Apogy/Concepts#System Interface Class| ''System Interface Class'']].
  
* An '''''API Adapter''''' is the object that acts as a bridge between the System (i.e. the ''Interface Class'') and Apogy;
+
== The Earth Surface Worksite Perspective ==
* Automatically managed by Apogy;
+
* It provides:
+
** System to Apogy pose transformation and update functions;
+
** A ''Pose Corrector'';
+
** A reference to the ''Variable / Type Member'' instance;
+
** A reference to the ''Apogy Environment'';
+
  
==== <i>Pose Corrector</i> ====
+
The Earth Surface Worksite Perspective is used to create and edit [[Apogy/Concepts#Earth Surface Worksite  | ''Earth Surface Worksites'']].
  
* A '''''Pose Corrector''''' is used by the ''API Adapter'' to modify the ''System''-derived pose before updating;
+
[[File:Apogy Earth Surface Worksite Perspective.png |center|800px|The Earth Surface Worksite Perspective]]
* Can be used to keep a vehicle on the ground;
+
* Can be enabled / disabled on the fly;
+
  
==== <i>Context</i> ====
+
=== The Earth Surface Worksite<u>s</u> View ===
  
* A '''''Context''''' map ''Variables'' to an actual implementation through the ''Active Context'';
+
The Earth Surface Worksite<u>s</u> View displays the list of available Earth Surface Worksites and allows the user to create / import / export / delete and activate Earth Surface Worksites. It includes 3 sections:
* Used by Apogy to dispatch commands to System instances;
+
* Includes:
+
** A name (which should be unique)
+
** Where the results from operation invocations will be stored (i.e. ''Data Product Set'');
+
** A hierarchy of ''Variable Implementation'';
+
  
===== <i>Variable Implementations</i> =====
+
[[File:Apogy Earth Surface Worksites View.png |center|800px|The Earth Surface Worksite<u>s</u> View]]
  
* A '''''Variable Implementation''''' is used to specify the particular implementation (i.e. an ''Interface Class'' subclass) that a ''Variable'' should be using.
+
* On the left, the '''''Earth Surface Worksites''''' section displays the list of Earth Surface Worksites currently available. This section includes 5 buttons:
* Typically used in ''Contexts''
+
**The '''New''' button brings up a Wizard used to create a new  Earth Surface Worksite.
 +
**The '''Delete''' button deletes the selected Earth Surface Worksite.
 +
**The '''Active''' button make the selected Earth Surface Worksite the Session's active Worksite.
 +
**The '''Import''' button brings up a Wizard used to import a Earth Surface Worksite from a file.
 +
**The '''Export''' button brings up a Wizard used to export the selected Earth Surface Worksite to file.
 +
*On the left, at the top, the '''''Worksite Origin''''' section displays [[Apogy/Concepts#The Earth Surface Worksite Frame Of Reference | the geographical coordinates of the origin and the azimuth of the X axis]] of the selected Earth Surface Worksite.
 +
*On, the left, at the bottom, the '''''Worksite Details''''' section displays the details of the selected Earth Surface Worksite.
  
=== <i>Data Products</i> ===
+
=== The Maps View ===
  
* A '''''Data Product''''' represents the result of an ''Operation Call'';
+
The Maps View is used to create / edit and delete the Maps contained in a Earth Surface Worksites. It includes 3 sections:
* Time-stamped;
+
* Geo-referenced;
+
* Conserves the operational context in which ''Operation'' was called;
+
* May have one or more 3D representations;
+
  
==== <i>Data Products Set</i> ====
+
[[File:Apogy Maps View.png|center|800px|The Maps View]]
  
* A '''''Data Products Set''''' contains all of the ''Data Products'' created with one or more ''Contexts'':
+
*On the left, the '''''Maps''''' section displays the list of [[Apogy/Concepts#Maps | ''Map'']] that are defined in the selected Earth Surface Worksite. This section includes 2 buttons:
** Allows data generated using different ''Contexts'' to be stored separately (for example, separating simulated and real data.)
+
** The '''New''' button brings up a Wizard used to create a new Map.
** Each ''Context'' refers to a ''Data Products Set''
+
** The '''Delete''' button deletes the selected Map.
 +
*On the right, at the top, the '''''Map Overview''''' section displays an overview of the selected Map (including its transform to the worksite origin).
 +
*On the right, at the bottom, the '''''Map Details''''' section displays the details of the selected Map.
  
=== <i>Operation Calls</i> & <i>Programs</i> ===
+
=== The Digital Elevation Maps View ===
  
==== <i>Programs</i> ====
+
The  Digital Elevation Maps View displays the [[Apogy/Concepts#Cartesian Triangular Mesh Layers  | ''Cartesian Triangular Mesh Layers'']] <u>contained in the selected Map</u>. It is divided into 2 main sections:
  
* A '''''Program''''' is an entity that invokes ''Operation Calls'' on ''Variables'';
+
[[File:Apogy Digital Elevation Maps View.png |center|800px|The Digital Elevation Maps View]]
* A ''Program'' includes:
+
** A name;
+
** A description; and
+
** A list of ''Operation Calls''
+
  
==== <i>Operation Call</i> ====
+
*On the left, the '''''Earth Surface Worksites''''' section is used to display the ''Cartesian Triangular Mesh Layers'' and edit their properties. This section is sub-divided into 4 sub-section:
 +
**On the left, the '''''DEMs''''' section display the list of ''Cartesian Triangular Mesh Layers'' found in the selected Map.
 +
**On the right, at the top, the '''''DEM Overview''''' display an overview of the selected ''Cartesian Triangular Mesh Layer''.
 +
**On the right, in the middle, the '''''DEM Details''''' display the details of the selected ''Cartesian Triangular Mesh Layer''.
 +
**On the right, at the bottom, the '''''DEM Presentation''''' display the [[Apogy/Concepts#Node Presentation | ''Node Presentation'']] associated with the selected ''Cartesian Triangular Mesh Layer''.
  
* An '''''Operation Call''''' is a specific invocation of an ''Operation'' on a ''Variable'' using a set of ''Parameters''
+
*On the right, the '''''Layer Presentations''''' section displays the [[Apogy/Concepts#Image Layer Presentation | ''Image Layer Presentation'']] that is associated with the selected ''Cartesian Triangular Mesh Layer''. This section sub-divided into 3 sub-section:
* It contains:
+
**On the left, the '''''Layers''''' section displays the list of ''Image Layer Presentation'' associated with the selected ''Cartesian Triangular Mesh Layer''.
** A reference to the ''Variable'';
+
**On the right, at the top, the '''''Layer Overview''''' section display an overview of the selected ''Image Layer Presentation''.
** References to a ''Variable'' type member and/or feature onto which to call the ''Operation'' (if applicable);
+
**On the right, at the bottom, the '''''Layer Details''''' display the details of the selected [[Apogy/Concepts#Image Layer Presentation | ''Image Layer Presentation'']]. Editing the Image Layer Presentation attributes will change the appearance of the image layer projection onto the selected ''Cartesian Triangular Mesh Layer''.
** An ''Operation'' to be called;
+
** A List of ''Parameters'' to use when calling the ''Operation'';
+
  
==== Simple <i>Program</i> ====
+
=== The Image Layers View ===
  
* A ''Program'' in the form of a flat list of ''Operation Calls'';
+
The Images Layers View displays the list of [[Apogy/Concepts#Image Layer | ''Image Layers'']] that are associated with the selected [[Apogy/Concepts#CartesianTriangularMeshURLMapLayer | ''Triangular Mesh Layers'']]. It is divided into 4 sections:
* Does not include execution flow control;
+
* Each ''Operation Call'' can be invoked individually, or
+
* It can be executed as a whole;
+
  
==== JavaScript <i>Program</i> ====
+
[[File:Apogy Image Layers View.png |center|800px|The Image Layers View]]
  
* A ''JavaScript Program'' is an entity that invokes ''Operation Calls'' on ''Variables'' through a JavaScript Program file;
+
*On the left, the '''''Image Layers''''' section displays the list of [[Apogy/Concepts#Image Layer | ''Image Layers'']] that are associated with the selected ''Cartesian Triangular Mesh Layers''. This section includes 2 buttons:
* A ''JavaScript Program'' includes:
+
**The '''New''' button brings up a Wizard used to create a new Image Layer.
** A name;
+
**The '''Delete''' button deletes the selected Image Layer.
** A description; and
+
*On the right, at the top, the '''''Image Layer Overview''''' section display an overview of the selected ''Image Layer''.
** A script path relative to the workspace.
+
*On the right, in the middle, the '''''Image Preview''''' section display a preview image of the Image Layer, and includes 2 buttons:
* It can be executed as a whole or
+
**The '''Update Image''' button updates of the image of the Image Layer.
* It can be executed in debug mode and benefits from all the features of the [https://eclipse.org/webtools/jsdt/ JSDT framework] (breakpoints, step by step...)
+
**The '''Export Image''' button brings up a Wizard used to export the selected ''Image Layer'' 's image to a file.
 +
*On the right, at the bottom, the '''''Image Layer Details''''' section display the details of the selected ''Image Layer''.
  
=== <i>Controller Bindings & Configurations</i> ===
+
=== The Features Of Interest View ===
  
==== <i>Controller Configuration</i> ====
+
The Features Of Interest View displays the list of  [[Apogy/Concepts# Feature Of Interest Layer | ''Features Of Interest Layers'']] available in the selected Map. It is divided into 2 main sections:
  
* A '''''Controller Configuration''''' is a set of ''Operation Call Controller Bindings'';
+
[[File:Apogy Features Of Interest View.png |center|800px|The Features Of Interest View]]
* Used to map one or more joystick(s) / controller(s) to one or more ''Operation Calls'';
+
* No more than '''ONE''' ''Controller Configuration'' is active at any given time in a given Apogy Session;
+
  
==== <i>Operation Call Controller Binding</i> ====
+
*On the left, the '''''Features Of Interest (FOI) Layers'''''. This section is sub-divided into 4 sub-sections:
 +
**On the left, the '''''FOI Layers''''' section display the list of [[Apogy/Concepts# Feature Of Interest Layer | ''Features Of Interest Layers'']] available in the selected Map. It includes 4 buttons:
 +
***The '''New''' button brings up a Wizard used to create a new Feature Of Interest Layer.
 +
***The '''Delete''' button deletes the selected Feature Of Interest Layer.
 +
***The '''Import''' button brings up a Wizard used to import a Feature Of Interest Layer from a file.
 +
***The '''Export''' button brings up a Wizard used to export the selected  Feature Of Interest Layer to a file.
 +
**On the right, at the top, the '''''FOI Layer Overview''''' displays an overview of the selected ''Features Of Interest Layer''
 +
**On the right, in the middle, the '''''FOI Layer Details''''' displays  the details of the selected ''Features Of Interest Layer''
 +
**On the right, at the bottom, the '''''FOI Presnetation''''' displays the details of the [[Apogy/Concepts#Node Presentation | ''Node Presentation'']] associated with the selected ''Features Of Interest Layer''
  
* A '''''Operation Call Controller Binding''''' is a specialization of ''Operation Call'';
+
*On the right, the '''''Features Of Interest''''' section display the list of [[Apogy/Concepts#Feature Of Interest| ''Feature Of Interest'']] contained in the selected ''Features Of Interest Layer''. It includes 4 sections:
* Allows the ''Operation Call's Parameter'' to be mapped to joystick inputs;
+
** On the left, the '''''FOIs''''' section displays the list [[Apogy/Concepts#Feature Of Interest| ''Feature Of Interest'']].
* It includes:
+
** On the right, at the top, the '''''FOI Overview''''' displays an overview of the selected ''Features Of Interest''
** A name;
+
** On the right, in the middle, the '''''FOI Details''''' displays the details of the selected ''Features Of Interest''
** A ''Trigger'' that defines when to call this ''Operation Call'':
+
** On the right, at the bottom, the '''''FOI Presentation''''' displays the details of the [[Apogy/Concepts#Node Presentation | ''Node Presentation'']] associated with the selected ''Features Of Interest''
*** Can be time-based or joystick state-/event-based;
+
** An ''Input Value'' for each of the ''Parameters'' defined in this ''Operation Call''.
+
** A ''boolean'' indicating whether or not to create a ''Data Product' when the ''Operation'' is called (false by default.)
+
  
===== <i>Trigger Types</i> =====
+
=== The Other Layers View ===
  
{| border="1" cellpadding="2"
+
The Other Layers View is used to display / create / delete other types of Layers. It is divided into 2 main sections:
! Name
+
! Icon
+
! Description
+
|-
+
| '''''Time Trigger'''''
+
| style="text-align:center;" | [[File:../resources/user/trigger_time.gif]]
+
| Triggers at a fixed time interval (or only once if time <= 0).
+
|-
+
| rowspan="3" | '''''Controller Edge Trigger'''''
+
| style="text-align:center;" | [[File:../resources/user/trigger_controller_edge_rising.gif]]
+
| Triggers when a rising edge is detected on the specified controller button state.
+
|-
+
| style="text-align:center;" | [[File:../resources/user/trigger_controller_edge_falling.gif]]
+
| Triggers when a falling edge is detected on the specified controller button state.
+
|-
+
| style="text-align:center;" | [[File:../resources/user/trigger_controller_edge_both.gif]]
+
| Triggers when either a rising or falling edge is detected on the specified button state.
+
|-
+
| '''''Controller State Trigger'''''
+
| style="text-align:center;" | [[File:../resources/user/trigger_controller_state.gif]]
+
| Triggers at a fixed time interval (or only once if time <= 0) if the specified controller button state (''boolean'') matches the target.
+
|}
+
  
==== <i>Input Value</i> ====
+
[[File:Apogy Other Layers View.png |center|800px|The Other Layers View]]
  
* An '''''Input Value''''' defines how to obtain the value of its associated ''Parameter'' in an ''Operation Call Controller Binding.''
+
*On the left, the '''''Other Layers''''' section displays the list of Layers that are NOT [[Apogy/Concepts#Cartesian Triangular Mesh Layer | ''Cartesian Triangular Mesh Layer'']], [[Apogy/Concepts#Image Layer | ''Image Layer'']] or [[Apogy/Concepts#Feature Of Interest Layer | ''Feature Of Interest Layer'']].
 +
*On the right, the '''''Layer Details''''' displays the details of the selected ''Layer''
  
* Three types of ''Input Value'' are defined:
+
== The Earth View Perspective ==
*# '''''Fixed Value''''': A fixed value for the ''Parameter'';
+
*# '''''Toggle Value''''': A ''boolean'' value that toggles each time the ''Operation'' is called;
+
*# '''''Controller Value''''': A value coming from a joystick input.
+
  
==== <i>Controller Value</i> ====
+
This perspective used to display the Earth as a whole or data that is at large scale (few kilometers). It is used for displaying orbits and flying vehicle trajectories.
  
* A '''''Controller Value''''' includes:
+
[[File:Apogy Earth View Perspective.png |center|800px|The Earth View Perspective ]]
** the joystick / controller;
+
** the specific input of the controller;
+
** an '''''Input Conditioning''''' used to transform the raw joystick value into a value suittable for the ''Parameter'' being mapped:
+
*** This can include input scalling, input offsetting, saturation, dead-band,etc;
+
*** Various specializations of ''Input Conditioning'' are available to accommodate these needs.  
+
  
===== <i>Input Conditioning</i> Types =====
+
=== The Earth View ===
  
{| border="1" cellpadding="2"
+
The Earth View shows the Earth using the active [[Apogy/Concepts#Earth View Configuration | ''Earth View Configuration'']] which itself contains the
! Name
+
[[Apogy/Concepts#Earth View Layer | ''Earth View Layers'']] to be shown.
! Icon
+
 
! Description
+
[[File:Apogy Earth View.png |center|800px|The Earth View]]
! Scaling Supported
+
 
! Offset Supported
+
The tool bar provides quick access to the 3D viewer functions. The following table describes these functions.
! Dead Band Supported
+
 
 +
{| class="wikitable"
 +
|+ The Earth View Tool Bar Actions.
 +
|-
 +
!Function
 +
!Description
 
|-
 
|-
| '''''Linear'''''
+
|style="width: 15%"| [[File:EcoreTools iconAdd.gif]] Create a new Earth View Configuration
| style="text-align:center;" | [[File:../resources/user/input_conditioning_linear.gif]]
+
|Brings-up a Wizard used to create a new Earth View Configuration
| Linear transfer function with end points specified.
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | No
+
 
|-
 
|-
| '''''Centered Linear'''''
+
|[[File:Delete.gif]] Delete the selected Earth View Configuration
| style="text-align:center;" | [[File:../resources/user/input_conditioning_centered_linear.gif]]
+
|Deletes the selected Earth View Configuration
| Linear transfer function with constraints that output is zero (0) for input falling within dead band.
+
Output linearly falls to zero at dead band limits.
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | No
+
| style="text-align:center;" | Yes
+
 
|-
 
|-
| '''''Parabolic'''''
+
|[[File:Apogy Show Mercator icon.gif.gif]] Mercator
| style="text-align:center;" | [[File:../resources/user/input_conditioning_parabolic.gif]]
+
|Show the Earth using the Mercator projection.
| Second-order transfer function with end points specified.
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | No
+
 
|-
 
|-
| '''''Centered Parabolic'''''
+
|[[File:Apogy Show Sphere Earth icon.gif]] Sphere
| style="text-align:center;" | [[File:../resources/user/input_conditioning_centered_parabolic.gif]]
+
|Show the Earth as a sphere.
| Parabolic output with constraint that output is zero (0) for input falling within dead band.
+
Slope is made continuous at dead band limits.
+
| style="text-align:center;" | Yes
+
| style="text-align:center;" | No
+
| style="text-align:center;" | Yes
+
 
|-
 
|-
| '''''User Defined'''''
 
| style="text-align:center;" | [[File:../resources/user/input_conditioning_user_defined.gif]]
 
| Piecewise linear interpolation based on user-provided list of points.
 
| style="text-align:center;" | No
 
| style="text-align:center;" | No
 
| style="text-align:center;" | No
 
 
|}
 
|}
  
=== <i>Tools</i> ===
+
Note that the pull-down to the left of the tool bar provides a way to select the active [[Apogy/Concepts#Earth View Configuration | ''Earth View Configuration'']].
  
* The '''''Tools''''' element of the ''Session'' contains the tools defined by the user;
+
=== The Earth View Configuration View ===
* Contains:
+
** ''Map View Configuration List''
+
** ''Camera View Configuration List''
+
** ''Recording Tools Container''
+
** ''Simple Tool List''
+
  
==== <i>Map View Configurations</i> ====
+
The Earth View Configuration View is used to create / edit and delete ''Earth View Layers'' used in the active ''Earth View Configuration''. It is divided into 4 sections:
  
* A '''''Map View Configuration List''''':
+
[[File:Apogy Earth View Configuration.png |center|800px|The Earth View Configuration View]]
** contains ''Map View Configurations'';
+
  
* A '''''Map View Configuration''''' object:
+
*On the left, the '''''Earth View Layers''''' section displays the list of [[Apogy/Concepts#''Earth View Layer | ''Earth View Layer'']] that are defined in the selected Earth View Configuration. This section includes 2 buttons:
** defines what the ''Apogy Map View'' will display;
+
** The '''New''' button brings up a Wizard used to create a new Earth View Layer.
** defines the ''Map Layers'' to display;
+
** The '''Delete''' button deletes the selected Earth View Layer.
** defines annotation to show vehicle position, FOV, etc.;
+
*On the right, at the top, the '''''Layer Overview''''' section displays an overview of the selected Earth View Layer.
** defines map tools (e.g. ''Trajectory Picking Tool'');
+
*On the right, at the bottom, the '''''Layer Details''''' section displays the details of the selected Earth View Layer.
  
==== <i>Camera View Configuration</i> ====
 
  
* A '''''Camera View Configuration List''''':
+
== The Time Sources Perspective ==
** contains ''Camera View Configurations'';
+
  
* A '''''Camera View Configuration''''' object:
+
This perspective is used to display, create, delete and edit [[Apogy/Concepts#Time Source | ''Time Sources'']] that are used to feed the time to the active Session.  
** defines what the ''Apogy Camera View'' will display;
+
** defines the ''Overlays'' to display;
+
** specifies image processing steps;
+
* defines image tools (e.g. ''Pointer Camera Tool'');
+
  
===== <i>Overlays</i> =====
+
[[File:Apogy Time Source Perspective.png |center|800px|The Time Sources Perspective]]
  
* An '''''Overlay''''' represents graphics overlaid on top of the camera image.
+
=== The Time Source View ===
* Apogy provides a list of basic, built-in ''Overlays'';
+
* System-specific overlay can be contributed for a rover/instrument
+
  
====== Built-in <i>Overlays</i> ======
+
The Time Source View is used to display the list of available Time Source. It includes:
  
{| border="1" cellpadding="2"
+
[[File:Apogy Time Sources View.png | center|800px|The Time Source View ]]
! Name
+
! Icon
+
! Description
+
|-
+
| '''''EMF Feature Overlay'''''
+
| style="text-align:center;" | [[File:../resources/user/overlay_emf_feature.gif]]
+
| Displays any numerical or string value of a selected ''Feature'' on screen.  The display includes the name of the ''Feature'', its units, and the value.
+
|-
+
| '''''Camera Name Overlay'''''
+
| style="text-align:center;" | [[File:../resources/user/overlay_camera_name.gif]]
+
| Displays the name of the camera, if applicable.
+
|-
+
| '''''Apogy Logo Overlay'''''
+
| style="text-align:center;" | [[File:../resources/user/overlay_apogy_logo.gif]]
+
| Displays the Apogy Logo.
+
|-
+
| '''''FOV Overlay'''''
+
| style="text-align:center;" | [[File:../resources/user/overlay_fov.gif]]
+
| Displays a cross hair with marks indicating degrees along the vertical and horizontal axes, centered on the FOV origin.  The values are binded to the current camera FOV.
+
|-
+
| '''''EMF Feature Azimuth Elevation Overlay'''''
+
| style="text-align:center;" | [[File:../resources/user/overlay_emf_feature_azimuth_elevation.gif]]
+
| Displays a cross hair with marks indicating degrees along the vertical and horizontal axes.  The '''ABSOLUTE''' orientation is displayed.  The values are bound to the current camera's Field of View (FOV) and the Azimuth and Elevation features selected.
+
|}
+
  
===== Built-in <i>Image Filters</i> =====
+
*On the left, the '''''Time Source''''' section displays the list of [[Apogy/Concepts#Time Source | ''Time Sources'']] that are defined in the Session. This section includes 3 buttons:
 +
** The '''New''' button brings up a Wizard used to create a new Time Source.
 +
** The '''Delete''' button deletes the selected Time Source.
 +
** The '''Activate''' button sets the selected Time Source as the active Time Source for the Session.
  
{| border="1" cellpadding="2"
+
=== The Time Source Details View ===
! Name
+
! Icon
+
! Description
+
|-
+
| '''''Edge Filter'''''
+
| style="text-align:center;" | [[File:../resources/user/filter_edge.gif]]
+
| Detects edges by looking at the gradient of each channel ands replaces the channel by a value determined by the gradient.
+
|-
+
| '''''Gain Filter'''''
+
| style="text-align:center;" | [[File:../resources/user/filter_gain.gif]]
+
| Changes the contrast of the image by allowing the user to specify the gain and bias of the colors in the image.
+
|-
+
| '''''Gray Scale Filter'''''
+
| style="text-align:center;" | [[File:../resources/user/filter_gray_scale.gif]]
+
| Converts image to gray-scaled image.  The formula used is:
+
''luma'' = 77 ''R'' + 151 ''G'' + 28 ''B''
+
|-
+
| '''''Invert Filter'''''
+
| style="text-align:center;" | [[File:../resources/user/filter_invert.gif]]
+
| Inverts all of the pixels in an image.  This is done by subtracting each colour component from 255.
+
|-
+
| '''''Rescale Filter'''''
+
| style="text-align:center;" | [[File:../resources/user/filter_rescale.gif]]
+
| Multiplies the input image by a scale factor.
+
|}
+
  
===== Built-in <i>Camera Tools</i> =====
+
The Time Source Details View is used to display and edit the attributes of the selected Time Source. It is divided into 2 sections:
  
{| border="1" cellpadding="2"
+
[[File:Apogy Time Source Details View.png | center|800px|The Time Source Details View]]
! Name
+
! Icon
+
! Description
+
|-
+
| '''''Pointer Camera Tool'''''
+
| style="text-align:center;" | [[File:../resources/user/camera_tool_pointer.gif]]  
+
| Allow the user to point in the camera image and then draws in the 3D environment, a ray showing where the selected position point projects into the 3D environment.
+
|}
+
  
==== <i>Recording Tools</i> ====
+
*At the top, the '''''Time Details''''' section displays a Time Source dependent summary used to control the selected Time Source. This display is custom to each of the supported [[Apogy/Concepts#Time Source | ''Time Source'']].
 +
*At the bottom, the '''''More Details''''' section displays more details about the selected Time Source.
  
TODO!
+
== The Data Products Perspective ==
  
==== <i>Simple Tools</i> ====
+
The Data Products Perspective is used to display / create / edit and delete  [[Apogy/Concepts#Data Products | ''Data Products'']].
  
* Apogy provides a few ''Simple Tools'' that are used with the ''Apogy 3D Viewer'' and other views;
+
[[File:Apogy Data Products Perspective.png | center|800px|The Data Products Perspective]]
* These tools act as a ''Selection Listener'' to the above views.
+
** Tool responds only if active;
+
** More than one tool can be active at the same time!
+
  
===== Built-in <i>Simple Tools</i> =====
+
=== The Data Products Search View ===
  
{| border="1" cellpadding="2"
+
The Data Products Search View displays the list of available Data Products and provides support to create / edit / delete and search the list of Data Products. It is divided into 2 sections:  
! Name
+
! Icon
+
! Description
+
|-
+
| '''''Ruler 3D Tool'''''
+
| style="text-align:center;" | [[File:../resources/user/simple_tool_ruler_3d.gif]]
+
| Shows a ruler between two points.
+
|-
+
| '''''Sun Vector 3D Tool'''''
+
| style="text-align:center;" | [[File:../resources/user/simple_tool_sun_vector_3d.gif]]
+
| Shows the vector connecting the selected point to the current position of the Sun.
+
|-
+
| '''''Feature Of Interest Picking Tool'''''
+
| style="text-align:center;" | [[File:../resources/user/simple_tool_feature_of_interest_picking.gif]]
+
| Allows the user to point and click to create a new ''Feature Of Interest''.
+
Note that the ''Feature Of Interest List'', where the ''Feature Of Interests'' are created, must be set for this tool to work.
+
|-
+
| '''''Trajectory 3D Tool'''''
+
|
+
| TODO!
+
|-
+
| '''''Path Planner Tool'''''
+
|
+
| TODO!
+
|-
+
| '''''Vehicle Path Planner Tool'''''
+
|
+
| TODO!
+
|-
+
| '''''Telecom Status Monitor Tool'''''
+
|
+
| TODO!
+
|}
+
 
+
=== Topology ===
+
 
+
* The complete topology, including all that is present in the ''Apogy Environment'':
+
** ''Variable'' instances;
+
** ''Worksite'';
+
** ''Data Products''; and
+
** ''Tools''.
+
 
+
== Apogy UI ==
+
 
+
=== Preferences ===
+
 
+
==== Range Preferences ====
+
  
* <i>Types</i> support definition of ranges for attributes and ''Operation Call Parameters'';
+
[[File:Apogy Data Products Search View.png | center|800px| The Data Products Search View]]
* Colour used to highlight value ranges.
+
* '''Currently, Apogy does not provide colouring to the Properties Page cells''';
+
  
==== UI Preferences ====
+
*At the top, the '''''Filters and Sorters''''' section provides controls to create and configure filters and sorters. It is divided into 2 sections:
 +
**On the left, the '''''Filters''''' section provides controls to create and configure filters. Filters are used to narrow down the search.
 +
**On the right, the '''''Sorters''''' section provides controls to create and configure sorters. Sorters are used to sort the Data Products that pass through the Filters.
 +
*At the bottom, the '''''Data Products''''' section displays the list of Data Products that have passed the filters, sorted according to the sorters used. This section includes 2 buttons on the right:
 +
** The '''''New''''' button bring up a Wizard used to create a Data Product.
 +
** The '''''Delete''''' button deletes the selected Data Product.
  
* <i>Types</i> supports definitions of units for attributes and ''Operation Call Parameters'';
+
=== The Data Product Details View ===
* Allows conversion between ''Native Units'' (units used by the ''System'') to ''Display Units'' (what you see);
+
* Applies to:
+
** values displayed in the ''Properties View'';
+
** values entered in ''Operation Call Parameters'';
+
  
=== <i>Session Editor</i> ===
+
The Data Product Details View is used to display the details of the selected Data Products in the Data Products Search view.  It is divided into 2 sections:
  
* It is an ''Editor''
+
[[File:Apogy Data Product Details View.png | center|800px| The Data Product Details View]]
* Is used to explore and edit Apogy elements;
+
* Presents the ''Apogy Session'' as an hierarchical tree of containment;
+
* Opens ''.sym'' files;
+
* Supports Undo/Redo
+
* Is a ''Selection Provider''
+
  
=== <i>Controllers View</i> ===
+
*At the top, the '''''Product Details''''' displays the metadata associated with the Data Product (Time stamp, location, description, etc.).
 +
*At the bottom, the '''''Operation Call Details''''' displays the information about the Operation Call that created the Data Product(Variable, EOperation, Parameters, etc.).
  
* View is a singleton;
+
=== The Data Product Value Details View ===
* Used to monitor all Controllers (joysticks) connected to the host;
+
* Shows all Controllers components including names, types and current values;
+
* ''Controllers conntected after Apogy has started will not be recognized!''
+
  
=== <i>Nodes Distance View</i> ===
+
The Data Product Value Details View is used to display the details of <u>the value contained in the selected</u> Data Product.
 +
[[File:Apogy Data Product Value Details View.png| center|800px| The Data Product Value Details View]]
  
* Selection based (topology ''Node'');
+
It includes the actual return value data. Depending on the type of the return value, an '''''Export Data Product To File...''''' button may be available. This button brings up an Export Wizard used to export the selected Data Product value to file(s).
* Allows the selection of any two (2) nodes;
+
* Displays:
+
** Relative Euclidean distance;
+
** Relative geodesic distance;
+
** Relative position (x,y,z), given in metres;
+
** Relative orientation (rx, ry, rz), given in degrees;
+
* Supports real-time update.
+
  
=== <i>3D Viewer</i> ===
+
== The 3D Viewing Perspective ==
  
* Selection based (''Apogy Environment'');
+
This perspective is used to display the environment in 3D. It includes a 3D rendering of the world and control over the rendering settings of the Nodes composing the Apogy topology.
  
* Displays in 3D, the following elements:
+
[[File:Apogy 3D Viewing Perspective.png |center|800px|The 3D Viewing Perspective ]]
** ''Variable'' instance
+
** ''Field Of Views''
+
** Reference frames;
+
** The ''Earth Sky'' (Sun, Moon, Stars, grid)
+
** ''Map Layers'' that can be rendered in 3D
+
** ''Data Product'' marker for all products;
+
** ''Data Product'' 3D representations (when applicable);
+
** ''Tools'' 3D representations (when applicable).
+
  
* Displaying ''Data Products'':
+
=== The 3D Viewer ===
** All ''Data Products'' (marker + 3D representation) are visible by default;
+
** Is ''Selection Listener'' for Data Products
+
  
==== <i>Node Presentation</i> ====
+
The 3D Viewer displays the environment rendered in 3D.
  
* Configuring 3D representations of topology ''Nodes'':
+
[[File:Apogy 3D Viewing View.png|center|800px|The Projects View]]
** Each ''Node'' in the topology is assigned a '''''Presentation''''' that contains its 3D representation attributes.
+
** ''Presentation'' attributes are accessible using the ''Properties View'', under the ''Presentation'' tab.
+
** Node visibility can be toggled by right-clicking on the ''Node'' and selecting ''"Apogy > Toggle Node Visibility."''
+
** ''URL Nodes'' (''Nodes'' associated with a CAD model) have an additional '''''Presentation Mode''''' attribute, which can be one of three values:
+
**# '''''SURFACE''''': The CAD will be rendered as a surface (if possible)
+
**# '''''WIREFRAME''''': Only the wireframe outline of the CAD surface will be rendered (if possible)
+
**# '''''POINTS''''': Only the point cloud specified in the CAD will be rendered (if possible)
+
** The visibility, ''Presentation Mode'' and colour can be set for all FOV of a given type through the Preferences;
+
** The visibility, and axis length can be set for all ''Node'' of a given basic type (''Position'', ''Rotation'', ''Transform'', ''URL'') through the Preferences;
+
  
==== Managing Performance ====
+
Navigating the 3D world is done using the mouse. The movement of the mouse <u>change the position and orientation of the view point</u>.
  
* The maximum frame rate (in Hz) can be lowered (default is 15 Hz);
+
The following table identifies the buttons and mouse motion used to move the viewpoint:
* Under ''Field Of View'' and ''Image Snapshot'' preferences:
+
** Disabiling Show Project;
+
* Under ''Earth Sky'' preferences:
+
** Disabling Sun And Moon Blooming;
+
** Disabling Shadows;
+
** Reducing the Shadow Map Size;
+
  
==== Moving Using The Mouse ====
+
{| class="wikitable"  
 
+
|+ Mouse navigation in the 3D world
{| border="1" cellpadding="2" style="text-align:center;"
+
|-
 
! Button
 
! Button
 
! Mouse Motion
 
! Mouse Motion
! Movement
+
! Viewpoint Motion
 
|-
 
|-
 
| rowspan="2" | Center
 
| rowspan="2" | Center
 
| Forward
 
| Forward
| Move forwards
+
| Moves forward
 
|-
 
|-
 
| Back
 
| Back
| Move backwards
+
| Moves backward
 
|-
 
|-
 
| rowspan="4" | Left
 
| rowspan="4" | Left
 
| Forward
 
| Forward
| Rotate downwards
+
| Rotates down
 
|-
 
|-
 
| Back
 
| Back
| Rotate upwards
+
| Rotates up
 
|-
 
|-
 
| Left
 
| Left
| Rotate to the left
+
| Rotates left
 
|-
 
|-
 
| Right
 
| Right
| Rotate to the right
+
| Rotates right
 
|-
 
|-
 
| rowspan="4" | Right
 
| rowspan="4" | Right
 
| Forward
 
| Forward
| Translate downwards
+
| Moves down
 
|-
 
|-
 
| Back
 
| Back
| Translate upwards
+
| Moves Up
 
|-
 
|-
 
| Left
 
| Left
| Translate to the right
+
| Moves left
 
|-
 
|-
 
| Right
 
| Right
| Translate to the left
+
| Moves right
 
|}
 
|}
  
==== Keyboard Inputs ====
+
The tool bar provides quick access to the 3D viewer functions. The following table describes these functions.
  
{| border="1" cellpadding="2"
+
{| class="wikitable"
! Key
+
|+ The 3D Viewer Tool Bar Actions.
! Function
+
 
|-
 
|-
| style="text-align:center;" | Q
+
!Function
| '''Q'''uick: Accelerate translation
+
!Description
 
|-
 
|-
| style="text-align:center;" | L
+
|style="width: 15%"| [[File:Apogy Show Statistics icon.gif]] Enable Statistics
| '''L'''evel: Set view point orientation so that the user line of sight is level (perpendicular to the Z axis.)
+
|Toggles the display of the 3D rendering statics (frame rate, number of vertices, number of triangles, etc.) on top of the view.
 
|-
 
|-
| style="text-align:center;" | P
+
|[[File:Apogy Zoom Fit icon.png]] Zoom fit
| '''P'''icking: Enables the picking mode(used by some 3D tools.'''Picking Enabled''' shows up on the left hand side of the viewer when activated.
+
|Triggers a move forward / back of the view point to bring all the 3D element into view.
 +
|-
 +
|[[File:Apogy LevelView Point icon.gif]] Level View Point
 +
|Triggers a change in the view point orientation to bring it to the horizontal.
 +
|-
 +
|[[File:Apogy Set High Speed Mode icon.gif]] Set High Speed Mode
 +
|Toggles the translation speed between the low and high speed factors. This determine how quickly the view point position changes for a given motion of the mouse.
 +
|-
 +
|[[File:Apogy Enable Picking Mode icon.gif]] Enable Picking Mode
 +
|Toggles the picking mode. When enabled, the mouse navigation is disabled, and clicking on the left button triggers a selection in the 3D viewer. The words ''''Picking Enabled'''' appears in yellow on the lower left corner of the view.
 +
|-
 +
|[[File:Apogy Take Screen Shot.gif]] Take Screen Shot
 +
|Trigger a screen capture of the 3D display and bring-up a File Selection Wizard use to specify where to save the image.
 +
|-
 +
|[[File:Apogy Edit View Points icon.gif]] Edit View Points
 +
|Bring-up a Wizard used to create / edit / delete [[Apogy/Concepts#Node | ''View Points'']].
 +
|-
 +
|[[File:Apogy Enable Ambient Light icon.gif]] Enable Ambient Light
 +
|Toggles between the lighting provided by the Worksite to a pre-defined ambient light providing uniform lighting.
 
|}
 
|}
  
=== <i>Camera View</i> ===
+
Note that the pull-down to the left of the tool bar provided a way to select the active [[Apogy/Concepts#Node | ''View Point'']].
 +
 
 +
=== The Node Search View ===
 +
 
 +
The Node Search View  provides functions to search the environment topology for particular Nodes. The view provides 3 filters that can be combined to narrow down the search.
 +
 
 +
[[File:Apogy Node Search View.png |center|800px|The Node Search View]]
 +
 
 +
*On the top are located the 3 filters input:
 +
**The Type Filter provides a pull-down menu used to select the [[Apogy/Concepts#Node | type of Node]] the user is looking for. The '''Clear''' button clears the Type Filter (all type Node passes the filter).
 +
**The ID Filter is used to provide a filter on the Node ID. It can include wildcard (*). The '''Clear''' button clears the ID Filter (all Node ID passes the filter).
 +
**The Description Filter is used to provide a filter on the Node description. It can include wildcard (*). The '''Clear''' button clears the Description Filter (all Node description passes the filter).
 +
*In the middle, the '''Update''' button cause the filter to be applied and the Node list to be updated.
 +
*At the bottom, a table shows the Nodes that have passed the filters.
 +
 
 +
=== The Topology Tree View ===
 +
 
 +
The Topology Tree View is used to display the topology tree and the details of the selected Node. It is divided into 3 sections:
 +
 
 +
[[File:Apogy Topology Tree View.png|center|800px|The Topology Tree View]]
  
* Selection-based (''Camera View Configuration'');
+
*On the left, the '''''Topology''''' section includes a tree viewer displays the Apogy topology. This section also includes 2 buttons:
* Display latest image return by specified ''Camera'';
+
**The '''New''' button brings-up a Wizard used to create a Node. The Node will be created under the Node currently selected in the tree.
* Display the ''Overlays'';
+
**The '''Delete''' button deletes the selected Node (and the Node's children).
* Applies the ''Image Filters'' before displaying the image
+
*On the right, at the top, the '''''Node Overview''''' section provides a summary of the selected Node.
* Supports interaction with ''Camera Tools''
+
*On the right, at the bottom, the '''''Node Details''''' section provides the details of the selected Node. It can be used to edit the Node attributes.
  
==== <i>Map View</i> ====
+
=== The Node Presentation View ===
  
* Selection-based (''Map View Configuration'');
+
The Node Presentation View is used to display and edit the [[Apogy/Concepts#Node Presentation | ''Node Presentation'']] for the selected [[Apogy/Concepts#Node | ''Node'']] (selected in the Node Search view or the Topology Tree view). It is divided into 2 sections:  
* Displays:
+
** Selected ''Image Map Layers'';
+
** Selected ''Feature Of Interest Map Layers'';
+
** Various map annotations such as:
+
*** Vehicle position and orientation;
+
*** Trajectories;
+
  
==== <i>Earth Sky View</i> ====
+
[[File:Apogy Node Presentation View.png |center|800px|The Node Presentation View]]
 +
 +
*On the left, the '''''Presentation Details''''' section provides the details of the Node Presentation associated with the selected Node. It can be used to edit the presentation attributes.
 +
*On the right, the '''''Node Details''''' section provides the details of the selected Node. It can be used to edit the Node attributes.
  
* Selection-based (''Earth Sky'');
+
=== The Node Distance View ===
* Displays:
+
** Sun and Moon ephemerides as well as Sun intensity;
+
** The time at the ''Worksite'':
+
*** Local time;
+
*** Julian day;
+
*** Sideral time;
+
** The location of the ''Worksite'':
+
*** Longitude;
+
*** Latitude;
+
*** Altitude;
+
  
==== <i>Time Source View</i> ====
+
The Node Distance View is used to display the relative position/orientation and distance between two selected Nodes. This view reacts to selection of Node in either the [[Apogy/UserGuide#The Node Search View |  Node Search View ]] or the[[Apogy/UserGuide#The Topology Tree View | Topology Tree View]]. It is divided into 2 sections:
TODO!
+
  
==== <i>Virtual Reality Tools</i> ====
+
[[File:Apogy Node Distance View.png |center|800px|The Node Distance View]]
TODO!
+
  
==== <i>Data Products View</i> ====
+
*At the top, the '''''Nodes''''' section displays the 2 Nodes that have been selected. This section includes 3 buttons:
TODO!
+
**Two '''Lock''' buttons that locks the selected from / to Node (i.e. when locked, the Node will no longer be updated when a new Node is selected).
 +
**The '''Swap Nodes''' switch the Nodes around (i.e. the ''From Node'' become the ''To Node'' and vice-versa).
 +
*At the bottom, the '''''Distances''''' section displays the distance. between the selected node:
 +
** The '''Euclidian Distance''' displays the [https://en.wikipedia.org/wiki/Euclidean_distance 3D straight line distance], in meters.
 +
** The '''Geodesic Distance''' displays the [https://en.wikipedia.org/wiki/Distance_(graph_theory) distance separating the 2 Nodes in the topology graph], in meters. It is a measure of how far the Nodes are in the graph.
 +
** The '''Relative Position''' displays the position of the ''To Node'' in the ''From Node'' frame of reference.
 +
** The '''Relative Orientation''' displays the orientation of the ''To Node'' in the ''From Node'' frame of reference as [https://en.wikipedia.org/wiki/Euler_angles Euler angles] in degrees.

Latest revision as of 08:40, 18 September 2018

Table Of Contents

Contents

Introduction

Apogy was originally developed at the Canadian Space Agency to control space exploration rovers and their associated sensors. Integrating all these systems developed by many different contractors and allowing them to be controlled as an integrated entity represented a challenge. In order works, a tool to plan, validate, execute and monitor integrated operations to support multiple missions was required. The technical team soon realized that a reusable framework could save a lot of work and allow for future growth. Apogy is the result of this thinking.

Apogy was built to:

  1. Be an organizationally neutral core framework (we did not want to be locked in with any particular contractor proprietary tool);
  2. Maximizes reuse between missions (keep the work to the specifics of each mission);

In order to so, Apogy:

  1. Is a component-based architecture that allows systems (ex: instruments, rovers, satellites) to “plug-in” and allow the system developer to concentrate on their system specific needs and the tooling to use them.
  2. Makes use of Open Source librairies that are Eclipse Public License compatible;

Overview

In Apogy, users control Systems by invoking commands (through Programs) and monitor the System's health through telemetry (i.e. states).

These Systems are operated in a Environment which defines such things as Digital Elevation Maps, orbit models, sun position, etc (i.e. what the Environment contains).

User, System, Environment and Data Product.

The System's command produces result (i.e. returned value, such as an Image, an error code, etc.) that Apogy geo-locates and time tags. This allows the results to be displayed within the 3D Environment. This helps in maintaining the situational awareness of the operator and keep the data in context.

Installing Apogy

TODO

Launching Apogy

TODO

Quick Start

To get you started quickly, we will import an existing Session (one of the example) and then used it to command the Integrated Rover example.

Importing an Existing Session

  1. Launch Apogy.
  2. Open the Welcome perspective if not already opened:
    1. In the top menu bar, select Open New Perspective. This will open the Add Perspective pop-up.
    2. In the pop-up, select the Projects perspective;
    3. Press OK.
  3. In the Welcome perspective, select the Projects view;
  4. In the Registry list, select org.eclipse.apogy.example.rover.apogy;
  5. Press Import . This will bring up the New Apogy Project wizard;
  6. Change the name of the project to MyFirstProject, then press Finish.
  7. In the Workspace list, select the project you just created, then press Open.
  8. Verify that the Workspace list displays your project as <Active> MyFirstProject

You now have you first Apogy Session loaded ! This session contains a Integrated Rover System, a Surface Worksite (the Mars Emulation Terrain at the Canadian Space Agency) and a few Programs.

Instantiating the Variables

Before we start our system, we will open the Programs perspective to get ready for invoking commands.

  1. Open the Programs perspective if not already opened:
    1. In the top menu bar, select Open New Perspective. This will open the Add Perspective pop-up.
    2. In the pop-up, select the Programs perspective;
    3. Press OK.

The Programs perspective provides the view required to created, edit, delete and invoque Programs. At this point, we will bring up the 3D Viewer to show what is in the environment:

  1. In the top menu bar, select Window→Show View. This will open the Add View pop-up.
    1. In the pop-up, select the Apogy Views→3D Viewer view;
    2. Press OK.

The 3D Viewer should show the terrain, the sky, and possibly the Sun, the Moon and the stars (depending on the time-of-day). We are ready to instantiate our system:

  1. On the status bar, confirm that the Context shows Simulated.
  2. Press Start. The Start button should become disabled, and the Stop button enabled.

The rover Variable has now been instanciated. In the 3D Viewer, you should see the rover standing on the corner of the terrain. We are almost ready to roll!

Invoking Existing Commands

We are now ready to invoke commands on the rover. For now, we will used the commands (or Operation Call in Apogy parlance) :

  1. In the Programs perspective, select the Programs view;
  2. In the Programs list, select A.B;
  3. Select the Program view: it should be display a list of Operation Call.
  4. In the Operation Call, select Start, then press Invoke. This will start the rover.
  5. Ensure you have the 3D Viewer showing the rover and the terrain.
  6. In the Operation Call, select Move Forward, then press Invoke. The rover should start moving forward.
  7. In the Operation Call, select Stop Motion, then press Invoke. The rover should stop moving.

You may have noticed that flags displaying a date have been popping-up in the 3D Viewer as Operation Call were being invoked. These flags mark the location of the System when the Operation Call returned and show the time at which the Operation Call execution completed.

Preventing the rover from moving through the terrain

You may have noticed that the rover wheels where driving through the terrain, and not on top of it. This is due to the very simple simulation that is updating the rover position based on its speed (the rover only moves on the XY plane and changes its azimuth). This is of course, not very realistic.

Apogy provides a PoseCorrector concept that can be used to maintain a System wheels (or feet in the case of the example Lander) in contact with the ground. Lets enable the pose corrector. For this, we will use the Vehicle Pose view:

  1. In the top menu bar, select Window→Show View. This will open the Add View pop-up.
    1. In the pop-up, select the Vehicle Pose view;
    2. Press OK.
  2. In the Vehicle Pose view, press Select.... This will bring up the Variable Feature Reference wizard.
  3. In the wizard, under Variable, select rover, then under Sub-Type, select mobilePlateform;
  4. Press OK
  5. In the Vehicle Pose, select the Pose Corrector tab;
  6. Check enabled
  7. Invoke the Operation Call used before : The rover wheels should now follow the terrain !

Creating New Commands

Up to now we have been invoking Operation Call that were already defined in a program. Lets now create our own Operation Call:

  1. In the Programs perspective, select the Programs view;
  2. Select the TODO Program Group, then press New Program. This will bring up the New Program Wizard:
  3. On the left side, select OperationCallsList (this is a Program that is a simple list of Operation Call)
  4. Press Next;
  5. Change the program's name to MyFirstProgram; press Finish.
  6. In the Program List, select the program you just created.
    1. Select the Program view, then press New. This will bring up the New Operation Call wizard;
  7. Change the name to Deploy Arm, then press Next;
  8. Select the roboticArm sub-system as the system we want to use:
    1. Under Variable, select rover;
    2. Under Sub-Type, select integratedRoboticArm→roboticArm;
  9. Now lets select the operation we want to call:
    1. Under Operation, select moveTo(EDouble, EDouble, EDouble, EDouble), then press Next;
    2. Lets set the operation parameters (here the destination joint angles values):
    3. In the left end side, select the first argument (turretAngle) and type its value (0.0 degrees) in the Value field on the right.
    4. Repeat the previous step for each of the arguments:
      1. shoulderAngle = 0.0 degrees
      2. elbowAngle = -90.0 degrees
      3. wristAngle = 0.0 degrees
  10. Save the session by pressing the Save button in the top menu.
  11. Test you command by pressing Invoke!

Browsing the Data Product

Up to now, we have been issuing commands, but we have not been looking at the Data Product (i.e. return value) generated by the Operation Calls. Lets do that now:

  1. Open the Data Products perspective if not already opened:
    1. In the top menu bar, select Open New Perspective. This will open the Add Perspective pop-up.
    2. In the pip-up, select the Data Products perspective;
    3. Press OK.
  2. In the Data Products Search, select the first Start operation call.
  3. The Data Products Details view now shows the metadata associated with the result of the operation call such as:
    1. The Context that was active when the call was made;
    2. The name and description that have been associated with result;
    3. The Relative pose of the result relative to the System that executed the call;
    4. The absolute pose of the result relative to the active Worksite;
    5. The time at the reception of the result;
  4. The Data Products Value Details now show the actual value return (in our case, a Boolean value).

The User Interface

Perspectives

Overview

Apogy makes use of the Perspective concept as defined in Eclipse. A Perspective is a group of Views that are related to each other or are used together for a given task. In Apogy:

Perspective are accessed from the main menu to open, create and select the active perspective.

Apogy Perspectives

Apogy provides a few Perspectives that are used for basics functions:

The Apogy's Perspectives
Name Description Included Views View Description
Welcome Default perspective that is shown when you first launch Apogy. Welcome Show the welcome message for Apogy.
Projects View used to create / load / import and export Sessions.
Systems Perspective used to defined Variables, Contexts and Initial Conditions. Variables View used to display, create and delete Variables.
Contexts View used to display, create, edit, delete and activate Contexts.
Initial Conditions View used to display, create, edit, delete, collect and apply Initial Conditions.
Runtime View used to display the instances of each of the Variable's System and type members.
Programs Perspective used to define Program Groups and Programs. Programs View used to display, create and delete Program Groups and Programs.
Program View used to edit and invoke a Program and its Operation Calls.
Runtime View used to displays the instances of each of the Variable's System and type members.
Arguments View used to edit the selected Operation Call arguments.
Documentation View used to display documentation associated with the selected Operation Call or Operation Calls arguments.
Earth Surface Worksite Perspective used to create / edit Earth Surface Worksites. Earth Surface Worksites Show the list of available Earth Surface Worksites and allows the user to create / import / export / delete and activate Earth Surface Worksites.
Maps View used to create / edit and delete the Maps contained in a Earth Surface Worksites.
Digital Elevation Maps (DEMs) View used to create / edit / delete CartesianTriangularMeshURLMapLayerin the selected Map of a Earth Surface Worksite. Also used to edit the appearance of Image Layers that are applied to the CartesianTriangularMeshURLMapLayer.
Image Layers View used to create / edit / delete Image Layer for the selected Map of a Earth Surface Worksite.
Feature Of Interest View used to create / edit / delete FeatureOfInterest Layers for the selected Map of a Earth Surface Worksite.
Other Layers View used to create / edit / delete other layers for the selected Map of a Earth Surface Worksite.
Earth View Perspective used to display the Earth as a whole. Used for displaying orbits and flying vehicle trajectories. Earth View Show the Earth as a whole together with the Earth View Layers that have been defined in the active Earth View Configuration.
Earth View Configuration View used to create / edit and delete Earth View Layers used in the active Earth View Configuration.
Time Sources Perspective used to create / edit / delete TimeSources used in the Session. Time Sources Displays the list of available TimeSource and provided support to create / edit / delete and set the Session active TimeSource.
Time Source Details View used to display and edit the selected TimeSource details.
Data Products Perspective used to display / create / edit and delete Data Products. Data Products Search Displays the list of available Data Products and provided support to create / edit / delete and search the list of Data Products.
Data Product Details View used to display the details of the selected Data Products in the Data Products Search view.
Data Product Value Details View used to display the details of the value contained in the selected Data Products.
3D Viewing Perspective used to display the environment in 3D. 3D Viewer Displays the environment rendered in 3D.
Node Search Provides functions to search the environment topology for particular Nodes.
Node Presentation View used to display the Node Presentation for the selected Node (selected in the Node Search or the Topology Tree).
Topology Tree View used to display the topology tree and the details of the selected Node.
Node Distance View used to display the relative position/orientation and distance between two selected Node.
Earth Atmosphere Perspective used to create / edit Earth Atmosphere Worksites. Earth Atmosphere Worksites Show the list of available Earth Atmosphere Worksites and allows the user to create / import / export / delete and activate Earth Atmosphere Worksites.

Additional plug-ins may contribute more Perspectives (such as the Apogy Example plug-ins) that provide System specifics views that are use to control and monitor specific Systems.

The Welcome Perspective

This is the default perspective that is shown when you first launch Apogy. If provides basic information about yout installation of Apogy and access to the Sessions.

The Welcome Perspective

The Welcome View

The Welcome View show the welcome message of Apogy. It is divided into 2 sections:

The Welcome View
  • On the top, the Apogy section displays the description of Apogy.
  • On the bottom, the Help section displays the help of Apogy.

The Projects View

The Projects View shows the Sessions available. It is divided into 2 sections:

The Projects View
  • On the left, the Workspace section displays the list of Sessions projects that are currently in the Apogy workspace. This section includes 5 buttons:
    • The Open button is used to open the selected Session.
    • The New brings up a Wizard to create a new Session from scratch.
    • The Delete button deletes the selected Session.
    • The Import button brings up a Wizard used to import archived Session into the Apogy workspace.
    • The Export button brings up a Wizard used to export the selected Session to an archive.
  • On the right, the Registry section displays the list of registered Sessions contributed by the installed plug-ins. This section includes one button:
    • The Import button brings up a Wizard used to import the selected registered Session into the Apogy workspace.

The Systems Perspective

The Systems Perspective is used to defined Variables, Contexts and Initial Conditions.

The Systems Perspective

The Variables View

The Variables View is used to display, create and delete Variables.

The Variables View
  • The left end side displays the variables defined in the Session. For composite systems, the tree shows all of the System's System Type Members. This section includes 2 buttons:
    • The New button brings up a Wizard used to create a new Variable.
    • The Delete button deletes the selected Variable.

The Contexts View

The Contexts View is used to display, create, edit, delete and activate Contexts. It is divided in 3 sections:

The Contexts View
  • On the left, the Contexts section displays the list of Contexts available in the Session. The section includes 3 buttons:
    • The New button brings up a Wizard used to create a new Context.
    • The Delete button deletes the selected Context.
    • The Activate button makes the selected Context the Session's active Context.
  • On the top right, the Implementation section displays the System Interface Class for each of the Variable and, when applicable, the Variable's type members. The System Interface Class of a Variable (or a Variable's type member) can be changed by clicking in the Implementation column : a pull down menu then shows the available implementation class for the System Interface Class.
  • On the bottom right, the Details section displays the details of the selected Variable or Variable's type member.

The Initial Conditions View

The Initial Conditions View used to display, create, edit, delete, collect and apply Initial Conditions. It is divided into 4 sections:

The Initial Conditions View
  • On the left, the Available Initial Conditions section displays the list of Initial Conditions available in the Session. The section also includes 4 buttons:
    • The New button brings up a Wizard used to create a new Initial Conditions.
    • The Delete button deletes the selected Initial Conditions.
    • The Collect button collect the Session System's states and saves them to the selected Initial Conditions.
    • The Apply button applies the selected Initial Conditions to the Session System's.
  • In the center, on the top, the Initial Conditions Overview section displays an overview of the selected Initial Conditions.
  • In the center, on the bottom, the Initial Conditions Details section provides the details of the Initial Conditions for each Variable.
  • On the right, the Initialization Details section provide display and edit function for the element of the Initial Conditions selected in the Initial Conditions Details section.

The Runtime View

The Runtime View displays the instances of each of the Variable's System and type members. Note that this view is populated only after the Variables are instantiated.

The Runtime View

The Programs Perspective

This perspective is used to display, create and edit Program Groups and Programs.

The Programs Perspective

The Programs View

The Programs View is used to display, create and delete Program Groups and Programs.

The Programs View
  • The tree viewer on the left displays the list of available Program Group and the Program they contain.
  • The right end side includes 3 buttons:
    • The New Group button brings up a Wizard used to create a new Program Group.
    • The New Program button brings up a Wizard used to create a new Program.
    • The Delete button deletes the Program Group or Program selected. Note that deleting a Program Group also deletes the Programs it contains.

The Program View

The Program View is used to edit and invoke Programs. Currently, Operation Call List and Java Script Program are supported. Depending on the type of Program, this view displays different elements.

In both case, the tool bar includes a Run action to execute the Program.

The Program View - Operation Call List

When the Program selected in the Programs View is an Operation Call List, the view display the list of Operation Call.

The Programs View displaying an Operation Call List Program
  • The table on the left displays the list of Operation Call contained in the selected Operation Call List.
  • The right end side includes 3 buttons:
    • The Invoke button triggers the execution of the selected Operation Call.
    • The New button brings up a Wizard used to create a new Operation Call.
    • The Delete button deletes the selected Operation Call.

The Program View - Java Script Program

When the Program selected in the Programs View is a Java Script Program, the view display the source code of the script.

The Programs View displaying a Java Script Program
  • The full path of the script is display at the top.
    • The Browse... button bring up a File Selection Wizard used to set the path to the file containing the script.
    • The Reload button force the script file to be reloaded.
    • The Save button saves the displayed source code of the script to the file.
  • The bottom text editor allow the script source code to be displayed and edited.

The Arguments View

The Arguments View is used display the selected Operation Call arguments and edit their values. It is divided into 3 sections:

The Arguments View
  • At the top, the Operation Call Overview displays a summary of the Operation Call being edited.
  • At the bottom:
    • On the left, the Parameters section displays the name and type of the argument in the first column and its associated value in the second column.
    • On the right, the Parameter's Value section allows the selected Parameter to be edited.

The Documentation View

The Documentation View is used to display documentation associated with the selected Operation Call or Operation Calls arguments.

The Documentation View

The documentation presented is the one that was defined in the XCore model of the System Interface Class.

The Earth Surface Worksite Perspective

The Earth Surface Worksite Perspective is used to create and edit Earth Surface Worksites.

The Earth Surface Worksite Perspective

The Earth Surface Worksites View

The Earth Surface Worksites View displays the list of available Earth Surface Worksites and allows the user to create / import / export / delete and activate Earth Surface Worksites. It includes 3 sections:

The Earth Surface Worksites View
  • On the left, the Earth Surface Worksites section displays the list of Earth Surface Worksites currently available. This section includes 5 buttons:
    • The New button brings up a Wizard used to create a new Earth Surface Worksite.
    • The Delete button deletes the selected Earth Surface Worksite.
    • The Active button make the selected Earth Surface Worksite the Session's active Worksite.
    • The Import button brings up a Wizard used to import a Earth Surface Worksite from a file.
    • The Export button brings up a Wizard used to export the selected Earth Surface Worksite to file.
  • On the left, at the top, the Worksite Origin section displays the geographical coordinates of the origin and the azimuth of the X axis of the selected Earth Surface Worksite.
  • On, the left, at the bottom, the Worksite Details section displays the details of the selected Earth Surface Worksite.

The Maps View

The Maps View is used to create / edit and delete the Maps contained in a Earth Surface Worksites. It includes 3 sections:

The Maps View
  • On the left, the Maps section displays the list of Map that are defined in the selected Earth Surface Worksite. This section includes 2 buttons:
    • The New button brings up a Wizard used to create a new Map.
    • The Delete button deletes the selected Map.
  • On the right, at the top, the Map Overview section displays an overview of the selected Map (including its transform to the worksite origin).
  • On the right, at the bottom, the Map Details section displays the details of the selected Map.

The Digital Elevation Maps View

The Digital Elevation Maps View displays the Cartesian Triangular Mesh Layers contained in the selected Map. It is divided into 2 main sections:

The Digital Elevation Maps View
  • On the left, the Earth Surface Worksites section is used to display the Cartesian Triangular Mesh Layers and edit their properties. This section is sub-divided into 4 sub-section:
    • On the left, the DEMs section display the list of Cartesian Triangular Mesh Layers found in the selected Map.
    • On the right, at the top, the DEM Overview display an overview of the selected Cartesian Triangular Mesh Layer.
    • On the right, in the middle, the DEM Details display the details of the selected Cartesian Triangular Mesh Layer.
    • On the right, at the bottom, the DEM Presentation display the Node Presentation associated with the selected Cartesian Triangular Mesh Layer.
  • On the right, the Layer Presentations section displays the Image Layer Presentation that is associated with the selected Cartesian Triangular Mesh Layer. This section sub-divided into 3 sub-section:
    • On the left, the Layers section displays the list of Image Layer Presentation associated with the selected Cartesian Triangular Mesh Layer.
    • On the right, at the top, the Layer Overview section display an overview of the selected Image Layer Presentation.
    • On the right, at the bottom, the Layer Details display the details of the selected Image Layer Presentation. Editing the Image Layer Presentation attributes will change the appearance of the image layer projection onto the selected Cartesian Triangular Mesh Layer.

The Image Layers View

The Images Layers View displays the list of Image Layers that are associated with the selected Triangular Mesh Layers. It is divided into 4 sections:

The Image Layers View
  • On the left, the Image Layers section displays the list of Image Layers that are associated with the selected Cartesian Triangular Mesh Layers. This section includes 2 buttons:
    • The New button brings up a Wizard used to create a new Image Layer.
    • The Delete button deletes the selected Image Layer.
  • On the right, at the top, the Image Layer Overview section display an overview of the selected Image Layer.
  • On the right, in the middle, the Image Preview section display a preview image of the Image Layer, and includes 2 buttons:
    • The Update Image button updates of the image of the Image Layer.
    • The Export Image button brings up a Wizard used to export the selected Image Layer 's image to a file.
  • On the right, at the bottom, the Image Layer Details section display the details of the selected Image Layer.

The Features Of Interest View

The Features Of Interest View displays the list of Features Of Interest Layers available in the selected Map. It is divided into 2 main sections:

The Features Of Interest View
  • On the left, the Features Of Interest (FOI) Layers. This section is sub-divided into 4 sub-sections:
    • On the left, the FOI Layers section display the list of Features Of Interest Layers available in the selected Map. It includes 4 buttons:
      • The New button brings up a Wizard used to create a new Feature Of Interest Layer.
      • The Delete button deletes the selected Feature Of Interest Layer.
      • The Import button brings up a Wizard used to import a Feature Of Interest Layer from a file.
      • The Export button brings up a Wizard used to export the selected Feature Of Interest Layer to a file.
    • On the right, at the top, the FOI Layer Overview displays an overview of the selected Features Of Interest Layer
    • On the right, in the middle, the FOI Layer Details displays the details of the selected Features Of Interest Layer
    • On the right, at the bottom, the FOI Presnetation displays the details of the Node Presentation associated with the selected Features Of Interest Layer
  • On the right, the Features Of Interest section display the list of Feature Of Interest contained in the selected Features Of Interest Layer. It includes 4 sections:
    • On the left, the FOIs section displays the list Feature Of Interest.
    • On the right, at the top, the FOI Overview displays an overview of the selected Features Of Interest
    • On the right, in the middle, the FOI Details displays the details of the selected Features Of Interest
    • On the right, at the bottom, the FOI Presentation displays the details of the Node Presentation associated with the selected Features Of Interest

The Other Layers View

The Other Layers View is used to display / create / delete other types of Layers. It is divided into 2 main sections:

The Other Layers View

The Earth View Perspective

This perspective used to display the Earth as a whole or data that is at large scale (few kilometers). It is used for displaying orbits and flying vehicle trajectories.

The Earth View Perspective

The Earth View

The Earth View shows the Earth using the active Earth View Configuration which itself contains the Earth View Layers to be shown.

The Earth View

The tool bar provides quick access to the 3D viewer functions. The following table describes these functions.

The Earth View Tool Bar Actions.
Function Description
EcoreTools iconAdd.gif Create a new Earth View Configuration Brings-up a Wizard used to create a new Earth View Configuration
Delete.gif Delete the selected Earth View Configuration Deletes the selected Earth View Configuration
Apogy Show Mercator icon.gif.gif Mercator Show the Earth using the Mercator projection.
Apogy Show Sphere Earth icon.gif Sphere Show the Earth as a sphere.

Note that the pull-down to the left of the tool bar provides a way to select the active Earth View Configuration.

The Earth View Configuration View

The Earth View Configuration View is used to create / edit and delete Earth View Layers used in the active Earth View Configuration. It is divided into 4 sections:

The Earth View Configuration View
  • On the left, the Earth View Layers section displays the list of Earth View Layer that are defined in the selected Earth View Configuration. This section includes 2 buttons:
    • The New button brings up a Wizard used to create a new Earth View Layer.
    • The Delete button deletes the selected Earth View Layer.
  • On the right, at the top, the Layer Overview section displays an overview of the selected Earth View Layer.
  • On the right, at the bottom, the Layer Details section displays the details of the selected Earth View Layer.


The Time Sources Perspective

This perspective is used to display, create, delete and edit Time Sources that are used to feed the time to the active Session.

The Time Sources Perspective

The Time Source View

The Time Source View is used to display the list of available Time Source. It includes:

The Time Source View
  • On the left, the Time Source section displays the list of Time Sources that are defined in the Session. This section includes 3 buttons:
    • The New button brings up a Wizard used to create a new Time Source.
    • The Delete button deletes the selected Time Source.
    • The Activate button sets the selected Time Source as the active Time Source for the Session.

The Time Source Details View

The Time Source Details View is used to display and edit the attributes of the selected Time Source. It is divided into 2 sections:

The Time Source Details View
  • At the top, the Time Details section displays a Time Source dependent summary used to control the selected Time Source. This display is custom to each of the supported Time Source.
  • At the bottom, the More Details section displays more details about the selected Time Source.

The Data Products Perspective

The Data Products Perspective is used to display / create / edit and delete Data Products.

The Data Products Perspective

The Data Products Search View

The Data Products Search View displays the list of available Data Products and provides support to create / edit / delete and search the list of Data Products. It is divided into 2 sections:

The Data Products Search View
  • At the top, the Filters and Sorters section provides controls to create and configure filters and sorters. It is divided into 2 sections:
    • On the left, the Filters section provides controls to create and configure filters. Filters are used to narrow down the search.
    • On the right, the Sorters section provides controls to create and configure sorters. Sorters are used to sort the Data Products that pass through the Filters.
  • At the bottom, the Data Products section displays the list of Data Products that have passed the filters, sorted according to the sorters used. This section includes 2 buttons on the right:
    • The New button bring up a Wizard used to create a Data Product.
    • The Delete button deletes the selected Data Product.

The Data Product Details View

The Data Product Details View is used to display the details of the selected Data Products in the Data Products Search view. It is divided into 2 sections:

The Data Product Details View
  • At the top, the Product Details displays the metadata associated with the Data Product (Time stamp, location, description, etc.).
  • At the bottom, the Operation Call Details displays the information about the Operation Call that created the Data Product(Variable, EOperation, Parameters, etc.).

The Data Product Value Details View

The Data Product Value Details View is used to display the details of the value contained in the selected Data Product.

The Data Product Value Details View

It includes the actual return value data. Depending on the type of the return value, an Export Data Product To File... button may be available. This button brings up an Export Wizard used to export the selected Data Product value to file(s).

The 3D Viewing Perspective

This perspective is used to display the environment in 3D. It includes a 3D rendering of the world and control over the rendering settings of the Nodes composing the Apogy topology.

The 3D Viewing Perspective

The 3D Viewer

The 3D Viewer displays the environment rendered in 3D.

The Projects View

Navigating the 3D world is done using the mouse. The movement of the mouse change the position and orientation of the view point.

The following table identifies the buttons and mouse motion used to move the viewpoint:

Mouse navigation in the 3D world
Button Mouse Motion Viewpoint Motion
Center Forward Moves forward
Back Moves backward
Left Forward Rotates down
Back Rotates up
Left Rotates left
Right Rotates right
Right Forward Moves down
Back Moves Up
Left Moves left
Right Moves right

The tool bar provides quick access to the 3D viewer functions. The following table describes these functions.

The 3D Viewer Tool Bar Actions.
Function Description
Apogy Show Statistics icon.gif Enable Statistics Toggles the display of the 3D rendering statics (frame rate, number of vertices, number of triangles, etc.) on top of the view.
Apogy Zoom Fit icon.png Zoom fit Triggers a move forward / back of the view point to bring all the 3D element into view.
Apogy LevelView Point icon.gif Level View Point Triggers a change in the view point orientation to bring it to the horizontal.
Apogy Set High Speed Mode icon.gif Set High Speed Mode Toggles the translation speed between the low and high speed factors. This determine how quickly the view point position changes for a given motion of the mouse.
Apogy Enable Picking Mode icon.gif Enable Picking Mode Toggles the picking mode. When enabled, the mouse navigation is disabled, and clicking on the left button triggers a selection in the 3D viewer. The words 'Picking Enabled' appears in yellow on the lower left corner of the view.
Apogy Take Screen Shot.gif Take Screen Shot Trigger a screen capture of the 3D display and bring-up a File Selection Wizard use to specify where to save the image.
Apogy Edit View Points icon.gif Edit View Points Bring-up a Wizard used to create / edit / delete View Points.
Apogy Enable Ambient Light icon.gif Enable Ambient Light Toggles between the lighting provided by the Worksite to a pre-defined ambient light providing uniform lighting.

Note that the pull-down to the left of the tool bar provided a way to select the active View Point.

The Node Search View

The Node Search View provides functions to search the environment topology for particular Nodes. The view provides 3 filters that can be combined to narrow down the search.

The Node Search View
  • On the top are located the 3 filters input:
    • The Type Filter provides a pull-down menu used to select the type of Node the user is looking for. The Clear button clears the Type Filter (all type Node passes the filter).
    • The ID Filter is used to provide a filter on the Node ID. It can include wildcard (*). The Clear button clears the ID Filter (all Node ID passes the filter).
    • The Description Filter is used to provide a filter on the Node description. It can include wildcard (*). The Clear button clears the Description Filter (all Node description passes the filter).
  • In the middle, the Update button cause the filter to be applied and the Node list to be updated.
  • At the bottom, a table shows the Nodes that have passed the filters.

The Topology Tree View

The Topology Tree View is used to display the topology tree and the details of the selected Node. It is divided into 3 sections:

The Topology Tree View
  • On the left, the Topology section includes a tree viewer displays the Apogy topology. This section also includes 2 buttons:
    • The New button brings-up a Wizard used to create a Node. The Node will be created under the Node currently selected in the tree.
    • The Delete button deletes the selected Node (and the Node's children).
  • On the right, at the top, the Node Overview section provides a summary of the selected Node.
  • On the right, at the bottom, the Node Details section provides the details of the selected Node. It can be used to edit the Node attributes.

The Node Presentation View

The Node Presentation View is used to display and edit the Node Presentation for the selected Node (selected in the Node Search view or the Topology Tree view). It is divided into 2 sections:

The Node Presentation View
  • On the left, the Presentation Details section provides the details of the Node Presentation associated with the selected Node. It can be used to edit the presentation attributes.
  • On the right, the Node Details section provides the details of the selected Node. It can be used to edit the Node attributes.

The Node Distance View

The Node Distance View is used to display the relative position/orientation and distance between two selected Nodes. This view reacts to selection of Node in either the Node Search View or the Topology Tree View. It is divided into 2 sections:

The Node Distance View
  • At the top, the Nodes section displays the 2 Nodes that have been selected. This section includes 3 buttons:
    • Two Lock buttons that locks the selected from / to Node (i.e. when locked, the Node will no longer be updated when a new Node is selected).
    • The Swap Nodes switch the Nodes around (i.e. the From Node become the To Node and vice-versa).
  • At the bottom, the Distances section displays the distance. between the selected node:
    • The Euclidian Distance displays the 3D straight line distance, in meters.
    • The Geodesic Distance displays the distance separating the 2 Nodes in the topology graph, in meters. It is a measure of how far the Nodes are in the graph.
    • The Relative Position displays the position of the To Node in the From Node frame of reference.
    • The Relative Orientation displays the orientation of the To Node in the From Node frame of reference as Euler angles in degrees.

Back to the top