Wind River, a wholly owned subsidiary of Intel Corporation, is a major player in embedded and mobile software. It has been pioneering computing inside embedded devices since 1981, and its technology is used in more than one billion products. Its flagship product VxWorks was recently used within the Mars rover ‘Curiosity.’
Mike Deliman, senior technologist at Wind River, spoke to Ashwin Gopinath of EFY about designing real-time operating system (RTOS) for outer space and the famously complex EDL sequence
Q. What is brewing in the RTOS field? Do you see any particular trend dominating in the near future?
A. The RTOS field is constantly evolving. Advanced robotics, telepresence and autonomous control all require enormous amount of high-powered deterministic computing. As the need to return more information than raw data grows, these systems will need to do more of number crunching/application processing than had been done by ground and control systems back at the lab. This, in turn, means remotely deployed systems will need more kinds of applications running on them simultaneously to achieve their objectives.
We are going to see an increased need for multi-core support and virtualisation, increased need for robust fault-tolerant supervisory systems, and increased support for Open standards and systems.
Q. How did VxWorks help the Mars rover Curiosity to tackle the so-called ‘7 minutes of terror’ in the entry, descent and landing sequence (ED&L)?
A. Wind River VxWorks RTOS serves as the OS inside flight computers on Mars rover Curiosity. Just as a Windows or Linux operating system makes your desktop or laptop computer (or cell phone) useful to you as a device, the OS inside flight computers is what makes them a functional space robot. The OS allows programmers to make the computer do all the things that their applications need, fulfilling the purpose of their device.
In this case, applications included for ED&L procedure take readings from various avionics packages and trigger rockets and other devices to control the landing process. The OS controls the entire process with precision and determinism.
VxWorks was actually in control of the spacecraft’s flight from the minute the rocket took off. The craft is also able to upgrade software packages while in-flight. For instance, the craft did not have instructions for ED&L until perhaps a week before it needed them. Once it had landed safely, the instructions that tell it how to be a robotic geologist were sent up.
Q. How was the RTOS of Curiosity customised for this particular mission?
A. One of the amazing things about VxWorks is its flexibility. It actually did not need to be customised much beyond the layers of software called board support package (BSP) that let VxWorks run on space computers. Even the BSP follows a standard format, which makes it easier to use VxWorks to create systems.
From this point of view, VxWorks operating system inside Curiosity is the same as in more than a billion devices running on the Earth every day. This flexibility is part of what allows VxWorks to be used inside devices like Curiosity.
Q. How did VxWorks navigate the critical and delicate trajectory correction manoeuvres?
A. Application programmers at the Jet Propulsion Laboratory (JPL) created packages that allowed the craft to take measures of its current trajectory and apply corrections via rockets, in real time, all the way down to the ground. These packages included timing for triggering pyrotechnic devices to perform various manoeuvres—like ejecting the heat shield or deploying the space crane—exactly when they were needed.
VxWorks is a deterministic OS, which means it allows programmers to control the computer with split-second accuracy. This kind of accuracy is critical to create systems that react to their environment in real time.
Q. How were the avionics and scientific features taken care of?
A. This is an excellent question for engineers at NASA/JPL. Just as teams at Wind River are experts at tailoring their OS for their customers’ needs, Wind River’s customers are experts at creating their devices and applications. My job, as an engineer, is to assist our customers in understanding and leveraging our OS to create their applications in a timely and affordable fashion.
The teams at JPL have been creating robotic spacecraft for decades, and are expert at integrating avionics and science packages in the creation of these fantastic explorers.
Q. What challenges did you face when controlling a sequence millions of kilometres into space?
A. For our OS, the challenges are much the same as with any remote autonomous system—our OS has to perform as promised. Scientists and engineers creating space-bound craft not only have to meet all the hard requirements of earthbound industrial and medical robots but their systems are also going to be unavailable for inspection or debugging once they are deployed. Also, they have to operate in a radiation-filled vacuum under extreme temperature variations after being placed under unimaginable acceleration and vibration!
Q. How do you ensure reliability of your software in such applications?
A. Testing is a complex subject. Wind River uses a variety of tests, including automated test suites that it has developed and maintained for over two decades. Tests cover various areas including proper functions and error conditions handling.
With automated tests, results are collected and compared against expected results, and reports generated. These tests are separated out into tests specific to hardware interface functions (the BSP part), and general operating system and programming interface tests.