<<

N IF Navigation and Ancillary Information Facility

Using the Frames Subsystem

January 2020 N IF What is the Power of Frames? Navigation and Ancillary Information Facility

• The “power” of the Frames capability stems from the SPICE system’s ability to construct complex reference frame transformations with no programming effort required of you - the end user – But it’s crucial that you select and load the needed kernels

• The principal benefit from the Frames capability is obtained through the main SPK subsystem interfaces (SPKEZR and SPKPOS) and the Frames subsystem interfaces (SXFORM, PXFORM, PXFRM2)

• The remaining pages illustrate typical use of frames

• Several VERY IMPORTANT usage issues are mentioned in the Frames tutorial; be sure to also read that.

Using Frames 2 N IF Offset Between Instruments Navigation and Ancillary Information Facility

Required Kernels: Misalignment •Generic LSK angle between ISS •Mission FK ISS NAC camera boresights •Camera IK(s) CASSINI Frame NAC Boresight

ISS WAC Frame WAC Boresight S/C Frame ISS = Imaging Science System

Compute the angular separation between the Cassini ISS Narrow Angle Camera and Wide Angle Camera boresights:

C Retrieve the matrix that transforms vectors from NAC to WAC frame CALL PXFORM( ‘CASSINI_ISS_NAC’, ‘CASSINI_ISS_WAC’, ET, MAT ) C Transform NAC boresight to WAC frame and find separation angle CALL MXV ( MAT, NAC_BORESIGHT_nac, NAC_BORESIGHT_wac ) Fortran ANGLE = VSEP( NAC_BORESIGHT_wac , WAC_BORESIGHT_wac ) example Using Frames 3 N IF Angular Constraints Navigation and Ancillary Information Facility

Required Kernels: J2000 •Generic LSK Frame Sun direction •Mission FK CASSINI in the NAC frame Barycenter •Spacecraft SCLK ISS NAC •Camera IK Frame •Planetary Angle between NAC Boresight Ephemeris SPK S/C and Sun direction Frame •Spacecraft SPK •Spacecraft CK Saturn System Barycenter NAC Boresight

Check whether the angle between the camera boresight and the direction to the Sun is within the allowed range: CALL SPKPOS( ‘SUN’, ET, ‘CASSINI_ISS_NAC’, ‘LT+S’, ‘CASSINI’, SUNVEC, LT ) ANGLE = VSEP( NAC_BORESIGHT_nac, SUNVEC ) IF ( ANGLE .LE. CONSTRAINT ) WRITE(*,*) ‘WE ARE IN TROUBLE!’ Fortran example

Using Frames 4 N IF Angles at the Surface Navigation and Ancillary Information Facility

J2000 Solar System Barycenter Required Kernels: Frame •Generic LSK Saturn System Barycenter •Generic PCK Sun •Mission FK •Planetary Solar Saturn Ephemeris SPK Sun Direction EL •Satellite In Local Level Solar Ephemeris SPK Frame AZ Titan •Landing Site SPK Local Level Titan‘s IAU Cassini Frame at the Spacecraft probe Landing Body-fixed Site frame

Compute solar and elevation at the Huygens probe landing site CALL SPKPOS(‘SUN’,ET,‘HUYGENS_LOCAL_LEVEL’,‘LT+S’,‘HUYGENS_PROBE’,SUNVEC,LT) CALL RECLAT(SUNVEC, R, AZIMUTH, ELEVATION) ELEVATION = -ELEVATION IF (AZIMUTH .LT. 0.D0) THEN Fortran example AZIMUTH = AZIMUTH + TWOPI() ENDIF

Using Frames 5 N IF Relative Position of Sensors Navigation and Ancillary Information Facility

Required Kernels: MAG+Y •Generic LSK frame •Mission FK MAG-Y position relative to MAG+Y •Structure Locations SPK •Spacecraft SCLK •Solar Array CK +Y Gimbal frame MAG-Y frame S/C Frame -Y Hinge -Y Gimbal frame frame

Find the position of one MGS MAG sensor with respect to the other in the MGS s/c frame. Also find the relative orientation of the sensors: CALL SPKEZR(‘MGS_MAG-Y’, ET, ‘MGS_SPACECRAFT’, ‘NONE’, ‘MGS_MAG+Y’, STATE, LT) CALL PXFORM(‘MGS_MAG_+Y_SENSOR’, ‘MGS_MAG_-Y_SENSOR’, ET, MAT) Fortran example Using Frames 6 N IF Manipulators - 1 Navigation and Ancillary Information Facility MGS Required Kernels: •Generic LSK •Mission FK S/C Frame •Spacecraft SCLK •HGA IK HGA Hinge HGA •Structure frame frame Locations SPK Mars HGA Gimbal frame •Planetary J2000 MGS HGA Ephemeris SPK Frame off-pointing •Spacecraft SPK angle Sun •Spacecraft CK •HGA CK

SSB J2000 HGA = High Gain Antenna Frame Compute the angle between the direction to Earth and the MGS HGA boresight: CALL SPKEZR( ‘EARTH’, ET, ‘MGS_HGA’, ‘LT+S’, ‘MGS’, EARTH_STATE, LT ) ANGLE = VSEP( HGA_BORESIGHT, EARTH_STATE ) Fortran example Using Frames 7 N IF Manipulators - 2 Navigation and Ancillary Information Facility

RA J2 SSI Frame Required Kernels: Frame Dig Location in SSI Frame •Generic LSK SSI Camera •Mission FK RA Scoop head Frame Frame •Lander SCLK •Structure RA J1 Locations SPK Frame Dig Location •Lander SPK in Surface fixed MVACS frame Frame •Lander CK •SSI CK •RA CK

Surface-fixed Frame

Compute the soil digging location in the MPL surface-fixed and Fortran camera left eye frames: example CALL SPKEZR( ‘MPL_RA_SCOOP’,ET,‘MPL_SURFACE_FIXED’,‘NONE’,‘MPL_SURF’,ST1,LT ) CALL SPKEZR( ‘MPL_RA_SCOOP’,ET,‘MPL_SSI_LEFT’, ‘NONE’,‘MPL_SSI’, ST2,LT ) Using Frames 8