GithubHelp home page GithubHelp logo

ut-issl / s2e-core Goto Github PK

View Code? Open in Web Editor NEW
44.0 3.0 17.0 6.7 MB

Spacecraft Simulation Environment Core codes

License: MIT License

CMake 1.45% Batchfile 0.36% Shell 0.42% Dockerfile 0.16% C++ 91.29% Python 5.17% C 1.16%
s2e cpp astrodynamics satellite spacecraft attitude-dynamics orbital-simulation

s2e-core's Introduction

S2E CORE

check format Build GoogleTest

Overview

  • S2E (Spacecraft Simulation Environment) is a spacecraft numerical simulator developed by ISSL at the University of Tokyo.
  • S2E can:
    • Simulate spacecraft's attitude and orbit behavior in LEO and other orbits.
    • Emulate spacecraft's components behavior not only sensors and actuators but also OBCs, power components, communications, and others.
    • Emulate embedded software inside OBCs by connecting with C2A or others.
    • Connect with Ground Station software.
    • Output log files in CSV format.
    • Connect with real OBCs for HILS tests.
  • S2E is divided into this core repository(S2E CORE) and user repositories.
    • S2E CORE includes most of the functions for S2E.
    • S2E user repositories include only files and source codes to define the simulation scenario.

Development style

  • Repository settings

    • Branch structure
      - main        # The latest operation guaranteed codes for general users
      - develop     # The latest buildable codes for S2E primary developers
      - feature/*   # Developing codes
      - hotfix/*    # Bug Fix codes
      
    • We recommend that the general users use the main branch or suitable released version because we sometimes update the develop branch without backward compatibility, and users need to modify their user side codes and settings.
    • Push to main and develop is prohibited. All developers have to develop with feature/* or hotfix/* branch and make a pull request.
    • Maintainers confirm the request and merge it to the develop or main branch.
    • Reference document for the development style
  • Flow of development

    1. Make a feature/* branch from the develop branch.
      • To fix the small bugs in the latest release codes, please make hotfix/* branch from the main branch
    2. Edit, commit, and push in the branch.
    3. Create a new pull request to the develop branch.
      • The target branch becomes the main branch for the hotfix/* branches.
    4. A maintainer reviews the pull request. If some problems are found, the maintainer proposes modifications.
    5. According to the maintainer's proposal, the developer modifies the codes and goes back to 3.
    6. The maintainer merges the feature/* branch to the develop branch.
    7. The code owners decide to merge the develop branch to the main branch and release a new version.
  • Binary files

    • Binary file commit is prohibited.
    • Please write the link to such files, or make a script file to get the files.
    • Exception
      • Images for markdown document files are allowable when the file size is smaller than 200K Bytes.
  • Code format

    • We use clang-format for format source code.
    • We recommend install clang-format and format code before commit. It also will be checked on CI.
    • Some modern editor has plugin/extension for code format. It will be very useful.

Release style

  • We use Semantic Versioning 2.0.0 as versioning style
    • Basic version format is <major>.<minor>.<patch>(like 4.0.0)
    • Public API is declared in the code itself(currently, there is no definitive list)
  • All release should be tagged as v<semver>(like v4.0.0)
  • These tags also should be release on GitHub Releases
  • Before S2E was released as OSS, a different versioning was adopted(missing patch version)
    • These versions are aliased with tags in the corresponding semver style(v2.0 -> v2.0.0)

Documents

How to use S2E

  • Please see s2e-documents' getting started page.
  • We also have the Development environment manuals. You can find the link in the Discussion page
    • Sorry, but we only have manuals written in Japanese now. We need help to translate them.
  • Support compiler
    • The following compilers are supported. The details are shown in GitHub Actions' results.
      • gcc/g++
      • clang++
      • Visual Studio C++

Examples of User side repository

  • S2E-USER-EXAMPLE
    • Sample codes for tutorials in the s2e-documents
  • S2E-FF
    • An example of S2E user side repository for Formation Flying study.
  • S2E-AOBC
    • A user side repository for the AOCS module.

Used Projects

Project Name Developer Launch Refs
MAGNARO Nagoya Univ. 2022 -
EQUULEUS ISSL, UT and JAXA 2022 -
Optimal-1 ArkEdge Space Inc. 2023 -
SPHERE-1 EYE Sony Group Corporation and ISSL, UT 2023 Sekine 2023
ONGLAISAT ISSL, UT - Ikari 2022

Collaborators

ArkEdge Space Inc.

Publications

  1. S. Ikari, and et al., "Development of Compact and Highly Capable Integrated AOCS Module for CubeSats", Journal of Evolving Space Activities, vol. 1, ID 63, 2023. Link
  2. 五十里, 他, "宇宙開発の効率化・高度化を目指した東京大学中須賀・船瀬研のOSS活動", UNISEC2022-04, 12th UNISEC Space Takumi Conference, 2022. Link
  3. H. Sekine, and et al., "Development of Software-In-the-Loop Simulator and Hardware-In-the-Loop Simulator of AOCS Module for CubeSats", 34th ISTS, Kurume, 2023. Link

s2e-core's People

Contributors

200km avatar conjikidow avatar dependabot[bot] avatar fujiy avatar hiro-0110 avatar k-amakawa avatar kai0722 avatar kaz-f9 avatar lilkoke avatar meltingrabbit avatar ogoogo avatar renovate-bot avatar renovate[bot] avatar ryoheitk avatar seki-hiro avatar shingonishimoto avatar sksat avatar suzuki-toshihir0 avatar tomokimochizuki avatar tosalt avatar tshibuk avatar yngyu 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

Watchers

 avatar  avatar  avatar

s2e-core's Issues

Make the seed of random numbers available

Overview

Make the seed of random numbers available.

Details

Currently, the initializing parameter Rand_Seed in the Base.ini is not used in the source codes.
We need to implement a feature using the parameter to change the seed of randomization.

Conditions for close

When the randomization feature is implemented.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

Consider the eclipse effect by the moon and other planets

Overview

Consider the eclipse effect caused by the moon and other planets for deep space mission analysis.

Details

  • Add the effect of the eclipse by the moon in the SRPEnvironment class.
  • Add the effect of the eclipse by other selected planets in the SRPEnvironment class.
  • Add the input interface to select the eclipse is calculated or not.

Conditions for close

When the above tasks are completed.

Supplement

NA

Note

Add antenna pattern function

Overview

Add antenna pattern function.

Details

  • How to initialize antenna pattern variables.
  • Implement antenna gain calculation function to get gain according to spacecraft attitude and direction of a ground station.

Conditions for close

When the function is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Use inertial frame data in SrpEnv

Overview

Use inertial frame data in SrpEnv.

Details

Currently, the body frame data is used in the class, but it is better to use the inertial frame data for simple implementation.

Conditions for close

When the implementation is complete.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

nrlmsise table validation failed

Overview

nrlmsise table(SpaceWeather-v1.2.txt) validation in download failed.

Details

Description

It seems that we should not verify the checksum of ftp://ftp.agi.com/pub/DynamicEarthData/SpaceWeather-v1.2.txt because it is updated daily.

Conditions of occurrence

  • Build ../ExtLibraries with ExtLibraries/CMakeLists.txt

Additional information

## download table
download_file(${NRLMSISE_TABLE_URL_BASE} ${NRLMSISE_TABLE_FILE} "10369764025772abf565902fee36f9cf720b75ba6b8be20159720bf779dd3f1a")

Task

  • skip checksum validation on SpaceWeather-v1.2.txt

Scope of influence

Supplement

Write additional comments if you need.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Extend to other center bodies

Overview

Extend all features to select other bodies as the central body.

Details

At least, we need to update the following features

  • CelestialRotation
  • Orbit
  • Selecting method for central body

We also need to check other features we need to extend for other center bodies.

Conditions for close

NA

Supplement

NA

Note

NA

Move constant variables

Overview

Move constant variables to the global environment.

Details

Currently, constant physical variables are defined in several codes.
They should be organized and defined in one code file.
GlobalEnvironment class is suitable for the role.

Conditions for close

When all constant variables are moved to a suitable place.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

Build failed on Linux about size_t

Overview

Build failed on some Linux environment because of lack of include cstddef.

Details

Description

Some files use size_t type without include cstdef.

  • src/Interface/SpacecraftInOut/Ports/I2CPort.h

Conditions of occurrence

  • Build on my Arch Linux(GCC 11.2.0, clang version 13.0.1)
  • Build on ubuntu:latest(Docker Image)
    • packages: build-essential, git, cmake, gcc-11-multilib, g++-11-multilib
    • GCC 11.2.0-19ubuntu1

Additional information

Build log

[ 60%] Building CXX object src/Interface/SpacecraftInOut/CMakeFiles/SC_IO.dir/Ports/I2CPort.cpp.o
In file included from /s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:1:
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.h:22:3: error: 'size_t' does not name a type
   22 |   size_t WriteCommand(const unsigned char i2c_addr, const unsigned char* tx_data, const size_t length);
      |   ^~~~~~
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.h:3:1: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
    2 | #include <map>
  +++ |+#include <cstddef>
    3 | 
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.h:23:3: error: 'size_t' does not name a type
   23 |   size_t ReadCommand(const unsigned char i2c_addr, unsigned char* rx_data, const size_t length);
      |   ^~~~~~
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.h:23:3: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp: In member function 'int I2CPort::WriteRegister(unsigned char, unsigned char)':
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:16:48: warning: unused parameter 'i2c_addr' [-Wunused-parameter]
   16 | int I2CPort::WriteRegister(const unsigned char i2c_addr, const unsigned char reg_addr) {
      |                            ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp: At global scope:
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:58:1: error: 'size_t' does not name a type
   58 | size_t I2CPort::WriteCommand(const unsigned char i2c_addr, const unsigned char* tx_data, const size_t length) {
      | ^~~~~~
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:2:1: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
    1 | #include "I2CPort.h"
  +++ |+#include <cstddef>
    2 | 
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:79:1: error: 'size_t' does not name a type
   79 | size_t I2CPort::ReadCommand(const unsigned char i2c_addr, unsigned char* rx_data, const size_t length) {
      | ^~~~~~
/s2e-core/src/Interface/SpacecraftInOut/Ports/I2CPort.cpp:79:1: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?

Task

  • Fix Linux build CI
  • Add include cstddef

Scope of influence

Some Linux environment.

Supplement

Write additional comments if you need.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Rename orbit source code files

Overview

Rename orbit source code files.

Details

The names of EarthCenterdOrbit and SimpleCirculatOrbit do not make sense.
We need to change them.

Conditions for close

The names are changed.

Supplement

NA

Note

NA

Improve ComGS classes to deal with multiple antennas, frequencies, and modulation types

Overview

Improve ComGS classes to deal with multiple antennas, frequencies, and modulation types.

Details

  • To deal with multiple antennas
    • Need to have position and direction information in vector type like other components.
    • Need to select adequate Rx antenna responds to spacecraft attitude
  • To deal with multiple frequencies(S/X, up/down)
    • Implementation for up/down frequencies is easy.
      • Change ANT member variable frequency_ to tx_frequency_ and rx_frequency_ and add some programs.
    • Which components should have information about frequencies?
      • Making the TRP class and leaving the info for this class is good?
      • But how to have consistency with the current XTRP class?
    • How to check frequency matching with TX and RX antennas?
  • To deal with multiple modulation types
    • Modulation type, BER, coding type are now constants by implicit assumptions but should be variables.
    • It is required if users want to use this S/W to simulate both S and X bands.

Conditions for close

When the new ComGS class is implemented.

Supplement

N/A

Note

  • Write a conclusion when closing the issue.

Modify thermal dynamics

Overview

Modify thermal dynamics

Details

Currently, thermal dynamics calculation is implemented, but we did not confirm that it is working well.
We need to confirm the implementation and fix it to work well.

Conditions for close

When thermal dynamics is modified.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Decide Release rules

Overview

Decide rule about how to release/update S2E.

Details

  • versioning: (semver?)
  • update rule
  • document rule

Conditions for close

When xxx is complete.

Supplement

N/A

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

ExtLibraries build cache-hit rule is wrong pattern

Overview

Build CI cache ExtLibraries binaries for speed-up build time but it's cache-hit rule is wrong.

Details

Description

ExtLibraries build-cache should not be restored when edit under ./ExtLibraries.

Conditions of occurrence

  • Build CI(GitHub Actions)
  • Send a Pull-Request of edit ExtLibraries/cspice/CMakeLists.txt(#73 )

Additional information

files, link, etc, if any.

Task

  • Fix xxx
  • Do yyy

Scope of influence

eg. All tools are not working.

Supplement

Write additional comments if you need.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Add components into Spacecraft base class

Overview

Add components into Spacecraft base class.

Details

Currently, UserComponents has instances of components.
It is better Spacecraft base class has the instances.

Conditions for close

When the issue is resolved.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

Execute multi-C2A

Overview

Establish a method to execute multi-C2A in the S2E.

Details

Currently, a single C2A can be built and executed in the S2E.
Multiple C2As can be built but can not be correctly executed because of the function names' conflicts in the C2A.
This problem is solved using the namespace feature in C++, but we need to find an efficient way.
The following solutions are considered.

  • Use the NAMESPACE feature of install(EXPORT ***) command in CMake.
  • Make a script to automatically add namespace into all source codes as follows.
    #ifdef __cplusplus
    namespace C2A_AOBC
    {
    #endif
    ~~~
    #ifdef __cplusplus
    }
    #endif

Conditions for close

When the execution of multiple C2A is completed.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Expand the geopotential algorithm to Moon and/or Mars gravity potential

Overview

Expand the geopotential algorithm to Moon and Mars gravity potential.

Details

  • Add Moon gravity potential model
  • Add Mars gravity potential model
  • Add feature to change the model depending on the user-selected center object

Conditions for close

When the new algorithm is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Modify time handling feature for components

Overview

Modify time handling feature for components.

Details

The following feature is needed for the time handling feature of components:

  • Implement general feature for the fast update
  • Implement a feature to select the component update period by the second unit time, not by the prescaler.

Conditions for close

When the implementation is completed.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add feature for ground station visibility analysis

Overview

Add feature for ground station visibility analysis

Details

Action items:

  • Check the current status of GS related codes.
  • Implement the required feature for GS analysis.
  • Add documents and sample codes for GS analysis.

Conditions for close

The AIs are done.

Supplement

NA

Note

NA

Add tool for visualization

Overview

Add tool for visualization of log output

Details

Implement a tool for visualization of log output.

Conditions for close

When the visualization tool is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add flexible structure model

Overview

Implement a flexible structure vibration model.

Details

For detailed attitude control analysis, flexible structures such as solar paddles should be modeled.

Conditions for close

When the flexible structure model is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Avoid namespace collision of Vector and Matrix class

Overview

Avoid namespace collision of Vector and Matrix class.

Details

When users want to use Eigen, the namespace collision happens with Vector and Matrix which are the S2E internal library.
We need to remove using namespace libra or rename the libraries.

Conditions for close

When the collision is resolved.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Modify place and structure of initializing functions

Overview

Modify place and structure of initializing functions.

Details

Currently, all codes of initializing functions are in the InitInput directory, but it is not appropriate.

Conditions for close

When all initializing codes are moved to the suitable place.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

Automatically download dependencies

Overview

Download dependencies like cspice with CMake for reduce type command before build time.

Details

These CMake functions will be useful.

Conditions for close

When xxx is complete.

Supplement

Write additional comments if you need.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Add albedo model

Overview

Add a model to calculate the reflection of sunlight by the earth's albedo.

Details

To model the detailed behavior of sun sensors, it is necessary to calculate the solar reflection by the earth's albedo.
The information required is as follows:

  • Intensity of reflected light
  • Direction of reflected light

Conditions for close

When the albedo model is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add gRPC connection port

Overview

Add gRPC connection port.

Details

Use cases of the gRPC port are following:

  • Connect with exterior tools (e.g., visualization tool)
  • Connect with a ground station

Conditions for close

When the gRPC port is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Delete UNUSED macro

Overview

Delete UNUSED macro

Details

To remove the warnings, currently we use UNUSED macro. But it is better to fix.
related discussions:
#105
#87 (comment)

Conditions for close

All UNUSED is deleted

Supplement

NA

Note

NA

Bug in Monte Carlo log output

Overview

S2E cannot write Monte Carlo log into xxxx_mont.csv.

Details

Description

In the Monte Carlo simulation mode, S2E can generate a new file xxxx_mont.csv but cannot write log descriptions into the CSV file.
This error occurs when we use the G++ compiler in the Ubuntu/Docker.
When we use Visual Studio, the error is not detected.

Conditions of occurrence

  • Ubuntu in Docker in Mac OS.
  • Monte Carlo simulation is enabled in ISSL6U_MCSim.ini.

Additional information

NA.

Task

  • Find the cause of this error
  • Fix the error

Scope of influence

Mid: We cannot execute the Monte Carlo simulation in the Docker environment.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

今後の方針を話し合うミーティングを行う

Overview

今後の方針を話し合うミーティングを行う

Details

  • ミーティングは4/18 18時(JST)から
  • 東大とAEのS2E主要メンバが参加する
  • 議題は次の通り
    • 講習会に向けた改善点の洗い出し、優先順位付け
    • (講習会とは関係なく)追加実装したい機能の洗い出し、優先順位付け
    • 大規模改修の方針
    • 全体のスケジュール確認、マイルストーンの設定

Conditions for close

  • 今後の方針が決まったら

Supplement

NA

Note

NA

Add default value setting feature for ini read

Overview

Add default value setting feature for ini read when a parameter label is not found.

Details

TBW

Conditions for close

TBW

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add I2c HILS interface

Overview

Add an interface for HILS testing of I2C components.

Details

Add an interface to interact with the simulated component through the com port in order to perform HILS tests of I2C component.

Conditions for close

When the interface is added.

Note

  • Write a conclusion when closing the issue.

Integrate the ECI-ECEF frame conversion

Overview

Integrate the ECI-ECEF frame conversion

Details

Currently, we have several functions to calculate or get the frame conversion

  • GetTransECItoECEF in Orbit class
  • GetDCMJ2000toXCXF in CelestialRotation class
  • Update in GroundStation class

They should be integrated into the "CelestialRotation" class.
In addition, definition of WGS should be integrated in the same way.

Conditions for close

  • integrated the frame conversion feature

Supplement

NA

Note

NA

Fix port closing

Overview

  1. The SILS port of the I2C emulated components is not closed properly.
  2. If the CommunicationBase class is copied, double freeing of memory can occur.

Details

Description

  1. In the destructor of ObcI2cTargetCommunicationBase for SILS test, the function CloseComPort for UART is used when the function I2cCloseComPort for I2C should be used.
  2. In UART and I2C CommunicationBase, memory is freed in the destructor. If CommunicationBase class is copied, double freeing of memory can occur.

Conditions of occurrence

  1. This occurs when performing a SILS test with I2C emulated components.
  2. This happens when the UART or I2C CommunicationBase class is copied.

Additional information

files, link, etc, if any.

Task

  • Fix destructor in ObcI2cTargetCommunicationBase
  • Add copy constructor

Scope of influence

The behavior of CommunicationBase will be change.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Delete warnings

Overview

Delete warnings

Details

There are so many warnings in S2E build. We need to delete them.

Conditions for close

  • all warnings are deleted.

Supplement

NA

Note

NA

Add interface for real data input

Overview

Add a feature to emulate component behavior with real sensor data input.

Details

Detail is not considered yet.

Conditions for close

Detail is not considered yet.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add feature to select the orbit propagation method with string

Overview

Add feature to select the orbit propagation method with string.

Details

Currently, the selection of orbit propagation method is specified as an integer(0=RK4, 1=SGP4, 2=RelativeOrbit).
It's better to select it using a string.

Conditions for close

When the implementation is completed.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add calculation and logging flags to Attitude class

Overview

Add calculation and logging flags to Attitude class

Details

By turning off the attitude update, calculation with the attitude fixed at a specific quaternion q_i2b will be possible.
Implementing that feature will make it convenient to evaluate the magnitude of disturbances by fixing the attitude at various quaternions through Monte Carlo simulations.

Conditions for close

calculation and logging flags implementation

Supplement

N/A

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Show compile error/warning on GitHub

Overview

  • Show compile error/warning with reviewdog
  • It is already implemented on c2a-core

Details

Write in detail.

Conditions for close

When xxx is complete.

Supplement

Write additional comments if you need.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

STT throws up an error when the update step time of a component is greater than 1 second

Overview

STT throws up an error when the update step time of a component is greater than 1 second.

Details

Description

When the update step time of the compo is large, the output_delay of STT is set to 1 in L.21 of InitSTT.cpp.
image

In this case, MAX_DELAY of STT is set to 1 as well.
image

As a result, the value of hist in STT::measure becomes -1, and referencing a negative index in q_buffer cause an error.
image

Conditions of occurrence

CompoUpdateIntervalSec > 1.0

Need more detailed research.

Additional information

N/A

Task

  • Allow STT to work even when the update step of the compo is large

Scope of influence

Analysis with large time increments (e.g., rough trajectory analysis) will be inconvenient.
In such a case, the user should first comment out the code related to the STT and deal with it.

Supplement

Note

Improve surface force model

Overview

Improve surface force model to emulate solar panels.

Details

The current surface force model cannot emulate the self-shadowing effect.
It is not suitable for spacecraft which has large solar panels.

Conditions for close

When the new surface force calculation model is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Add error handling feature for GNSS

Overview

Add assertions for the GNSSReceiver and GnssSatellites classes.

Details

If the calculation of GNSS satellites is disabled, the cone model of the GNSS Receiver stops by accessing memory out of range.
Error handling feature is needed in such a case.
For example, automatically change the antenna model of the receiver from the cone to the simple one.

Conditions for close

The error handling feature is implemented.

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Verify output values (on CI)

Overview

Make a process to verify the correctness of output values.

Details

In order to quickly find bugs in algorithms, we need to make a process to verify the correctness of output values.
It is better to run the process on the CI.
The following points are important and needed to discuss:

  • What kind of parameters does S2E have?
  • What kind of verifications are done by maintainers now?
  • What kind of verification processes are required?

Conditions for close

まずは単純な検証でいいが,それが回り始めたらS2E全体を検証・ユニットテストを回しやすい設計に変えていけるといい

Supplement

NA

Note

  • Write a conclusion when closing the issue.

Decide which cspice kernel files used as default

Overview

Decide which cspice kernel files used as default.

Details

We need to consider which generic kernel files should be used as default for CSPICE.
We also need to decide update policy of these files.

Conditions for close

When the update policy is decided

Supplement

Related discussion

Note

NA

Consider whether the timer count of the `ClockGenerator` class is needed or not

Overview

Consider whether the timer count of the ClockGenerator class is needed or not.

Details

Currently, the argument int count in the MainRoutine function in the ComponentBase class is not used.
We need to consider the argument can be removed. If the argument is needed, we have to change the type of the argument since it will be overflowed soon.

Conditions for close

When the discussion is closed.

Supplement

NA.

Note

  • Write a conclusion when closing the issue.

Decide Coding rules

Overview

Decide Coding rules

Details

The coding rule for S2E is described here, but the rule is unsophisticated.
We need to change it better and more general for programmers.

Conditions for close

When the coding rule is decided.

Supplement

NA

Note

NA

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
scripts/Docker_Ubuntu/Dockerfile
github-actions
.github/workflows/actionlint.yml
  • actions/checkout v4
  • reviewdog/action-actionlint v1
.github/workflows/build.yml
  • actions/checkout v4
  • actions/checkout v4
  • ilammy/msvc-dev-cmd v1
  • actions/cache v4
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-python v5.1.0
  • actions/github-script v7.0.1
  • windows 2022
.github/workflows/check-format.yml
  • actions/checkout v4
.github/workflows/google-test.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/cache v4
.github/workflows/labeler.yml
  • actions/checkout v4
  • crazy-max/ghaction-github-labeler v5
.github/workflows/validate-renovate.yml
  • actions/checkout v4
  • actions/setup-node v4
.github/workflows/validate-scripts.yml
  • actions/checkout v4
  • actions/setup-python v5.1.0
pipenv
scripts/Plot/Pipfile
  • basemap ==1.4.1
  • matplotlib ==3.7.2
  • numpy ==1.24.3
  • pandas ==2.0.3
  • numpy-stl ==3.0.1
  • numpy-quaternion ==2023.0.3
  • python-utils ==3.5.2
regex
.github/workflows/build.yml
  • ut-issl/c2a-core v3.10.1

  • Check this box to trigger a request for Renovate to run again on this repository

Bug in acceleration log

Overview

S2E cannot write the acceleration log correctly.

Details

Description

The acceleration term due to disturbances etc. is calculated in the acceleration of the Orbit class, but is reset for the next step in the Propagate function. Writing to the log is done outside of the Dynamics update, so the accelerations are reset to zero when they are written to the log.

Conditions of occurrence

All environments.

Additional information

NA.

Task

  • Fix the error

Scope of influence

We cannot check the spacecraft acceleration history from the log.

Supplement

NA.

Note

  • If there are related Projects, tie them together.
  • Set priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

Improve UI to set simulation settings

Overview

Improve UI to set simulation settings

Details

UI with ini file should be improved.

Discussion about the unit system in the setting

Should we use another setting method?

Conditions for close

NA

Supplement

NA

Note

Related issue: #254

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.