Help for MARSUVWPROJ
PURPOSE:
MARSUVWPROJ projects a surface normal onto an arbitrary plane in space.
The result is a normalized 3-D vector which is constrained to lie in the plane.
Currently, the plane can only be a vertical plane, aligned with the X-Z
axes, and then rotated by ANGLE about the +Z axis. So, a value for ANGLE
of 0 degrees will project to the X-Z plane, while a value of 90 degrees
will project to the Y-Z plane. Other parameters to specify other rotations
may be added in the future.
The original intent of this program was to deal with the stuck arm joint #1
on Opportunity (Sep. 08). By providing the joint #1 angle (converted to
degrees, and note that the stuck angle is negative, meaning the plane rotates
to the left), it reduces the available degrees of freedom for the surface
normal. This helps determine what is reachable with the reduced capability
of the arm.
However, the program is not mission-specific; it can be used in any situation
requiring projection of a surface normal.
The input for MARSUVWPROJ is a UVW image such as that created by the MARSUVW
program, and an angle of rotation (see above). The UVW file can be a single
3-band file or three 1-band files; see MARSUVW for details.
The output of MARSUVWPROJ is a single 3-band file of type REAL (a surface
normal, like the input). It should support outputting 3 1-band files as
well, but his has not been implemented.
EXECUTION:
marsuvwproj inp=data.uvw out=proj.uvw angle=-6.777289
where:
data.uvw is an input 3-band image of type REAL with the U, V, and W components
of the unit vector for each pixel.
METHOD:
The algorithm to compute the projection is as follows:
* Convert UVW to the frame specified by COORD et al, if necessary. This should
be the rover frame for the Opportunity case.
* Construct a rotation quaternion representing a rotation of the specified
angle around the +Z axis. Other rotations may be supported in the future.
* Rotate the UVW vectors by the negative of the rotation quaternion. This
aligns the plane with the X-Z plane.
* Zero out the Y component of the normal. This projects it to the X-Z plane.
* Undo the rotation by using the quaternion.
* Normalize the result to get a unit vector.
HISTORY:
09-22-08 Initial version by B. Deen.
COGNIZANT PROGRAMMER: B. Deen
PARAMETERS:
INP
Input UVW images.
Must be 1 3-band file
or (u,v,w) triplet.
OUT
Output file.
Mast be 1 filename.
NAVTABLE
Corrected navigation
filename.
ANGLE
Angle of rotation for
projection plane.
CONFIG_PATH
Path used to find
configuration/calibration
files.
POINT_METHOD
Specifies a mission-
specific pointing
method to use
NOSITE
Disables coordinate
system sites.
RSF
Rover State File(s) to use.
DEBUG_RSF
Turns on debugging of RSF
parameter.
COORD
Coordinate system to use.
COORD_INDEX
Coordinate system index for
some COORD/mission combos.
FIXED_SITE
Which site is FIXED for
rover missions.
SOLUTION_ID
Solution ID to use for
COORD_INDEX
DATA_SET_NAME
Specifies the full name given
to a data set or a data product.
DATA_SET_ID
Specifies a unique alphanumeric
identifier for a data set or data
product.
RELEASE_ID
Specifies the unique identifier
associated with the release to the
public of all or part of a data set.
The release number is associated with
the data set, not the mission.
PRODUCT_ID
Specifies a permanent, unique
identifier assigned to a data
product by its producer.
PRODUCER_ID
Specifies the unique identifier
of an entity associated with the
production a data set.
PRODUCER_INST
Specifies the full name of the
identity of an entity associated
with the production of a data set.
TARGET_NAME
Specifies a target.
TARGET_TYPE
Specifies the type of a named target.
See Examples:
Cognizant Programmer: