Skip to content
Snippets Groups Projects
emrsp_rm_v006.tf 150 KiB
Newer Older
Marc Costa's avatar
Marc Costa committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
KPL/FK

ExoMarsRSP Rosalind Franklin Rover Module (RM) Frames Kernel
===============================================================================

   This frame kernel contains a complete set of frame definitions for the
   ExoMars RSP Rosalind Franklin Rover Module (RM) including definitions for
   the RM structures and RM science instrument frames. This kernel also
   contains NAIF ID/name mapping for the RM instruments.


Version and Date
------------------------------------------------------------------------

   Version 0.0.6 -- June 3, 2020 -- Marc Costa Sitja, ESAC/ESA

      Added Rover locomotion and solar arrays frames and IDs.
      Corrected FRAME_RM_MAST_ZERO frame definition.
      Updated the the RM_ROVER_DRILL_TIP_MOV defintion to a type 3 frame.
      Corrected RM_CLUPI_BRACKET and LOCCAM frame definitions.
      Updated reference frame centers to their ephemeris objects.

   Version 0.0.5 -- December 20, 2019 -- Marc Costa Sitja, ESAC/ESA

      Corrected FRAME_RM_MAST_ZERO frame definition

   Version 0.0.4 -- December 20, 2019 -- Marc Costa Sitja, ESAC/ESA

      Added reference frames, references, diagrams and IDs for Solar
      Arrays. Corrected Sites definitions. Defined frames for cruise
      phase. Corrected PTR frames. Corrected ADRON frames. This should
      be considered a work in progress version.

   Version 0.0.3 -- February 28, 2019 -- Marc Costa Sitja, ESAC/ESA

      Added reference frames, references, diagrams and IDs for ALD
      components, updated diagrams and done some minor edits.

   Version 0.0.2 -- February 14, 2019 -- Marc Costa Sitja, ESAC/ESA

      Added reference frames, references, diagrams and IDs for the drill,
      MaMiss, WISDOM and CLUPI.

   Version 0.0.1 -- February 8, 2019 -- Marc Costa Sitja, ESAC/ESA

      Updated ID from -999 to -174 and done several edits including
      updated updated diagrams and frame trees.

      Added reference frames and IDs for LOCCAM, ISEM and ADRON.

   Version 0.0.0 -- June 8, 2018 -- Marc Costa Sitja, ESAC/ESA

      Preliminary version.


References
------------------------------------------------------------------------

    1. ``Frames Required Reading'', NAIF

    2. ``Kernel Pool Required Reading'', NAIF

    3. ``C-Kernel Required Reading'', NAIF

    4. ``ExoMars Rover and Surface Platform Mission Implementation Plan'',
       EXM-G2-PLN-ESC-00004, ExoMars Ground Segment Team, Issue 1, Revision 2,
       ESOC, August 8, 2017

    5. ``EXOMARS 2018 ROVER MODULE Coordinate Systems & Conventions for RM
       control'', EXM-RM-TNO-AI-0448, A. Merlo, Thales Alenia Space,
       Issue 1, November 2015

    6. ExoMars RSP Mars Local Geodetic Frames (emrsp_mlg_vVVV.tf),
       latest version

    7. ``ExoMars Rover Vehicle Coordinate Systems and Conventions
       Specifications'', EXM-RM-SYS-ASU-00101, Airbus Defense and Space,
       Issue 2, April 2016

    8. ``Description of Frames and Conventions Related to Localisation
       Camera Data Sets'', EXM-RM-TNO-AS U-00209, K. MacManamon,
       Airbus Defense and Space,  Issue 2, Revision 0, July 2014

    9. ``ExoMars/CLUPI Science Requirements Specification Document'',
       EXM.CL.RSD.SPX.1501, Space Exploration Institute,
       Issue 1, Rev. 0, July 2015

    10. ``Water Ice and Subsurface Deposit Observations on Mars WISDOM
        instrument'', MICD, EXM-WI-DRW-LAT-0152, Issue 02, Rev. 01,
        A. Galic, March 2018

    11. ``ExoMars ICD ALD Structure - ALD Structure Interface Control
        Document'', EXM-RM-ICD-KT-0002, Q. Muhlbauer, OHB System AG,
        Issue 4, May 2016

    12. ``Rover Module Outline Drawing'', EXM-D2-ICD-AI-0078,
        Thales Alenia Space, Revision A, 4th September 2017


Contact Information
------------------------------------------------------------------------

   If you have any questions regarding this file contact the
   ESA SPICE Service at ESAC:

           Marc Costa Sitja
           (+34) 91-8131-457
           marc.costa@esa.int, esa_spice@sciops.esa.int

   or ROCC at Altec Space:

           Federico Salvioli
           (+39) 011-7430-097
           federico.salvioli@altecspace.it


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.

  * SPICEPY 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


