-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.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 -99902 MILANI_SPACECRAFT -99902000 (synonym: MILANI_SC) Milani ASPECT IDs: MILANI_ASPECT_VIS -99902110 MILANI_ASPECT_NIR1 -99902120 MILANI_ASPECT_NIR2 -99902130 MILANI_ASPECT_SWIR -99902140 Milani VISTA IDs: MILANI_VISTA -99902210 Milani NAVCAM IDs: MILANI_NAVCAM -99902310 Milani LIDAR IDs: MILANI_LIDAR -99902410 Milani Laser Retroreflectors for Hera (MLRH) IDs: MILANI_MLRH_1 -99902511 MILANI_MLRH_2 -99902512 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 -99902000 MILANI_SPACECRAFT_D2 J2000 CK -99902001 MILANI_SPACECRAFT MILANI_SPACECRAFT_D1 CK -99902 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 VISTA frames: ------------- MILANI_VISTA MILANI_SPACECRAFT FIXED -99902210 NAVCAM frames: -------------- MILANI_NAVCAM MILANI_SPACECRAFT FIXED -99902310 LIDAR frames: ------------- MILANI_LIDAR MILANI_SPACECRAFT FIXED -99902410 MLRH frames: ------------ MILANI_MLRH_1 MILANI_SPACECRAFT FIXED -99902511 MILANI_MLRH_2 MILANI_SPACECRAFT FIXED -99902512 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 = -99902511 FRAME_-99902511_NAME = 'MILANI_MLRH_1' FRAME_-99902511_CLASS = 4 FRAME_-99902511_CLASS_ID = -99902511 FRAME_-99902511_CENTER = -99902 TKFRAME_-99902511_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902511_SPEC = 'ANGLES' TKFRAME_-99902511_UNITS = 'DEGREES' TKFRAME_-99902511_AXES = ( 3, 2, 1 ) TKFRAME_-99902511_ANGLES = ( 0.0, -90.0, 0.0 ) FRAME_MILANI_MLRH_2 = -99902512 FRAME_-99902512_NAME = 'MILANI_MLRH_2' FRAME_-99902512_CLASS = 4 FRAME_-99902512_CLASS_ID = -99902512 FRAME_-99902512_CENTER = -99902 TKFRAME_-99902512_RELATIVE = 'MILANI_SPACECRAFT' TKFRAME_-99902512_SPEC = 'ANGLES' TKFRAME_-99902512_UNITS = 'DEGREES' TKFRAME_-99902512_AXES = ( 3, 2, 1 ) TKFRAME_-99902512_ANGLES = ( 0.0, 90.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 VISTA: ------ This table summarizes VISTAs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_VISTA -99902210 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_VISTA' ) NAIF_BODY_CODE += ( -99902210 ) \begintext NAVCAM: ------- This table summarizes NAVCAMs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_NAVCAM -99902310 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_NAVCAM' ) NAIF_BODY_CODE += ( -99902310 ) \begintext LIDAR: ------ This table summarizes LIDARs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_LIDAR -99902410 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_LIDAR' ) NAIF_BODY_CODE += ( -99902410 ) \begintext MLRH: ----- This table summarizes MLRHs IDs: ---------------------- ---------- Name ID ---------------------- ---------- MILANI_MLRH_1 -99902511 MILANI_MLRH_2 -99902512 ---------------------- ---------- Name-ID Mapping keywords: \begindata NAIF_BODY_NAME += ( 'MILANI_MLRH_1' ) NAIF_BODY_CODE += ( -99902511 ) NAIF_BODY_NAME += ( 'MILANI_MLRH_2' ) NAIF_BODY_CODE += ( -99902512 ) \begintext End of FK file.