Comments (5)
@200km @seki-hiro
こちらの,AOCS managerでのreference_jday更新部分を修正する
について,実装方針どうするかご意見伺いたく….
この話は,下記3点の内容で,Jdayの更新頻度に関する仮定に齟齬があることが問題という認識です.
APP_TIME_SPACE_CALC_exec_
やAOCS_MANAGER_set_reference_jday
が10Hzで呼ばれて,その中でaocs_manager_.reference_jday
をGPSデータを用いて更新している- それに対し,現状,GPSのTLMデータは1Hzでしか更新されないため,
aocs_manager_.reference_jday
が実質1Hz更新になっている(GPSが可視の際には,1.の処理が,10回同じ値をaocs_manager_.reference_jday
に書くことになる) - その上で,例えば,
APP_GPSROP_exec_
等の,aocs_manager_.reference_jday
を参照する関数が10Hzで呼ばれているため, 軌道位置計算等も10Hz更新が期待されている様に見えるのに対し,実質1Hz更新になっている
当初は単純に,1の中で,GPSのTLMデータが1Hz頻度なことを加味して,TLM受信時のOBC時刻と現在のOBC時刻の差分を基に,10Hz分は内挿することが考えられる様に思いました.
が,下記の様な理由から,1の処理はこのままにして,3の時刻更新以外のアプリ内でJdayを参照する側で対応した方が拡張性が高い気もし始めたのですが,どういう方針が良いでしょうか…?
- 1の処理を直す当初の方針だと,結局,3の処理は1の処理以下の実行頻度に抑えないと,参照時に時刻の齟齬が出る
- 一方で,1の処理では,最後にJday更新につかったGPSのTLMデータを受信した時のOBC時刻を
aocs_manager_.reference_jday
とセットでAOCSマネージャに渡しているため,reference_jdayを使うアプリ側で現在時刻を参照すれば,アプリ実行時のjdayの値は1の処理頻度に関係なく更新できる - そうすると,むしろ1の処理はあくまで,GPS時刻を,他のアプリで使う際の時刻の参照起点となるJday (reference_jday)に変換するだけと割り切って,実際の他アプリ実行時のJday (current_jday)はreference_jdayとその値更新時のOBC時刻を基に,各アプリで計算する方が,アプリ間の実行頻度制約を気にせずに今後の実装作業ができて,齟齬を防ぎやすいかも?
ただ,各アプリは各々実行時のcurrent_jdayを使う,という方針は,これはこれで時刻の一元管理を放棄しているので,ちょっと微妙かもしれないと思っており,正直どうするのがベスト,という意見は個人的には持っていないですが…
from c2a-aobc.
GPSのTLMデータは1Hzでしか更新されない
GPSのDIは10Hzで呼び出されていますが、コンポーネント側で出力するTLMが1Hzということでしょうか?
個人的には、各アプリで時刻の計算を入れるのは手間な気がしていて、1の処理を直す当初の方針
でどうにかなるなら、それで時刻の一元管理
ができるとベストな気がしています。あとは、3の処理を1の処理よりも高頻度にしたい需要が、どれだけあるかという話になりそうです。現状アプリの最高頻度は10Hzと思うので、需要はあまりない気もしましたが、いかがでしょうか?
from c2a-aobc.
コンポーネント側で出力するTLMが1Hz
です.
3の処理を1の処理よりも高頻度にしたい需要
3の処理を100Hzにしたい,とかよりは,1の処理を(他処理とのローテータ―にする等で)10Hz以外にしたい,みたいな話はアプリの数によってはあり得なくはない気がしています.
(実際,過去の衛星等では1Hzのものもあった気がしますし.)
直近の研究室衛星については1,3の処理いずれも同じ10Hz頻度で呼ぶ前提で良いがしますが,Opensourceという観点からは,前提について制約が少ない方が良いかも,思わなくはないです.
from c2a-aobc.
GPS時刻構造体を作る
について,色んなところで使っていて,改修範囲が広いので,どこで該当構造体を定義すべきか,改修前に決めさせて下さい.
OEMに限らない一般的なものなので,oem7600.h
でOEM7600_GPS_Time_OF_WEEK
みたいな感じで定義するのは少し違和感があります.(あちこちでoem7600.h
をincludeすることになりそうでそれも違和感)
ので,anoce_manager.h
でAOCS_MANAGER_GPS_Time_OF_WEEK
みたいな感じで定義するので良いでしょうか?
(或いは,coreのobc_time.h
で定義するという方針もありえる…?)
from c2a-aobc.
バッファサイズを個別指定できるようになったので、その部分も含めてリファクタをお願いします。
from c2a-aobc.
Related Issues (20)
- RWステータス取得コマンドのコメントを外し、ステータスチェックELを実装する HOT 1
- アプリタイムの再調整 HOT 1
- 磁気排他制御仕様更新に伴う三軸姿勢制御の検証
- 磁気排他制御仕様変更に伴うMTQ電気試験の実施
- 自動モード遷移カウンタをゼロクリアできるようにする
- 目標計算に対地表面相対速度を入れる HOT 4
- IGRF計算時の閾値を可変にする
- Bdotモードおよび太陽捕捉モードでGPSRを使えるようにする
- STT ON BCのbootまでの時間を延長する
- BC数の最大値を増やすことを検討する HOT 8
- EL/EHを整理する
- テレメエラーを出すコンポに対してはテレメ要求をしないようにFDIRを改修するか検討する
- devでvMicro buildができない HOT 2
- SagittaのVersion Telemetryがサブスクリプションできない
- BdotモードでMTQがまったく出力されない場合がある HOT 4
- 磁気センサバイアスの挙動がおかしい
- EL low noteのテレメの追加
- TLCのエラーカウンタテレメがない
- CONTROLテレメパケットが容量オーバーで下ろせない
- タイムラインが溢れることがあるかもしれない
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from c2a-aobc.