Files From Mars

4,157 views

Published on

Challenges and trade-offs in the development of software for a ground system supporting the Mars Exploration Rovers (JavaOne 2005)

Published in: Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
4,157
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
75
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

Files From Mars

  1. Files from Mars: Java™ Technology in the MER Data Infrastructure David Noble Principal Consultant Oak Grove Consulting http://marsrovers.jpl.nasa.gov/ TS-1416 SM 2005 JavaOne Conference | Session TS-1416
  2. Goal Examine challenges and tradeoffs in the development of software for a ground system supporting the Mars Exploration Rovers This work was performed at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration SM 2005 JavaOne Conference | Session TS-1416 | 2
  3. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 3
  4. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 4
  5. Mission Overview Two robotic geologists exploring Mars Credit: NASA/JPL/Cornell Detail of 'Cahokia' panorama http://photojournal.jpl.nasa.gov/feature/cahokia SM 2005 JavaOne Conference | Session TS-1416 | 5
  6. Credit: NASA/JPL/MSSS/NMMNH MER-A (Spirit) Traverse to Sol 450 http://photojournal.jpl.nasa.gov/catalog/PIA07849 SM 2005 JavaOne Conference | Session TS-1416 | 6
  7. Height: 1.5m Width: 2.3m Length: 1.6m Mass: 174kg Credit: NASA/JPL MER-A (Spirit) and Mars Pathfinder flight spare http://marsrovers.jpl.nasa.gov/gallery/spacecraft/mer2002_1106_b231.html SM 2005 JavaOne Conference | Session TS-1416 | 7
  8. Credit: NASA/JPL/Cornell/USGS/University of Mainz Credit: Maas Digital LLC, NASA/JPL Credit: NASA/JPL/Cornell/ASU Credit: NASA/JPL/Cornell/ASU http://athena.cornell.edu/ SM 2005 JavaOne Conference | Session TS-1416 | 8
  9. NASA’s Science Objectives Long-term science goals for Mars Exploration: ● Determine whether Life ever arose on Mars ● Characterize the Climate of Mars ● Characterize the Geology of Mars ● Prepare for Human Exploration ● http://marsrovers.jpl.nasa.gov/science/ SM 2005 JavaOne Conference | Session TS-1416 | 9
  10. MER’s Science Objectives “ The scientific objectives of the Mars Exploration Rover mission are to: water activity. In 1. Search for and characterize a variety of rocks and soils that hold clues to past particular, samples sought will include those that have minerals deposited by water-related processes such as precipitation, evaporation, sedimentary cementation, or hydrothermal activity. 2. Determine the distribution and composition of minerals, rocks, and soils surrounding the landing sites. 3. Determine what geologic processes have shaped the local terrain and influenced the chemistry. Such water processes could include or wind erosion, sedimentation, hydrothermal mechanisms, volcanism, and cratering. 4. Perform quot;ground truthquot;—calibration and validation—of surface observations made by Mars orbiter instruments. This will help determine the accuracy and effectiveness of various instruments that survey Martian geology from orbit. 5. Search for iron-containing minerals, identify and quantify relative amounts of specific mineral types that water water, contain or were formed in such as iron-bearing carbonates. 6. Characterize the mineralogy and textures of rocks and soils and determine the processes that created them. water was ” 7. Search for geological clues to the environmental conditions that existed when liquid present. Assess whether those environments were conducive to life. http://marsrovers.jpl.nasa.gov/science/objectives.html SM 2005 JavaOne Conference | Session TS-1416 | 10
  11. Actors Scientists ● Evaluate images and other data ● Plan rover activities ● Engineers ● Evaluate rover health, state, performance ● Build rover activity commands ● Keep everything working ● SM 2005 JavaOne Conference | Session TS-1416 | 11
  12. Downlink Data Flow Scientist PDS EVR DP MIPL TIS TDS OSS EHA TIS TDS Engineer Not to scale. Significantly simplified. SM 2005 JavaOne Conference | Session TS-1416 | 12
  13. Downlink Data Composition 2% 3% 95% Products 8% Channels Events Engineering 53% Products Engineering 33% Cameras Science MER-A (Spirit) Sols 1-400 Percentage of data volume SM 2005 JavaOne Conference | Session TS-1416 | 13
  14. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 14
  15. Deadline MER-A Launch Window ● June 8, 2003–June 24, 2003 ● MER-B Launch Window ● June 25, 2003–July 15, 2003 ● Two opportunities per day ● 10 days required between launches ● MER Landing Press Kit, 12-1-03 http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf SM 2005 JavaOne Conference | Session TS-1416 | 15
  16. Planetary Alignment MER Landing Press Kit, 12-1-03 http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf SM 2005 JavaOne Conference | Session TS-1416 | 16
  17. Tactical Timeline 15 hours to create next sol’s commands ● Evaluate health, etc ● Evaluate science ● Determine science goals ● Plan activities ● Build and validate commands ● SM 2005 JavaOne Conference | Session TS-1416 | 17
  18. Risk Mars Missions, from 1/1/1970 to 1/1/2004 Attempts Successes Orbiters 11 4 Landers 13 4 Rovers 1 1 MER Landing Press Kit, 12-1-03 http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf SM 2005 JavaOne Conference | Session TS-1416 | 18
  19. Budget Primary Mission: $820 Million USD $75M $100M Spacecraft Dev $645M and Science Instruments Launch Mission Ops and Science Proc- essing MER Landing Press Kit, 12-1-03 http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf SM 2005 JavaOne Conference | Session TS-1416 | 19
  20. Visibility First three days after landing: ● One billion web hits ● 15 Terabytes downloaded by web browsers ● http://marsrovers.jpl.nasa.gov/newsroom/pressreleases/20040106a.html SM 2005 JavaOne Conference | Session TS-1416 | 20
  21. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 21
  22. Loose Coupling Benefits ● Component reuse ● Component pluggability ● Parallel development ● Drivers: cost, risk ● SM 2005 JavaOne Conference | Session TS-1416 | 22
  23. Criteria Usability ● Correctness ● Testability ● Reliability ● SM 2005 JavaOne Conference | Session TS-1416 | 23
  24. Options Service Lookup ● Inversion of Control ● JavaBeans and InfoBus ● Message Pub/Sub ● SM 2005 JavaOne Conference | Session TS-1416 | 24
  25. Options Service Lookup ● Inversion of Control ● JavaBeans and InfoBus ● Message Pub/Sub ● SM 2005 JavaOne Conference | Session TS-1416 | 25
  26. Message Classes Message getType() : String MessageContext <<interface>> publish(Message) MessageSubscriber subscribe(type:String, Subscriber) handleMessage(Message) SM 2005 JavaOne Conference | Session TS-1416 | 26
  27. Message Classes Message getType() : String MessageContext <<interface>> publish(Message) MessageSubscriber subscribe(type:String, Subscriber) handleMessage(Message) MessageContextFactory BaseMessageHandler createMessageContext() handleMessage(Message) : MessageContext SM 2005 JavaOne Conference | Session TS-1416 | 27
  28. Message Publisher public class MyPublisher { private MessageContext messageContext; public MyPublisher(MessageContext context) { this.messageContext = context; } public void demonstratePublish() { SampleMessage message = new SampleMessage(); messageContext.publish(message); } } SM 2005 JavaOne Conference | Session TS-1416 | 28
  29. Message Subscriber public class MySubscriber implements MessageSubscriber { public MySubscriber(MessageContext messageContext) { messageContext.subscribe(SampleMessage.TYPE, this); } public void handleMessage(Message genericMessage) { SampleMessage message; message = (SampleMessage) genericMessage; // ... do something with the message } } SM 2005 JavaOne Conference | Session TS-1416 | 29
  30. Subscriber to Multiple Messages messageContext.subscribe(FooMessage.TYPE, new BaseMessageHandler() { public void handleMessage(Message genericMessage){ handleFooMessage((FooMessage) genericMessage); } } ); messageContext.subscribe(BarMessage.TYPE, new BaseMessageHandler() { public void handleMessage(Message genericMessage){ handleBarMessage((BarMessage) genericMessage); } } ); SM 2005 JavaOne Conference | Session TS-1416 | 30
  31. Assembling Components MessageContext context = new MessageContext(); context.setVerbose(verbose); ProductInput input = addProductInput(context); if (dump) { addProductDumpOutput(context); } ProductBuilder builder = addProductBuilder(context); ProductStorage storage = addProductStorage(context); addProductSummaryOutput(context); addExternalSubscribers(context); input.read(); SM 2005 JavaOne Conference | Session TS-1416 | 31
  32. Lines of Code for Message Package Including Test Classes Lines Percent Brackets 59 8.70% Whitespace 70 10.32% Comments 345 50.88% “Significant” 204 30.09% Total 678 SM 2005 JavaOne Conference | Session TS-1416 | 32
  33. Would I Do It Again? Yes ● Reused for other missions ● Watching for creeping complexity ● SM 2005 JavaOne Conference | Session TS-1416 | 33
  34. Data Product Storage Product files ● Product metadata ● Product part metadata ● SM 2005 JavaOne Conference | Session TS-1416 | 34
  35. Schema Design Product ProductPart ID Filename 1 ID Command Product Series PartNumber CreationTime 1..* DataFilename TotalParts DataOffset etc DataLength etc SM 2005 JavaOne Conference | Session TS-1416 | 35
  36. Database SM 2005 JavaOne Conference | Session TS-1416 | 36
  37. Why Not? Procedures ● Installation, configuration, maintenance ● Validation tests ● Performance, scalability, reliability ● Third party software evaluations, DBA, … ● Time ● SM 2005 JavaOne Conference | Session TS-1416 | 37
  38. Product Metadata XML ● Regular line breaks ● SM 2005 JavaOne Conference | Session TS-1416 | 38
  39. Locations Complete Products products/<type>/<subtype>/<command>_<series>_<time>.dat products/<type>/<subtype>/<command>_<series>_<time>.emd Partial Products <command>_<series>_<time>_Partial-<counter>.pdat <command>_<series>_<time>_Partial-<counter>.pemd Parts Cache products/parts/<filename>/*.dat products/parts/<filename>/*.emd Alternate Views sol/<NNN>/ssw/products/created/<typename>/<filename> sol/<NNN>/ssw/products/received/<typename>/<filename> SM 2005 JavaOne Conference | Session TS-1416 | 39
  40. Would I Do It Again? Not exactly ● Add database ● Develop procedures off critical path ● Keep files ● Accessible to scripts, people ● SM 2005 JavaOne Conference | Session TS-1416 | 40
  41. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 41
  42. Product Action Triggers Requirement: ● Trigger actions on product arrival ● SM 2005 JavaOne Conference | Session TS-1416 | 42
  43. Product Action Triggers Initial requirement: ● “Users can register to be notified by email when a product arrives” SM 2005 JavaOne Conference | Session TS-1416 | 43
  44. Product Action Triggers Filter criteria ● Script execution ● SM 2005 JavaOne Conference | Session TS-1416 | 44
  45. Configuration <subscriptions> <script> <trigger complete=quot;yesquot; partial=quot;noquot;/> <filter> <allow apid=quot;50quot; subtype=quot;78quot;/> </filter> <path>subscriptions/scripts/uncompress</path> </script> </subscriptions> SM 2005 JavaOne Conference | Session TS-1416 | 45
  46. Multiple Uses Science processing ● Generic uncompression ● Text representations ● Multiple directory hierarchies ● SM 2005 JavaOne Conference | Session TS-1416 | 46
  47. However… Never did email product notification ● SM 2005 JavaOne Conference | Session TS-1416 | 47
  48. However… Never did email product notification ● Email reports had high-level summaries ● SM 2005 JavaOne Conference | Session TS-1416 | 48
  49. Would I Do It Again? Yes, but… ● With JMS message publishing ● SM 2005 JavaOne Conference | Session TS-1416 | 49
  50. Product Display XML Data Dictionary ● Values ● Units ● Lookup tables ● Arrays of values ● Arrays of arrays ● “Opaque” blocks handled by external viewers ● SM 2005 JavaOne Conference | Session TS-1416 | 50
  51. External Viewers Images ● Complex data structures ● Special formatting ● Reports ● SM 2005 JavaOne Conference | Session TS-1416 | 51
  52. Hazcam Image % mer_dp_view img_image_loco_fhl/*.dat | more Filename: img_image_loco_fhl/f0006-000-0000_003_0161168693-127.dat Type: img_image_loco_fhl - LOCO Compressed Image, Left Front Hazcam Spacecraft: MER A (SCID=254) DVT: 2005-039T20:59:11.217 - 0161168693.127 Packetized: 2005-045T04:00:14.932 - 0161625954.245 ERT: 2005-045T06:10:23.782 APID=25 Subtype=9 Version=2 Image ID: 1000012323 Camera ID: Front Left Hazcam Filter ID: No filter/unknown Array PMA Coordinate length 3 [0] PMA Coordinate: 0.000000 [1] PMA Coordinate: 0.000000 [2] PMA Coordinate: 0.000000 PMA Pointing Argument: 0 Image Acquire Request: Acquire Image Shutter Subtraction Request: None Credit: NASA/JPL/Caltech SM 2005 JavaOne Conference | Session TS-1416 | 52
  53. UHF Link Report Filename: products/047/010/e0105-001-0005_001_0134188770-155.dat Type: uhf_link_rep - UHF Link Report Spacecraft: MER A (SCID=254) DVT: 2004-093T14:38:43.195 - 0134188770.155 Packetized: 2004-093T16:28:59.022 - 0134195386.103 ERT: 2004-093T16:55:10.744 APID=47 Subtype=10 Version=0 product_viewer: viewUhfDps products/047/010/e0105-001-0005_001_0134188770-155.dat Report for quot;UHF Link Reportquot; data product (47/10) Product Version: 0 File Name: products/047/010/e0105-001-0005_001_0134188770-155.dat Accounting --------------------------------------------------------------------------- File size: 12028 bytes Time span: 1000 seconds Number of samples: 999 Sample period: 1 second Start End --------------------------------------------------------- SCLK: 134188770.61377 134189770.50879 Osc. Temp (DN) 12633 12911 Osc. Temp Status Good Good PA Temp (DN) 0 0 PA Temp Status Good Good --Samp---------SCLK---Rx_Pwr(DN)---Word 4---Tx_State---RC_Tone---TC_Tone---Link_Qual---Bit_Sync---Car_Lock----- TAC-----RAC 1 134188771 8197 0x0094 Off No_Tone No_Tone Good No_Lock No_Lock 0 0 2 134188772 8404 0x0094 Off No_Tone No_Tone Good No_Lock No_Lock 0 0 SM 2005 JavaOne Conference | Session TS-1416 | 53 3 134188773 8409 0xf008 Off No_Tone No_Tone Bad No_Lock No_Lock 0
  54. Would I Do It Again? Yes, but… ● Add type/length/value data types ● Add formatting plugin (XSL, Velocity, etc.) ● SM 2005 JavaOne Conference | Session TS-1416 | 54
  55. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 55
  56. Reuse Across Missions Cassini ● Deep Impact ● Dawn ● MRO ● MSL ● SM 2005 JavaOne Conference | Session TS-1416 | 56
  57. Package Dependencies report product evr sfdu message app log util ecp SM 2005 JavaOne Conference | Session TS-1416 | 57
  58. General Libraries report product evr sfdu message app log util ecp SM 2005 JavaOne Conference | Session TS-1416 | 58
  59. Domain Specific Libraries report product evr sfdu message app log util ecp SM 2005 JavaOne Conference | Session TS-1416 | 59
  60. Application Specific Code report product evr sfdu message app log util ecp SM 2005 JavaOne Conference | Session TS-1416 | 60
  61. Agenda Background Challenges Simplicity Extensibility Reuse Summary Q&A SM 2005 JavaOne Conference | Session TS-1416 | 61
  62. Summary Simplicity to handle risk, cost, schedule ● Extensibility to handle uncertainty ● Reuse to handle risk, cost, schedule ● Know your users ● One size does not fit all ● Requirements documents are not enough ● Use assumptions that fit reality ● SM 2005 JavaOne Conference | Session TS-1416 | 62
  63. For More Information Science Instruments Home Page ● http://athena.cornell.edu/ ● MER Analyst’s Notebook ● http://anserver1.eprsl.wustl.edu/ ● Basics of Space Flight ● http://www.jpl.nasa.gov/basics/ ● Introduction to the AMMOS Ground System ● http://eis.jpl.nasa.gov/~betsy/mm/intro.htm ● SM 2005 JavaOne Conference | Session TS-1416 | 63
  64. Q&A SM 2005 JavaOne Conference | Session TS-1416 | 64
  65. Submit Session Evaluations for Prizes! Your opinions are important to Sun You can win a $75.00 gift certificate to the on-site Retail ● Store by telling Sun what you think! Turn in completed forms to enter the daily drawing ● Each evaluation must be turned in the same day as the ● session presentation Five winners will be chosen each day (Sun will send the ● winners email) Drop-off locations: give to the room monitors or use any ● of the three drop-off stations in the North and South Halls Note: W inners on Thursday, 6/30, will receive and can redeem certificates via email SM 2005 JavaOne Conference | Session TS-1416 | 65
  66. Files from Mars: Java™ Technology in the MER Data Infrastructure David Noble Principal Consultant Oak Grove Consulting http://marsrovers.jpl.nasa.gov/ TS-1416 SM 2005 JavaOne Conference | Session TS-1416

×