\header ENTRY_TIME = 1997 APR 08 18:33:55 SYSTEM_NAME = SPICE AUTHOR = BILL TABER, CHUCK ACTON, BORIS SEMENOV INSTITUTION = NAIF/JPL START_TIME = 1997 JAN 01 10:00:00 *STOP_TIME = 1997 APR 08 10:00:00 *TARGET = NULL *DAY = NULL \text Rocky-7 Lessons Learned (1): Original Data, SPICE modeling and concepts =========================================================================== This note gives a summary of the lessons learned by the NAIF team during our work with the data returned from the Rocky-7 rover from the Cemeber 1997 field test. It also includes recommendations that we feel would make the task of producing SPICE kernels for a rover much simpler. Understanding of the Rocky 7 rover and it's data -------------------------------------------------------- Several SPICE kernels have been constructed for the Rocky-7 rover. However, many files produced were constructed by a custom procedure that is unlikely to be useful in future tests. The custom nature of the kernels is due to the unstructured nature of the source data. It is likely that for future tests SPK and CK files will be constructed from the sequence products (E-kernels). However, for this to happen it will be necessary that all rover geometry activities are logged in the sequence products. As noted below, the ``back-door'' commands to the rover that were not part of the WITS interface were not logged. In particular many of the commands that reset the coordinate system origin were not logged. Without a log of these events automated generation of SPK files will not be possible. Modelling Rocky-7 -------------------------------------------------------- NAIF decided early on that we would record the history of not only the location and orientation of the rover, but of the rover mast and rover arm. This required the construction of a reference frame for the rover and each component of the mast and arm. Given these frames the motion of each portion of the mast and arm can be recorded by producing a C-kernel for each structure. The kernels that contain the frame definitions and locations of various structures in these frames are static. They will not change in future tests. Thus this portion of the Rocky-7 activity can be re-used in future tests. Only if the actual configuration of the rover mast or rover arm change will it be necessary to construct new frame definition files or SPK files for the arm or mast components. In the SPICE system the attitude history of a spacecraft or rover is recorded relative to a clock that is used to control the activity of the spacecraft or rover. This clock is a required component of SPICE C-kernels. In the case of Rocky-7, a traditional spacecraft clock was not available. As a result NAIF created an artificial clock that counts milliseconds past 1990. Using this artificial clock, NAIF can construct C-kernels for any of the objects in the Rocky-7 universe that require attitude history. Rover Reference Frames The following reference frames are required to fully model the dynamics of the rover. Site Frame This frame is the topocentric frame associated with a test site. The x-axis points to the east, the y-axis points to the north, and the z-axis points up, completing a right handed frame. This site frame can be easily modified so that the x-axis points north and the y-axis points west. The definition for the Lavac Lake test site is contained in the file 'LavacLake.site'. This file can be used in either of the SPICE programs 'pinpoint' or 'makeck2' to create an ephemeris for the test site or to create a C-kernel that gives the orientation of the test site with respect to the earth bodyfixed frame. In addition this site file creates the SCLK kernel needed for recording attitude information. By modifying the LavacLake.site file we can easily accommodate other test sites. Panorama Frame The panorama frame is centered at the same point as the Site Frame. However, the x and y axes are rotated by some amount from those of the site frame. The z-axis of the site and panorama frame are parallel. NAIF did not create an orientation file for the panorama frame for the Lavac Lake test. However, the construction of this C-kernel is a minor task and can easily be constructed by modifying the LavacLake.site file. Rocky-7 Frame The Rocky 7 frame is the frame tied to the rover itself. The x-axis points along an edge of the solar panels in the direction anti-parallel to the arm. The z-axis points up from the solar panel. The y-axis completes a right handed frame. Mast-Torso-Frame The Mast-Torso-Frame frame is associated with the first piece of the mast of Rocky-7---the torso portion of the mast. The axis of rotation of the torso portion of the mast is parallel to the z-axis of the Rocky 7 rover. Mast-Shoulder-Frame The Mast-Shoulder-Frame is a frame tied to the shoulder portion of the rover mast (the rod on the mast connected to the torso joint). The shoulder frame rotates about the y-axis of the torso frame. The y-axis of the shoulder and torso are parallel by construction. The x-axis of the shoulder frame points away from the torso joint towards the elbow joint along the shoulder rod. Mast-Elbow-Frame The Mast-Elbow-Frame is a frame tied to the elbow portion of the rover mast (the second rod of the mast). The elbow rotates about the y-axis of the shoulder frame. The y-axis of the shoulder and elbow are parallel by construction. The x-axis points away from the elbow-joint along the elbow rod. Arm-Torso Frame The Arm-Torso frame is tied to the rover arm torso. The x-axis of the Arm-Torso frame is parallel to the negative x-axis of the rover by construction. The y-axis of this frame is parallel to the axis of rotation of the shoulder component of the arm. When the arm is unstowed and pointing perpendicular away from the back panel of the rover and prepared for sampling operations, the y-axis of the Arm-torso frame is parallel to the negative y-axis of the rover. Arm-Shoulder Frame The arm shoulder frame is tied to the portion of the rover arm that is between the rover and the clam-shell at the end of the arm. The x-axis points away from the shoulder-torso joint along the arm towards the clam-shells. By construction the y-axis of the arm-shoulder frame is parallel to the y-axis of the arm-torso frame. When the arm is in the stowed position the positive x-axis, of the arm-shoulder frame is parallel to the negative y-axis of the rover, the positive y-axis of the arm-shoulder frame is parallel to the negative z-axis of the rover. NAIF has constructed a toy model of the rover containing a model for the mast and arm that can be used to help visualize the various definitions above. SPK files The following ephemeris components are required to fully model the history of Rocky-7. Planetary Ephemeris The Planetary Ephemeris contains state information for the earth, sun, moon and earth-moon barycenter in some inertial reference frame. We've adopted DE-403 for this ephemeris. Test Site Ephemeris The Test Site Ephemeris records the state for some reference point at the test site (relative to the center of the earth) in an Earth body-fixed frame. This ephemeris has been constructed using the SPICE program `pinpoint'. Rover Ephemeris This ephemeris gives the position of the rover relative to the test site reference point in the test site topocentric frame. An ephemeris for the rover has been constructed using the ``truth'' data supplied from Washington University. This ephemeris is discussed in more detail later. Structures Ephemerides The structures ephemeris contains state information for: 1. the Mast-Torso-Joint relative to the Rover Reference point in the Rover fixed frame; 2. the Mast-Shoulder-Joint relative to the Mast-Torso-Joint in the Mast-Torso frame; 3. the Mast-Elbow-Joint relative to the Mast-Shoulder-Joint in the Mast Shoulder Frame; 4. the Mast-Head relative to the Mast-Elbow-Joint in the Mast Elbow Frame; 5. the Arm-Torso-Joint relative to the Rover Reference point in the Rover fixed frame; 6. the Arm-Shoulder-Joint relative to the Arm-Torso-Joint in the Arm-Torso frame; 7. the Arm-End relative to the Arm-Shoulder-Joint in the Arm-Shoulder Frame. Using measurements taken from rover schematics, a single ``structures'' ephemeris has been created for each of the structure points. The SPICE program `pinpoint' was used to create the ephemeris. With the exception of the planetary and Test Site Ephemerides, all of the ephemerides require a corresponding C-kernel in order to compute the positions relative relative to some object. CK files The following C-kernels are required to assist in modelling the Rocky-7 configuration: 1. A C-kernel that gives the orientation of the topocentric frame of the test site relative to the bodyfixed frame of the earth; 2. A C-kernel that gives the orientation of the rover relative to the topocentric frame; 3. A C-kernel that gives the orientation of the Mast-Torso frame relative to the rover frame; 4. A C-kernel that gives the orientation of the Mast-Shoulder frame relative to the Mast-Torso frame; 5. A C-kernel that gives the orientation of the Mast-Elbow frame relative to the Mast-Shoulder frame; 6. A C-kernel that gives the orientation of the Arm-Torso frame relative to the rover frame; 7. A C-kernel that gives the orientation of the Arm-Shoulder frame relative to the Arm-Torso frame. Only the first of these kernels (the topocentric relative to earth) has been produced. It was produced using the SPICE utility program MAKECK2. The other C-kernels have not been produced due to the hand crafting that would be required for their production. It is planned that NAIF will produce these kernels in future tests (provided that the various orientation parameters are readily available) from the sequence E-kernel. SCLK files The C-kernels discussed above require an SCLK kernel for both production and use. As far as NAIF has been able to determine the clock used in the Rocky-7 test is some variant of UTC (for example PDT). This clock does not fit into the current SCLK types supported by the SPICE system. As a result, we've created an artificial SCLK that counts tenths of milliseconds past the ephemeris epoch '1990 Jan 1 00:00:00 (TDB)' Until a new SCLK type has been created that will support UTC variants, this clock will be used to construct and use all C-kernels. E-Kernels The ``events'' associated with the tests at Lavac Lake were the WITS commands sent to the rover as well as textual notes. SPICE E-kernels were generated from the following inputs: -- automated Rocky-7 December test events log, file ``lavic-log''. This file was generated automatically by one of Steve Peters' processes (it is unclear whether this process was part of WITS or SCE or something else); -- HTML pages containing rover command and telemetry response descriptions (http://spanky.jpl.nasa.gov/sec314/groups/sarg/people/... ...sfp/lrsr/specs/on-board-if.html); -- textual notes taken by Steve Peters during December test (file ``december-field-log.txt''). In addition to the actual E-kernels, a script was produced for use with the SPICE program Inspekt. This script eases a user's search for information in rover sequence and rover field notes EK files. A tutorial for this script is available. Apparently from: Boris Semenov \header ENTRY_TIME = 1997 APR 08 18:37:17 SYSTEM_NAME = SPICE AUTHOR = BILL TABER, CHUCK ACTON, BORIS SEMENOV INSTITUTION = NAIF/JPL START_TIME = 1997 JAN 01 10:00:00 *STOP_TIME = 1997 APR 08 10:00:00 *TARGET = NULL *DAY = NULL \text Rocky-7 Lessons Learned (2): A List of Created SPICE Products =========================================================================== Below is a list of data products and documents that are available as a result of the Rocky-7 work performed by NAIF. Each of these data products is documented internally via the comment areas provided in each SPICE kernel type. SPK Files lavaclake.bsp An ephemeris file for the Lavac Lake test site. rocky7.bsp An ephemeris for the path followed by the Rocky-7 rover during the December test. structures.bsp An ephemeris for the various structure elements identified earlier. SCLK File rocky7.tsc is an SCLK file for the rover. It also contains the reference frame definitions required by the ephemerides of the various structure elements. CK Files lavaclake.bc is a C-kernel that gives the orientation of the Lavac Lake topocentric frame with respect to the earth bodyfixed frame. Note the C-kernels are still needed for the frames defined in the SCLK kernel and for the Rocky-7 rover. These have not been produced due to the extensive hand crafting that would be required for their production. EK and related files rocky7_dictionary.dbk event dictionary EK file was created from and contains most of the descriptive information found in a ROCKY7 Command and Telemetry Dictionary HTML pages. rocky7_operator.bes operator log EK file was produced from field notes taken during December Lavic Lake testing by Steve Peters. This EK file contains all information found the original log file. rocky7_sequence.bes sequence EK file was produced from ROCKY7 sequence log recorded during tests on the Lavic Lake in December 1996. This EK file contains all information found the original log file. rocky7.insp is an Inspekt command script that defines macros useful in searching the E-kernels listed above. rocky7.txt is a tutorial describing how to use the Inspekt script described above. Apparently from: Boris Semenov \header ENTRY_TIME = 1997 APR 08 18:38:31 SYSTEM_NAME = SPICE AUTHOR = BILL TABER, CHUCK ACTON, BORIS SEMENOV INSTITUTION = NAIF/JPL START_TIME = 1997 JAN 01 10:00:00 *STOP_TIME = 1997 APR 08 10:00:00 *TARGET = NULL *DAY = NULL \text Rocky-7 Lessons Learned (3): Problems and Conclusions =========================================================================== Problems -------------------------------------------------------- The production of the various data products above were hindered by several problems. We discuss these here. We follow this section with recommendations that if adopted will greatly ease the task of producing SPICE kernels in future tests of the rover. The Rocky-7 ``Truth'' SPK kernel The data for the ``truth'' positions of Rocky-7 required considerable hands on manipulation before it could be converted into SPICE kernels. The data was provided to NAIF via a spread sheet. The spread sheet provided a simple means for recording all the data. However, it also suffered from rather rigid format used to record the data. Some rows of the spread sheet contain only notes about the current status of the rover, others contain state information. Some position measurements contained time tags, some did not. Since spread sheets are not amenable to processing via FORTRAN the spread sheet needed to be exported to a text based, comma delimited, format for further processing. Missing Time Tags The SPICE toolkit makes parsing comma delimited files quite easy. However, since the structure of the lines of the file change from one line to the next and many of the time tags were missing, we chose to hand edit the spread sheet to remove text rows and fill in missing timing information. The filling in of the missing time tags was the most troublesome aspect of the SPK file production. The method used to arrive at the missing times is discussed in the comments of the file `rocky7.bsp'. Missing Events After review of the field notes, it has become clear that significant events in the rover position history were not included in the spread sheet (for example picking up the rover and repositioning it). As a result, the SPK file does not reflect the motion of the rover under human assistance. C-kernel The actual attitude history of the rover, was recorded more irregularly than the position information. For example some rows of the spread sheet recorded pitch and roll, but not bearing. As a result, we decided to not create a C-kernel for the rover. To do so would have required more manufacturing of data. We felt the custom nature of this work was more expensive than the resulting kernel would be worth. E-kernels The E-kernel for the Rover is potentially the most valuable product. If an accurate and complete E-kernel can be constructed, it will be a simple matter to produce SPK and CK files from it. However, the E-kernel for the December test required considerable hand crafting. Below is a terse description of the work required to convert the available data products into E-kernels. 1. The automated rover log was converted to the format used by JPL for the Predict Events File (PEF) format. Rover commands and telemetry responses (rover-SCE communications) were converted to PEF ACT (activity) records. All other log records (WITS-SCE communications, WITS control (``back-door'') directives; file I/O records; comments; etc.) were converted to PEF NOTE records. This conversion was automated by using a WinWord Basic script. (However, some time was required to construct the script). 2. Using information found in the Rocky-7 HTML pages, a rover activity dictionary was generated. This task was about half automated and half manual. The automated portion was carried out using a SPICE utility for writing EK dictionaries. The dictionary is needed to parse corresponding ACT rover PEF records. 3. Using the SPICE program PEF2EK and the activity dictionary (see above) a rover sequence EK file was generated The resulting E-kernel contains two tables: A rover activity table and a notes table. The first table contains all rover commands and telemetry responses. The second table contains the rest of the information stored in the rover automated log. 4. Steve Peter's textual notes file was converted to PEF format. All log records were formatted as PEF NOTE records. This was done manually. 5. The SPICE program PEF2EK program was used to generate rover field notes EK file. This file contains a single table having exactly the same structure as notes table from rover sequence EK file. Consequently the information in these table can queried together. Problems and Possible Improvements The automated log to PEF conversion process was relatively simple and didn't take a lot of time. However, it could take no time at all if the original automated log were in PEF format already. We can try to work with Steve to set up the LOG-in-PEF-form generation. This shouldn't be a big problem for him and would make EK generation a fully automated process. The HTML pages containing dictionary information were generated by Steve from flight software. These pages contain very little descriptive information for commands, parameters and telemetry responses. As a result, the activity dictionary EK may be only marginally useful for anything beyond specifying the format of commands/responses. (The format is used by the PEF to EK conversion process.) If the content of these descriptions is enhanced, the dictionary will become useful for users of the rover sequence EK who are not well aquainted with rover operations. The rover image information in the automated log (take image commands, download image commands, telemetry responses, and file I/O records) is insufficient for identifying the corresponding images stored in the database (or directory structure on the WITS server). There is not a unique ID associated with an image. This is needed in all logs/databases. We strongly recommend the addition of a unique ID for each image. In addition to adding a unique ID, merging the ``database update'' log (a separate log automatically generated by a daemon process running on the WITS server that keeps track of all file I/O operations) with the main automated log would allow easy inclusion of these events in the final sequence EK files. The way the rover was operated during December test did not represent the nominal operation pattern. The commands resetting WITS (``back-door'' commands) were used frequently and caused interruption of the normal rover command-response flow. When WITS was reset the response for the command that was sent to the rover before the reset was not registered in a log. Periods when the rover was commanded to perform a long traverses were particularly susceptible to interruption by ``back-door'' commands. Telemetry responses, which contained actual rover positions for these long traverses, were not logged. This made it impossible to reconstruct the rover path from the rover telemetry data stored in the EK. It is essential that the telemetry responses of the rover be recorded even during these ``non-nominal'' operations. (We assume that when the rover operates ``nominally''-without ``back-door'' interruptions-all telemetry responses will be recorded.) Conclusions -------------------------------------------------------- With improvements to the dictionary and a comprehensive set of macros defined in SPICE's Inspekt program, the process of looking for information in Rocky-7 EK file can be very easy even for users who are not very familiar with rover operations. If logs are provided in PEF format, generation of sequence EK files for the rover can be fully automated . Moreover, once the EK files have been produced, they can be used to construct SPK and CK files. Rover field note EK files can be created without significant effort and are, possibly, the easiest way to look at the notes in combination with the automatically recorded WITS events. If ``ground truth'' kernels are required, including NAIF in the design of the format used to record the ground truth will allow us to easily (possibly automatically) produce kernels for the position and orientation of the rover. The SPICE system is well suited for recording both the geometry and event history of the rover. Many aspects of the rover are now sufficiently well understood that SPICE kernels can be produced relatively easily once sufficient data is in hand to do so. Apparently from: Boris Semenov