update doc links

This commit is contained in:
Scott Fennell 2019-11-20 12:53:56 -06:00
parent f20e38f987
commit 66c5852566
18 changed files with 79 additions and 80 deletions

View File

@ -1,4 +1,4 @@
| [Home](Home) → Documentation Home |
| [Home](/trick) → Documentation Home |
|------------------------------------|
# User Guide

View File

@ -71,4 +71,4 @@ while(True):
```
If you are unfamiliar or rusty on how to use the Trick variable server, please see
the [Variable Server](TutVariableServer) section of the [Trick Tutorial](Tutorial).
the [Variable Server](/trick/tutorial/TutVariableServer) section of the [Trick Tutorial](/trick/tutorial/Tutorial).

View File

@ -12,45 +12,42 @@ Provides an infrastructure for interfacing software with physical input devices.
# NASA Projects
## Shuttle Remote Manipulator System (SRMS)
<p align="center">
[[/related_projects/images/SRMS.jpg|SRMS]]
</p>
![SRMS](images/SRMS.jpg)
In the early 1990s, the Software, Robotics, and Simulation Division (ER) at the NASA Johnson Space Center developed Trick as a framework to support operational performance evaluations of the Shuttle Remote Manipulator System (also known as Canadarm). The SRMS simulation allowed engineers to prototype and test SRMS flight software, perform dynamic load analysis, and assisted in both ground and in-flight training. SRMS hardware-in-the-loop simulations are used in both the Neutral Buoyancy Lab (NBL) and the Multi-Use Remote Manipulator Development Facility (MRMDF).
<p align="center">
[[/related_projects/images/NBL.jpg|Neutral Buoyancy Lab (NBL)]]
[[/related_projects/images/MRMDF.jpg|Multi-Use Remote Manipulator Development Facility (MRMDF)]]
</p>
![Neutral Buoyancy Lab (NBL)](images/NBL.jpg)
![Multi-Use Remote Manipulator Development Facility (MRMDF)](images/MRMDF.jpg)
## Systems Engineering Simulator (SES)
<p align="center">
[[/related_projects/images/SES.jpg|Systems Engineering Simulator (SES)]]
</p>
[Systems Engineering Simulator (SES)](images/SES.jpg)
The Systems Engineering Simulator (SES) is a real-time, crew-in-the-loop engineering simulator for the space station and other advanced programs. The SES allows NASA engineers to physically model a given Trick simulation and provides a more realistic working environment for training astronauts. The SES has been used to create training environments for space shuttle simulations, SRMS simulations, ISS simulations, and Mars rover simulations, among others.
## Virtual Reality Laboratory
<p align="center">
[[/related_projects/images/VRLab.jpg|VRLab]]
</p>
![VRLab](images/VRLab.jpg)
The Virtual Reality Laboratory is an immersive training facility that provides real-time graphics and motion simulators integrated with a tendon-driven robotic device to provide the kinesthetic sensation of the mass and inertia characteristics of large objects. A virtual 3D technical mockup of the ISS allows training astronauts to experience '0G' movement while seated.
## Robotics On-Board Trainer (ROBoT)
<p align="center">
[[/related_projects/images/ROBoT.jpg|ROBoT]]
![ROBoT](images/ROBoT.jpg)
</p>
The Robotics On-Board Trainer (ROBoT) is an on-orbit version of the ground-based Dynamics Skills Trainer (DST) that astronauts use for training on a frequent basis.
## Multi-Mission Space Exploration Vehicle (MMSEV)
<p align="center">
[[/related_projects/images/MMSEV.jpg|MMSEV]]
</p>
![MMSEV](images/MMSEV.jpg)
The Multi-Mission Space Exploration Vehicle (MMSEV) is a modular space vehicle concept that utilizes Trick for training simulations. MMSEV is designed to be an adaptable and versatile vehicle used for both space and surface exploration.
<p align="center">
[[/related_projects/images/MMSEV2.jpg|MMSEV2]]
</p>
![MMSEV2](images/MMSEV2.jpg)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → A Simple Simulation |
| [Home](/trick) → [Tutorial Home](Tutorial) → A Simple Simulation |
|----------------------------------------------------------------|
<!-- Section -->
@ -27,7 +27,7 @@ The commands following `%` should typed in and executed.
<a id=cannonball-problem-stated></a>
### Cannonball Problem Statement
[[/tutorial/images/CannonInit.png|Cannon]]
![Cannon](images/CannonInit.png)
**Figure 1 Cannonball**
@ -45,26 +45,26 @@ We can also write an equation that will give us the cannon balls time of impa
The cannonballs acceleration over time is constant. It's just the acceleration of gravity:
[[/tutorial/images/equation_acc.png|equation_acc]]
![equation_acc](images/equation_acc.png)
On earth, at sea-level, g will be approximately -9.81 meters per second squared.
In our problem this will be in the y direction, so:
[[/tutorial/images/equation_init_g.png|equation_init_g]]
![equation_init_g](images/equation_init_g.png)
Since acceleration is the derivative of velocity with respect to time, the
velocity [ v(t) ] is found by simply anti-differentiating a(t). That is:
[[/tutorial/images/equation_analytic_v_of_t.png|equation_analytic_v_of_t]]
![equation_analytic_v_of_t](images/equation_analytic_v_of_t.png)
where the initial velocity is :
[[/tutorial/images/equation_init_v.png|equation_init_v]]
![equation_init_v](images/equation_init_v.png)
The position of the cannon ball [ p(t) ] is likewise found by anti-differentiating
v(t).
[[/tutorial/images/equation_analytic_p_of_t.png|equation_analytic_p_of_t]]
![equation_analytic_p_of_t](images/equation_analytic_p_of_t.png)
Once we specify our initial conditions, we can calculate the position and
velocity of the cannon ball for any time t.
@ -72,11 +72,11 @@ velocity of the cannon ball for any time t.
Impact is when the cannon ball hits the ground, that is when the cannonballs
y-coordinate again reaches 0.
[[/tutorial/images/equation_analytic_y_of_t_impact.png|equation_analytic_y_of_t_impact]]
![equation_analytic_y_of_t_impact](images/equation_analytic_y_of_t_impact.png)
Solving for t (using the quadratic formula), we get the time of impact:
[[/tutorial/images/equation_analytic_t_impact.png|equation_analytic_t_impact]]
![equation_analytic_t_impact](images/equation_analytic_t_impact.png)
---
<a id=a-cannonball-simulation-without-trick></a>
@ -184,4 +184,4 @@ we want to be able to synchronize simulation-time with "wall clock" time.
In the next section, we'll see how a Trick simulation goes together, and how it helps us to easily integrate user-supplied simulation models with commonly needed simulation capabilites.
---
[[Next Page|ATutArchitecture]]
[Next Page](ATutArchitecture)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Analytical Cannon Simulation |
| [Home](/trick) → [Tutorial Home](Tutorial) → Analytical Cannon Simulation |
|-------------------------------------------------------------------------|
<!-- Section -->
@ -139,7 +139,7 @@ the following information for the member:
These are each described in **Figure 2** and in the sections below.
[[/tutorial/images/DataMemberComments.png|DataMemberComments]]
![DataMemberComments](images/DataMemberComments.png)
**Figure 2 - Data Member Comments**
@ -527,7 +527,7 @@ Trick headers that are included within each of these files may specify additiona
source code dependencies, and so forth. Libraries may also be specified for
linking into the final executable.
Trick uses your `$TRICK_CFLAGS` environment variable ([[see section 3.2 of the Trick User Guide|Environment-Variables]]) in
Trick uses your `$TRICK_CFLAGS` environment variable ([see section 3.2 of the Trick User Guide](/trick/documentation/building_a_simulation/Environment-Variables)) in
conjunction with `cannon/src` to find the listed files. The entire path
name following the `$TRICK_CFLAGS` path must be included.
@ -658,7 +658,7 @@ The pieces are in order. The simulation is ready to be built!
### Setting `$TRICK_CFLAGS` and `$TRICK_CXXFLAGS`
[[/tutorial/images/Warning_TRICK_CFLAGS.png|TRICK_CFLAGS WARNING]]
![TRICK_CFLAGS WARNING](images/Warning_TRICK_CFLAGS.png)
Before we continue with the magical building of the cannonball, **PLEASE** take
the time to understand this section. It will save you much heartache and time.
@ -683,7 +683,7 @@ For example, the `S_define` file listed above, `#includes` the relative path:
`trick_models` directory that we created in our `$HOME` directory. The complete
path to our cannon.h header file should be:
[[/tutorial/images/TrickPaths.png|Trick Path Construction]]
![Trick Path Construction](images/TrickPaths.png)
So, we need to specify the base-path(s), to the compilers, and to Trick by adding
-I*dir* options, that contain the base-paths, to `$TRICK_CFLAGS` and
@ -739,7 +739,7 @@ If you typed everything perfectly... Trick is installed properly... there are no
bugs in the tutorial... the stars are aligned... and Trick is in a good mood...
You should, ultimately see :
[[/tutorial/images/SimMakeComplete.png|Simulation Make Complete]]
![Simulation Make Complete](images/SimMakeComplete.png)
Now, take a look at the sim directory. Is there an `S_main*.exe` file ??? If so,
cool deal. If not, scream!, then take a look at the next section "Troubleshooting A
@ -841,4 +841,4 @@ We got the same answer! But, what about the trajectory? In the next section, we
---
[[Next Page|ATutRecordingData]]
[Next Page](ATutRecordingData)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Trick Simulation Architecture |
| [Home](/trick) → [Tutorial Home](Tutorial) → Trick Simulation Architecture |
|--------------------------------------------------------|
<!-- Section -->
@ -29,7 +29,7 @@ A Trick-based simulation is organized similarly and is defined in a simulation d
### Example S_define File
[[/tutorial/images/S_define_pic.png|S_define_pic]]
![S_define_pic](images/S_define_pic.png)
The S_define file specifies and ties together everything necessary to build a
simulation:
@ -73,4 +73,4 @@ That is, it is one instance of our cannonball model. If we were to create a seco
In the following sections we'll create the parts for a Trick-based cannonball simulation, and build it.
---
[[Next Page|ATutAnalyticSim]]
[Next Page](ATutAnalyticSim)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Dynamic Events |
| [Home](/trick) → [Tutorial Home](Tutorial) → Dynamic Events |
|-----------------------------------------------------------|
<!-- Section -->
@ -40,7 +40,7 @@ we've defined, a **dynamic-event**. To find dynamic-events, we use
**dynamic-event** jobs.
**Figure - Cannon Ball Trajectory Near y(t) = 0**
[[/tutorial/images/IntegStepCrossesZero.png|IntegStepCrossesZero]]
![IntegStepCrossesZero](images/IntegStepCrossesZero.png)
<a id=dynamic-event-jobs></a>
## Dynamic Event Jobs
@ -247,4 +247,4 @@ vel = [0.000000000, 0.000000000]
**It's the same answer we got from our analytic simulation!**
[[Next Page|TutVariableServer]]
[Next Page](TutVariableServer)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Introduction |
| [Home](/trick) → [Tutorial Home](Tutorial) → Introduction |
|---------------------------------------------------------|
<!-- Section -->
@ -66,7 +66,7 @@ its capabilities.
## Installing Trick
If Trick is not already installed on your machine, then you will need to do that
first, by following the directions at: [[Install Guide|Install-Guide]].
first, by following the directions at: [Install Guide](/trick/documentation/install_guide/Install-Guide).
Once Trick is installed on your machine, you will need add the Trick **bin**
directory to your execution path. For the sake of example, let us assume that
@ -92,4 +92,4 @@ setenv PATH ${PATH}:${TRICK_HOME}/bin
Close and then re-open your terminal window.
---
[[Next Page|ATutASimpleSim]]
[Next Page](ATutASimpleSim)

View File

@ -1,9 +1,9 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Monte Carlo |
| [Home](/trick) → [Tutorial Home](Tutorial) → Monte Carlo |
|--------------------------------------------------------|
Monte Carlo is an advanced simulation capability provided by Trick that allows users to repeatedly run copies of a simulation with different input values. Users can vary the input space of a simulation via input file, random value generation, or by calculating values from previous Monte Carlo runs in a process called optimization. This tutorial will show you how to develop simulations that can take advantage of this capability.
**For a thorough explanation of Monte Carlo and its features, read the [Monte Carlo User Guide](UserGuide-Monte-Carlo).**
**For a thorough explanation of Monte Carlo and its features, read the [Monte Carlo User Guide](/trick/documentation/simulation_capabilities/UserGuide-Monte-Carlo).**
## Core Simulation
The core simulation this tutorial is built around is a slight modification of the Analytical Cannon simulation created earlier in the tutorial. **The primary modification made was to change the *init_angle* attribute from radians to degrees.**
@ -172,7 +172,7 @@ trick-dre &
```
<p align="center">
[[/tutorial/images/Trick-DRE.png|width=750px|Trick-DRE]]
<img src=images/Trick-DRE.png width="750"/>
</p>
#### Steps
@ -195,20 +195,20 @@ trick-dp &
```
<p align="center">
[[/tutorial/images/Trick-DP.png|width=750px|Trick-DP]]
<img src="images/Trick-DP.png" width=750px/>
</p>
Find the RUN_test in the Runs Tree panel and add it to your run selections. Click the blue lightning bolt to open Trick Quick Plot.
<p align="center">
[[/tutorial/images/Trick-QP.png|width=750px|Trick-QP]]
<img src="images/Trick-QP.png" width=750px/>
</p>
Expand the cso.cannon.pos[0-1] variable in the left pane and create a curve with pos[1] as the Y axis and pos[0] as the X axis. Once your DP Content looks like the above image, click the comparison plot button in the actions menu.
<p align="center">
[[/tutorial/images/RUN_test_plot.png|width=750px|RUN_test_plot]]
<img src="images/RUN_test_plot.png" width=750px/>
</p>
In each of the bellow sections, you can repeat these steps to visualize the differences between Monte Carlo implementations.
@ -217,7 +217,7 @@ In each of the bellow sections, you can repeat these steps to visualize the diff
**What would be the optimal launch angle required to ensure our cannonball travels the furthest distance?** Let us assume that we have no conception of physics or trigonometry and that we don't already know the answer.
<p align="center">
[[/tutorial/images/OptimalLaunchAngle.png|width=550px|OptimalLaunchAngle]]
<img src="images/OptimalLaunchAngle.png" width=550px/>
</p>
## Input Files
@ -273,7 +273,7 @@ trick.stop(15)
Run the simulation and plot the runs like you did earlier. You will see something similar to the following:
<p align="center">
[[/tutorial/images/Trick-QP-File.png|Trick-QP-File]]
<img src="images/Trick-QP-File.png" alt="Trick-QP-File"/>
</p>
## Random Input Generation
@ -320,7 +320,7 @@ trick.stop(15)
Run the script and plot the curves. You will end up with something similar to this:
<p align="center">
[[/tutorial/images/Trick-QP-Random.png|Trick-QP-Random.png]]
<img src="images/Trick-QP-Random.png" alt="Trick-QP-Random.png"/>
</p>
## Optimization
@ -450,5 +450,5 @@ CannonSimObject cso;
Run the script and plot the curves. You will see this:
<p align="center">
[[/tutorial/images/Trick-QP-Calculated.png|Trick-QP-Calculated]]
<img src="images/Trick-QP-Calculated.png" alt="Trick-QP-Calculated"/>
</p>

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Numerical Integration |
| [Home](/trick) → [Tutorial Home](Tutorial) → Numerical Integration |
|------------------------------------------------------------------|
<!-- Section -->
@ -87,11 +87,11 @@ to account for two forces that are acting on the skydiver:
The force of gravity can be calculated using Newton's Law of Gravitation:
[[/tutorial/images/NewtonsLawOfGravitation.png|Figure 1 - Newton's Law of Gravitation]]
![Figure 1 - Newton's Law of Gravitation](images/NewtonsLawOfGravitation.png)
and the drag force can be calculated using the drag equation:
[[/tutorial/images/DragEquation.png|Figure 1 - Drag Equation]]
![Figure 2 - Drag Equation](images/DragEquation.png)
Notice that the force of gravity is dependent upon the skydiver position,
which is an integration result. Therefore the force of gravity needs to be
@ -460,4 +460,4 @@ perfectionist!
Congratulations, you are now running a simulation with numerical integration.
[[Next Page|ATutDynamicEvents]]
[Next Page](ATutDynamicEvents)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Plotting Recorded Data |
| [Home](/trick) → [Tutorial Home](Tutorial) → Plotting Recorded Data |
|-------------------------------------------------------------------|
<a id=viewing-recorded-data></a>
@ -36,7 +36,7 @@ single window with two plots should pop up. (See Figure 4)
1. When you are done with the plots you created, close the **Trick
Plot** window which will also close the window with your plot(s).
[[/tutorial/images/PlotTimeVsPosition.png|Plot of Time vs Position]]
![Plot of Time vs Position](images/PlotTimeVsPosition.png)
**Figure 4 - Quick Plot Time -vs- Position**
@ -52,7 +52,7 @@ There is the trajectory! :-) Note that the cannonball goes underground. This
will be fixed later.
1. When you are done, close the **Trick Plot** window.
[[/tutorial/images/PlotXvsYPosition.png|Plot of X vs Y Position]]
![Plot of X vs Y Position](images/PlotXvsYPosition.png)
**Figure 5 - Quick Plot X -vs- Y Position**
@ -103,9 +103,9 @@ is a tiny square on each x-y point recorded.
1. Once you are finished with the plot, close the **Trick Plot**
window and Trick DP.
[[/tutorial/images/PlotZoomedXYPosition.png|Plot Zoomed X vs Y Position]]
![Plot Zoomed X vs Y Position](images/PlotZoomedXYPosition.png)
**Figure 6 Zoomed X -vs- Y Position - `DP_cannon_xy`**
---
[[Next Page|ATutRunningRealtime]]
[Next Page](ATutRunningRealtime)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Recording Simulation Data |
| [Home](/trick) → [Tutorial Home](Tutorial) → Recording Simulation Data |
|----------------------------------------------------------------------|
<!-- Section -->
@ -19,7 +19,7 @@ recording editor --- aka Dr. Dre) or you may create it manually.
% trick-dre &
```
[[/tutorial/images/dre.png|Data Recording Editor]]
![Data Recording Editor](images/dre.png)
**Figure 3 - Data Recording Editor (dre)**
@ -62,4 +62,4 @@ to the top of the `input.py` file and then save it.
After the simulation runs, data will be dumped into the `RUN_test` directory.
The data, in this case, is recorded in binary form.
[[Next Page|ATutPlottingData]]
[Next Page](ATutPlottingData)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Running Real-Time |
| [Home](/trick) → [Tutorial Home](Tutorial) → Running Real-Time |
|--------------------------------------------------------------|
<!-- Section -->
@ -104,4 +104,4 @@ Some items to note about the simulation control panel for your future use:
---
[[Next Page|ATutTrickView]]
[Next Page](ATutTrickView)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Viewing Real-Time Data |
| [Home](/trick) → [Tutorial Home](Tutorial) → Viewing Real-Time Data |
|-------------------------------------------------------------------|
<!-- Section -->
@ -124,4 +124,4 @@ You may now run the sim and verify that TV pops up automatically.
Congratulations, you have finished the basic Trick tutorial!
[[Next Page|ATutNumericSim]]
[Next Page](ATutNumericSim)

View File

@ -1,4 +1,4 @@
| [Home](Home) → [Tutorial Home](Tutorial) → Variable Server |
| [Home](/trick) → [Tutorial Home](Tutorial) → Variable Server |
|------------------------------------------------------------|
# Trick Variable Server
@ -54,7 +54,7 @@ the client.
* The debug state of the connection.
* An optional name, to identify the connection when debug messages are enabled.
[[/tutorial/images/VarServerSessions.png|VarServerSessions]]
![VarServerSessions](images/VarServerSessions.png)
The primary purpose of the [**variable server API**](#the-variable-server-api)
is to configure the sessions.
@ -125,7 +125,7 @@ Control Panel, as shown below.
```$ ~/CannonDisplay_Rev1.py 50774 &```
[[/tutorial/images/SimControlPanel.png|Cannon]]
![Cannon](images/SimControlPanel.png)
The output of the script will display three columns of numbers. The left most
number is the [variable server message type](#variable-server-message-types).
@ -473,4 +473,4 @@ Set the synchronization mode of the variable server session, where the modes are
This means that periodic data messages are guaranteed to
be time homogeneous, but are written from the main simulation thread.
[[Next Page|ATutMonteCarlo]]
[Next Page](ATutMonteCarlo)

View File

@ -1,4 +1,4 @@
| [Home](Home) → Tutorial Home |
| [Home](/trick) → Tutorial Home |
|------------------------------|
## Table of Contents
@ -36,4 +36,4 @@ When interesting things happen between simulation times steps.
How to interact with a running simulation.
01. [Monte Carlo](ATutMonteCarlo)<br>
How to enable and use Monte Carlo functionality in your simulation.
How to enable and use Monte Carlo functionality in your simulation.

View File

@ -7,6 +7,7 @@ exec(open("Modified_data/realtime.py").read())
#==========================================
varServerPort = trick.var_server_get_port();
trick.set_var_server_info_msg_on()
web.server.enable=True
print(varServerPort)
MsdGui_path = "models/graphics/dist/MsdGui.jar"

View File

@ -13,6 +13,7 @@ LIBRARY DEPENDENCIES:
*************************************************************/
#include "sim_objects/default_trick_sys.sm"
#include "sim_objects/WebServer.sm"
##include "msd/include/msd.hh"