Terrenus HRPT v2.2

terrenus.orbit
Class SensorModel

java.lang.Object
  extended by terrenus.orbit.SensorModel

public class SensorModel
extends java.lang.Object

The SensorModel class holds image sensor position and orientation information relative to an EllipsoidModel and allows for the retrieval of the sensor view location at the surface of the ellipsoid. The sensor is assumed to be located on a platform that has a known position over the ellipsoid and a nominal pointing direction that is independent of any attitude correction or sensor tilt and rotation. The platform may have some additional attitude (roll, pitch and yaw) with respect to the nominal axes, and the sensor itself may have some tilt and rotation with respect to the attitude-corrected axes.

The sensor coordinate system has three axes:

  1. The tilt axis about which the sensor can tilt (normally "up" and "down" with respect to the sensor image).
  2. The rotation axis about which the sensor can rotate (normally "left" and "right" with respect to the sensor image).
  3. The view axis which defines the direction in which the sensor is pointing.


Constructor Summary
SensorModel(EllipsoidModel model)
          Creates a new model.
 
Method Summary
 double[] getViewLocation(double tilt, double rotation, double[] output)
          Gets the location at which the view axis intersects the ellipsoid surface.
static void main(java.lang.String[] argv)
          Tests this class.
 void setAttitude(double roll, double pitch, double yaw)
          Sets the sensor platform attitude angles with respect to the nominal axes.
 void setLocation(double[] location)
          Sets the sensor platform location with respect to the ellipsoid.
 void setNominalAxes(double[] viewAxis, double[] tiltAxis, double[] rotationAxis)
          Sets the nominal sensor platform axes with respect to the ellipsoid.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SensorModel

public SensorModel(EllipsoidModel model)
Creates a new model.

Parameters:
model - the ellipsoid model to use for the sensor view.
Method Detail

setLocation

public void setLocation(double[] location)
Sets the sensor platform location with respect to the ellipsoid.

Parameters:
location - the location as [x,y,z] in radians.

setNominalAxes

public void setNominalAxes(double[] viewAxis,
                           double[] tiltAxis,
                           double[] rotationAxis)
Sets the nominal sensor platform axes with respect to the ellipsoid. The axes should be orthogonal.

Parameters:
viewAxis - the direction of the sensor view as an [x,y,z] unit vector.
tiltAxis - the direction of sensor tilt as an [x,y,z] unit vector.
rotationAxis - the direction of sensor rotation as an [x,y,z] unit vector.

setAttitude

public void setAttitude(double roll,
                        double pitch,
                        double yaw)
Sets the sensor platform attitude angles with respect to the nominal axes.

Parameters:
roll - the roll angle about the sensor rotation axis in radians.
pitch - the pitch angle about the sensor tilt axis in radians.
yaw - the yaw angle about the sensor view axis in radians.

getViewLocation

public double[] getViewLocation(double tilt,
                                double rotation,
                                double[] output)
Gets the location at which the view axis intersects the ellipsoid surface.

Parameters:
tilt - the sensor tilt angle in radians.
rotation - the sensor rotation angle in radians.
output - the output intersection array to fill. If null, an output location is created.
Returns:
the output intersection array as [x,y,z] in radians.

main

public static void main(java.lang.String[] argv)
Tests this class.


Terrenus HRPT v2.2