Subscribe to rss feed

Concept diagram of computers / avionics system | Computer Systems Workgroup | Forum

 
You must be logged in to post user permissions login Login register Register


Register? | Lost Your Password?

Search Forums:


searchicon 






Minimum search word length is 3 characters – Maximum search word length is 84 characters
Wildcard Usage:
*  matches any number of characters    %  matches exactly one character

topic

Concept diagram of computers / avionics system

print
small tagNo Tags
UserPost

3:20 am
January 27, 2010


Luke Maurits

Adelaide, Australia

Admin

posts 1483

offline
link
print
1
0
ratedowngrey
rateupgrey

Here is a concept diagram I produced today of how the insides of one of our talked about "avionics boxes" may look:

mouse

Basically it consists of 6 single-board computers (netbook internals, BeagleBoards, something like that), each with a dedicated function, all connected on a gigabit ethernet network.  The computers are (in no real order):

  1. A Control and Instrumentation Computer.  This is hooked up to the LCD monitors and speakers in the cabin, and any joysticks, keyboards and switches in the cabin.  It relays information to the astronaut via the monitors and speakers, accepts control signals from the various sources and passes control information on to either other computers or directly to hardware.
  2. A Navigation Computer.  This is hooked up to various navigation hardware (GPS receiver, IMU, etc).  It performs Kalman flitering (or equivalent) on all the input to make position and velocity estimates.  These are stored locally on a CF disk or the like.  Other computers can ask the navigation computer at arbitrary times for the latest estimates over the network (maybe implemented a very simple CGI program running on a minimalist web server like thttpd).
  3. A Storage Computer.  This is hooked up to a redundant array of solid state drives, and either stores or fetches data for the other computers at their requests (maybe implemented by NFS).
  4. A Communications Computer.  This is hooked up to a USRP (or equivalent) and handles all communications issues – it takes data from other computers and sends it to Earth, and it authenticates telecommand packets from Earth and passes the instructions to other computers.
  5. A Telemetry Computer.  This is hooked up to a huge array of sensors in the interior and exterior of the spacecraft and constantly formats raw data into telemetry packets to forward to the Communications Computer.  It also detects any patterns in the sensor data which are problematic and notifies the Interface and Control Computer, which can put up visual/audio warnings.
  6. A Media Computer.  This is hooked up to microphones and cameras in the interior and exterior of the spacecraft, and is constantly encoding data from these sources, sending all of it to the Storage Computer for recording and some of it to the Communications Computer for transmission.

These 6 computers and the various other items of hardware involved (GPS, IMU, USRP) could easily all be fit into a fairly compact case, just like a desktop computer.

An individual one of these cases is not at all redundant, so redundancy would come from having 2 or 3 of these cases on board.  A set of switches would control which of the 3 cases was connected to shared resources (i.e. the I/O devices in the cabin, the antenna array, etc).  If all 3 cases were running at once, these switches could basically hand off "active duty" from one case to another arbitrarily (e.g. if one of the case's computers crashes due to radiation interference).  The case which is currently on "active duty" could also make use of the "standby" cases by asking them to duplicate crucial calculations (majority voting to make sure an answer is correct) or by getting additional navigation data from them.  A simple computer running a "heartbeat" program could monitor all the cases simultaneously and operate the switch bank which controls active duty.

Does this seem sane to others?  If we do go down this route, I feel like with a bit of money we could see pretty quick progress on one of these cases.  It would be quite easy to test one rather thoroughly in a car: just fit the car with a few webcams, some cheap telemetry sensors from SparkFun or the like, set up the USRP to transmit not on S-band but on VHF or some such from a fairly standard antenna, use a USB protable hard drive as a stand in for a RAID array of solid state disks, etc, and the car is basically an Earth-bound version of the CM, from an avionics perspective.  This would at least be enough to test all the high level functionality.

Main CLLARE workgroups: Mission Planning, Navigation and Guidance. I do maths, physics, C, Python and Java.

10:08 pm
January 28, 2010


Rocket-To-The-Moon

Altus, Oklahoma, USA

Member

posts 685

offline
link
print
2
0
ratedowngrey
rateupgrey

My initial thoughts are that all of the input/output devices on the left should be connected to each computer for redundancy and error checking (especially on nav/guidance). Under normal operations it could function with one computer controlling each function. But there needs to be a high level of redundancy and the ability to load shed/load share if there is an imbalance of computing resources.

I think that this would be a highly educational and fun project for someone in the IT area to work on. It would be quite the accomplishment to build a 6+ node network within the confines of a standard ATX sized enclosure.

Main Workgroups: Propulsion & Spacecraft Engineering

10:11 pm
January 28, 2010


Luke Maurits

Adelaide, Australia

Admin

posts 1483

offline
link
print
3
0
ratedowngrey
rateupgrey

Rocket-To-The-Moon said:

I think that this would be a highly educational and fun project for someone in the IT area to work on. It would be quite the accomplishment to build a 6+ node network within the confines of a standard ATX sized enclosure.


Extremely true.  I'm actually starting to realise that we can do a lot more useful work on avionics at this stage of the project than I anticipated, and it seems not only really fun but fairly easy (the software side of it, at least – it would be easy to simulate a physical 6 node cluster with 6 virtual machines on a virtual LAN, and sensors etc. could be easily simulated by e.g. Markov chain models with random noise).  I might need to revise my ultimate involvement plan to include navigation and this. :)

Main CLLARE workgroups: Mission Planning, Navigation and Guidance. I do maths, physics, C, Python and Java.

10:20 pm
April 1, 2010


Clicker

US-Arizona

Member

posts 11

offline
link
print
4
0
ratedowngrey
rateupgrey

Post edited 11:10 pm – April 1, 2010 by Clicker


Ok, first thought on the SSD array, what size are we looking at?  I see little to no reason to really have an "array" setup for this kind of computer system, I don't think we're looking at that much data.  Unless you're just talking about maybe 100G just to use for storage (aka shared storage).

Now my second thought is why not use just single computers in each case and instead of having 6 physical machines, we have 6 VM's (well 5 really — wouldn't need one for storage at that point).  Make this configuration redundant by throwing in 3 computers with VM's and we should be all set.  The host computers can be configured to monitor eachother for failure and automatically take over if one fails.  In this case there would need to be a high availability SAN (possibly fiber, but GigE will work) to share between the 3 host computers and 15 virtual computers.  Thoughts?

EDIT: Also I'm a little confused as to the purpose of the Media computer.  I understand what it's doing, but is that really a necessary function?

Computer Systems Design (IT) & Web Developer

3:43 am
April 6, 2010


Luke Maurits

Adelaide, Australia

Admin

posts 1483

offline
link
print
5
0
ratedowngrey
rateupgrey

Sorry for not getting back to you sooner on this, Clicker, thanks for your comments.

With regards to data: we have not yet really done a rigorous analysis of storage requirements (we definitely should, though, and if you want to take some initiative on kicking this off, please feel free).  My intuition is that numerical data storage (like navigation data, etc.) will not pose too much demand, but multimedia data storage will.  We will want to record video and audio from the entire flight as well as lunar EVA.  It probably isn't necessary for the in-flight cabin video to be particularly high resolution, since it will just be someone sitting in a seat for a few days, but when it comes time to actually walk on the moon we're going to want absolutely the best video quality that we can manage.  I don't really have a good feel for how much space high quality video takes up, but over the length of the entire flight I would not be at all surprised if our total data storage requirements were on the order of 100G or even higher.

The VM idea is interesting and deserves consideration.  To be clear: did you intend that at any one time only one physical computer would be "on duty", with the 5 virtual computers inside it sharing the work, or something more flexible, where all 3 computers are "on duty" simultaneously and the work is dynamically spread amongst the pool of 15 virtual computers?

