Planetary Resources is a
company with a sky-high (some might claim "pie in the sky") goal: to find and
mine asteroids for useful minerals and other compounds. It is also a
company that uses Linux and lots of free software. So two of the
engineers from Planetary Resources, Ray Ramadorai and Marc Allen, gave a
presentation at LinuxCon
North America to describe how and why the company uses FOSS—along with
a bit about what it is trying to do overall.
Ramadorai, who is a Principal Avionics Engineer with the company, began the
talk by relating that he joined the company by noticing that it was forming
in Bellvue, Washington in 2012 and phoning the CEO. He started the talk
with a question: what does asteroid mining have to do with Linux? It turns
out, he said, that as they looked at the requirements for the spacecraft
and compared it with those of a data center, there was a "lot of overlap"
between the two. A spacecraft is a distributed system that requires high
availability. In addition, power efficiency is important as the spacecraft are powered by solar panels. Using free software was an opportunity
to use what's already been done in those areas, he said.
By way of some context, Ramadorai explained "why asteroids" and "why now".
Technology has reached a point where it is viable to build small spacecraft capable of prospecting and eventually mining near-Earth objects
(NEOs). Part of the reasoning is idealistic as many of the employees are
"space fans", but there is also a significant opportunity for financial
returns, he said.
There is more of an awareness about asteroids recently. The Russian meteor
earlier this year is one example, but NASA in the US is also talking about
capturing a NEO and orbiting it around the moon. There are a lot more
launch opportunities these days due to the private space companies
(e.g. SpaceX, Orbital Sciences). That means companies can get things to
orbit for less than hundreds of millions of dollars. There has been a
steady growth of the small satellite industry because of that. It's not so
much that the price is coming down, but that there is much more capacity
available for launches, he said.
Hardware has also gotten cheaper and more powerful. The MIPS per unit watt
have been increasing, at least in standard (not space-rated) parts. There
has been a lot of resistance within the aerospace industry to using
off-the-shelf parts, but the cost and performance difference is huge.
What's needed is a system that can handle some failures caused by space
radiation.
It has gotten to the point where a small company can actually build and
launch a spacecraft. FOSS has played a large role in that. The Planetary
Resources software team is small, and Ramadorai estimates his team will only
write 5-10% of the code that runs on the craft—the rest will come from existing
free software.
He emphasized that this was a long-term endeavor for the company. Actually
mining asteroids is a long way off. The first steps are to validate the
technology by starting to prospect and visit NEOs. There are some 1.5
million asteroids larger than 1km in the solar system, with nearly 1000 of
those being near Earth. If you look at smaller asteroids, those 100m or
less, there are around 20,000 of them near Earth. Seventeen percent of those NEOs are
"energetically closer" (i.e. require less energy
to reach) than the Moon.
He showed some images of various NEOs that had been visited by probes, then
showed one of the smallest on that slide (Itokawa) to scale
with the Space Needle—it is wider than that building is tall (184m). The
idea is that these are immense objects. They also can contain a great deal
of interesting material. A 75m C-type asteroid has enough H2
and O2 to have launched all 135 Space Shuttle missions, while a
500m LL-Chondrite asteroid can contain more platinum than has been mined in
human history.
Unfortunately, the US International Traffic in Arms
Regulations (ITAR) restrict the kind of information Planetary
Resources can share. Spacecraft are classified as munitions, which means
that the company can't work with free software communities the way it would
prefer to. The company strives to contribute as it can, while working
within ITAR. It is "annoying" and in Ramadorai's opinion, "spacecraft
should not be classified as munitions". He suggested that those interested
"write Congress" about the problem.
The first step is the Arkyd 100 spacecraft that will be tested in
low-Earth orbit. After that is the Arkyd 200 that will travel to
Earth-crossing asteroids, and the Arkyd 300 that will actually land on
asteroids. These are small craft; the Arkyd 100 can be relatively easily held by a
human (say three shoe boxes in size).
Part of how they can be that small is by dual-purposing everything that can
be. For example, the telescope that is used for prospecting and imaging
asteroids is also used for laser communications with Earth. When a spacecraft is out 1-2 astronomical units (AUs), sending directional
communication is a must for a low-power device. But at 2 AUs, the
round-trip time is 32 minutes, so autonomy in the craft is essential.
The "state of the art" space-rated processor is the Rad750, a 32-bit
PowerPC running at 133MHz. It uses 10 watts of power and costs $200,000.
He compared that with an Intel Atom processor running at 1.6GHz, consuming
2 watts, and available for less than $1000. That is why the team is
planning to use off-the-shelf parts and to deal with faults that will
happen because the processor is not space rated.
Linux is important because they can run the same operating system on the
craft, in the ground station systems, on their desktops, and in the cloud.
The cloud is useful for doing simulations of the system code while
injecting faults. It is common to spin up 10,000 instances in the cloud to
do Monte
Carlo simulations while injecting faults for testing purposes, he said.
Ramadorai then turned the floor over to Allen, who he
described as one of the Jet Propulsion Laboratories
(JPL) refugees at Planetary
Resources. While at JPL, he worked on the backup landing software for the
Curiosity Mars rover. He was, Ramadorai said, one of the few software
people that was quite happy that his code
never actually ran. Allen noted that he worked on flight software at JPL
for five years, which gave him a different perspective than some others at
the company; there is a "mix of both worlds" on the team.
Traditional deep space missions are expensive and take a long time to
design and launch. There is a tendency to pick some technology (like the
Rad750 processor) and stick with it. There are at most 2-3 vehicles built
per project, but Planetary Resources has a different philosophy and set of
motivations. It needs to look at "lots of asteroids" to find ones of interest.
That means using cheap, commodity hardware which can be upgraded as needed
throughout the life of the project. Because the company is a low-cost
spacecraft developer, it wants to use Linux and FOSS everywhere it can.
Traditionally, each separate component was its own silo, so the software
for flight, ground station, and operations were completely separate.
There is so much free software available that it is easy to find to reuse and
repurpose for their needs, Allen said. The challenge is how to stitch
all of the
disparate pieces together into a high-availability system. But a proprietary
system would have far fewer contributors and wouldn't get new features as
quickly, he said.
For example, inter-process communication (IPC) has traditionally been
created from scratch for each project, with custom messaging formats, state
machines, and
serialization mechanisms—all written from scratch. Instead of doing that,
the Planetary Resources team specified a
state machine model and message model in XML and fed it to some Python code that
auto-generated the state machine and IPC code. It uses protobuf and Nanopb for
serialization and ZeroMQ for message
passing (among other FOSS components). "Why reinvent the wheel?", he asked.
That could not have been done in the past, because processors like the
Rad750 would not support it. By using commodity hardware and handling
faults when they occur, it opens up more possibilities. For example, a
hypervisor is used to simulate redundant hardware in order to support
triple modular redundancy. Three separate versions of the flight software
can be run in virtual machines, voting on the outcome to eliminate a
problem caused by space radiation in one of the programs. It isn't a
perfect solution, but "we're not NASA, we don't have to have 100%
reliability".
The team is considering putting a SQL database in the spacecraft itself.
The communication availability, bandwidth, and reliability is such that
there needs to be an easy and compact way for operations to request data
sets to be retrieved. "Fundamentally, we a data company", Allen said, but
much of the data will never reach Earth.
There are a number of challenges with maintaining database integrity in
space. But there is only a need to make it "reliable enough" to be useful,
corruption will happen, and the software must be designed with faults in
mind. Using features like ECC memory or RAID for storage are two
techniques that can be explored because of the flexibility that commodity
hardware and FOSS provide.
Perhaps surprisingly, the cloud has been instrumental in developing the
software. Simulating faults, stressing the software, and so on have all
used the cloud extensively, he said. ITAR plays a role there too, as they
must use Amazon's GovCloud, which is ITAR compliant.
Ramadorai wrapped things up with a quick pitch for anyone looking for
employment. The company needs both hardware and software engineers;
judging from the discussions going on after the talk, there were some
interested folks in the audience.
The plan is to launch a prototype next year sometime, Ramadorai said. It
is difficult to be more specific because launch dates (and carriers)
frequently change. Beyond that, it would depend on how the early tests
go. Mining asteroids is, alas, still quite a ways off it seems.
[ I would like to thank LWN subscribers for travel assistance to New
Orleans for LinuxCon North America. ]
(
Log in to post comments)