RM NAIF ID Codes -- Summary Section
------------------------------------------------------------------------

   The following names and NAIF ID codes are assigned to the ExoMars RSP
   rover, its structures and science instruments (the keywords implementing
   these definitions are located in the section "RM NAIF ID Codes --
   Definition Section" at the end of this file):

   RM and RM Structures names/IDs:

            RM                       -174   (synonyms: EXOMARS RSP RM,
                                                       EXOMARS RSP ROVER,
                                                       EXOMARS RSP ROVER MODULE
                                                  and  EXOMARS ROVER)

            RM_ROVER                 -174000
            RM_MAST                  -174010
            RM_PTR                   -174012
            RM_PB                    -174013

            RM_NAVCAM                -174020
            RM_NAVCAM_L              -174021
            RM_NAVCAM_R              -174022
            RM_LOCCAM                -174030
            RM_LOCCAM_L              -174031
            RM_LOCCAM_R              -174031

            RM_DRILL_POS_FIX         -174040
            RM_DRILL_POS_MOV         -174041
            RM_DRILL_TIP_FIX         -174042
            RM_DRILL_TIP_MOV         -174043

            RM_ALD                   -174050
            RM_ALD_CSTM              -174051
            RM_ALD_PSDDS             -174053
            RM_ALD_PSHS              -174055

            RM_SAF1_PRI              -174062
            RM_SAF1_SEC              -174063
            RM_SAF2_PRI              -174065
            RM_SAF2_SEC              -174066

            RM_BOGIE_LF              -174071
            RM_BOGIE_LR              -174074
            RM_BOGIE_RR              -174076

            RM_WHEEL_LF              -174081
            RM_WHEEL_LM              -174082
            RM_WHEEL_RF              -174083
            RM_WHEEL_RM              -174084
            RM_WHEEL_LR              -174085
            RM_WHEEL_RR              -174086

            RM_CALTAR_FIDM1
            RM_CALTAR_FIDM2
            RM_CALTAR_FIDM3
            RM_CALTAR_PCT
            RM_CALTAR_PCT_SHPOST_1
            RM_CALTAR_PCT_SHPOST_2
            RM_CALTAR_PCT_YELLOW
            RM_CALTAR_PCT_RED
            RM_INSPECTION_MIRROR
            ( ... )

   PanCam names/IDs:

            RM_PANCAM                -174100
            RM_PANCAM_WAC_L          -174110
            RM_PANCAM_WAC_R          -174120
            RM_PANCAM_HRC            -174130

   ISEM names/IDs:

            RM_ISEM                  -174200

   ADRON-RM name/IDs:

            RM_ADRON-RM              -174300

   WISDOM name/IDs:

            RM_WISDOM                -174400
            RM_WISDOM_ANT1           -174410
            RM_WISDOM_ANT2           -174420

   MaMiss name/IDs:

            RM_MAMISS                -174500

   CLUPI name/IDs:

            RM_CLUPI                 -174600
            RM_CLUPI_FOV1            -174601
            RM_CLUPI_FOV2            -174602
            RM_CLUPI_FOV3            -174603
            RM_CLUPI_DRILL_TIP       -174620
            RM_CLUPI_BRACKET         -174630

   Sites name/IDs:

            RM_SITE_000              -174700 (synonym: RM_LANDING_SITE)
            RM_SITE_NNN*             -174XXX**

      (*) NNN corresponds to the travel sequence number and it has a range
          from 000 (refers to the position of the Rover at landing site)
          to 299.

      (**) XXX ranges from 701 up to 899.


RM Frames
------------------------------------------------------------------------

   The following RM frames are defined in this kernel file:

           Name                    Relative to           Type        NAIF ID
      ======================    ===================  ============    =======

   RM Rover and Rover Structures frames:
   ------------------------------------------------
      RM_ROVER                    RM_MLG,                CK          -174000
                                  RM_ROVER_CRUISE
      RM_ROVER_CRUISE             CM_SPACECRAFT          FIXED       -174001
      RM_MAST_ZERO                RM_ROVER               FIXED       -174010
      RM_MAST                     RM_MAST_ZERO           CK          -174011
      RM_PTR_ZERO                 RM_MAST                FIXED       -174012
      RM_PTR                      RM_PTR_ZERO            CK          -174013
      RM_PB                       RM_PTR                 FIXED       -174014
      RM_NAVCAM_BASE              RM_PB                  FIXED       -174020
      RM_NAVCAM_L                 RM_NAVCAM_BASE         FIXED       -174021
      RM_NAVCAM_R                 RM_NAVCAM_BASE         FIXED       -174022
      RM_LOCCAM_BASE              RM_PB                  FIXED       -174030
      RM_LOCCAM_L                 RM_LOCCAM_BASE         FIXED       -174031
      RM_LOCCAM_R                 RM_LOCCAM_BASE         FIXED       -174032
      RM_DRILL_POS_FIX            RM_ROVER               FIXED       -174040
      RM_DRILL_POS_MOV            RM_DRILL_POS_FIX       CK          -174041
      RM_DRILL_TIP_FIX            RM_DRILL_POS_MOV       FIXED       -174042
      RM_DRILL_TIP_MOV            RM_DRILL_TIP_FIX       CK(*)       -174043
      RM_ALD_CSTM_FIX             RM_ROVER               FIXED       -174052
      RM_ALD_CSTM_MOV             RM_ALD_CSTM_FIX        FIXED(*)    -174053
      RM_ALD_PSDDS_FIX            RM_ROVER               FIXED       -174052
      RM_ALD_PSDDS_MOV            RM_ALD_PSDDS_FIX       FIXED       -174053
      RM_ALD_PSHS_FIX             RM_ROVER               FIXED       -174054
      RM_ALD_PSHS_MOV             RM_ALD_PSHS_FIX        CK          -174055
      RM_SA1_ZERO                 RM_ROVER               FIXED       -174061
      RM_SA1_PRI                  RM_SA1_ZERO            CK          -174062
      RM_SA1_SEC                  RM_SA1_PRI             CK          -174063
      RM_SA2_ZERO                 RM_ROVER               FIXED       -174064
      RM_SA2_PRI                  RM_SA2_ZERO            CK          -174065
      RM_SA2_SEC                  RM_SA2_PRI             CK          -174066
      RM_BOGIE_LF_FIX             RM_ROVER               FIXED       -174071
      RM_BOGIE_LF_MOV             RM_BOGIE_LF_FIX       CK           -174072
      RM_BOGIE_RF_FIX             RM_ROVER               FIXED       -174073
      RM_BOGIE_RF_MOV             RM_BOGIE_LF_FIX       CK           -174074
      RM_BOGIE_MR_FIX             RM_ROVER               FIXED       -174075
      RM_BOGIE_MR_MOV             RM_BOGIE_MR_FIX       CK           -174076
      RM_WHEEL_LF_FIX             RM_BOGIE_LF_MOV        FIXED       -1740810
      RM_WHEEL_LF_STR             RM_WHEEL_LF_FIX        CK          -1740811
      RM_WHEEL_LF_MOV             RM_WHEEL_LF_STR        CK          -1740812
      RM_WHEEL_LM_FIX             RM_BOGIE_LF_MOV        FIXED       -1740820
      RM_WHEEL_LM_STR             RM_WHEEL_LM_FIX        CK          -1740821
      RM_WHEEL_LM_MOV             RM_WHEEL_LM_STR        CK          -1740822
      RM_WHEEL_RF_FIX             RM_BOGIE_RF_MOV        FIXED       -1740830
      RM_WHEEL_RF_STR             RM_WHEEL_RF_FIX        CK          -1740831
      RM_WHEEL_RF_MOV             RM_WHEEL_RF_STR        CK          -1740832
      RM_WHEEL_RM_FIX             RM_BOGIE_RF_MOV        FIXED       -1740840
      RM_WHEEL_RM_STR             RM_WHEEL_RM_FIX        CK          -1740841
      RM_WHEEL_RM_MOV             RM_WHEEL_RM_STR        CK          -1740842
      RM_WHEEL_LR_FIX             RM_BOGIE_MR_MOV        FIXED       -1740850
      RM_WHEEL_LR_STR             RM_WHEEL_LR_FIX        CK          -1740851
      RM_WHEEL_LR_MOV             RM_WHEEL_LR_STR        CK          -1740852
      RM_WHEEL_RR_FIX             RM_BOGIE_MR_MOV        FIXED       -1740860
      RM_WHEEL_RR_STR             RM_WHEEL_RR_FIX        CK          -1740861
      RM_WHEEL_RR_MOV             RM_WHEEL_RR_STR        CK          -1740862

      RM_CALIBR_TARGET            RM_ROVER               FIXED
      RM_MIRROR_                  RM_ROVER               FIXED

   PanCam frames:
   ------------------------------------------------
      RM_PANCAM_BASE              RM_PB                  FIXED       -174100
      RM_PANCAM_WAC_L             RM_PANCAM_BASE         FIXED       -174110
      RM_PANCAM_WAC_R             RM_PANCAM_BASE         FIXED       -174120
      RM_PANCAM_HRC               RM_PANCAM_BASE         FIXED       -174130

   ISEM frames:
   ------------------------------------------------
      RM_ISEM                     RM_PB                  FIXED       -174200

   ADRON-RM frames:
   ------------------------------------------------
      RM_ADRON-RM                 RM_ROVER               FIXED       -174300

   WISDOM frames:
   ------------------------------------------------
      RM_WISDOM_BASE              RM_ROVER               FIXED       -174400
      RM_WISDOM_ANT1              RM_WISDOM_BASE         FIXED       -174410
      RM_WISDOM_ANT2              RM_WISDOM_BASE         FIXED       -174420

   MaMiss frames:
   ------------------------------------------------
      RM_MAMISS                   RM_DRILL_TIP_MOV       FIXED       -174500

   CLUPI frames:
   ------------------------------------------------
      RM_CLUPI_BASE               RM_DRILL_POS_MOV       FIXED       -174500
      RM_CLUPI_OPT_AXIS           RM_CLUPI_BASE          FIXED       -174510
      RM_CLUPI_DRILL_TIP          RM_CLUPI_OPT_AXIS      FIXED       -174520
      RM_CLUPI_BRACKET            RM_DRILL_POS_FIX       FIXED       -174530


   In addition, the following frames, in use by the ExoMars RSP mission, are
   defined in another kernel:

           Name                    Relative to           Type        NAIF ID
      ======================    ===================  ============    =======

   ExoMars RSP Local Geodetic Frames (1):
   ---------------------------------------------------
       RM_LANDING_SITE              IAU_MARS            FIXED        -174900
       RM_MLG*                      IAU_MARS            FIXED        -174700

       (*) The frame is implemented with an SPK to account for the
           translation of its origin to the different RM_SITE_NNN objects.


ExoMars RSP Mission Description
--------------------------------------------------------------------------

   The mission can be broadly described as follows: launch the ExoMarsRSP
   Spacecraft and fly it to Mars; land on Mars, deliver the Rover to the
   surface and perform the nominal exploration mission on the surface.
   The launch configuration is the Spacecraft Composite (SCC), which is
   composed of the Carrier Module (CM) and the Descent Module (DM). The CM
   is jettisoned upon arrival at Mars, and the DM will enter the Mars
   atmosphere and land, carrying the ``Kazachok'' Surface Platform (SP) and
   the ``Rosalind Franklin'' Rover (RM). The CM and the RM are developed by
   ESA. The DM and SP are developed by Roscosmos with ESA contributions.
   The elements of the spacecraft composite are shown below.

     CM          DM            SP                  RM

     |           .'.                           =
     |--.      .'   |               |          |
   )-|  |     |     |     -------------       |-----------                 RM
     |--'      '.   |       '-------'          /\____\|
     |           '.'         /     \          0  0    0

     |           |              |                |
     |           |              |                |
     |           |              |                |
     |           |              |                V           _=_______
     |           |              |                           |0  0    0\
     |           |              '-------------> (+) ---->  -------------   LPC
     |           |                                           '-------'
     |           |                               |            /     \
     |           |                               |
     |           |                               |
     |           |                               V               .'.
     |           |                                             .' -o|
     |           '----------------------------> (+) ---->     |  | ||      DM
     |                                                         '.._o|
     |                                           |               '.'
     |                                           |
     |                                           |
     |                                           V            |      .'.
     |                                                        |--. .' -o|
     '----------------------------------------> (+) ---->   )-|  ||  | ||  SCC
                                                              |--' '.._o|
                                                              |      '.'

   Please note that this Frames Kernel file solely implements the Frames for
   the ExoMars RSP Lander Component (RM).


