Hacker News new | past | comments | ask | show | jobs | submit login
Open Source Mission Control Software from NASA (nasa.github.io)
307 points by banastas on Jan 28, 2021 | hide | past | favorite | 48 comments



For those interested in something targeted towards more diverse systems take a look at https://cosmosrb.com/

It's a command and telemetry package for working with embedded systems, arduinos through satellites, and includes data visualization and command interfaces. It's released under AGPL by Ball Aerospace and has a following at NASA as well.

It's particularly useful for dealing with small systems where you'd usually write a python script for FTDI/serial communication. You can instead just define your commands and telemetry structs in a config file and the system makes it work.


I’ve used COSMOS with embedded systems on personal projects and it is very easy to learn and get setup. Highly recommend it to folks who are considering it.

For anyone interested in using this with Arduino, you can take a look at this blog on how to do it (not my blog): http://www.williamosman.com/2016/08/cosmos-and-arduino-20-te...


I've been working on a similar system for a few years now and hate every bit of it. We built it fast because we needed it and didn't have time to use the standard system we use in-house. I've been given very few hours to work on it outside of my regular duties so I've just had to deal with the terribleness of it. We recently got some money to update our tools and while we made something a little bit better for some tasks, the terrible foundation is still there. I'm going to look into this, it looks slick and sounds exactly like what I need. Just having the ability to dump whatever telem field I need would save me so much time compared with coding up a python script to pullout whatever from the GBs of telem we've been producing.


Wow, this blows my mind. I have been working on manufacturing test software which is essentially this.

And it is made by Ball! The company that makes the glass canning jars! Who knew they had an aerospace division...


It is the same parent company, although they sold off the home canning business in the 90s. They still make other types of consumer packaging, though.


Hmm, the demo has a little "live video" window of a rover's view from the Moon's surface. This seems like a good integration point for a web-based space simulator. I will be doing just this!

https://github.com/pablo-mayrgundter/celestiary/issues/19


My initial reaction is not running space missions, but that it will be a replacement for graphite/grafana - our company's telemetry is the web requests hitting the main site or database queries on the new server or trial sign-ups achieved, email reminders sent etc?

In short - Watching day to day operations and looking for anything unusual.

I think this kind of platform is wide open country - every corp has something like this, large chunks home grown or massively customised. And they all suck to varying degrees.

My prediction - replacing that mess with a "mission control system from freaking NASA" is going to make big in-roads.


Also, if NASA is working with USDS, then the playbook is Play 13: "Default to Open". Not sure if they are but could be likely!

> When appropriate, publish source code of projects or components online

source: https://playbook.cio.gov/#play13


I think this is big in NASA culture - I mean they built half of openstack IIRC.

So I am not surprised it's getting released - I am surprised that, after a minutes thought, this is a big, open field.

I mean prometheus/ graphite grafana - hell even RRD (?) have been around for years. But that's all plumbing, the porcelain is what's missing - to have a singular platform that it just gives you a real time view of what's going on, it that embeds probably decades of hard won experience - yeah if this is even half decent it's going to be the beating heart dashboard of choice.

Want to impress the C-level execs - give them a read only access the the "company telemetry" - mission control from NASA.

Aw hell. There ought to be a good consultancy in just installing this stuff.


Honestly having dashboards is just a good idea in general, impressing execs aside.

Graphs are a really really good way of getting an accurate gut feeling about what's going on. Take GME for example, what happened? Before you start talking about a short squeeze just get a graph of the share price out.

If I dump a CSV file in your inbox pre-coffee or whatever, you might blank, but if we have a graph of "Profit per widget" on the wall (metaphorical or literal) it's obvious if something's just broken.


Unfortunately, NASA has to follow ITAR, which means that a lot of stuff has to be kept closed - for example, basically anything on the topic of computational fluid dynamics (e.g. [0]). US persons can request a copy of much of this software, but they have to sign an agreement with NASA promising not to redistribute it without NASA's permission.

Are China, Russia, North Korea, Iran, al Qaeda, ISIS, really disadvantaged by not being able to access NASA's CFD software? I'm sure the nation-states have the money and people to work it out for themselves, whereas the non-state actors wouldn't know what to do with it.

[0] https://software.nasa.gov/software/ARC-14400-1


> I'm sure the nation-states have the money and people to work it out for themselves

I'd suspect it's less a matter of preventing them from developing the capability and more a matter of making them spend their own money to do so, rather than getting it for free and using those resources to develop some other capability.


Russia and China may quite possibly have copies of some of NASA's export-controlled software anyway - through computer intrusion, or through old-fashioned means of espionage (threaten/induce someone with access to a copy to give it to them.) If there was some particular item they wanted, they probably could come up with it through those methods, given enough time and effort.


Is there a reason North Korea would be reluctant to sail the seven seas for a copy of Ansys?


Do you feel this is a common thing for a medium sized company to use? Would you pay much money for something like that?

Years ago now, I developed a platform that allowed users to add "blocks" of data points pulled from any API to a dashboard to achieve the same goal. I never went the whole distance because I didn't get any users, but the dream was themed dashboards of graphs, tickers, event triggers and so on.


Datadog IPO’d on this idea. We used them at a 30-ish person company and hot damn it was amazing. 7/7 would use again.


The most fun use of OpenMCT I've seen was as part of a Finnish sci-fi LARP set on a spaceship: https://www.spatineo.com/odysseus-a-story-about-survival-usi...


