Wind River, a wholly owned subsidiary of Intel Corporation, is a major player in embedded and mobile software. Wind River has been pioneering computing inside embedded devices since 1981, and its technology is found in more than 1 billion products. It’s flagship product, VxWorks, made it’s latest appearance within the Mars rover ‘Curiosity’.
Mike Deliman, Senior Technologist at WindRiver, spoke to Dilin Anand and Ashwin Gopinath of EFY about the complexities of designing RTOS for outer space and the famously complex EDL sequence.
Q. What are the latest trends in the RTOS field? Do you see any particular trend emerging or dominating in the near future?
A. Trends in RTOS are constantly emerging and evolving. Advanced robotics, telepresence , and autonomous control all require enormous amounts of high-powered deterministic computing, and as the need to return more information, as opposed to raw-data, grows, these systems will need to do more of the number crunching/application processing that 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. The trends we’re going to see will be an increased need for multi-core support and virtualization, increased need for robust fault-tolerant supervisory systems, and increased support for open standards and systems.
Q. Tell us about Wind River VxWorks’ involvement in helping NASA JPL’s Mars Rover Curiosity tackle what is now being called the ‘7 Minutes of terror’; the Entry, Descent and Landing Sequence (ED&L).
A. Wind River VxWorks is our industry-leading real-time operating system that serves as the operating system (OS) inside the flight computers on the Mars Rover Curiosity. Just as a Windows or Linux operating system makes it so that your desktop or laptop computer (or cell phone!) are useful to you as devices, the OS inside the flight computers is what makes it a functional space robot. The OS is the part that allows the programmers to make the computer do all the things their applications need to fulfill the purpose of their device. In this case, the applications included for the 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 flight of the space craft 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 the 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 for Curiosity customized for this particular mission?
A. One of the amazing things about VxWorks is its flexibility. It actually did not need to be customized much beyond the layers of software (called a Board Support Package(BSP)) that lets VxWorks run on the space computers. Even the BSP follows a standard format, which makes it easier to use VxWorks to create systems.
From this point of view, the VxWorks’ operating system inside Curiosity is the same as the that deployed in more than 1 billion devices running on 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 maneuvers?
A. The 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 maneuvers like ejecting the heat shield or deploying the space crane, exactly when they were needed. The VxWorks OS 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 which react to their environment in real-time.
Q. What were the major challenges in the avionics packages and the major features included in the science package?
A. This is an excellent question for the engineers at NASA/JPL. Just as teams at Wind River are experts at tailoring our OS for our customers’ needs, our 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 experts at integrating avionics and science packages in the creation of these fantastic explorers.
Q. What are the challenges you face when controlling a sequence millions of miles deep in space?
A. For our OS, the challenges are much the same as any remote autonomous system: our OS has to perform as promised. For the scientists and engineers creating space-bound craft, not only do they have all the hard requirements of earthbound industrial and medical robots, but their systems are not going to be available for inspection or debugging once they are deployed, and they have to operate in a radiation filled vacuum under extreme temperature variations after being placed under unimaginable acceleration and vibration! These conditions are actually impossible to completely simulate, yet it is the conditions under which these robots must operate perfectly.
Q. How do you test the reliability of your software and make sure they function properly when needed?
A. Testing is a complex subject. Wind River uses a variety of tests, including automated test suites we have developed and maintained for over two decades. Tests cover various areas including proper functions, as well as handling error conditions. With the automated tests, results are collected and compared against expected results, and reports are generated. These tests are separated out into tests specific to the hardware interface functions (the BSP part), and general operating system and programming interface testing. Since we support two compiler chains, several architectures of computer processors and dozens of different computer boards, our testing is fairly complex and complete.
We are also accredited by standards committees who test our software with their test suites. This includes certifications by bodies such as POSIX (Portable Operating System Interface )and IPV6 (Internet Protocol Version 6).