Keywords: mount

Summary

This shows how to setup the directly-commanded mount, which allows the user to specify non-periodic, platform-relative pointing angles as a function of time.

Important
This mount does not have graphical user interface (GUI) support at this time. To configure this mount, the user must hand-edit the .platform file.

The following demos, manuals and tutorials can provide additional information about the topics at the focus of this demo:

  • Related Demos

  • Related Manuals

    • The Commanded section of the BasicPlatform mounts manual.

  • Related Tutorials

    • None.

Details

The important difference between this mount and the "tabulated" mount is that this mount is not intended for periodic scanning. This is best realized in the fact that the pointing data is a function of time (either simulation relative or absolute).

Important Files

This section highlights key files important to the simulation.

Platform and Mount Configuration

At this time, this mount must be configured by hand-editing the .platform file. The excerpt from the demo.platform file below features the mount configuration. The type attribute must be set to commanded to select this mount option. The <data> element contains a series of <entry> elements that have platform-relative Euler angles as a function of a <datetime>:

Data for the tabulated mount scenario using absolute times.
    <mount type="commanded" name="Direct Pointing">
      <data rotationorder="xyz" angularunits="degrees">
        <entry>
          <datetime type="absolute">2008-07-01T12:00:00.0000-04:00</datetime>
          <xrotation>0.0</xrotation>
          <yrotation>0.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="absolute">2008-07-01T12:00:01.0000-04:00</datetime>
          <xrotation>+2.0</xrotation>
          <yrotation>+2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="absolute">2008-07-01T12:00:02.0000-04:00</datetime>
          <xrotation>+2.0</xrotation>
          <yrotation>-2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="absolute">2008-07-01T12:00:03.0000-04:00</datetime>
          <xrotation>-2.0</xrotation>
          <yrotation>-2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="absolute">2008-07-01T12:00:04.0000-04:00</datetime>
          <xrotation>-2.0</xrotation>
          <yrotation>+2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
      </data>

The mount <entry> elements can also be a function of relative time rather than absolute time. To select this option, each <datetime> entry should have the type attribute set to relative rather than absolute. For example, to set the time to be 10 seconds after the simulation reference date/time, the following would be used:

Data for the tabulated mount scenario using relative times.
    <mount type="commanded" name="Direct Pointing">
      <data rotationorder="xyz" angularunits="degrees">
        <entry>
          <datetime type="relative">0.0</datetime>
          <xrotation>0.0</xrotation>
          <yrotation>0.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="relative">1.0</datetime>
          <xrotation>+2.0</xrotation>
          <yrotation>+2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="relative">2.0</datetime>
          <xrotation>+2.0</xrotation>
          <yrotation>-2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="relative">3.0</datetime>
          <xrotation>-2.0</xrotation>
          <yrotation>-2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
        <entry>
          <datetime type="relative">4.0</datetime>
          <xrotation>-2.0</xrotation>
          <yrotation>+2.0</yrotation>
          <zrotation>0.0</zrotation>
          <xtranslation>0.0</xtranslation>
          <ytranslation>0.0</ytranslation>
          <ztranslation>0.0</ztranslation>
        </entry>
      </data>
Note
The xtranslation, ytranslation and ztranslation variables are optional and default to 0.0.

The rotationorder attribute specifies the order that the Euler angle rotations are applied (in this case it is X, then Y, then Z).

There are 5 entries defined in this example. Only the X and Y angles are in use for this example, which produces a sequence of along-track and across-track pointings. The angles for the 5 entries are:

  1. 0 and 0 degrees → points straight down

  2. +2 and +2 degrees → points forward (+X) and left (+Y)

  3. +2 and -2 degrees → points forward (+X) and right (-Y)

  4. -2 and -2 degrees → points aft (-X) and right (-Y)

  5. -2 and +2 degrees → points aft (-X) and left (+Y)

The data will be linearly interpolated for times between supplied time entries. There are two exceptions:

  • All times before the time for the first entry will use the first entry.

  • All times after the time for the last entry will use the last entry.

Setup

To run the simulation, perform the following steps. There are two simulations in this demo. One uses relative times for the mount entries and the other uses absolute date/time. Although they describe the data differently as a function of time, the two setups are equivalent. Because the focal plane clock rate and the task duration, a total of 5 image files will be produced. The simulation reference time and focal plane clock rate have been setup to correspond to the 5 times

Run the relative command data simulation

  1. Run the DIRSIG demo_relative.sim file

  2. Load the resulting demo-t0000-c0000.img …​ demo-t0000-c0004.img files in the image viewer.

Run the absolute command data simulation

  1. Run the DIRSIG demo_absolute.sim file

  2. Load the resulting demo-t0000-c0000.img …​ demo-t0000-c0004.img files in the image viewer.

Results

The output of the simulation is the 5 image frames that correspond to the 5 discrete pointing directions

demo
Figure 1. Animation of the commanded mount collection.