KPL/FK ************************************************************************* | Task Order | Vendor | Mission | Spacecraft | |------------|--------------------|-----------|-------------------------| | PRIME-1 | Intuitive Machines | IM-2 | NOVA-C Lunar Lander | | | | | (Athena) | ************************************************************************* IM-2 Frame Definitions Kernel =============================================================================== This frame kernel contains frame definitions for Intuitive Machines' IM-2, Nova-C Lander, Athena, and a definition for the lander frame and NASA-provided science instrument frames. Version and Date ------------------------------------------------------------------------------- Version 1 -- April 14, 2026 -- Derek Maggard, CLPS Removed AVIONICS frames and AVIONICS ID. Created new and renamed old IM2_TOPO_Y_NORTH frame. Version 0.3 -- September 29, 2025 -- Derek Maggard, CLPS Updated LRA's frame per email from Daniel Cremons, 9-29-25. Version 0.2 -- August 28, 2025 -- Derek Maggard, CLPS Initial release and updated comments and frames. Version 0.1 -- April 23, 2025 -- Intuitive Machines Created kernel. Contact Information ------------------------------------------------------------------------------- Derek R. Maggard, CLPS, Derek.R.Maggard@nasa.gov References ------------------------------------------------------------------------------- 1. ``Frames Required Reading'' 2. ``Kernel Pool Required Reading'' 3. ``C-Kernel Required Reading'' 4. ``review_im2_spice_v3_CLPS_Response_IMFeedback.docx,'' by Intuitive Machines. 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. The SPICE routine FURNSH loads a kernel file into the pool as shown below. CALL FURNSH ( 'frame_kernel_name' ) (FORTRAN) furnsh_c ( "frame_kernel_name" ); (C) cspice_furnsh, "frame_kernel_name" (IDL) cspice_furnsh( 'frame_kernel_name' ) (MATLAB) This file was created and may be updated with a text editor. IM-2 NAIF ID Codes ======================================================================== The following names and NAIF ID codes are assigned to the IM-2 lander, its structures and science instruments (the keywords implementing these name-ID mappings are located in the section ``IM-2 NAIF ID Codes -- Definition Section'' at the end of this file): IM-2 lander and landing site: --------------------------------- IM2 -370021 IM2_LANDER -370021000 IM2_LANDING_SITE -370021900 Payloads: --------- IM2_LRA -370021181 IM2_TRIDENT_DRILL -370021183 IM2_MSOLO -370021184 Intuitive Machines' NAIF ID numbering system is as follows: -37 0 02 1 ___ _ __ _ | | | | | | | V | | | Rev (vehicle # if more than 1) | | V | | Mission identifier | V | Type of vehicle, NovaC (0) V Designation representing Intuitive Machines' headquarters (3700 Bay Area Blvd) IM-2 Frames ------------------------------------------------------------------------------- The following IM-2 frames are defined in this kernel file: Name Relative to Type Frame ID ========================== ========================== ======= ======== Surface frames (-3700219xx): ---------------------------------- IM2_TOPO_Y_NORTH MOON_ME FIXED -370021902 IM2_TOPO IM2_TOPO_Y_NORTH FIXED -370021900 IM2_LOCAL_LEVEL IM2_TOPO FIXED -370021901 Lander frames (-37002100x): ------------------------- IM2_LANDER J2000, IM2_TOPO_Y_NORTH CK -370021000 Payload frames (-370021xxx): -------------------------- IM2_LRA IM2_LANDER FIXED -370021181 IM2_TRIDENT_DRILL IM2_LANDER FIXED -370021183 IM2_MSOLO IM2_LANDER FIXED -370021184 The frame descriptions and definitions are provided in the sections below. IM-2 Frame Tree ------------------------------------------------------------------------------- The diagram below shows the IM-2 frames hierarchy: "J2000" INERTIAL +--------------------------------------------+ | | | |<--pck | pck-->| V | V "ITRF93" | "MOON_ME" EARTH | MOON ----- | ---- | | | |<--fixed | V | "IM2_TOPO_Y_NORTH" | ------------------ | | | | fixed-->| |<--fixed | CK | V | | "IM2_TOPO" |<--ck | ---------- | | | V | | "IM2_LANDER" | | LANDER MECH FRAME V | +----------------------------------------+ | | | | | |<--fixed | |<--fixed | V | | | "IM2_LRA" | V | --------- | "IM2_MSOLO" | | ----------- | | | | | | fixed-->| | V | "IM2_LOCAL_LEVEL" fixed-->| ----------------- V "IM2_TRIDENT_DRILL" ------------------- IM-2 Topocentric +Y ``North'' Frame ----------------------------------- Topocentric frame IM2_TOPO_Y_NORTH -- +Z axis is along the outward normal at the landing site ("zenith"); -- +Y axis is along the local north direction ("north"); -- +X axis completes the right hand frame ("east"); -- the origin of this frame is located at BGM1_LANDING_SITE. Orientation of the frame is given relative to the body fixed rotating frame 'MOON_ME', which is the name of the generic lunar mean Earth/polar axis (ME) reference frame. In this instance, MOON_ME is an alias for the frame MOON_ME_DE440_ME421, which is closely aligned with the lunar mean Earth/polar axis frame associated with the planetary ephemeris DE421. Topocentric frame IM2_TOPO_Y_NORTH is centered at the site IM2_LANDING_SITE, which has Cartesian coordinates X (km): 0.1381303340548E+03 Y (km): 0.7718473548697E+02 Z (km): -0.1735522691083E+04 and planetodetic coordinates Longitude (deg): 29.1956700000000 Latitude (deg): -84.7905900000000 Altitude (km): 0.5321000000000E+01 These planetodetic coordinates are expressed relative to a reference spheroid having the dimensions Equatorial radius (km): 1.7374000000000E+03 Polar radius (km): 1.7374000000000E+03 All of the above coordinates are relative to the frame MOON_ME. \begindata FRAME_IM2_TOPO_Y_NORTH = -370021902 FRAME_-370021902_NAME = 'IM2_TOPO_Y_NORTH' FRAME_-370021902_CLASS = 4 FRAME_-370021902_CLASS_ID = -370021902 FRAME_-370021902_CENTER = -370021900 TKFRAME_-370021902_RELATIVE = 'MOON_ME' TKFRAME_-370021902_SPEC = 'ANGLES' TKFRAME_-370021902_UNITS = 'DEGREES' TKFRAME_-370021902_AXES = ( 3, 2, 3 ) TKFRAME_-370021902_ANGLES = ( -29.1956700000000, -174.7905900000000, 270.0000000000000 ) \begintext IM-2 Topocentric Frame ---------------------- This topocentric frame, IM2_TOPO, was created for consistency with other CLPS missions. -- +Z axis is along the outward normal at the landing site ("zenith"); -- +X axis is along the local north direction ("north"); -- +Y axis completes the right hand frame ("west"); -- the origin of this frame is located at BGM1_LANDING_SITE. \begindata FRAME_IM2_TOPO = -370021900 FRAME_-370021900_NAME = 'IM2_TOPO' FRAME_-370021900_CLASS = 4 FRAME_-370021900_CLASS_ID = -370021900 FRAME_-370021900_CENTER = -370021900 TKFRAME_-370021900_RELATIVE = 'IM2_TOPO_Y_NORTH' TKFRAME_-370021900_SPEC = 'ANGLES' TKFRAME_-370021900_UNITS = 'DEGREES' TKFRAME_-370021900_AXES = ( 3, 2, 1 ) TKFRAME_-370021900_ANGLES = ( -90.0, 0.0, 0.0 ) \begintext Local Level Frame ----------------- IM-2 local level frame, IM2_LOCAL_LEVEL, is defined as follows: -- +Z axis is along the downward normal at the landing site ("nadir"); -- +X axis is along the local north direction ("north"); -- +Y axis completes the right hand frame ("east"); -- the origin of this frame is located at IM2_LANDING_SITE. Since this frame is essentially the IM2_TOPO frame flipped by 180 degrees about +X ("north") to point +Z down, this frame is defined as a fixed offset frame with respect to the IM2_TOPO frame. \begindata FRAME_IM2_LOCAL_LEVEL = -370021901 FRAME_-370021901_NAME = 'IM2_LOCAL_LEVEL' FRAME_-370021901_CLASS = 4 FRAME_-370021901_CLASS_ID = -370021901 FRAME_-370021901_CENTER = -370021900 TKFRAME_-370021901_RELATIVE = 'IM2_TOPO' TKFRAME_-370021901_SPEC = 'ANGLES' TKFRAME_-370021901_UNITS = 'DEGREES' TKFRAME_-370021901_AXES = ( 1, 2, 3 ) TKFRAME_-370021901_ANGLES = ( 180.000, 0.000, 0.000 ) \begintext Lander Frame Diagrams --------------------- Looking in the -Xlnd direction (top view): __ __ / \ / \ \__/ \__/ '``. ,'`' ' . `. _______ ,',', ` ` ` / `.,' , . ' `. | | , / . `| | , . ` / \________/\ , .-------------------. * TRIDENT . ,| |. * MSOLO __ . .`. | | . . __ / \,.` ` | +Xlnd |..` ` . / \ \__/.------------|LRA o-->+Zlnd |------------.\__/ ` . .` '`.|* | | ,-` . | v +Ylnd |. ' - ` \ | | \ |___________________| \ ,'\ _ /\ ` +Xlnd is out of the page \ .'. \ / \ / \ ' `-.` ' | |. \ ` , ' .'\ / ` \ . _, / , ` - ` ` `.__ / \ ' ` / \ \__/ \__/ Panels (A to F) are arranged as follows (top view): D .-----------. , ` E , ` C , ` , +Xlnd ` . o-->+Zlnd `. ` | , ` v +Ylnd , F ` , B ` , `.___________. A Looking in the -Ylnd direction (side view): _____________ * LRA | | | | | | | | .|_______________| .- -------------------.- | | F | A | B , `. | | | | . , `| | | `. . | | |----| | | | | | | | | | | | | | | | | | | | | | | _____ | | +Xlnd | | | | | | | | ^ | | | | | | | | | .------. | | | | | | | o--> +Zlnd / / \ | `.| |, | | +Ylnd | | | | / \ | | `. \ , |\ /|\ | `. .----- /| \ / | \ | . .' |__/_|__\___/__|__\_| `. ,' . ' // ,' ^ `. \\ `. . , ,' / ,' / \ `. \ `. `. ,' .,' / ,' / \ `. ` `. `. , ,' / ,' , . `. \ `. `. .,' /.' ._____` `.\ `.` __._ __._ __._ _.__ Looking in the -Zlnd direction (side view): LRA .* .,.' .'' ` ..'`\ \ ,.',' ' ` . . __,'___ _'____`_`_ | B | C | | | | | | | | | | | | .--. | | | | | _ | | | `--`| || | | | | | | | | | | | | +Xlnd | | | | ^ | | | | _ | | | | |,' `\ +Ylnd <--o | | .-. | | | +Zlnd ,| MSOLO * | | / ., | |\_.` * |\ _ ,' , ,| TRIDENT | | ,. , |_______|_____ __|`. `. . , ./ \ | / `. `. ` , , ,,' \ /|\ / ` . `.`. . , .' \ | / `. `.` , ,,' / \| /\ `.``. ,,' ,__ \/__. ` .` _._ __;__ `.__ Lander Frame Definition ----------------------- The LANDER (or Mechanical frame) is defined for IM-2 where the normal landed spacecraft configuration is as follows: - +X axis is vertical and points up (from the lander "legs" toward the lander deck) - +Y axis points in the direction of the center of panel A - +Z completes the right-handed frame and points between panel B and C. The IM2_LANDER ``structures frame' origin is at the intersection of the vehicle +X axis (vertical axis) and the plane of the feet [4]. For surface operations the IM2_LANDER frame orientation is represented by a fixed rotation stored in a CK to make SPICE "traverse" appropriate frame tree branch based on the time of interest. \begindata FRAME_IM2_LANDER = -370021000 FRAME_-370021000_NAME = 'IM2_LANDER' FRAME_-370021000_CLASS = 3 FRAME_-370021000_CLASS_ID = -370021000 FRAME_-370021000_CENTER = -370021 CK_-370021000_SCLK = -370021 CK_-370021000_SPK = -370021 \begintext Laser Retroreflector Array (LRA) -------------------------------- LRA's frame is aligned with the LANDER frame. The +Zlra axis is considered as the instrument's boresight. Unlike CLPS_TO2IM (IM-1), LRA was configured to point in the zenith, ``up'' direction in a nominal landing. The XY plane is the mounting plane. +Zlra ^ +Xlra | <---o +Ylra .'' +Ylra is out of the page .'' ` .'' \ \ +Xlnd ,.'' ' ` . . ^ __,'___ _'____`_`_ | | B | C | +Ylnd <---o | | | +Zlnd \begindata FRAME_IM2_LRA = -370021181 FRAME_-370021181_NAME = 'IM2_LRA' FRAME_-370021181_CLASS = 4 FRAME_-370021181_CLASS_ID = -370021181 FRAME_-370021181_CENTER = -370021 TKFRAME_-370021181_RELATIVE = 'IM2_LANDER' TKFRAME_-370021181_SPEC = 'MATRIX' TKFRAME_-370021181_MATRIX = ( 0.0 1.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 ) \begintext TRIDENT Drill Frame ------------------- TRIDENT's ice mining drill is aligned with the TRIDENT +Ztri axis, which is collinear with the LANDER -X axis. The TRIDENT XZ plane is parallel to the C panel. Looking in the +Ztri direction (top view): +Xtri D ^ > +Ytri .----------`. .` , `+` E , +Ztri , ` C , +Xlnd ` . o-->+Zlnd `. ` | , ` v +Ylnd , F ` , B ` , `.___________. A Looking in the -Zlnd direction (side view): .` .,.' .'' ` ..'`\ \ ,.',' ' ` . . __,'___ _'____`_`_ | B | C | | | | | | | | | | | | .--. | | | | | _ | | | `--`| || | | | | | | | | | | | | +Xlnd | | | | ^ | | | | _ | | | | |,' `\ +Ylnd <--o | | .-. | | | +Zlnd ,| |` ' | / ., | |\_.` @ |\ _ ,' , ,| TRIDENT v | ,. , |_______|___+Ztri|`. `. . , ./ \ | / `. `. ` , , ,,' \ /|\ / ` . `.`. . , .' \ | / `. `.` , ,,' / \| /\ `.``. ,,' ,__ \/__. ` .` _._ __;__ `.__ \begindata FRAME_IM2_TRIDENT_DRILL = -370021183 FRAME_-370021183_NAME = 'IM2_TRIDENT_DRILL' FRAME_-370021183_CLASS = 4 FRAME_-370021183_CLASS_ID = -370021183 FRAME_-370021183_CENTER = -370021 TKFRAME_-370021183_SPEC = 'ANGLES' TKFRAME_-370021183_RELATIVE = 'IM2_LANDER' TKFRAME_-370021183_ANGLES = ( 0.000, 90.000, 120.000 ) TKFRAME_-370021183_AXES = ( 1, 2, 3 ) TKFRAME_-370021183_UNITS = 'DEGREES' \begintext Mass Spectrometer for Observing Lunar Operations (MSOLO) -------------------------------------------------------- Looking in the -Zlnd direction (side view): .` .,.' .'' ` ..'`\ \ ,.',' ' ` . . __,'___ _'____`_`_ | B | C | | | | | | | | | | | | .--. | | | | | _ | | | `--`| || | | | | | | | | | | | | +Xlnd | | | | ^ | | | | _ | | | | |,' `\ +Ylnd <--o | | | | | +Zlnd ,| | .--->+Xmsolo / ., +Ymsolo <-` \ | |\ _ ,' , ,| | v| | . ,. , |______ +Zmsolo _|`. `. . , ./ \ | / `. `. ` , , ,,' \ /|\ / ` . `.`. . , .' \ | / `. `.` , ,,' / \| /\ `.``. ,,' ,__ \/__. ` .` _._ __;__ `.__ MSolo was mounted in such a way to enable measuring the volatiles released during drilling operations. The Trident Drill auger transports materials to the surface in a pile, where the molecules have a direct path to the detector via this instrument's field of view (FOV). This reference frame was created so that that +Zmsolo faces the trident drill location. +Xmsolo and +Ymsolo are of little importance. \begindata FRAME_IM2_MSOLO = -370021184 FRAME_-370021184_NAME = 'IM2_MSOLO' FRAME_-370021184_CLASS = 4 FRAME_-370021184_CLASS_ID = -370021184 FRAME_-370021184_CENTER = -370021 TKFRAME_-370021184_SPEC = 'ANGLES' TKFRAME_-370021184_RELATIVE = 'IM2_LANDER' TKFRAME_-370021184_ANGLES = ( -120.000, 90.000, 62.000 ) TKFRAME_-370021184_AXES = ( 2, 3, 2 ) TKFRAME_-370021184_UNITS = 'DEGREES' \begintext IM-2 NAIF ID Codes -- Definition Section ------------------------------------------------------------------------------- This section contains name to NAIF ID mappings for IM-2. \begindata NAIF_BODY_NAME += 'IM2' NAIF_BODY_CODE += -370021 NAIF_BODY_NAME += 'IM-2' NAIF_BODY_CODE += -370021 NAIF_BODY_NAME += 'ATHENA' NAIF_BODY_CODE += -370021 NAIF_BODY_NAME += 'INTUITIVE_MACHINES_MISSION_2' NAIF_BODY_CODE += -370021 NAIF_BODY_NAME += 'CLPS_PRIME1' NAIF_BODY_CODE += -370021 NAIF_BODY_NAME += 'IM2_LANDING_SITE' NAIF_BODY_CODE += -370021900 NAIF_BODY_NAME += 'IM2_LANDER' NAIF_BODY_CODE += -370021000 NAIF_BODY_NAME += 'IM2_LRA' NAIF_BODY_CODE += -370021181 NAIF_BODY_NAME += 'IM2_TRIDENT_DRILL' NAIF_BODY_CODE += -370021183 NAIF_BODY_NAME += 'IM2_MSOLO' NAIF_BODY_CODE += -370021184 \begintext End of FK file.