KPL/FK Milani Spacecraft Frames Kernel ============================================================================= This frame kernel contains complete set of frame definitions for Milani, including definitions for the Milani fixed and Milani science instrument frames. This kernel also contains NAIF ID/name mapping for the Milani science instruments and s/c structures (see the last section of the file). Version and Date ----------------------------------------------------------------------------- Version 0.0 -- May 24, 2022 -- Alfredo Escalante Lopez, ESAC/ESA Preliminary Version. Only basic ID and frame definitions. References ----------------------------------------------------------------------------- 1. ``Frames Required Reading'' 2. ``Kernel Pool Required Reading'' 3. ``C-Kernel Required Reading'' Contact Information ----------------------------------------------------------------------------- If you have any questions regarding this file contact the ESA SPICE Service at ESAC: Alfredo Escalante Lopez (+34) 91-8131-429 spice@sciops.esa.int Implementation Notes ----------------------------------------------------------------------------- This file is used by the SPICE system as follows: programs that make use of this frame kernel must "load" the kernel normally during program initialization. Loading the kernel associates the data items with their names in a data structure called the "kernel pool". The SPICELIB routine FURNSH loads a kernel into the pool as shown below: FORTRAN: (SPICELIB) CALL FURNSH ( frame_kernel_name ) C: (CSPICE) furnsh_c ( frame_kernel_name ); IDL: (ICY) cspice_furnsh, frame_kernel_name MATLAB: (MICE) cspice_furnsh ( 'frame_kernel_name' ) PYTHON: (SPICEYPY)* furnsh( frame_kernel_name ) In order for a program or routine to extract data from the pool, the SPICELIB routines GDPOOL, GIPOOL, and GCPOOL are used. See [2] for more details. This file was created and may be updated with a text editor or word processor. * SPICEYPY is a non-official, community developed Python wrapper for the NAIF SPICE toolkit. Its development is managed on Github. It is available at: https://github.com/AndrewAnnex/SpiceyPy Milani Mission NAIF ID Codes ----------------------------------------------------------------------------- The following names and NAIF ID codes are assigned to the Milani spacecraft, its structures and science instruments (the keywords implementing these definitions are located in the section "Milani Mission NAIF ID Codes -- Definition Section" at the end of this file): Milani Spacecraft and Spacecraft Structures names/IDs: MILANI -99902 MILANI_SPACECRAFT -99902000 (synonym: MILANI_SC) Milani Mission Frames ----------------------------------------------------------------------------- The following Milani frames are defined in this kernel file: Name Relative to Type NAIF ID ====================== ======================== ========== ========= Spacecraft frames: ------------------ MILANI_SPACECRAFT J2000 CK -99902000 ASPECT frames: -------------- MILANI_ASPECT_VIS MILANI_SPACECRAFT FIXED -99902110 MILANI_ASPECT_NIR1 MILANI_SPACECRAFT FIXED -99902120 MILANI_ASPECT_NIR2 MILANI_SPACECRAFT FIXED -99902130 MILANI_ASPECT_SWIR MILANI_SPACECRAFT FIXED -99902140 Milani Frames Hierarchy ----------------------------------------------------------------------------- The diagram below shows the Milani spacecraft and its structures frame hierarchy (not including science instrument frames.) "J2000" INERTIAL +----------------------------------------------------+ | | | |<-pck | |<-pck | | | V | V "EARTH_FIXED" | "DIDYMOS_FIXED" ------------- | --------------- | | |<-ck |<-dynamic | | V V "MILANI_SPACECRAFT" "DIMORPHOS_FIXED" ------------------- ----------------- . | . |<-dynamic . | . V . "DIMORPHOS_IMPACT_TOPO" . ----------------------- . V Individual instrument frame trees are provided in the corresponding sections of this file Milani Spacecraft and Spacecraft Structures Frames ======================================================================== This section of the file contains the definitions of the spacecraft and spacecraft structures frames. Milani Spacecraft Frame -------------------------------------- The Milani spacecraft frame is defined as follows: - +Z axis is along the nominal boresight direction of the imager; - +Y axis is along the right solar array direction; - +Z axis completes the right-hand frame; - the origin of this frame is the launch vehicle interface point. These diagrams illustrate the MILANI_SPACECRAFT frame: -Z s/c side view: ----------------- .__ __..___________. ._______. .___________..__ ___. | / / || | | | | || / / | | / / || | . . | || \ \ | | \ \ || | |.-----.| | || / / | | / / || |o||+Xsc ||o| || \ \ | | \ \ || | ||__^__|| | || / / | | / / || | | | | | || / / | .__\ \_..___________. .___|___. .___________..__\ \__. x-------> +Ysc +Zsc +Zsc is in the the page. +Z s/c side (science deck side) view: ------------------------------------- ^ | toward asteroid | Science Deck +Zsc .___^___. | | | | | | +Ysc o==/ /==-============---o| o---|o->-===========-=/ /==o -Y Solar Array | +Xsc | +Y Solar Array ._______. +Xsc is out of the page. Since the orientation of the MILANI_SPACECRAFT frame is computed on-board, sent down in telemetry, and stored in the s/c CK files, it is defined as a CK-based frame. \begindata FRAME_MILANI_SPACECRAFT_D1 = -99902000 FRAME_-99902000_NAME = 'MILANI_SPACECRAFT_D1' FRAME_-99902000_CLASS = 3 FRAME_-99902000_CLASS_ID = -99902000 FRAME_-99902000_CENTER = -99902 CK_-99902000_SCLK = -99902 CK_-99902000_SPK = -99902 FRAME_MILANI_SPACECRAFT_D2 = -99902001 FRAME_-99902001_NAME = 'MILANI_SPACECRAFT_D2' FRAME_-99902001_CLASS = 3 FRAME_-99902001_CLASS_ID = -99902001 FRAME_-99902001_CENTER = -99902 CK_-99902001_SCLK = -99902 CK_-99902001_SPK = -99902 FRAME_MILANI_SPACECRAFT = -99902 FRAME_-99902_NAME = 'MILANI_SPACECRAFT' FRAME_-99902_CLASS = 4 FRAME_-99902_CLASS_ID = -99902 FRAME_-99902_CENTER = -99902 TKFRAME_-99902_RELATIVE = 'MILANI_SPACECRAFT_D1' TKFRAME_-99902_SPEC = 'ANGLES' TKFRAME_-99902_UNITS = 'DEGREES' TKFRAME_-99902_AXES = ( 1, 2, 3 ) TKFRAME_-99902_ANGLES = ( 0.0, 0.0, 0.0 ) \begintext ASPECT Frames ------------------------------------------------------------------------ This section of the file contains the definitions of the Asteroid Spectral Imager (ASPECT) instrument frames. ASPECT Frame Tree ~~~~~~~~~~~~~~~~~ The diagram below shows the ASPECT frame hierarchy. "J2000" INERTIAL .... ---------------------------------- ... | | |<-ck | V "MILANI_SPACECRAFT" +----------------------------------------------------------+ | | | | |<-fixed |<-fixed |<-fixed |<-fixed | | | | v | | v "MILANI_ASPECT_VIS" | | "MILANI_ASPECT_SWIR" ------------------- | | -------------------- v v "MILANI_ASPECT_NIR1" "MILANI_ASPECT_NIR2" -------------------- -------------------- ASPECT VIS, NIR1, NIR2 and SWIR Frames ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Asteroid Spectral Imager (ASPECT) is rigidly mounted on the spacecraft Science Deck. Therefore, the frames associated with it -- the MILANI_ASPECT_VIS, MILANI_ASPECT_NIR1, MILANI_ASPECT_NIR2 and MILANI_ASPECT_SWIR -- are specified as fixed offset frames with its orientation given relative to the MILANI_SPACECRAFT frame. The ASPECT frames are defined as follows: - +Z axis are along the nominal boresight direction of the imager, and they are nominally co-aligned with the spacecraft +Z axis; - +Y axis is along the right solar array direction, and they are nominally co-aligned with the spacecraft +Y axis; # TODO: Specify Y axis in relation to ASPECT CCD ROWS or COLUMNS - +X axis completes the right-hand frame, and they are nominally co-aligned with the spacecraft +X axis; # TODO: Specify X axis in relation to ASPECT CCD ROWS or COLUMNS - the origin of this frame is the launch vehicle interface point. These diagrams illustrate the nominal ASPECT frames with respect to the spacecraft frame. -Z s/c side view: ----------------- .__ __..___________. ._______. .___________..__ ___. | / / || | | +Xasp | | || / / | | / / || | . ^ . | || \ \ | | \ \ || | |.--|--.| | || / / | | / / || |o|| | ||o| || \ \ | | \ \ || | ||__x-------> +Yasp || / / | | / / || | | +Zasp | | || / / | .__\ \_..___________. .___ ___. .___________..__\ \__. +Zasp is in the the page. +Z s/c side (science deck side) view: ------------------------------------- ^ | toward asteroid | +Zasp ^ | .___|___. | o-----> +Yasp | +Xasp | o==/ /==-============---o| |o---===========-=/ /==o -Y Solar Array | | +Y Solar Array ._______. +Xasp is out of the page. Nominally the MILANI_ASPECT_VIS, MILANI_ASPECT_NIR1, MILANI_ASPECT_NIR2 and MILANI_ASPECT_SWIR frames are equivalent to the MILANI_SPACECRAFT frame. Since the SPICE frames subsystem calls for specifying the reverse transformation--going from the instrument or structure frame to the base frame--as compared to the description given above, the order of rotations assigned to the TKFRAME_*_AXES keyword is also reversed compared to the above text, and the signs associated with the rotation angles assigned to the TKFRAME_*_ANGLES keyword are the opposite from what is written in the above text. \begindata FRAME_MILANI_ASPECT_VIS = -99902110 FRAME_-99902110_NAME = 'MILANI_ASPECT_VIS' FRAME_-99902110_CLASS = 4 FRAME_-99902110_CLASS_ID = -99902110 FRAME_-99902110_CENTER = -99902 TKFRAME_-99902110_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902110_SPEC = 'ANGLES' TKFRAME_-99902110_UNITS = 'DEGREES' TKFRAME_-99902110_AXES = ( 3, 2, 1 ) TKFRAME_-99902110_ANGLES = ( 0.0, 0.0, 0.0 ) FRAME_MILANI_ASPECT_NIR1 = -99902120 FRAME_-99902120_NAME = 'MILANI_ASPECT_NIR1' FRAME_-99902120_CLASS = 4 FRAME_-99902120_CLASS_ID = -99902120 FRAME_-99902120_CENTER = -99902 TKFRAME_-99902120_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902120_SPEC = 'ANGLES' TKFRAME_-99902120_UNITS = 'DEGREES' TKFRAME_-99902120_AXES = ( 3, 2, 1 ) TKFRAME_-99902120_ANGLES = ( 0.0, 0.0, 0.0 ) FRAME_MILANI_ASPECT_NIR2 = -99902130 FRAME_-99902130_NAME = 'MILANI_ASPECT_NIR2' FRAME_-99902130_CLASS = 4 FRAME_-99902130_CLASS_ID = -99902130 FRAME_-99902130_CENTER = -99902 TKFRAME_-99902130_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902130_SPEC = 'ANGLES' TKFRAME_-99902130_UNITS = 'DEGREES' TKFRAME_-99902130_AXES = ( 3, 2, 1 ) TKFRAME_-99902130_ANGLES = ( 0.0, 0.0, 0.0 ) FRAME_MILANI_ASPECT_SWIR = -99902140 FRAME_-99902140_NAME = 'MILANI_ASPECT_SWIR' FRAME_-99902140_CLASS = 4 FRAME_-99902140_CLASS_ID = -99902140 FRAME_-99902140_CENTER = -99902 TKFRAME_-99902140_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902140_SPEC = 'ANGLES' TKFRAME_-99902140_UNITS = 'DEGREES' TKFRAME_-99902140_AXES = ( 3, 2, 1 ) TKFRAME_-99902140_ANGLES = ( 0.0, 0.0, 0.0 ) \begintext Milani NAIF ID Codes to Name Mapping ------------------------------------------------------------------------------ This section contains name to NAIF ID mappings for the Milani CubeSat. Once the contents of this file is loaded into the KERNEL POOL, these mappings become available within SPICE, making it possible to use names instead of ID code in the high level SPICE routine calls. Spacecraft: ---------------------------------------------------------------- This table presents the Milani Spacecraft and its main structures' names. --------------------- --------- -------------------------- Name ID Synonyms --------------------- --------- -------------------------- MILANI -99902 MILANI_SPACECRAFT -99902000 MILANI_SC --------------------- --------- -------------------------- Notes: -- 'MILANI_SC' and 'MILANI_SPACECRAFT' are synonyms and all map to the Milani s/c bus structure ID (-999000); \begindata NAIF_BODY_NAME += ( 'MILANI' ) NAIF_BODY_CODE += ( -99902 ) NAIF_BODY_NAME += ( 'MILANI_SC' ) NAIF_BODY_CODE += ( -99902000 ) NAIF_BODY_NAME += ( 'MILANI_SPACECRAFT' ) NAIF_BODY_CODE += ( -99902000 ) \begintext ASPECT: ---- This table summarizes ASPECTs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_ASPECT_VIS -99902110 MILANI_ASPECT_NIR1 -99902120 MILANI_ASPECT_NIR2 -99902130 MILANI_ASPECT_SWIR -99902140 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_ASPECT_VIS' ) NAIF_BODY_CODE += ( -99902110 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_NIR1' ) NAIF_BODY_CODE += ( -99902120 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_NIR2' ) NAIF_BODY_CODE += ( -99902130 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_SWIR' ) NAIF_BODY_CODE += ( -99902140 ) \begintext End of FK file.