RM Frames Hierarchy
--------------------------------------------------------------------------

   The diagram below shows the ExoMars RM frames hierarchy (except
   for science operations frames):


                                   "J2000" INERTIAL
                  +--------------------------------------------+
                  |                      |                     |
                  |<-ck                  |<-pck                |<-pck
                  |                      |                     |
                  |                      v                     v
                  v                 "IAU_EARTH"            "IAU_MARS"
           "CM_SPACECRAFT"       EARTH BODY-FIXED     MARS BODY-FIXED (MCMF)
           ---------------       ----------------     ----------------------
                 |                                              |
                 |<-fixed                                       |<-fixed
                 |                                              |
                 |                                              |
                 |                                              v
                 v                                         "RM_MLG" (**)
           RM_ROVER_CRUISE                               MARS TOPOGRAPHIC
           ---------------                              -----------------
                 |                                              |
                 |<-ck(*)                                       |< -ck
                 |                                              |
                 | RM_WHEEL_L{F,M,R}_MOV  RM_WHEEL_R{F,M,R}_MOV |
                 | ---------------------  --------------------- |
                 |          |                    |              |
                 |          |<-ck                |<-ck          |
                 |          |                    |              |
                 |          v                    v              |
                 | RM_WHEEL_L{F,M,R}_STR  RM_WHEEL_R{F,M,R}_STR |
                 | ---------------------  --------------------- |
                 |          |                    |              |
                 |          |<-ck                |<-ck          |
                 |          |                    |              |
                 |          v                    v              |
  "RM_SA1_SEC"   | RM_WHEEL_L{F,M,R}_FIX  RM_WHEEL_R{F,M,R}_FIX |  "RM_SA2_SEC"
  -------------  | ---------------------  --------------------- |  ------------
        ^        |          |                    |              |       ^
        |        |          |<-fixed             |<-fixed       |       |
        |<-ck    |          |                    |              |       |<-ck
        |        |          v                    v              |       |
  "RM_SA1Y_PRI"  |         "RM_BOGIE_{LF,RF,MR}_MOV"            |  "RM_SA2_PRI"
  -------------  |         +----------------------+             |  ------------
        ^        |                  |                           |       ^
        |        |                  |<-ck                       |       |
        |<-ck    |                  |                           |       |<-ck
        |        |                  v                           |       |
  "RM_SA1_ZERO"  |      "RM_BOGIE_{LF,RF,MR}_FIX"               | "RM_SA2_ZERO"
  -------------  |      -------------------------               | -------------
        |        |           |                                  |      |
        |<-fixed |           |<-fixed                           |      |<-fixed
        |        |           |                                  |      |
        v        v           v         "RM_ROVER"               v      v
   +-------------------------------------------------------------------+
   |   |          |          |             |          .                |
   |   |<-fixed   |<-fixed   |<-fixed      |<-fixed   .                |<-fixed
   |   |          |          |             |          .                |
   |   |          |          v             |          .                |
   |   |          |    "RM_MAST_ZERO"      |          .                |
   |   |          |    --------------      |          .                |
   |   |          |          |             |          .                |
   |   |          |          |<-ck         |          .                |
   |   |          |          |             |          .                |
   |   |          |          v             v          .                v
   |   |          |      "RM_MAST"  "RM_LOCCCAM_BASE" . "RM_DRILL_POS_FIX"
   |   |          |      ---------  ----------------- . +----------------+
   |   |          v          |                        . .                |
   |   | "RM_ALD_CSTM_FIX"   |<-fixed                 . .                |<-ck
   |   | -----------------   |                        . .                |
   |   |          |          v                        . .                v
   |   |   fixed->|      "RM_PTR_ZERO"                . . "RM_DRILL_POS_MOV"
   |   |          |      -------------                . . +----------------+
   |   |          v          |                        . . .                |
   |   | "RM_ALD_CSTM_MOV"   |<-ck                    . . .         fixed->|
   |   | -----------------   |                        . . .                |
   |   |                     v                        . . .                v
   |   |                  "RM_PTR"                    . . .  "RM_DRILL_TIP_FIX"
   |   V                  --------                    . . .  ------------------
   |  "RM_ALD_PSHS_FIX"      |                        . . .         |
   |  -----------------      |<-fixed                 . . .         |<-ck
   |           |             |                        . . .         |
   |       ck->|             v                        . . .         v
   |           |          "RM_PB"                     . . .  "RM_DRILL_TIP_MOV"
   |           v        +--------------+              . . .  ------------------
   |  "RM_ALD_PSHS_MOV" .              |              . . .         .
   |  ----------------- .              |<-fixed       . . .         .
   |                    .              |              . . .         .
   |<-fixed             .              V              . . .         .
   |                    .      "RM_NAVCAM_BASE"       . . .         .
   v                    .     +----------------+      . . .         .
  "RM_ALD_PSDDS_FIX"    .     |                |      . . .         .
  ------------------    .     |<-fixed  fixed->|      . . .         .
           |            .     |                |      . . .         .
       ck->|            .     v                v      . . .         .
           |            . "RM_NAVCAM_L" "RM_NAVCAM_R" . . .         .
           v            . ------------- ------------- . . .         .
  "RM_ALD_PSDDS_MOV"    .                             . . .         .
  ------------------    .                             . . .         .
                        .                             . . .         .
                        V                             V V V         V
                  Individual instrument frame trees are provided in the other
                                    sections of this file


   Please refer to the PanCam, NavCam sections for the frame
   hierarchy of each payload; and to the RM science operations frame
   definitions kernel for further details on these frame definitions.

   (*)      In these cases transformation is fixed but it has to be
            stored in a CK to make SPICE "traverse" appropriate frame
            tree branch based on the time of interest and/or loaded
            kernels.

   (**)     This frame is equivalent to the SP_TOPO frame defined in the
            ExoMarsRSP Surface Platform Frames Kernel (emrsp_sp_vNNN.tf)


RM Mars Local Geodetic Frames
-------------------------------------------------

   The Rover Module Mars Local Geodetic frame (Topocentric) -- RM_MLG -- is
   defined as follows:

      - +Z axis is in the direction of the vertical (i.e. approximately the
        negative gravity vector; "Zenith", assuming that the small local
        variation can be ignored),

      - +X axis is tangential to the local geodetic horizontal in an eastern
        direction (i.e. parallel to lines of latitude; "East"),

      - +Y axis completes the right hand frame ("North");

      - the origin of the frame is initially defined to be coincident with
        the origin of the Rover Body frame, RM_ROVER, prior to the start of
        travel. During a travel sequence, this frame remains fixed with Mars,
        but becomes reset at the start of a new travel sequence. The rationale
        for this is that a travel sequence requires a stationary reference
        frame in which to measure position and coordinate navigation maps.
        The start of travel when the frame is reset may be at the start of
        each sol, or when new targets are generated.

   If we assume that the total traverse distance during the mission will be
   relatively short (hundreds of meters, not kilometers) and, therefore, the
   local north and nadir directions, defining surface frame orientations, will
   be approximately the same at any point along the traverse path. This
   assumption allows defining a single surface frame as a fixed offset frame
   to Mars body-fixed frame, IAU_MARS. With this assumption we will always
   use the Mars Local Geodetic Landing Site frame that is defined hereafter.
   RM surface fixed frame -- RM_MLG -- is nominally co-aligned in orientation
   with the RM_LANDING_SITE and its origin changes throughout the mission.
   Therefore, this frame is defined as a zero-offset, fixed frame with respect
   to the RM_LANDING_SITE frame.

   \begindata

      FRAME_RM_MLG                        =  -174700
      FRAME_-174700_NAME                  =  'RM_MLG'
      FRAME_-174700_CLASS                 =  4
      FRAME_-174700_CLASS_ID              =  -174700
      FRAME_-174700_CENTER                =  -174700

      OBJECT_-174700_FRAME                =  'RM_MLG'

      TKFRAME_-174700_RELATIVE            =  'IAU_MARS'
      TKFRAME_-174700_SPEC                =  'ANGLES'
      TKFRAME_-174700_UNITS               =  'DEGREES'
      TKFRAME_-174700_AXES                =  ( 3, 2, 3 )
      TKFRAME_-174700_ANGLES              =  ( -335.4500000000000,
                                                -71.8000000000000,
                                                270.0000000000000 )

   \begintext


