KPL/IK ONC Instrument kernel =========================================================================== This instrument kernel (I-kernel) contains MRO Optical Navigation Camera (ONC) optics, detector, and field-of-view parameters. Version and Date --------------------------------------------------------------------------- Version 1.0 -- May 31, 2007 -- Boris Semenov, NAIF/JPL Initial release. References --------------------------------------------------------------------------- 1. ``Kernel Pool Required Reading'' 2. ``C-kernel Required Reading'' 3. MRO Frames Definition Kernel (FK), latest version. 4. MRO ONC PDR Package, May 8, 2002. 5. MRO Mission Plan, Rev C: General Release, October 2006. 6. E-mails from Nick Mastrodemos, 05/10/07 and 05/31/07 7. ``Cassini ISS Geometric Calibration of April 2003'', W. M. Owen, Jr., May 9, 2003 Implementation Notes -------------------------------------------------------- Applications that need SPICE I-kernel data must ``load'' the I-kernel file, normally during program initialization. Loading the kernel using the SPICELIB routine FURNSH causes the data items and their associated values present in the kernel to become associated with a data structure called the ``kernel pool''. The application program may then obtain the value(s) for any IK data item using the SPICELIB routines GDPOOL, GIPOOL, GCPOOL. Routine GETFOV may be used if the file contains instrument field-of-view (FOV) specification. See [1] for details. This file was created with, and can be updated with a text editor or word processor. Conventions for Specifying Data -------------------------------------------------------- Data items are specified using ``keyword=value'' assignments [1]. All keywords referencing values in this I-kernel start with the characters `INS' followed by the NAIF MRO instrument ID code, constructed using the spacecraft ID number (-74) followed by the NAIF three digit ID number for ONC (030). This ID is defined in [3] as follows: Instrument name ID -------------------- ------- MRO_ONC -74030 The remainder of the keyword is an underscore character followed by the unique name of the data item. For example, the focal length of the ONC is specified by INS-74030_FOCAL_LENGTH The upper bound on the length of all keywords is 32 characters. If a keyword is included in more than one file, or if the same keyword appears more than once within a single file, the last assignment supersedes any earlier assignments. Overview -------------------------------------------------------- From [5]: The Optical Navigation Camera (ONC) carried on board MRO is part of a technology demonstration experiment This investigation is lead by Steve Synnott from the Jet Propulsion Laboratory. During the Approach Phase, from 30 days to 2 days prior to Mars Orbit Insertion, the camera will acquire images of Mars and its moons -- Phobos and Deimos. By comparing the observed position of the moons to their predicted positions, relative to the background stars, the experiment team will accurately determine the position of the orbiter in relation to Mars. While not required for MRO navigation, the data from this experiment will be used to demonstrate that this technique can be used by future future landers and rovers needing high precision landing. The level of accuracy to be gained by this technique is important to many future landers and rovers needing. The camera is located on the aft deck of the orbiter and will be pointed in the direction of Mars during approach. This allows the orbiter to acquire the appropriate Optical Navigation frames, while minimizing the amount of slewing required by the orbiter. This camera has an aperture of 6 cm, and a 1.4-degree square field-of-view. The spacecraft will command shutter times and exposure durations via sequences that are generated on the ground. Mounting Alignment -------------------------------------------------------- Refer to the latest version of the MRO Frames Definition Kernel (FK) [3] for the ONC reference frame definitions and mounting alignment information. Apparent FOV Layout -------------------------------------------------------- This section provides a diagram illustrating the ONC apparent FOV layout in the corresponding reference frame. line 1, pixel 1 line 1, pixel 1024 --- *-------------------+ ^ | | | 1.41 deg | | | | | | | | +Xonc | 1024 | x-------------> | lines | +Zonc | | | | | | | | | | V | | | --- +---------|---------+ | line 1024, pixel 1024 | V +Yonc 1024 pixels/line | 1.41 deg | Boresight (+Zonc axis) |<----------------->| is into the page | | Note that shown pixel locations are NOT for the raw ONC image but for the raw image ``flipped'' about vertical centerline. Optical Parameters -------------------------------------------------------- The following ONC first order optical parameters are included in the data section below (all values except the focal length are nominal values from [4]; the focal length is from [6]): ----------------------------------------------------------------- parameter ----------------------------------------------------------------- Focal Length, mm 501.5220 IFOV, rad/pixel 0.000024 Field of view (deg) 1.41 x 1.41 ----------------------------------------------------------------- The keywords below provide nominal data. Angular size values in the keywords are given in radians, with the height being the first value and the width being the second value in each pair. \begindata INS-74030_FOCAL_LENGTH = ( 501.5220 ) INS-74030_FOV_ANGULAR_SIZE = ( 1.41, 1.41 ) INS-74030_IFOV = ( 0.000024, 0.000024 ) \begintext CCD Parameters -------------------------------------------------------- The ONC CCD detector has the following nominal geometry parameters, from [4]: ----------------------------------------------------------------- parameter value note ----------------------------------------------------------------- Pixel Size, microns 12 x 12 Detector Array Size Lines 1024 Samples 1024 Detector Array Center 511.5, 511.5 ----------------------------------------------------------------- The values are given in microns for PIXEL_SIZE keywords and in counts for PIXEL_SAMPLES, PIXEL_LINES, and CENTER keywords. \begindata INS-74030_PIXEL_SIZE = ( 12, 12 ) INS-74030_PIXEL_SAMPLES = ( 1024 ) INS-74030_PIXEL_LINES = ( 1024 ) INS-74030_CCD_CENTER = ( 512.5, 512.5 ) \begintext FOV Definitions --------------------------------------------------------------------------- This section contains definition of the ONC FOV. This definition is provided in the format required by the SPICE (CSPICE) function GETFOV (getfov_c). The set of assignments in the data section below defines the ONC with respect to the MRO_ONC frame to be a rectangle with the corners defined by the first and last pixels of the first and last lines of the CCD and the boresight along the +Z axis of the MRO_ONC frame. This FOV definition uses angular extent style specification with the cross and along track angular sizes taken from the ``Optics Parameters'' section above. \begindata INS-74030_FOV_FRAME = 'MRO_ONC' INS-74030_FOV_SHAPE = 'RECTANGLE' INS-74030_BORESIGHT = ( 0.000000 0.000000 1.000000 ) INS-74030_FOV_CLASS_SPEC = 'ANGLES' INS-74030_FOV_REF_VECTOR = ( 1.000000 0.000000 0.000000 ) INS-74030_FOV_REF_ANGLE = ( 0.705 ) INS-74030_FOV_CROSS_ANGLE = ( 0.705 ) INS-74030_FOV_ANGLE_UNITS = 'DEGREES' \begintext Optical Distortion -------------------------------------------------------- The following distortion model has been used by the MRO ONC team for this camera during the mission (based on [7]; according to Bill Owen MRO ONC team used the same camera model as Cassini OPNAV): A 3d vector (P) in the camera frame is mapped into sample and line (S,L) coordinates by: ( X ) FL ( P(1) ) ( ) = ------ ( ) ( Y ) P(3) ( P(2) ) 2 2 2 R = X + Y ( dX ) ( X*R*R X*Y X*X ) ( E2 ) ( ) = ( ) ( E5 ) ( dY ) ( Y*R*R Y*Y X*Y ) ( E6 ) ( S ) ( Kx Kxy ) ( X + dX ) ( S0 ) ( ) = ( ) ( ) + ( ) ( L ) ( Kyx Ky ) ( Y + dY ) ( L0 ) where FL is the camera focal length in mm; the E(i) are coefficients of the cubic radial distortion and detector misalignment; the matrix K maps millimeters to pixels in the focal plane; and (S0,L0) are the focal plane coordinates of the optical axis. The following ONC optical distortion parameters for this model were provided by Nick Mastrodemos, MRO ONC team ([6]): Detector center P0,L0=[512.5,512.5] Focal length = 501.5220 KMAT(1,1) = 83.3333 (KX) KMAT(2,1) = 7.60639D-04 (KYX) KMAT(2,2) = -83.3388, (KY) EM(2) = -1.02560D-04, EM(5) = -2.09311D-05, EM(6) = +2.69254D-05, This data is provided in the data block below. Note this model applies to the raw ``un-flipped'' ONC images. \begindata INS-74030_CCD_CENTER = ( 512.5, 512.5 ) INS-74030_FOCAL_LENGTH = 501.5220 INS-74030_KMAT = ( 83.3333, 7.60639E-04, 0.0, -83.3388 ) INS-74030_EM = ( -1.02560E-04, -2.09311E-05, 2.69254E-05, ) \begintext This small fragment of SPICE-based FORTRAN code illustrates how these parameters can be loaded into an application and used to compute sample and line in a raw ``un-flipped'' ONC image for a 3d vector defined in the camera frame, MRO_ONC: C C Retrieve loaded camera distortion parameters. C CALL GDPOOL ( 'INS-74030_FOCAL_LENGTH', 1, 1, N, FL, FND1 ) CALL GDPOOL ( 'INS-74030_KMAT', 1, 4, N, KMAT, FND2 ) CALL GDPOOL ( 'INS-74030_EM', 1, 3, N, EM, FND3 ) CALL GDPOOL ( 'INS-74030_CCD_CENTER', 1, 2, N, CNTR, FND4 ) C C Given 3d vector VECTOR in the camera frame, 'MRO_ONC', C compute ideal X and Y in sample/line space. C CALL VSCLG ( FL / VECTOR(3), VECTOR, 2, XYIDL ) C C Construct XYR2 matrix. C R2 = XYIDL(1)**2 + XYIDL(2)**2 XYRMAT(1,1) = XYIDL(1) * R2 XYRMAT(2,1) = XYIDL(2) * R2 XYRMAT(1,2) = XYIDL(1) * XYIDL(2) XYRMAT(2,2) = XYIDL(2) * XYIDL(2) XYRMAT(1,3) = XYIDL(1) * XYIDL(1) XYRMAT(2,3) = XYIDL(1) * XYIDL(2) C C Compute delta X and Y. C CALL MXVG ( XYRMAT, EM, 2, 3, XYDLT ) C C Compute line sample, SL, in the raw ``un flipped''ONC image, C corresponding to the input view vector. C CALL VADDG( XYIDL, XYDLT, 2, XY ) CALL MXVG ( KMAT, XY, 2, 2, SLREL ) CALL VADDG( SLREL, CNTR, 2, SL ) Platform ID --------------------------------------------------------------------------- This number is the NAIF instrument ID of the platform on which the camera is mounted. For ONC this platform is the spacecraft. \begindata INS-74030_PLATFORM_ID = ( -74000 ) \begintext