ut-issl / c2a-aobc Goto Github PK
View Code? Open in Web Editor NEWC2A for AOCS module
License: MIT License
C2A for AOCS module
License: MIT License
vcxprojでの不要なコミットを避けるようにする
こちら参照
どうなったらcloseできるか
なにかあれば
priority
ラベルを付けることBCT(Block Command Table)情報を不揮発メモリに移動させる
BCT情報を不揮発メモリに移動させる
詳細はCDHと議論が必要
不揮発メモリに移動できたら
NA
NA
軌道決定EKFの実装
GPS-R観測値を利用した軌道決定EKFの実装を行う。
実装したら
NA
NA
Qmethodの固有方程式
対処法は,大きく分けて
現時点の議論では、使わずに前回値からQuaternion伝搬を行う
が良さそう
どうなったらcloseできるか
NA
NA
public前の最終確認
列挙していく
NA
NA
NA
センサ値FDIRの実装
実装したら
センサ値としてRW回転数も含める
NA
SQRT関数に負値が入らないようにアサーションをかける
Quaternion計算のバグの原因になる
修正したら
NA
NA
Q内挿モードで設定する目標Qスカラー部符号のアサーション追加
Q内挿モードでの目標Q設定コマンドは、スカラー部が正になる前提で作っており、地上局側でコマンド作成時に気をつける必要がある。
搭載側で次のどちらかを実装したほうがユーザーフレンドリー
実装したら
NA
NA
slack通知テスト用のissue作成
詳しく
どうなったらcloseできるか
なにかあれば
priority
ラベルを付けることinitialモードのリファクタ
Initialモードのタスクリストにアプリが登録されていることに起因して幾つかの不都合が発生している.Initialモードは地上試験のために存在しているが,その取り扱いを再考する.
リファクタしたら
NA
NA
緯度経度高度の構造体を作る
緯度経度高度を個別に扱うより、構造体を作って整理したほうがコードの可読性が上がったり、追加実装がしやすくなる。
実装したら
NA
NA
SILS用IF_Wrapperのリファクタ
イマイチな部分が多いので色々考え直したい。CORE側とも議論が必要かも。
例えば、次のような議論がでていた
リファクタされたら
NA
NA
pid_controlのメンバ変数の秘匿化
今の設計だと,PidControlのインスタンスをApp側で持つ,という性質上,previous_obc_timeとかいろいろいじれてしまう
privateなメンバの末尾に _ をつけておくだけでいいと思う.理想的には全部privateにして,getter/setter経由にしておくのが,今後のリファクタなどに強くなる
実装したら
NA
NA
テスト用コマンドファイルの完成
全てのコマンドに対してコマンドファイルを作る。
全コマンド試験ができるようになったら
整理中のローカルファイル
https://docs.google.com/spreadsheets/d/1P3_KP_cUEM05o3MFnywhbi_-6QKJuqyl_bSkPFXl1Vg/edit#gid=0
NA
アンローディング目標回転数を軸ごとに設定できるようにする
アンローディング目標回転数を軸ごとに設定できるようにする
実装したら
NA
NA
GPIO IF Wrapperの方針議論
core側も巻き込んで議論したい。
具体的には返り値をどうするかなどがある。
整理できたら
NA
NA
Bdotでmag_obsを使っているのをmag_estを使うように修正する
estを使うほうがより適切。
NA
NA
NA
Driver受信バッファサイズを調整する
c2a-coreアップデートにより、Driver受信バッファサイズを細かく設定できるようになった。
メモリの余裕を生むため、INAなどテレメ量が小さなものは小さなサイズ割当するのがよい
調整したら
NA
NA
CIの追加
CIを追加する
CI追加したら
C2A-COREのCIが参考になる
https://github.com/ut-issl/c2a-core/tree/develop/.github/workflows
NA
温度計に対するフィルタ実装
AOBC温度計、各コンポ内部温度計に対して、スパイクフィルタを実装する
実装したら
センサの温度補正は範囲外の温度が来たら補正しないようなアルゴリズムになっているので、このフィルタがなくてもオンボード計算でトラブルが起きることはない
NA
TLE設定コマンドのアサーションを実装する
現状、おかしなTLEを地上局からアップリンクすると、軌道計算が異常になる可能性がある。
搭載側で異常検知すれば運用側のミスを防げる
実装したら
NA
NA
AOCS_ERROR enumの使い方ルールを定める
AOCS_ERROR enumの使い方について、返り値として適用して良い範囲などを議論し、ルールを作る
ルールを作ったら
NA
NA
ユリウス日定義の明確化と変更
搭載S/Wで使われているユリウス日のうるう秒の扱いについて定義を明確化にして変更する。
地上側でケアして運用すれば問題ないが、どの定義にしたほうが運用が楽になるかを考えて修正する。
修正したら
NA
NA
PPS信号割り込みシステム実装
実装完了したら
NA
NA
IGRF係数テーブルの外部書換えIFを追加する
src\src_user\library\geomagnetism.cの,GEOMAGNETISM_Coeffs geomag_coeffとして定義されている係数テーブル内の各値をCMD等をトリガにして書換える機能を追加する
実装したら
2025年がIGRFアップデートタイミング
NA
vMicroでのビルド・実行確認
GitHub移行後、vMicroでのビルド・実行確認
GitHub移行後、vMicroでのビルド・実行確認できたら
NA
NA
GPS-Rテレメ保存コマンドをテレメトリ設定コマンドと一緒にできないか議論する
こちらの議論参照
どうなったらcloseできるか
なにかあれば
priority
ラベルを付けることmemcpyをエンディアンに左右されないようにする
MOBCはビッグエンディアン
AOBCはリトルエンディアン
AOCSコンポはビッグとリトルが混在
という状況で、memcpyをした時に適切なコピーができるような枠組みを作る。現状のendian_memcpyだけでは対応できない。
COREの修正が必要なのかもしれない
NA
NA
NA
Pytestが実行できる体制を整える
Pytestが実行できる体制を整える
NA
NA
MTQ関連コードのリファクタリング
大きく次の2つが関係する
リファクタできたら
NA
NA
テレメトリDBの細かな修正
修正したら
NA
NA
アンローディングで最小出力トルクを定義する
今の実装では、回転数が目標値に限りなく近づいた時に出力トルクが0に近くなって結局アンローディングが終わらずにずっとアンローティングが続くみたいなことになる可能性がゼロではない。
そうならないようにアンローディング中に出力する最小トルク(このトルク以上はからなず出力する)というのは定めても良いかもしれない。
実装したら
NA
NA
CCP_CmdRetのerr_codeの整理
c2a-coreアップデートにより、コマンドの返り値が CCP_EXEC_STS から CCP_CmdRet という構造体になった
現在はCCP_make_cmd_ret_without_err_code
に置き換えている。必要に応じて、各場所でerr_codeを付加する。
整理したら
NA
NA
32bit CRC計算をcoreに移す
src_core/Library/CRCに32bitCRCの計算を追加し,oem7600_driverローカルのCRC計算を削除する.
その際,計算方法はtable look up形式に変更する.
移したら
NA
NA
サンセンサリセットBCの修正
ON/OFF BC登録時にcombineを使ってしまっている部分をdeployに修正する。
修正したら
NA
NA
ケプラー方程式関数でイタレーション回数を返すか検討する
現状の実装ではこの情報は必要ないが、必要にするユーザーがいるかどうかにもよる。
検討したら
NA
NA
衛星プロジェクトが変わった場合にパラメータ変更できるようにする
対応すべきパラメータ
(より詳細はすべて抜き出したファイルを @200km が作っている)
次のように議論が進んでいる
実装したら
過去議論していたリンク
https://gitlab.com/ut_issl/c2a/c2a_issl6u_aobc/-/issues/280
NA
バス側OBC or 地上局関連アノマリ検知実装
CRCチェックなどを行うかどうか、やってもELのみでEHは実行しない(AOBCがMOBCの電源を切ったりはできない)
実装したら
NA
NA
コーディングルール適合のための修正
rad_s
に統一する修正したら
NA
NA
TRIADでの太陽が不可視であるときの姿勢決定手法を考える
太陽が不可視であるときに,以下のどちらで姿勢決定すればよいか考える.
今は前者になっているが、後者のほうが磁気センサ情報を使っているという観点で、精度が良い場合もある。
NA
NA
NA
精三軸モード遷移完了コマンド送信タイミングの修正
モード遷移完了判定の第一引数がOBCT_sec2cycle(timing_sec)ではなくtiming_secとなっている.意図したよりも早くモード遷移完了判定が出る可能性がある.
精三軸モードではその後モード遷移コマンドを打つ可能性も低いので,モード遷移完了判定が早まったとしても大きな問題にはならなそうであるが,修正する.
修正したら
NA
NA
Sagitta関連のリファクタ
the centroids values
とthe histogram data
のテレメを下ろすリファクタしたら
NA
NA
ユニット-ボディの座標変換実装
これまではbody座標とユニット座標が一致していたが、そうでない衛星で一括変換できるようにしたい
実装したら
NA
NA
ARDUINO関連マクロの命名が一般的すぎる件について対策を議論する
ARDUINO関連マクロで、INPUTやHIGHなど一般的すぎてかぶりやすい名前がついてしまっているのにどう対処するか議論する
方針決まったら
NA
NA
精三軸姿勢決定で時刻差が大きい場合のアサーションを追加する
fine_three_axis_determination.cのアプリでAOBC初期化時にアプリ内時刻が初期化される.そのまま精三軸モードに移行すると,姿勢伝播のための時刻差が大きくなり,推定姿勢が大きな誤差を持ってしまう.時刻差が大きい場合のアサーションを追加する.
現在はモード遷移時にアプリ初期化コマンドを打つことで対処している。
時刻差をとる動作を関数化して,一括でアサーションをかける方針のほうが良いかもしれない
修正したら
NA
NA
優先度の低かったコンポーネントコマンドの実装を再検討する
コマンド数の制限から優先度の低いコマンドは実装していなかったが、メモリに余裕が出てきてコマンド数が増やせそうなので再検討しても良いかも
例えば、RWのdiagnoseコマンド など
NA
NA
NA
EL, EHのグループ分けを再考する
ELのenable, disableを簡便にするため、コンポごとのELはEL_GROUP_ERROR_コンポ名
でなるべく統一し、noteのコンポ名_EL_NOTE
でそのEL内容を区別する方針であった。ただし、EL_GROUP_ERROR_コンポ名
でまとめ過ぎてしまうと想定しない挙動が起こりうるため、再考する。
STIM210のCRCエラーはgroup=EL_GROUP_ERROR_STIM210, local=STIM210_IDX_IN_UNIT, err_level=EL_ERROR_LEVEL_HIGH
のELに対して、電源リセット->電源OFFのEH対処を行う。一方、STIM210フィルタのエラーも同一のgroup, local, err_levelに対してEL登録されうる。フィルタエラーはすでに飛び値除去の処理が行われているため、EH対応はしないという方針であったが、共通のEL_groupを使用しているために、意図しない挙動をする可能性がある。
ローカルでの詳細議論
https://gitlab.com/ut_issl/c2a/c2a_issl6u_aobc/-/issues/229
NA
太陽指向制御での中間軸指向を実装する
今はゲイン調整の関係上、機体固定座標の基底軸にしか太陽を持ってこれない。
殆どの衛星ではこれで問題ないはずだが、中間軸も定義できると便利かもしれない
実装したら
NA
NA
ライブラリディレクトリを整理する
適切なディレクトリ構造に分けて見やすくしたい
整理できたら
NA
NA
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.