RM Lander and Lander Structures Frames
------------------------------------------------------------------------

   This section of the file contains the definitions of the rover
   and rover structures frames.

   DISCLAIMER: The origin of the frames specified in the following
   definitions are not implemented. The ``true'' origin of all frames
   is in the center of the RM_ROVER frame, the center of which
   is defined by the position given by the SPK (ephemeris) kernel in
   use.


RM Rover Frames
--------------------------------------

   According to [4] the RM rover reference frame -- RM_ROVER -- is
   defined as follows:

      -  +Z axis, lies vertically upwards, antiparallel to the gravity vector
         when the rover is on flat, horizontal terrain;

      -  +X axis lies towards the front of the Rover in the nominal direction
         of travel;

      -  +Y axis completes the right-handed frame;

      -  the origin of this frame at the intersection of the following planes:

            - A plane 252.5 mm aft (i.e. negative offset in +X axis) and
              parallel to Plane 1 (the plane formed by the nominal bolt axes
              of the front body HDRMs);

            - Plane 2, the plane of symmetry between the front body HDRM
              nominal bolt axes - equivalent to the rover body mid-plane;

            - A plane 30 mm below and parallel to Plane 3 (the plane of the
              rover body base).


   These diagrams illustrate the RM_ROVER frame:

   -Y Rover side view:
   -------------------

                .-.
                | |
                | |
                |_|
                |_|
                 |
                 |
                 |
                 |
                 |
                 |
                 |
                 |
                 |        +Zrm
                _|_         ^
               |   |        |
         -------------------|-------------------------------------
               ,------------|------------.
               |            |             |
            ___|            |             |
           /   | +Xrm       |             |
           \___|__<---------o ____________.         +Yrm is out the page
                | |        +Yrm          | |
        __------/ \-----__               / \.__
       |  |-----\_/----|  |              \__.  |
      .|  |.          .|  |.               .|  |.
     / |__| \        / |__| \             / |__| \
     \      /        \      /             \      /
      `-..-'          `-..-'               `-..-'


   +Z Rover side view:
   -------------------

          .-------------------------..-------------------------.
    .-----|                         ||                         |
    | .--.|                         ||                         |
    | |  ||                         ||                         |
    `-|  |'-------------------------''-------------------------'
     .------------------.
     |                  '----------.
     '----.                         |
       |  |                         |
       |  |    .-.                 .'
       |  |    | +Xrm      +Zrm    |
       |  |    | |<---------o      |
       |  |    | |          |      |
       |  |    '-'          |       '.
       '--|                 |        |            +Zrm is out of the page
          '-----.         .-|--------'
                '---------' v
          .--------------- +Yrm ----..-------------------------.
          |                         ||                         |
          |                         ||                         |
          |                         ||                         |
          '-------------------------''-------------------------'

   +X Rover side view (drill in stowed position):
   ----------------------------------------------


                    o-o-=O===O--o
                       |o|___|
                          _\/
                         |_|_
                           |_|
                            |
                            |
                            |
                            |
                            |
                            |
                            |
                            |
                            |
                           _|_ +Zrm
                          |   | ^
      --------------------------|-------------------------
             |   |          |   |  |   |      |  |
             '---|          |   |  | 0 |   .--'--'
                 '--.-----------|----------|
                 .--|           |          |---.
            .-.  |============= o--------> ====|  .-.
           |___|=|            +Xrm |   |+Yrm   |=|___|
           |.-.                                   .-.|
           || |                                   | ||    +Xrm is out of the
           `| |                                   | |'    page
            '_'                                   '_'
          ~~~~~~~~                             ~~~~~~~~


   Since the RM bus attitude with respect to an inertial frame is provided
   by a C-kernel (see [3] for more information), this frame is defined as
   a CK-based frame.

   These sets of keywords define the RM_ROVER frame:

   \begindata

      FRAME_RM_ROVER                   = -174000
      FRAME_-174000_NAME               = 'RM_ROVER'
      FRAME_-174000_CLASS              =  3
      FRAME_-174000_CLASS_ID           = -174000
      FRAME_-174000_CENTER             = -174000
      CK_-174000_SCLK                  = -174
      CK_-174000_SPK                   = -174
      OBJECT_-174_FRAME                = 'RM_ROVER'

   \begintext


