GithubHelp home page GithubHelp logo

opensatkit / opensatkit Goto Github PK

View Code? Open in Web Editor NEW
223.0 23.0 50.0 612.29 MB

Core Flight System (cFS) Application Developer's Kit

Home Page: https://opensatkit.github.io

Makefile 1.51% CMake 0.60% C 80.29% C++ 1.22% HTML 0.07% CSS 0.32% Perl 0.30% Shell 0.07% Awk 0.01% Python 2.44% Java 7.97% Ruby 4.61% Batchfile 0.02% XSLT 0.01% MATLAB 0.28% Gnuplot 0.01% Mathematica 0.02% Fortran 0.18% M 0.01% TeX 0.10%
cubesat satellite software flight

opensatkit's Introduction

OpenSatKit - A core Flight System (cFS) Platform for Aerospace and STEM Education

OpenSatKit is a multi-facet platform for working with NASA’s open-source core Flight System (cFS). OSK supports developing cFS-based mission flight software (FSW), learning how to engineer cFS apps, controlling a remote cFS system on a Raspberry Pi, and developing prototype R&D cFS apps. OSK combines three powerful open-source platforms to achieve these goals: Ball Aerospace Corporation's COSMOS command and control platform for embedded systems, NASA's cFS ( NASA cFS Homepage), and Eric Stoneking's 42 Simulator.

Please see the OSK Wiki for installation instructions and quick start guides.

opensatkit's People

Contributors

dependabot[bot] avatar dmccomas avatar gary-a-crum avatar johannkm avatar thnkslprpt avatar wyeager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opensatkit's Issues

Unknown target CPP mapped to interface LOCAL_CFS_INT

Hi! I had this running before, but I'm running a fresh install on Ubuntu 18.04 and running into issues.

Maybe this is related to that commit from 15 days ago?

Screenshot:

image

Text:

Error at /home/daniel/oresat/OpenSatKit-master/cosmos/config/tools/cmd_tlm_server/cmd_tlm_server.txt:65

TARGET CPP

Unknown target CPP mapped to interface LOCAL_CFS_INT

Parsed output in /home/daniel/oresat/OpenSatKit-master/cosmos/outputs/tmp/config/tools/cmd_tlm_server/cmd_tlm_server.txt

For more information see http://cosmosrb.com/docs/system/#command-and-telemetry-server-configuration.

NOTE!: The application will exit once you accept or dismiss this dialog!

Question: Does the OpenSatKit has a communication port?

I'm currently trying to develop a web application that can communicate with the OpenSatKit. Does the OpenSatKit have a communication port (e.g TCP/IP, etc.) where I can send command to/receive command from the OpenSatKit application? Any help appreciated!

Install error on Ubuntu 20.04

For some reason there is a invalid replacement on line 16:

=============================================================================================================================================================================================================
INSTALLATION WILL TAKE TIME AND INCLUDES PROMPTS!
=============================================================================================================================================================================================================

./install.sh: line 16: OPEN_SAT_KIT_PATH: invalid direct expasion

That only happens on ubuntu 20.04, I installed a 18.04 on vm and it worked.

Unit_Test up to date ?

Hello everyone,

I am trying to run the Unit test of different apps, (sc and UTF mainly).
I was wandering if the files concerning Unit test where up to date or if I missed something obvious to do before trying to run it.
For the moment I only run setvars.sh and then try to make the test (with Sc for exemple). I tried other apps and at some point I saw that the unit test framework didn't match the 6.5.0 version of the cFE.
For exemple, in the previous version of cFE in cfe_es.h CFE_ES_DeviceDrivert was defined (type used in utf_cfe_es_api).

Am I missing something important before running the unit test ? Is it up to date ?
If you have any question about my demand feel free to ask.

Sorry for my engish and thank you for your time !

Error loading kit_to_pkttbl on startup

I was experiencing an issue with kit_to_pkttbl loading on startup. It seems that the cfe_es_startup.scr is trying to load kit_to_pkt_tbl instead of kit_to_pkttbl as the file is named in osk_defs. In addition, I had no luck loading an xml file. Instead I did a dump of the packet table and updated it to be consistent with the table ids and buffer limits in the provided xml file. Once I placed a properly formatted kit_to_pkt_tbl.json file into the /cf directory, everything works as expected.

42 Simulation does not run multiple times

If the 42 simulation is run to completion it won't run again without restarting the VM. If the 42 simulation is interrupted then the simulation can be restarted without restarting the VM.

Question about CM Tags

Hello, I notice that there are notifications on the "https://opensatkit.github.io/" about releases, but I don't see any tags in your software. How are you maintaining CM of what is in each version? I see master has been updated fairly recently.

Thanks in advance.

Regards,

Pete

Can't get OpenSatKit to work with many flavors of Ubuntu

I have had issues with the installation script that you post in the instructions page:
bash <(\wget -qO- https://raw.githubusercontent.com/OpenSatKit/OpenSatKit/vendor/install.sh)

With 17.10.1 & 18.04 Ubuntu/64-bit, both of these will not install ruby correctly, and even if I try and install the ruby 2.2.6 version from the install.sh script manually, I get various errors that prevent cosmos from starting.

With 16.04.04 & 14.04 Ubuntu/64-bit, everything installs, but JSON-RPC always errors out when launching the Packet Viewer.

I have had success with 16.04 LTS Ubuntu/32-bit, but unfortunately, one day the hard drive failed and I am reinstalling that system now, so I don't know if it will work the next time.

Is there a troubleshooting section in the user guide? I couldn't find one.

COSMOS doesn't start after the initial installation launch

The installation appears to work fine: COSMOS is launched and the cFS can be started. However, after COSMOS is shutdown and you try to restart COSMOS you get an error message stating ruby isn't installed. Ubuntu recommends installing ruby. Do not do this. If you did and try to launch COSMOS, you'll get a ruby require. If you installed ruby you can uninstall it by running "sudo apt-get purge ruby"

I have found that rerunning the ruby portion of the installation script fixes the issue.

  1. Goto https://github.com/OpenSatKit/OpenSatKit/blob/vendor/install.sh
  2. Copy the portion of the script between announce "Installing ruby 2.2.6 using rbenv" and announce "Installing COSMOS gem"
  3. Paste the script excerpt into a terminal window to execute it.

OSK 1.1 will be upgraded to use COSMOS 4.x so I'm hoping this will resolve any ruby /COSMOS issues.

Question about flywheel momentum and attitude

Good morning, N00B question(s)...I was playing with spinning up the flywheels (individually and together) to try to get the satellite to rotate within its orbit, but was unable to...whatever I sent in was reflected back as the "target" momentum, but the "42 Cam" did not show any significant change with the 'N' (ECI frame) selected, nor did the individual attitude settings...which seem to be in constant flux before and after setting any target momentum.

Does the OpenSatKit include an Attitude Control System (or Guidance, Navigation and Control system) that keeps it pointing Earth-ward regardless of the flywheel settings? If so, how do you change the orientation of the satellite?

Thanks in advance.

cFS crashes when I start COSMOS or OpenSatKit

Hello,
I was going through the "Hello World" tutorial when i ran into the issue of when i stop cFS/Server my whole page crashes and the only way to restart the system is to force close all the windows and restart. It will also happen when i open COSMOS or OpenSatKit and in the Open Sat Kit window just click "Stop cFS" or "Start cFS".

Thank you!

Question: What Version of 42?

Hello, I was wondering what version of 42 you are using?

I was looking at what is checked in and it appears you have a static copy checked out (sometime) from "https://mesa-svn.ndc.nasa.gov/42". I know Mr. Stoneking has a 42 github, but can't compare the versions very well...git <-> svn...

I was trying to change the configuration of the satellite and my example is from a (very) different version of 42.

Also, I wanted to add a sun sensor or other sensor.

Thanks in advance.

Regards,

Pete

Enhance OSK Framework CmdMgr to dispatch commands that don't increment the command counters

The valid/invalid command counters are typically used by ground operators to confirm command reception and execution. Some commands are issued by other onboard apps and in these scenarios the ground commnad counters should not be incremented. This issue came to light while refactoring NASA/Goddard's File Manager app to work with the OSK app framework. FM has two versions of its 'delete file' command.

My initial thoughts for implementing this change are to

  1. Add a new CmdMgr registration function for onboard commands. This avoids changing the existing API.
  2. Add new command counters for onboard commands but recommend that apps not include these counters in their Houekeeping telemetry with the intent of allowing clients to use the counters as the onboard command verification mechanism. If onboard command feedback is required between apps I would recommend an event message or some other direct response mechanism that doesn't rely on a relatively slow shceduled event such as the Housekeeping packet.

Installation requires bundle install

After the installation completes a 'bundle install' is still required by the user. When the user tries to enter 'ruby Launcher' the first time after the installation, they will be prompted to perform a 'bundle install' which fixes the issue.

Error when starting up cFS in the terminal. Status = -17 (OS_ERR_NAME_NOT_FOUND)

When starting cFS in the terminal I get an error saying EVS Port1 42/1/CF 73: SemGetId Err:Chan 0 downlink PDUs cannot be throttled.0xFFFFFFEF After 1980-012-14:03:21.97063 ES Startup: CFE_ES_Main entering OPERATIONAL state.

Ran it through the debugger to track where the error was coming from and seems like the error gets printed while running cf_app.c file in the CF_GetHandshakeSemIds() function.

Run Script -> Ops Example -> No Prompt?

99% of the app working perfectly. Woohoo! Running on Ubuntu 18.04.

Found another hopefully little bug with running the Ops script:

image

When I select it, it just freezes. Then when I force quit, this pops up:

image

I think maybe just no terminal is popping up to take my password?

Maybe you can just add a spawn xfce4-terminal when this particular script runs like in some other spots?

spawn("xfce4-terminal --default-working-directory=""#{Osk::CFS_EXE_DIR}"" --execute sudo ./core-cpu1""")

Platform support survey

Please add a comment to this issue identifying which platforms you would like to see supported in addition to Ubuntu.

F42 Control Table RunTimeError

Hello,

I am trying to follow the 42 simulation tutorial on the OSK-Quick-Start slides. Everything seems to be working fine until slide 33 where it says to click on . I get an error message saying: "RunTimeError: Interface not connected for write: LOCAL_CFS_INT". I am running OSK on a Ubuntu 18.04 VM on virtual box. Any help or insight would be great. Thank you

Limit Checker LC HK_TLM_PKT APP_STATE DISABLED soon after cFS Start

Hello,
I installed a fresh OpenSatKit as described in the Installation instructions. I am running on Linux Mint 17.2.
I had to run 'bundle install' as described in Issue #12, That run with no problem.
Then I had to build the cFS to get the named core-cpu1 in [opensatkit-master]/cfs/build/exe/cpu1 as described in Issue #13.
The build run with a couple of warnings but did not report itself as unsuccessful, and did create the core-cpu1 file. So far so good.
When I click Start cFS and give the password, the terminal gives a bunch of status lines and then two worrying things happen pretty much at the same time:

  1. in the cFS Command and Telemetry Server log i appears this:
    "ERROR: LC HK_TLM_PKT APP_STATE = DISABLED is RED"
  2. in the cFS terminal window I appears this:
    EVS Port1 42/1/KIT_SCH 134: Major Frame Sync too noisy (Slot 1). Disabling synchronization.
    .EVS Port1 42/1/SC 86: RTS 001 Execution Completed
    When I try to launch the Limits Monitor from the Cosmos Launcher it shows LC HK_TLM_PKT APP_STATE DISABLED.
    The system time is ticking, so cFS seems to be running and reporting some telemetry, at least related to system time.
    How to get the Limit Checker to run correctly?
    Update:
    I activated the LC by sending it an SET_APP_STATE =1 command using the Manage Autonomy > Set App State > 1 and it reports itself as ACTIVE.
    Now when I enter the Cosmos Launcher > Limits Monitor, the status is STALE for all the packets in the Monitor.

Question: Sending a command to cFS

I tried sending a string command to UDP server on localhost port 1234 with the script below while cFS is running:

require 'socket'
s = UDPSocket.new
r = s.send("hello", 0, 'localhost', 1234)

Here is the message I got from core Flight System terminal:
EVS Port1 42/1/CFE_SB 21: Send Err: Invalid MsgId(0x6865) in msg.App KIT_CI


I know that I'm sending a dummy command, but when I send string "NOOP" I also get a similar output message from cFS. I have two questions:

  1. When I send command this way, is the command being sent directly to KIT_CI or cFS?
  2. Does the command have to be different type other than string (i.e. byte)? What commands am I allow to send directly to KIT_CI or cFS and bypass COSMOS?

Ultimately I would like to be able to send a command to retrieve and update configuration table similar to what TableService demo shows, but right now I'm just trying to send simple command like NOOP first.

Thank you,
Pita

How to start cFS without the GUI?

Hi, Is there a way to start cFS from a command line without starting from the OpenSatKit GUI?

Additionally, when I send a command (e.g. NOOP to KIT_CI) Open Sat Kit GUI flight event messages show "Kit Command Ingest (KIT_CI) version 1.1.0 received a no operation command." Are flight event messages saved to log file somewhere?

Thank you

cFS installation on Raspberry Pi

Hello everyone,

I'm going through some problems with the installation on Raspberry Pi 3 B+. I remove every reference to x86 architecture and so on, but when I try 'make' I get the following error:

Makefile:34: /pc-linux/make/compiler-opts.mak: No such file or directory
Makefile:38: /posix/osal.mak: No such file or directory
Makefile:59: /make/make-rules.mak: No such file or directory
make[2]: *** No rule to make target '/make/make-rules.mak'. Stop.
make[2]: Leaving directory '/home/pi/CFE/cFE-6.5.0-OSS-release/build/cpu1/cfe/osal'
Makefile:3: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/pi/CFE/cFE-6.5.0-OSS-release/build/cpu1/cfe'
../cfs.mak:145: recipe for target 'cfs_build_core' failed
make: *** [cfs_build_core] Error 2

Any ideas? Thank you in advance

Incomplete Documentation

It looks like a lot of the sections in the user guide are "tbd". Have there been any updates to this doc that hasn't been synced to github? OpenSatKit would be really useful to us, but documentation for this and cFS is quite sparse.

CFS Compilation Error

I'm having trouble compiling the latest version of master on Ubuntu 18.04. The compilation stops with the following error:

/home/duser/dev/OpenSatKit/cfs/apps/sbn/fsw/src/sbn_app.c:31:10: fatal error: cfe_sb_priv.h: No such file or directory
#include "cfe_sb_priv.h" /* For CFE_SB_SendMsgFull */
^~~~~~~~~~~~~~~
compilation terminated.

/cf/simsat assumed to exist but 'make clean' removes it

Since 2.0 when SimSat was introduced the flight directory /cf/simsat is assumed to exist.
However this directory is part of the cmake build directory tree (.../cfs/build/exe/cpu1/cf) so it can be removed when a 'make clean' is issued.

Support Ubuntu 20.04

COSMOS is not currently compatible with Ubuntu 20.04. See COSMOS tickets 1169 and 1171 for details. COSMOS 5.0 is in a beta test release and it's making an architectural departure from previous COSMOS versions.

It would be desirable to have OSK work with COSMOS 4.x on Ubuntu 20.04. Thanks to Jim Johansen for the following fix:
sudo add-apt-respository ppa:rock-core/qt4
sudo apt-get update
sudo apt-get install libqtcore4
bundle install

Updating OSK to work with COSMOS 5.x when its ready is a separate issue...

Default tutorials location is incorrect

A user reported: I am getting an error when I try to launch the tutorials stating: "LoadError: cannot load such file -- /mnt/hgfs/OpenSatKit/cosmos/config/targets/CFS_KIT/lib/tutorial_screen.rb" I noticed that the directory /mnt is completely empty, and that the path Home/OpenSatKit-master/cosmos/config/targets/CFS_KIT/lib/ does contain the ruby file in question. Is there a way for me to change the path to the latter?

To fix the situation click the "“Update” button. This will regenerate the tutorial screen and fix the file path issue. Note the Update button doesn’t provide any feedback that it did anything, another issue to be fixed in addition to this original issue.

Health & Safety App Crashes with Ubuntu versions greater than 16.04

I haven't had time to investigate the cause so the easier work around is to comment out the HS app in the executive services startup script: OpenSatKit-master/cfs/build/exe/cpu1/cf/cfe_es_startup.scr. Note that ES stops processing the startup script after it reaches the first comment line so you must copy the HS line to the end of the file with the other commented lines.

Also note if you rebuild the FSW then OpenSatKit-master/cfs/osk_defs/cpu1_cfe_es_startup.scr gets copied to the "../cf/" directory with the "cpu1_" removed (see users guide). Therefore HS also needs to be commented out in cpu1_cfe_es_startup.scr as well.

Add cFS CRC tool to COSMOS

Add the capability for the ground system to be able to compute a CRC for a binary file image such as a table or a memory load file. Leverage the existing cFS CRC Table Tool if possible.

Connection refused

Hello!
I'm having trouble getting cosmos and cfs telemetry to work.
I click on cFS starter kit as per the instructions then all the correct windows pop up.
The time counter is on magenta 0. I click the Start cFS button and get a terminal window asking for my password. I enter it and all seems well but the time counter is still on magenta 0. Clicking Enable Telemetry a couple of times results in an error message: 'Errno::ECONNREFUSED : Connection refused - Connection refused'.
I get a similar error when trying to enable telemetry through PiSat control.
I'm running Ubuntu MATE 18.04.2 on a Raspberry Pi 3 B+
Kernel Linux 4.15.0-1032-raspi armv7l

Many thanks
Stephen

Consider implementing OSAL's POSIX OS_ModuleGetInfo_Impl() to allow Checksum app to monitor app code segments

The Checksum (CS) app can compute checksums across EEPROM, RAM, App code and tables. Currently only tables can be demonstrated within OSK. In theory RAM is supported but addiitonal tooling is required to make it practical.

If the cFS OSAL POSIX osloader.c OS_ModuleGetInfo_Impl() function is implemented this would allow app code segments to be checksummed. A comment in the function prologue suggests the dlinfo() function may provide the necessary information.

Note:

  1. The next major cFS release Caelum (aka 7.0) is restructing the OSAL so this change would have to be updated when OSK transitions to Caelum.

  2. CS doesn't support symbols so RAM addresses must be loaded into CS memory table and these are only known at runtime. A tool could be written to obtain runtime addresses and build a CS memory table. The memory table could be used to checksum app code segments. A tool would not solve the app table checksum issue becuase CS's app table contains app names and CS calls cFE Executive Services which eventually results in a call to OS_ModuleGetInfo_Impl() to retrieve app code segment information.

  3. CS could be modified to allow symbols in its memory table and/or its apps table.

Improve EVS Hk COSMOS Packet Definition

The COSMOS EVS Hk Definition currently has AppData defined as an array of 16 bit numbers:

APPEND_ARRAY_ITEM APPDATA  16 UINT 1024 "Array of registered application table data."

https://github.com/OpenSatKit/OpenSatKit/blob/master/cosmos/config/targets/CFE_EVS/cmd_tlm/evs_tlm.txt#L34

However it's an array of the CFE_EVS_AppTlmData_t structure:

CFE_EVS_AppTlmData_t  AppData[CFE_ES_MAX_APPLICATIONS];  /**< \cfetlmmnemonic \EVS_APP
                                                                 \brief Array of registered application table data */

https://github.com/OpenSatKit/OpenSatKit/blob/master/cfs/cfe/fsw/cfe-core/src/inc/cfe_evs_msg.h#L1177

https://github.com/OpenSatKit/OpenSatKit/blob/master/cfs/cfe/fsw/cfe-core/src/inc/cfe_evs_msg.h#L1124-L1138

We can use erb to dynamically populate the correct number of entries based on the CFE_ES_MAX_APPLICATIONS parameter defined here:
https://github.com/OpenSatKit/OpenSatKit/blob/master/cosmos/lib/fsw_config_param.rb#L43

Cannot connect to server

After completing the installation, I have been having issues launching cosmos using 'ruby Launcher'. I have tried typing 'bundle install' after I read the issues in this forum page, but after typing in ruby launcher, the terminal then says "Launcher: cannot connect to X server".

Does anyone have a solution to this? If there is more information that I need to post on my side, please let me know.

OSK cFS System Time Fails to Start

Hello,
I'm learning the cFS with OpenSatKit running on a Raspberry Pi 4 with Ubuntu 18.4 LTS. Following the Hello World app tutorial, when I click "Start cFS" in the Explore cFS/SimSat tab of the CFS_KIT screen, the terminal window does not come up and the System Time field does not turn white. System time also fails to start if I click the Enable_Tlm config command. Can you suggest how to remedy this error, please?

cFS password not accepted

Hi,
I just downloaded and installed OpenSatKit. When I click on 'Start cFS' I get the terminal window. However, it won't accept the password. I have tried: 'osk', 'OSK', 'Osk', and just return.
Thanks

Add KIT_TO table descriptor field and add descriptor to HK packet

Now that KIT_TO supports packet filtering in its table definition there are multiple versions of KIT_TO tables for different downlink scenarios. A KIT_TO table field should be added that describes the table and this description should be added to KIT_TO's HK packet.

OpenSatKit Start cFS not doing anything

When pressing OpenSatKit through the launcher I only see the CFS_KIT_SCREEN window. The Telemetry Viewer and CFS Command & Telemetry Server are not visible, but show as open in my taskbar. Pressing Start cFS opens the terminal for me to enter my password, but upon entering my password, the terminal closes immediately and nothing happens. The System Time does not increment either and stays as 0.

42 Simulation Problem

Hi,
I just started to use osk and everything worked smoothly until I ran the 42 simulation. The connection between cFS and 42 cuts off right after the 42 GUI pops up because cFS "receives no data after 1500 attempts." Any thoughts on how to fix this?
Thanks,
Sean

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.