-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.3 -- June 7, 2024 -- Alfredo Escalante Lopez, ESAC/ESA Corrected name of MILANI_STR reference frame. Version 0.2 -- September 21, 2023 -- Rafael Andres Blasco, ESAC/ESA Ricardo Valles, ESAC/ESA Updated Hera ID according to one provided by DSN and confirmed by FDy: from -999 to -91. Added STR reference frames and NAIF ID/body definitions. Version 0.1 -- May 26, 2023 -- Alfredo Escalante Lopez, ESAC/ESA Corrected reference frames diagrams and added VISTA, NAVCAM, LIDAR and MLRH reference frames and NAIF ID/body definitions. 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 or NAIF at JPL: Boris Semenov +1 (818) 354-8136 Boris.Semenov@jpl.nasa.gov 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 -9102 MILANI_SPACECRAFT -9102000 (synonym: MILANI_SC) Milani ASPECT IDs: MILANI_ASPECT_VIS -9102110 MILANI_ASPECT_NIR1 -9102120 MILANI_ASPECT_NIR2 -9102130 MILANI_ASPECT_SWIR -9102140 Milani VISTA IDs: MILANI_VISTA -9102210 Milani NAVCAM IDs: MILANI_NAVCAM -9102310 Milani LIDAR IDs: MILANI_LIDAR -9102410 Milani Laser Retroreflectors for Hera (MLRH) IDs: MILANI_MLRH_1 -9102511 MILANI_MLRH_2 -9102512 Milani STR IDs: MILANI_STR -9102610 Milani Mission Frames ----------------------------------------------------------------------------- The following Milani frames are defined in this kernel file: Name Relative to Type NAIF ID ====================== ======================== ========== ========= Spacecraft frames: ------------------ MILANI_SPACECRAFT_D1 J2000 CK -9102000 MILANI_SPACECRAFT_D2 J2000 CK -9102001 MILANI_SPACECRAFT MILANI_SPACECRAFT_D1 CK -9102 ASPECT frames: -------------- MILANI_ASPECT_VIS MILANI_SPACECRAFT FIXED -9102110 MILANI_ASPECT_NIR1 MILANI_SPACECRAFT FIXED -9102120 MILANI_ASPECT_NIR2 MILANI_SPACECRAFT FIXED -9102130 MILANI_ASPECT_SWIR MILANI_SPACECRAFT FIXED -9102140 VISTA frames: ------------- MILANI_VISTA MILANI_SPACECRAFT FIXED -9102210 NAVCAM frames: -------------- MILANI_NAVCAM MILANI_SPACECRAFT FIXED -9102310 LIDAR frames: ------------- MILANI_LIDAR MILANI_SPACECRAFT FIXED -9102410 MLRH frames: ------------ MILANI_MLRH_1 MILANI_SPACECRAFT FIXED -9102511 MILANI_MLRH_2 MILANI_SPACECRAFT FIXED -9102512 STR frame: ------------- MILANI_STR MILANI_SPACECRAFT FIXED -9102610 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, pointed toward the asteroid; - +Y axis is along the right solar array direction; - +X axis completes the right-hand frame; - the origin of this frame is the Hera interface point. These diagrams illustrate the MILANI_SPACECRAFT frame: -X s/c side view: ----------------- ^ | toward asteroid | Science Deck .__ __..___________. ._______. .___________..__ ___. | / / || | | | | || / / | | / / || | . . | || \ \ | | \ \ || | |.-----.| | || / / | | / / || |o||+Zsc ||o| || \ \ | | \ \ || | ||__^__|| | || / / | | / / || | | | | | || / / | .__\ \_..___________. .___|___. .___________..__\ \__. +Ysc<--------x +Xsc +Xsc is in the the page. +Z s/c side (science deck side) view: ------------------------------------- +Xsc .___^___. | __|__ | +Ysc |' | '| o==/ /==-============--+Zmlrh2 | | +Ymlrh2 .-| o | +Zmlrh1<----'o+Ymlrh1| | || |+Y Solar Array || | | +Xmlrh1V._____________. +Xsc<--------o +Ysc +Ymlrh1, +Ymlrh2 and +Ysc are out of the page. Nominally the MILANI_MLRH_1 and MILANI_MLRH_2 frames are rotated 90 and 270 degrees respectively with respect to the MILANI_SPACECRAFT frame around +Ysc axis. 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_MLRH_1 = -9102511 FRAME_-9102511_NAME = 'MILANI_MLRH_1' FRAME_-9102511_CLASS = 4 FRAME_-9102511_CLASS_ID = -9102511 FRAME_-9102511_CENTER = -9102 TKFRAME_-9102511_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-9102511_SPEC = 'ANGLES' TKFRAME_-9102511_UNITS = 'DEGREES' TKFRAME_-9102511_AXES = ( 3, 2, 1 ) TKFRAME_-9102511_ANGLES = ( 0.0, -90.0, 0.0 ) FRAME_MILANI_MLRH_2 = -9102512 FRAME_-9102512_NAME = 'MILANI_MLRH_2' FRAME_-9102512_CLASS = 4 FRAME_-9102512_CLASS_ID = -9102512 FRAME_-9102512_CENTER = -9102 TKFRAME_-9102512_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-9102512_SPEC = 'ANGLES' TKFRAME_-9102512_UNITS = 'DEGREES' TKFRAME_-9102512_AXES = ( 3, 2, 1 ) TKFRAME_-9102512_ANGLES = ( 0.0, 90.0, 0.0 ) \begintext STR Frames ------------------------------------------------------------------------ This section of the file contains the definitions of the Star Tracker (STR) instrument frames. STR Frame Tree ~~~~~~~~~~~~~~~~ The diagram below shows the STR frame hierarchy. "J2000" INERTIAL .... ---------------------------------- ... | | |<-ck | V "MILANI_SPACECRAFT" ------------------- | |<-fixed | v "MILANI_STR" ------------ STR Frames ~~~~~~~~~~~ The Milani star tracker (STR) is rigidly mounted on the spacecraft -X face. Therefore, the frame associated with it -- the MILANI_STR -- is specified as fixed offset frames with its orientation given relative to the MILANI_SPACECRAFT frame. The STR frame is defined as follows: - +X axis is along the nominal boresight direction of the star tracker, and is nominally co-aligned with the spacecraft -X axis; - +Y axis is along the right solar array direction, and is nominally co-aligned with the spacecraft +Y axis; - +Z axis completes the right-hand frame, and is nominally co-aligned with the spacecraft +Z axis; - the origin of this frame is the Hera interface point. These diagrams illustrate the nominal STR frame with respect to the spacecraft frame. -X s/c side view: ----------------- ^ | toward asteroid | Science Deck .__ __..___________. ._______. .___________..__ ___. | / / || | | | | || / / | | / / || | . . | || \ \ | | \ \ || | |.-----.| | || / / | | / / || |o||+Zsc ||o| || \ \ | | \ \ || | ||__^__|| | || / / | | / / || | | | | | || / / | .__\ \_..___________. .___|___. .___________..__\ \__. +Ysc<--------x +Xsc +Xsc is in the the page. Nominally the MILANI_STR frame is rotated 180 degrees respectively with respect to the MILANI_SPACECRAFT frame around +Zsc axis. 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_STR = -9102610 FRAME_-9102610_NAME = 'MILANI_STR' FRAME_-9102610_CLASS = 4 FRAME_-9102610_CLASS_ID = -9102610 FRAME_-9102610_CENTER = -9102 TKFRAME_-9102610_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-9102610_SPEC = 'ANGLES' TKFRAME_-9102610_UNITS = 'DEGREES' TKFRAME_-9102610_AXES = ( 3, 2, 1 ) TKFRAME_-9102610_ANGLES = ( 180.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 -9102 MILANI_SPACECRAFT -9102000 MILANI_SC --------------------- --------- -------------------------- Notes: -- 'MILANI_SC' and 'MILANI_SPACECRAFT' are synonyms and all map to the Milani s/c bus structure ID (-91000); \begindata NAIF_BODY_NAME += ( 'MILANI' ) NAIF_BODY_CODE += ( -9102 ) NAIF_BODY_NAME += ( 'MILANI_SC' ) NAIF_BODY_CODE += ( -9102000 ) NAIF_BODY_NAME += ( 'MILANI_SPACECRAFT' ) NAIF_BODY_CODE += ( -9102000 ) \begintext ASPECT: ------- This table summarizes ASPECTs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_ASPECT_VIS -9102110 MILANI_ASPECT_NIR1 -9102120 MILANI_ASPECT_NIR2 -9102130 MILANI_ASPECT_SWIR -9102140 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_ASPECT_VIS' ) NAIF_BODY_CODE += ( -9102110 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_NIR1' ) NAIF_BODY_CODE += ( -9102120 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_NIR2' ) NAIF_BODY_CODE += ( -9102130 ) NAIF_BODY_NAME += ( 'MILANI_ASPECT_SWIR' ) NAIF_BODY_CODE += ( -9102140 ) \begintext VISTA: ------ This table summarizes VISTAs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_VISTA -9102210 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_VISTA' ) NAIF_BODY_CODE += ( -9102210 ) \begintext NAVCAM: ------- This table summarizes NAVCAMs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_NAVCAM -9102310 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_NAVCAM' ) NAIF_BODY_CODE += ( -9102310 ) \begintext LIDAR: ------ This table summarizes LIDARs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_LIDAR -9102410 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_LIDAR' ) NAIF_BODY_CODE += ( -9102410 ) \begintext MLRH: ----- This table summarizes MLRHs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_MLRH_1 -9102511 MILANI_MLRH_2 -9102512 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_MLRH_1' ) NAIF_BODY_CODE += ( -9102511 ) NAIF_BODY_NAME += ( 'MILANI_MLRH_2' ) NAIF_BODY_CODE += ( -9102512 ) \begintext STR: ----- This table summarizes STR IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_STR -9102610 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_STR' ) NAIF_BODY_CODE += ( -9102610 ) \begintext End of FK file.