Just minutes ago, I got out of a design meeting for rocket engine test mission control software. Shame our deadline is too tight to actually use the NASA package. Hopefully next time.


Curious what you ended up deciding on? Building something in-house? Another proprietary tool?


I'm mostly a rocket guy. The control interface was sourced to a third party group with experience doing this sort of work. Since it's specific to this particular application, it's proprietary.


OpenMCT is solid. We have a bunch of open source space-related software listed in Awesome Space: https://github.com/orbitalindex/awesome-space


Check this Hayabusa2 Japan asteroid explorer [1].

You can track the telemetry data in real-time using the cool looking Haya2NOW dashboard [2].

The Hayabusa2's Haya2NOW website was discussed in HN before [3].

[1]https://medium.com/@JackKelleher/meet-hayabusa-2-4f808231d5e...

[2]http://haya2now.jp/en.html

[3]https://news.ycombinator.com/item?id=18046274


I’m looking for something like this at the moment for a solution about to be built from scratch. Data from industrial devices needs to be processed by a backend API, and then visualised for command and control. Does anyone know open source - free/paid but self-bistable solutions I should look at?

InfluxDB + Grafana looks like a very developer friendly solution, but not for the polished “customer view dashboard” as it has all sorts of controls I don’t want the customer to care about...


I would not dismiss grafana + influxdb out of hand. You can embed grafana charts inside iframes, hiding the controls, driving it instead with parameters, it's a powerful way to add graphs to a larger system.


Smashing (https://smashing.github.io/), fork of dashing, has a very nice and simple ui. It's an all in one package, meaning that it also manages fetching the data if you want, or you can POST to it whenever there's a new value. In the UI all you can do is reorganize your widgets however you want


Maybe something in the EPICS ecosystem? https://epics-controls.org/


Purely out of interest, does anyone have any insight into what sort of systems they use to control satellites and probes? I guess it's in house stuff but I'm curious if it's an ancient system - this sort of stuff interests me.


Few different options, ITOS- https://itos.gsfc.nasa.gov/itos-capabilities.php

AMMOS is a suite of reusable tools for missions: https://ammos.nasa.gov/


Wow. I'm guessing ITOS isn't OSS?



Exactly what I was looking for, but I didn't know what terms to Google - many thanks!


The "Try it now" link is returning a Heroku error > https://openmct-demo.herokuapp.com/, HN effect?


Opened issue here https://github.com/nasa/openmct/issues/3656 (yay for open collaboration!!)


Seems to work now! :D


At the c-base hackerspace in Berlin we integrated OpenMCT with our MQTT/MsgFlo setup to visualize all kinds of stats. Here's a post on how to do it:

https://bergie.iki.fi/blog/nasa-openmct-iot-dashboard/


Given your work I assume you've also looked at alternatives over the years. Can you say something about OpenMCT in comparison to others?


The initial demo walkthrough prompts are done well. The responsiveness is impressive especially considering FF on iOS — all but object moves and resizes and widening the left rail works well.

The docs for adding providers and sources, e.g., are involved at a glance, but very cool NASA’s made this available.

https://github.com/nasa/openmct/blob/master/API.md#integrati...


OpenMCT is great if ALL you want is to do is look at Telemetry. But good luck if you want to send a commamd to a vehicle. I think YAMCS is much better solution: https://github.com/yamcs/yamcs

Yamcs has got a builder for displays, client APIs, etc. Almost everything you'll ever need.


Would be nice to have a comparison with existing alternatives, specially Grafana and Kibana.

The first win is a cooler sounding name and backer credentials.


Recollections based upon when a project I worked on was thinking of moving to a web based tool:

Grafana does not work well when you are graphing things with high refresh rates, as well as data where different measurements don't necessarily line up in time.

OpenMCT handles the latter situation better while having much more configurability, but still struggles with data that is frequently updated


Agreed. From what I gathered when I looked at it a while back two points are: This expects you more to provide your own data sources vs Grafana having a bunch of ready-made ones, and this is a bit easier to customize with custom elements etc, but it would be great to get information from someone with actual experience with it.


Its UI seems cluttered to me. Texts on menu items on the right clipped which makes it hard to read. Also every graph page has button screen at the end of the viewport which also hard to locate at first. Color scheme is good though.


It is much simpler, for once. Just a Javascript library, basically, not everything and its dog only usable from Docker, like Grafana/Kibana (this accidental complexity is a main reason I don’t adopt this stack).


As far as I can see, the lock file for dependencies is not in the repository? That seems to be a grave mistake for mission critical software. You can expect it to break at inconvenient moments. The installation instructions are merely `npm install`, so it is not reproducible work. I would not put too much weight in the label "nasa" on this one. Perhaps it is a low priority project for them, and it would not matter much, if it fails to build.

EDIT: The issues seem to confirm this. For example the demo app did not work out of the box. See /issues/3656


I agree a source controlled package-lock file for reproducibility would be an improvement. As you alluded to, Open MCT in its current form would likely not be considered or used for mission critical purposes [1] but instead for planning, analysis, and general data visualization, as opposed to something like the AMPCS (AMMOS Mission Data Processing and Control System), which involves command/control and direct communication with a spacecraft.

[1] Mission critical, meaning its operation is required to prevent any possible mission failure. https://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR...


You can find loads of other software by NASA here:

https://software.nasa.gov/


They use this at The Boring Company


I don't know, I was expecting some super clean, low level, robust compiled code; and what I found was an angular mess with terrible UX.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: