Skip to content

Fix component algorithm#88

Open
TomokiMochizuki wants to merge 4 commits into
developfrom
feature/fix_component_algorithm
Open

Fix component algorithm#88
TomokiMochizuki wants to merge 4 commits into
developfrom
feature/fix_component_algorithm

Conversation

@TomokiMochizuki

@TomokiMochizuki TomokiMochizuki commented Jan 21, 2024

Copy link
Copy Markdown
Member

概要

Fix component algorithm

Issue

  • N/A

詳細

相対位置・姿勢観測センサに関するコンポーネントのアルゴリズムを改善

  • corner cube reflector と laser emitterに関して
    • コンポーネントクラスを継承させて各ステップごとにposition_i_mなどを計算させるようにした。
    • 理由:
      • 今までの状況だと、複数衛星間で情報をやり取りする際に、その時点のposition_i_mではなく、1ステップ前や1ステップ後のposition_i_mを使用する場合があった。
        • 具体的に言うと、今の状態だとlaser_emitterがsatellite 1にあり、qpd_positioning_sensorが satellite 0にあるが、これを逆に搭載するとsatellite 1のqpd_positioning_sensorが状態量を更新するタイミングでlaser_emitterの状態量を更新するが、この時点において、S2E-FFの計算順序の観点から、すでにsatellite 0は1ステップ後の軌道情報を計算しているので、その値を用いてlaser_emitterの位置が計算されてしまう。このように、複数衛星間での情報をやり取りする際に、その時点での位置を確実に計算させることが重要であるので、Componentクラスを継承させて、衛星のdynamics_が更新されるタイミングとほとんど同じタイミングでコンポーネントを更新させるようにした。
          • このとき、上記に付随してまた別の問題が生じた。それは、番号の小さいsatelliteのコンポーネントから順番に計算するというアルゴリズムになっているため、番号の小さいsatelliteがlaser_emitterなどのデータを用いて相対位置を計算しようとしたときに、laser_emitterの位置はまだ更新されておらず、1ステップ前の値が残ってしまっている。そこで、Update関数を作成し、コンポを使用する際にはUpdate関数をたたくようにした。このUpdate関数は引数にcountを用いているため、異なるステップの状態のdynamicsを用いて計算することを防止している。
  • qpd_positioning_sensorに関して
    • 位置を計算する際、配列を最初から順番に計算していて計算コストが高かったため、二分探索のアルゴリズムに変更した。

検証結果

image

影響範囲

XX系の動作がガラッと変わる,とか.

補足

何かあれば

注意

  • 関連する Projects が存在する場合,それの紐付けを行うこと
  • Assignees を設定すること
  • 可能ならば Reviewers を設定すること
  • 可能ならば priority ラベルを付けること

@TomokiMochizuki TomokiMochizuki self-assigned this Jan 21, 2024
@TomokiMochizuki TomokiMochizuki added enhancement New feature or request priority::medium priority medium labels Jan 21, 2024
@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from cca767f to 12e0b62 Compare January 22, 2024 11:42
@TomokiMochizuki TomokiMochizuki changed the base branch from develop to feature/add_torque_generator January 22, 2024 11:42
@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from 12e0b62 to 3e07da4 Compare January 22, 2024 12:17
@200km

200km commented Jan 22, 2024

Copy link
Copy Markdown
Member

こちら、元々のconer_cube_reflectorlaser_distance_meterの方針では、

  • coner_cube_reflectorの位置情報は、ConerCubeReflector::GetReflectorPosition_i_mの中で計算している
  • laser_distance_meterConerCubeReflector::GetReflectorPosition_i_mを呼び出していて、そこで相手衛星の位置・姿勢踏まえて計算されるので、最新の値が使われるはず

と思っています。なので、1step前のデータで計算されると言うことがないようにししたつもりなんですよね。

逆にConerCubeReflectorComponentを継承して、情報更新アップデートを決めてしまうと、コンポーネントの更新頻度によっては過去のデータを使ってしまう気がしています。

なので、この修正が必ずしも良いと言えない気がしていますが、どう言う状況でしょうか?必要でしたら直接話したほうが早いかもですね。

Base automatically changed from feature/add_torque_generator to develop January 22, 2024 23:40
@TomokiMochizuki

Copy link
Copy Markdown
Member Author

こちら、文書で書くとやや煩雑になるので直接話して説明したいです。

@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from 3e07da4 to bd257cc Compare January 23, 2024 01:17
@200km

200km commented Jan 23, 2024

Copy link
Copy Markdown
Member

OKです。明日ミーティング予定だったと思うので、そこで話しましょう。

@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from bd257cc to 5bcf837 Compare January 24, 2024 03:31
@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from 5bcf837 to 0510472 Compare February 6, 2024 00:08
@TomokiMochizuki TomokiMochizuki force-pushed the feature/fix_component_algorithm branch from 0510472 to 4d30aa4 Compare February 16, 2024 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority::medium priority medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants