Help for MSLREACH
PURPOSE:
MSLREACH computes the "reachability" for 5 different MSL Arm instruments
at each pixel. The result is a map show which pixels can be reached by each
instrument in each of its various configuration modes.
Additionally, MSLREACH can compute the min/max preload values for the drill
instrument.
*** THIS IS AN MSL-SPECIFIC PROGRAM ***
The inputs for MSLREACH are the XYZ image (created by MARSXYZ) and the
surface normal (UVW) image (created by MARSUVW).
EXECUTION:
mslreach inp=data.xyz out=data.reach uvw=data.uvw preload=data.preload
where:
data.xyz is an input 3-band image of type REAL with the X, Y and Z values
at that pixel in meters (the unit is actually irrelevant).
data.uvw is an input 3-band image of type REAL with the U, V, and W components
of the surface normal unit vector for each pixel.
data.reach is an output 5-band image of type HALF
data.preload is an optional output 2- or 8-band image of type HALF
OUTPUT FILE FORMATS:
The reachability output is a single 5-band file in half (16-bit int) format.
Each band corresponds to an instrument, which are listed in INSTRUMENT_BAND_ID.
They are, in order:
Band Instrument
---- ----------
1 DRILL
2 DRT (Dust Removal Tool)
3 MAHLI
4 APXS
5 SCOOP_TIP
For each instrument, there are 8 possible arm configurations. Each
configuration contains 2 bits of data, which define a degree of reachability,
from 00 (not reachable) to 11 (easily reachable):
Decimal Binary Description
------- ------ -----------
0 00 Not reachable
1 01 Reachability quality 1
2 10 Reachability quality 2
3 11 Reachability quality 3 (best)
These two bits for each of the 8 configurations are packed into the 16-bit
integer in the file. In the table below, 15=MSB and 0=LSB
Bit Numbers Configuration
----------- -------------
15-14 Shoulder Out, Elbow Up, Wrist Up
13-12 Shoulder Out, Elbow Up, Wrist Down
11-10 Shoulder Out, Elbow Down, Wrist Up
9-8 Shoulder Out, Elbow Down, Wrist Down
7-6 Shoulder In, Elbow Up, Wrist Up
5-4 Shoulder In, Elbow Up, Wrist Down
3-2 Shoulder In, Elbow Down, Wrist Up
1-0 Shoulder In, Elbow Down, Wrist Down
The order is also defined in CONFIGURATION_BIT_ID.
The (optional) Preload output file consists of 2 or 8 bands in HALF (16-bit
integer) format. Which you get is controlled by the TYPE_PRELOAD parameter.
The default is EIGHT_BAND. This creates an 8-band product where each band
represents an arm configuration. The value is the maximum allowable preload,
in Newtons, that can be applied by the drill at that point when in the given
configuration. The configurations are defined in CONFIGURATION_BAND_ID and
are in the same order as listed above (Shoulder Out, Elbow Up, Wrist Up is
first).
The TWO_BAND preload is an older 2-band format. These bands represent the
minimum (band=1) and maximum (band=2) allowable preload, in Newtons, that can
be applied by the drill at that point.
For both reachability and preload products, the geometry of the image matches
that of the input XYZ file (and the UVW file, which should match the XYZ).
The input files can be expressed in any coordinate system supported by PIG
as long as they are properly labeled. However, normally XYZ will be expressed
in Site frame and UVW in Rover Nav frame. Either Left-side or Right-side
XYZ/UVW files may be used, but the XYZ and UVW must be consistent (using the
same eye).
A mask file may optionally be provided; the XYZ's are masked off using this
file if present (0 means to let the pixel through; 255 means to remove it).
This removes the rover from consideration for the arm collision detection
algorithm (see TERRAIN). See marsfilter for more on masking.
METHOD:
Algorithm description TBD. Flight software kinematic models of the arm
are used.
The APPROACH, OVERDRIVE, and TWEAK parameters control how the reachability
model works. Descriptions of these parmaeters are TBD.
Collision detection of the arm with the terrain is not yet implemented for
MSL. The TERRAIN parameter will turn it on or off, once it is implemented.
The MASK parameter can specify a file to use as a mask to remove pixels from
consideration by this collision detection (it also removes those pixels from
the output). FILTER is likewise not implemented yet.
The actual algorithm and core code was developed by Chris Leger of
Section 347.
HISTORY:
2011-06-16 Initial mslreach wrapper by B. Deen, based on marsreach (MER program)
2012-03-01 Support 8 bands, update to FSW 10.5
COGNIZANT PROGRAMMER: B. Deen
PARAMETERS:
INP
Input images.
Must be 1 3-band file
or (x,y,z) triplet.
OUT
Output reachability file.
UVW
Input normal image.
Must be 1 3-band file
or (u,v,w) triplet.
PRELOAD
Output preload file.
MASK
Input mask image (optional).
Used to filter out the XYZ's.
NAVTABLE
Corrected navigation
filename.
APPROACH
Arm parameter.
Description TBD.
OVERDRIVE
Arm parameter.
Description TBD.
TWEAK
Arm parameter (degrees).
Description TBD.
TYPE_PRELOAD
Specify 8-band (default)
or 2-band preload format.
EVR
Selects level of EVR
reporting.
TERRAIN
Whether or not to do
terrain collision
checking.
FILTER
Whether or not to use
built-in filtering.
CONFIG_PATH
Path used to find
configuration/calibration
files.
POINT_METHOD
Specifies a mission-
specific pointing
method to use
NOSITE
Disables coordinate
system sites.
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.
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
See Examples:
Cognizant Programmer: