|Top Previous Next|
A blockage diagram is a 2D representation of blockage due to a combination of 3D CAD model configuration and custom angular regions when viewed from a given viewpoint. In FreeFlyer, the BlockageDiagram object loads in a bitmap based .xpm file to represent the blockage diagram. Using the BlockageDiagram object, contact evaluations can be done between a Spacecraft and: another Spacecraft, a Groundstation, a CelestialObject, a position, a Star, or a Vector. In addition to the BlockageDiagram object, the LookAngleFrame object can be used to define a look angle frame. This frame helps define the angles LookAngle1 and LookAngle2 with respect to a boresight vector.
These diagrams are used for several purposes:
The BlockageDiagram object must be associated with a modified bitmap (.xpm) file. The .xpm file holds the visualization of the blockage and the look angle information. Once you load the proper blockage diagram, you should be able to see the diagram in the BlockageDiagram object GUI, as pictured below. If no diagram loads up, the bitmap file is not properly formatted and FreeFlyer will throw a runtime error if you try to run the Mission Plan.
BlockageDiagram GUI with a loaded blockage diagram.
You can also set the file path in FreeForm:
Height and Width
The Height and Width properties hold the height and the width of the blockage diagram in pixels. The blockage diagram dimensions must adhere to the following:
Where LookAngle2Range cannot be larger than 360 for an independent LookAngleFrame or 180 for a dependent LookAngleFrame, and LookAngle1Range cannot be larger than 360. The extra pixels in the height and width reflect that pixels are centered around the specified look angles, e.g. if the minimum is -180, the first pixel represents -180.25 to -179.75. With these limitations, the maximum size for blockage diagrams with independent and dependent LookAngleFrames is 1081x721 (Height x Width) and 541x721 respectively.
The BlockageDiagram object will contain look angle frame information (i.e. pointing information) taken from the blockage diagram that was loaded. This information points the center of the blockage diagram in a direction relative to the spacecraft's Body Coordinate System. The look angle frame information can be pulled out of the BlockageDiagram and placed into the LookAngleFrame object.
Position and Pointing
The GetOffsetPosition method returns the Cartesian components of the offset vector from the origin of the spacecraft BCS. You can set the offset position by using the SetOffsetPosition method.
The pointing information can be exported to the LookAngleFrame object, which allows more control over the look angle frame. The LookAngleFrame object is described in more detail below.
Text can be displayed on the blockage diagram to be used as annotations. The GetOverlayText method can retrieve overlay text that was brought in from the blockage diagram, if any. The following FreeForm will retrieve the overlay text information from the BlockageDiagram object.
Conversely, the AddOverlayText method can add text to the blockage diagram. You are able to position the overlay text anywhere on the blockage diagram by specifying the position mode and the position where the text will be placed.
The position mode is specified with these values:
There are various methods available to test whether or not a source object can see the target object based on the blockage diagram. The source's body-fixed frame defines the base for the blockage diagram look angle frame orientation. The method LineOfSight is an instantaneous evaluation that determines if the source can see the target using the blockage diagram. The target argument can be a position, a Vector, a CelestialObject, a Groundstation, another Spacecraft, or a Star.
For a high fidelity evaluation of line of sight, the LineOfSightTimes interval method will return the exact times at which the source loses sight of the target spacecraft. An example of the LineOfSightTimes interval method is provided below.
Look Angle Frames
The LookAngleFrame object provides more flexibility in setting up a look angle frame to be used across multiple blockage diagrams. The object holds the look angle frame and allows for various calculations to be made. The look angle can be transferred to and from the BlockageDiagram object through the GetLookAngleFrameConfiguration and the SetLookAngleFrameConfiguration methods.
The BoresightAxis property of the LookAngleFrame object lets you choose an axis of the look angle frame as the boresight axis. By default this value is set to the +X axis.
The MountOrientation provides access to the orientation of the look angle frame with respect to the spacecraft BCS. The NullOrientation property sets a roll-pitch-roll sequence to be applied with respect to the MountOrientation, describing the look angle frame coordinate system.
The LookAngle1Type and LookAngle2Type properties allow the user to set the type of rotation represented by the first and second look angle, respectively. The rotations are with respect to the coordinate system defined by the MountOrientation and the NullOrientation properties.
Note: Invalid combinations of LookAngle1Type, LookAngle2Type, and BoresightAxis will result in run time errors.
There are two methods associated with the LookAngleFrame object, the first is the CalculateLookAngles method. This method calculates the look angles for the target object with respect to the look angle frame. The second method is the GetBoresightVector method; this method returns a vector based on the mounting matrix, the null orientation, and the boresight axis.
Example 1: LineOfSightTimes
In this example, the LineOfSightTimes interval method is used to evaluate when a target spacecraft is entering and going out of sight of the source spacecraft. For a summary of the coverage and contact output methods in FreeFlyer organized by observer and target object type, see the Contact Method Summary.
Note: As of FreeFlyer 7.3, the default timing precision mode is nanosecond precision mode. For older Mission Plans that have not yet been converted from millisecond precision mode, the syntax for working with times is different. See the timing precision mode page for more information.
Output showing Spacecraft AOS and LOS.
•BlockageDiagram Properties and Methods
•LookAngleFrame Properties and Methods