As for the media computer – well, something has to encode the raw data from cameras and microphones into suitable formats for storage (avi, jpg, mp3, whatever – I don't know enough about multimedia to say what is best.  Also I suppose it would be in the spirit of our open contract to use open formats like Ogg etc. where we can).  I don't really know how much grunt this requires, a dedicated computer may be overkill.  This diagram was just supposed to be a rough outline.

It is probably time we got a little more serious about thinking this stuff through.  We need to think more clearly about what likely failure modes are and how to adapt to them.  One thing that is entirely absent in this first diagram of mine is any kind of voting system, which is something I think we will almost certainly have to implement to guard against errors in computation resulting from "Single Upset Event" problems caused by radiation.

Main CLLARE workgroups: Mission Planning, Navigation and Guidance. I do maths, physics, C, Python and Java.

12:27 pm
April 6, 2010


Clicker

US-Arizona

Member

posts 11

offline
link
print
6
0
ratedowngrey
rateupgrey

Ok that makes sense, I wasn't really sure why you wanted a media computer on board but that explanation helps.  Now I don't have exact numbers offhand but for your typical low quality (like 90% of whats on youtube), 100G would probably be plenty for a few days.

From what I've heard super-high quality video can get as crazy as 1G per second of footage, obviously we wouldn't want to get that out of control, but I'd probably say maybe 1080p quality video, in which case about 1HR of video should be around 5G.  Most modern video camera's contain onboard encoders so the video could really be either stored on a high capacity SD card or could be streamed to a computer and stored, no rendering should really be needed.

We'd obviously want to put a little more thought into capacity at some point, but personally, I'm not that concerned b/c it wouldn't be that hard to get 3 2TB drives which would be way more than enough regardless of what we're doing.  Also, I'd suggest setting up a RAID1 (mirror) array for this purpose instead of RAID5, and probably store all of the drives in different locations.  Possibly making our own software RAID1 spread across different computers in an effort to reduce the possibilty that multiple drives are hit by the same radiation.

As for the VM's, my thought was to make the "5" VM's voting systems.  Considering that 5 machines would actually be on one box it would actually make it more likely that multiple machines go down due to radiation (1 machine going down would affect 5 "machines").  This would make the voting system a little more critical.  The interesting thing with using VM's would be that it makes it much easier to change the entirety of how a computer system is working on the fly.  So whether we have each of the 5 VM's doing one thing, or they're sharing the load somehow, it really doesn't matter… they can always be changed to do something else.  It also makes it much easier to automate certain tasks, things like sharing load start to make more sense, we could bring up more VM's or kill them off dynamically, if necessary.

All of this is really up for interpretation (at this point), there's really no limit to the possibilities, especially if we can get some kind of radiation shielding, which, from what I've read is starting to become a better possibility now.  If we can get that going then I see no reason not to have a little higher power system on board that in theory could handle everything on its own.  From there we'd just take the extra step of redundancy just in case.

Computer Systems Design (IT) & Web Developer

5:31 am
April 10, 2010


Rocket-To-The-Moon

Altus, Oklahoma, USA

Member

posts 685

offline
link
print
7
0
ratedowngrey
rateupgrey

As a point of reference, BluRay discs have a video bitrate between 20-30mbps. This comes to 11.25 gB per hour (based on 25mpbs). Using this information I think that it is reasonable that we could fit the entire landing on a 100GB drive.

Main Workgroups: Propulsion & Spacecraft Engineering

small tagNo Tags

About the CSTART – Collaborative Space Travel and Research Team Forum

Forum Timezone: UTC -6

Most Users Ever Online: 59

Currently Online:
7 Guests

Currently Browsing this Topic:
1 Guest

Forum Stats:

Groups: 4
Forums: 36
Topics: 516
Posts: 3818

Membership:

There are 1144 Members

There are 2 Admins

Top Posters:

Rocket-To-The-Moon – 685
brmj – 402
rpulkrabek – 349
DenisG – 69
antinode – 64
J. Simmons – 46

Recent New Members: daffodil1003, lejufe, aquariusmediaa91, megasplosion, peterpaul008, Sandra

Administrators: Luke Maurits (1483 Posts), Rizwan (170 Posts)



 
share save 120 16