1,241 karma · joined December 6, 2009
Web site coming soon
Edit: For innovation on size, check out KickSat
The closest to a mission goal I can find in the post is "This approach allows engineers to see what capabilities commercial technologies can provide, rather than trying to custom-design technology solutions to meet set requirements." So the only goal is to see _if_ they work.
Trust me, if other missions could get away with less shielding, they would. That's one reason why RBSP[1] is being launched, so we can better understand the radiation environment in Earth's orbit, so future missions aren't undershielded or sent up with unneccessary shielding. But I doubt that most big-budget missions could get away with no shielding.
[1] Shameless plug/full disclosure: I have been working on this project for the last 2+ years, and am now one of its flight controllers. For updates, you can check rbsp.jhuapl.edu or http://spaceflightnow.com/atlas/av032/status.html
The other advantage in having NASA lead the way in the cheap satellite area, it will be easier for others to take advantage of cheap launches when they are eventually available. And possibly help create demand.
That's not so say that a hosted, subscription service wouldn't be useful for some, but self-hosing would allow users to solve problems for themselves that would otherwise be feature requests, and hard to design well for everyone.
I know OP doesn't want to be another LinkedIn, but there's no reason why he or someone else couldn't create an opt-in browsable database of these for better discoverability. How awesome would it be if you could click a link next to your hackathon entry and see the status page of other attendees?
As long as that data is decode-able and more importantly, find-able (out of all the GBs frozen for 100 years, why would you want to look at any particular one of them?).
> Fast, Cheap, and Out of Control
The first thing that popped into my head when I saw this title was NASA's "Faster, Better, Cheaper" initiative. I will admit that I do not know much about it, but what I do know is that there were some failures (as you would expect) and the public did not react well. The failures did not come from not having space-grade parts, IIRC, but for various other reasons. The most infamous was the Mars Climate Orbiter, known for failing due to an imperial-metric conversion error [1], that is still brought up in almost every space-exploration piece that gets sufficient attention. Anecdotally, the lessons learned by those I've talked to are (1) choose 2 and (2) the public will not tolerate failure on large NASA projects, even if those projects cost a fraction of what it takes to host an Olympics, or to buy Instagram, or fight a war for a day.[2] But I have just now hopefully started a discussion with my coworkers about this paper[3] on our message board.
So anyways, about the paper. It looks like your idea is only mentioned briefly in the one section, and not fleshed out. The idea was somewhat more fleshed out in the talk I went to. What I meant by my line of questioning was that I haven't seen an implementation of these concepts outside academia, even though the idea has been around for some time, and the industry isn't entirely driven by irrational beings, so there must be some technical reasons why the ideas haven't been fully adopted.
>> * Having an identical copy is not redundancy
> Is it because the failure points remain the same?
Essentially, yes. His argument that most failures were systematic, and not due to unequal 'wear' of various kinds. Software especially, since on space missions it is implemented to be as deterministic as possible. That means that even if the primary processor fails gracefully due to bad internal logic, and a hot backup immediately takes its place, the backup will behave in exactly the same way given those inputs, which are likely to stay the roughly the same across the switch. Another example is a mission where the high gain antenna succumbed to a systematic failure, and they completed the mission on its low gain antenna. If there had been 2 identical antennas, they would not have been able to.
Designing and testing components to last a long time under the conditions you expect and test for is relatively easy. It's when the designs and tests don't match reality is when the problems happen. If you write something and make a copy, it will retain all of the typose of the original, and it's the same with Code/CAD/etc (and you might be more likely to introduce bugs than fix them). Ground-based systems can get away with this because of how easy it is to replace/repair broken units in a redundant setup.
[1] Even though it was due to a much larger issue related to how the project was carried out, and just happened to manifest in that error. It could have easily been a kilometer/meter mixup instead. And having a backup string of landing hardware/software wouldn't have helped in this case, unless the backup units had a different design/implementation.
[2] And yet, JPL still chose to use the skycrane. Very couragous.
[3] http://www.dau.mil/pubscats/ATL%20Docs/Mar-Apr10/ward_mar-ap...
You are exactly the kind of person that should build your own lander if you don't see this. And please, stop asking all of these questions in bad faith. I applaud deeringc for engaging with your specific points, but I can't bring myself to do this, since it seems to me like you assume all aerospace engineers are uncreative drones that can't think outside the box and see the obvious solution you've reached from your armchair.
Have you ever built a multiply-redundant, space-worthy, swarm-based system before? Have you built something that's any one of those three? If not, I don't have a problem with you thinking about them, but I do have a problem with your attitude. Edit: to clarify, I mean the attitude that comes across from your writing style. I have no idea what your qualificaitons are, how much thought you've put into this, how receptive you are to the idea that you're wrong, whether or not you recognize that everyone has more "unknown unkowns" than anything else, or what your actual attitude is. All I have are the words you write here. And my natural response to snark is more snark.
And if you think you're the first person to think "wouldn't it be great if not every spacecraft didn't have to have to re-solve the problem of power, communications, and computation?" I first heard the idea proposed in a 2009 talk[1] by someone who has been an insider for over 20 years. Some gems I remember from that talk:
* Having an identical copy is not redundancy
* Complexity is inherently more succeptable to failures
* Cars have been widely successful because of gas stations and repair shops. Spacecraft have to drag around their own
* We could create a ring of satellites, each dedicated to providing comms to earth, wireless power, computing power, or whatever. Users of the system would just need to build a structure, interfacing components, and their instrument and launch it into a nearby orbit.
[1] Abstract: http://www.spacecraftresearch.com/files/Fleeter.pdf
Now, if you're wondering how better to phrase your questions of this sort, I'm afraid I don't have any specifics, because I'm not sure if I'm just as guilty of this, or if I've successfully rephrased my questions of this sort. What I do is try to imagine that I've spent years designing, building, and debugging the thing in question, and gone through multiple reviews by outside organizations where every design decision was scrutinized, and had many meetings with coworkers (formal and informal) to discuss the thing in question. And then I ask my question in the affirmative, rather than in the negative, such as:
"Why did you do X, would Y also work?"
"I would have done Y. What is it about X or Y that I am missing?"
I currently work in software in the space industry (for about 5 years now), and I definitely agree that the cultural pathology is difficult to comprehend. I didn't realize how difficult since I haven't worked in any other industry, but seeing the comment sections on recent Curiosity-related posts here on HN has shown me how much the community wants to understand and how wide the understanding gap is.
I've only partially thought through this argument, so I'm sure it has all sorts of holes and will be easy to misinterpret in every way possible, but I'm throwing it out there anyways.
Other lessons learned from the space industry: http://klabs.org/DEI/lessons_learned/
Simulink is a possibility. It's a MATLAB component popular among mechanical engineers, and therefore most navigation & control engineers, and allows them to 'code' and simulate things without thinking they're coding.
Model-based programming is definitely a thing that the industry is slowly becoming aware of, but I don't know how well it's catching on at JPL or if they would have chosen to use it when the project started.
The third and most likely possibility is for the communication code. With all space systems, you need to send commands to the flight software from the ground software, and receive telemetry from the flight software and process it with the ground software. Each command/telemetry packet is a heterogeneous data structure, and is is necessary that both sides are working from the exact same packet definition, and format the packet so it is correctly formatted on the one side, and parsed on the other side. This involves getting a whole lot of things right, including data type, size, and endianness (although the latter is usually a global thing, you could have multiple processors onboard with different endianness).
But that's just the surface. You need lots of repetitive code on both sides to handle things like logging, command/telemetry validation, limit checking, and error handling. And then you can do more sophisticated things. Say you have a command to set a hardware register value, and that value is sent back in telemetry in a particular packet. You could generate ground software that monitors that telemetry point to ensure that when this register value is set, eventually the telemetry changes to reflect the change. And of course, some telemetry points are more important than others (e.g. main bus current), and are designated to come down in multiple packets, which involves extra copying on the flight side and data de-duplication on the ground side.
With all that, it's much easier (in my opinion) to write one collection of static text files (in XML, csv, or some DSL/what-have-you), run them through a perl/python script, and presto! Code!
As the one who posted the larger figure, I'd say it's more reliable because it comes from the man who sat at the Flight Control station in the control center :D