How do I create pointing (targeted / scanning / sweeping / creeping-line) sensors in STK?

Information

 
QuestionHow do I create a scanning / sweeping / creeping-line sensor in STK?
Answer
STK provides several methods for defining sensors and sensor pointing.  This FAQ shows some of the most common methods as described below and demonstrated in the attached scenario.

1.  Sensors that don't move (aka pushbroom sensors) are very easy to model.  For example, if you want to model a fixed, side-looking sensor, you can set the following sensor properties:
  • Definition panel > Sensor Type = Rectangular (Vertical Half Angle = 5 deg, Horizontal Half Angle = 15 deg)
  • Pointing panel > Pointing Type = Fixed (Orientation Method = YPR Angles, Yaw = 0 deg, Pitch = 0 deg, Roll = 30 deg, Sequence = YPR)
User-added image
2.  Senors that track specific targets are also very easy to model. For example, if you want to model a payload that has a gimbal that tracks a target, you can set the following sensor properties:
  • Pointing panel > Pointing Type = Targeted (Double-click on any of the Available Objects to add them to the Assigned Targets)
User-added image

3.  Sensors that scan back and forth are also relatively easy to model.  Simply copy your fixed sensor, then change the pointing properites:
  • Pointing Panel > Pointing Type = Spinning
    • Scan Mode = Bidirectional
    • Start Angle = 200 deg
    • Stop Angle = 230 deg
    • Spin Rate = .5 rev/min
    • Initial Offset Angle = 0 deg
    • Spin Axis Azimuth = 0 deg
    • Spin Axis Elevation = 0 deg
    • Spin Axis Cone Angle = 90 deg
User-added image

4.  If you want to create a more complex "sweeping" patterns (a.k.a. creeping line sensors), you can use the "External" Pointing type, which allows you to load a custom ascii data file:  http://help.agi.com/stk/11.1/index.htm#stk/importfiles-07.htm  

The challenge with this pointing type is that you will need to generate the pointing data.  Fortunately, there is an example HTML / javascript tool in the attached scenario that will generate this pointing data based on a variety of parameters the user can select:
User-added image

In order to use this tool, you will need to define the sweeping pattern relative to Body X-Axis of the parent object.  In this example, the parent object is a satellite, so the X-axis is in the velocity (or "ram") direction.  Because we want the sweeping pattern to be relative to our sensor, we will have to first create a duplicate satellite and change the attitude of the satellite to point in the direction of our original sensor.  Here are the steps I used in this example:
  • Right-click on Satellite1, and select copy, then right-click again and select paste
  • Rename the new satellite "PointSensor"
  • Delete all of the sensors that were also copied
  • In the "PointSensor" properties - Attitude panel, change the "Type" to Fixed in Axes and set the following properties:
    • Type = YPR Angles
    • Reference Axes = "Satellite1 Body"
    • Yaw = -30 deg (this is the offset from nadir)
    • Pitch = -90 deg (this is the offset to align the Body X of the Satellite to the Body Z of the Sensor)
    • Roll = 0 deg
    • Sequence = YPR
Now that we have the "PointSensor" satellite object that has the Body X pointed in the same direction as the Body Z vector of our original fixed sensor, we can create our new sensors.  We'll start by creating the same fixed sensor using the following properties:
  • Definition panel > Sensor Type = Rectangular (Vertical Half Angle = 5 deg, Horizontal Half Angle = 15 deg)
  • Pointing panel > Pointing Type = Fixed (Orientation Method = Az-El , Azimuth = 0 deg, Elevation = 0 deg)
Now that we've verified that our new fixed sensor along the Body X is the same as the original fixed sensor, we'll create the sweeping sensor using the sensor scanning utility:
  • Hit F5 to refresh the sensor scanning utility and reload the parent objects, then set the following properties:
  • Parent or Sensor Object = Satellite/PointSensor
  • Horizontal Scan = 5 deg
  • Vertical Scan = 5 deg
  • Pass Spacing = 2 deg
  • Scan Duration (on time) = 10 sec
  • Reset Duration (off time) = 0 sec
  • Click "Create"
Note:  This utility automatically resets your animation time, right-click on your timeline and select “Set Animation Time Here”, then pause the animation.

This utility automatically sets a range constraint for viewing the sensor, but we want to remove those constraints for both sensors.
  • Open FOV properties and select the Constraints - Basic panel to disable the Range Max constraint.
  • Repeat the step above for the "FwdScan" sensor
 User-added image

Begin animating to see the "FwdScan" sensor sweep.
 
Resource File 1
Resource File 2