RM Rover Cruise Frame
----------------------------------------------------------------------------

    The RM Rover Cruise frame -- RM_LANDER_CRUISE -- is a special
    frame used in cruise in order to "attach" the RM rover to CM
    during the cruise phase, it is defined as follows (from [4]):

      - +Z axis is parallel to CM's +Z axis;

      - +X axis is parallel to CM's +X axis;

      - +Y axis completes the right-handed frame;

      - the origin of this frame is the RM/SP interface
        point on the separation plane.


    This frame is defined a fixed-offset 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_RM_ROVER_CRUISE            = -174001
       FRAME_-174001_NAME               = 'RM_ROVER_CRUISE'
       FRAME_-174001_CLASS              =  4
       FRAME_-174001_CLASS_ID           = -174001
       FRAME_-174001_CENTER             = -174000
       TKFRAME_-174001_RELATIVE         = 'CM_SPACECRAFT'
       TKFRAME_-174001_SPEC             = 'ANGLES'
       TKFRAME_-174001_UNITS            = 'DEGREES'
       TKFRAME_-174001_AXES             = (    1,     3,       1  )
       TKFRAME_-174001_ANGLES           = (  0.0,   0.0,     0.0  )

    \begintext


RM Deployable Mast, Pan & Tilt Mechanism and Payload Bracket Frames
----------------------------------------------------------------------------

   The RM Deployable Mast Assembly (RM_MAST) accommodates the Pan & Tilt
   Mechanism and the PanCam, NavCam and ISEM instruments, The DMA frame is
   positioned at the base of the mast. The frame RM_MAST_ZERO has its origin at
   the base of the mast and its axes are nominally co-aligned to the RM_ROVER
   frame axes (within knowledge alignment errors), since the mast needs to be
   deployed and can be rotated, this rotation is incorporated by the
   RM_MAST frame [12]. When the mast is folded it is 'resting' on the
   rover body.

   The Mast Pan & Tilt Rotation Mechanism (PTR) is the structure on top of the
   Rover Module mast that accommodates the Stereo Bench where PanCam and the
   NAVCAMs re placed. A series of reference frames are defined in order to
   capture the Pan and Tilt rotations of the structure.

   The Pan & Tilt Zero Rotation frame -- RM_PTR_ZERO -- has the origin at the
   top of the mast, just below the actual pan & tilt mechanism. The axes are
   nominally aligned to the RM_LANDER frame with null pan & tilt; however the
   RM_PTR_ZERO frame can take into account possible deformations of the mast
   and knowledge alignment errors. The frame is defined as follows:

      -  +Y axis is parallel to tilt axis of rotation, and nominally lies
         horizontally sideways

      -  +Z axis, is parallel to the pan axis of rotation, and nominally
         lies vertically upwards;

      -  +X axis completes the right-handed frame;

      -  the origin of this frame is defined as the intersection of the tilt
         axis of rotation and a line intersecting the axis which lies normal
         to both the tilt axis and pan axis. This intersection is assumed
         fixed with respect to the top of the mast. and allows for the
         eventually of the tilt axis and pan axis not intersecting.


   In order to incorporate the pan & tilt rotations, the Pan & Tilt Rotating
   frame is defined -- RM_PTR -- , it is identical to the RM_PTR_ZERO frame
   (i.e. a fixed translation in the Rover Body frame), but rotating with the
   direction of the Pan & Tilt. Pan and Tilt are then defined by the 3-2-1
   Euler rotation, where pan is the first rotation (about the +Z axis), tilt is
   the second rotation (about the +Y axis), and there is no possibility of
   rotation about the +X axis.

   The Payload Bracket frame -- RM_PB -- is fixed relative to the payload
   bracket (which itself is fixed to the tilt actuator rotor). The orientation
   of this frame is not fixed with respect to the RM_LANDER frame, but it
   changes, e.g. when the Deployable Mast Assembly is deployed or when, while
   in deployed configuration, the mast bends or either the pan and tilt angles
   are modified. The frame is defined as follows:

      -  +X axis is perpendicular to the +Y axis and is parallel to the
         interface plane between the payload bracket and the PanCam;

      -  +Y axis is co-aligned with the tilt axis;

      -  +Z axis completes the right-handed frame;

      -  the origin of this frame is the intersection of the pan and tilt axes,
         therefore it is located within the tilt actuator, along the axis of
         the tilt actuator shaft where this intersects with the pan axis.


   This diagram illustrates the RM_MAST_ZERO, RM_MAST, RM_PTR_ZERO, RM_PTR and
   RM_PB frames:

   +X Rover side view (with fully deployed mast):
   ----------------------------------------------

                        +Zptr0
                           ^
                           |
                    o-o-=O=|=O--o
                       |o|_|_|
                          _|/
                         |_|_
                           o------------> +Yptr0
                        +Xptr0
                            |
                            |
                          +Zmast,+Xmast0
                            ^
                            |
                            |
                            |
                            |
                           _|_ +Zrm
                          | o----------> +Ymast,+Ymast0
      ------------------ +Xmast ---------------------------
             |   |          |   ^ +Zrm |      |  |
             '---|          |   |  | 0 |   .--'--'
                 '--.-----------|----------|
                 .--|           |          |---.
            .-.  |============= o--------> ====|  .-.
           |___|=|            +Xrm |   | +Yrm   |=|___|
           |.-.                                   .-.|
           || |                                   | ||    +Xrm, +Xmast and
           `| |                                   | |'    +Zptr0 are out of
            '_'                                   '_'     the page. +Zmast0 is
          ~~~~~~~~                             ~~~~~~~~   into the page.


   -Y Rover side view:
   -------------------

                .-.
                | |
                | |
                |_|
                |_|
                 |
                 |
                 |
                 |
                 |
                 |
                 |
                 |
                 |        +Zrm
                _|_         ^
               |   |        |
         -------------------|-------------------------------------
               ,------------|------------.
               |            |             |
            ___|            |             |
           /   | +Xrm       |             |
           \___|__<---------o ____________.         +Yrm is out of the page
                | |        +Yrm          | |
        __------/ \-----__               / \.__
       |  |-----\_/----|  |              \__.  |
      .|  |.          .|  |.               .|  |.
     / |__| \        / |__| \             / |__| \
     \      /        \      /             \      /
      `-..-'          `-..-'               `-..-'



   These sets of keywords define the Pan & Tilt Mechanism and Rotation and
   Payload Bracket frames:

   \begindata

      FRAME_RM_MAST_ZERO              = -174010
      FRAME_-174010_NAME              = 'RM_MAST_ZERO'
      FRAME_-174010_CLASS             =  4
      FRAME_-174010_CLASS_ID          = -174010
      FRAME_-174010_CENTER            = -174010
      TKFRAME_-174010_RELATIVE        = 'RM_ROVER'
      TKFRAME_-174010_SPEC            = 'ANGLES'
      TKFRAME_-174010_UNITS           = 'DEGREES'
      TKFRAME_-174010_AXES            = (     3,      1,     2 )
      TKFRAME_-174010_ANGLES          = (   0.0,   90.0,   0.0 )

      FRAME_RM_MAST                   = -174011
      FRAME_-174011_NAME              = 'RM_MAST'
      FRAME_-174011_CLASS             =  3
      FRAME_-174011_CLASS_ID          = -174011
      FRAME_-174011_CENTER            = -174010
      CK_-174011_SCLK                 = -174
      CK_-174011_SPK                  = -174

      FRAME_RM_PTR_ZERO               = -174012
      FRAME_-174012_NAME              = 'RM_PTR_ZERO'
      FRAME_-174012_CLASS             =  4
      FRAME_-174012_CLASS_ID          = -174012
      FRAME_-174012_CENTER            = -174012
      TKFRAME_-174012_RELATIVE        = 'RM_MAST'
      TKFRAME_-174012_SPEC            = 'ANGLES'
      TKFRAME_-174012_UNITS           = 'DEGREES'
      TKFRAME_-174012_AXES            = (     3,      1,     2 )
      TKFRAME_-174012_ANGLES          = (   0.0,    0.0,   0.0 )


      FRAME_RM_PTR                    = -174013
      FRAME_-174013_NAME              = 'RM_PTR'
      FRAME_-174013_CLASS             =  3
      FRAME_-174013_CLASS_ID          = -174013
      FRAME_-174013_CENTER            = -174012
      CK_-174013_SCLK                 = -174
      CK_-174013_SPK                  = -174

      FRAME_RM_PB                     = -174014
      FRAME_-174014_NAME              = 'RM_PB'
      FRAME_-174014_CLASS             =  4
      FRAME_-174014_CLASS_ID          = -174014
      FRAME_-174014_CENTER            = -174012
      TKFRAME_-174014_RELATIVE        = 'RM_PTR'
      TKFRAME_-174014_SPEC            = 'ANGLES'
      TKFRAME_-174014_UNITS           = 'DEGREES'