Skip to content

Commit 23ea466

Browse files
committed
[MINOR] Configurable collision check rate
1 parent 4236108 commit 23ea466

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/bsk_rl/sim/dyn/relative_motion.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Dynamics models concerning the relative motion of spacecraft."""
22

33
import types
4+
from typing import Optional
45

56
import numpy as np
67
from Basilisk.simulation import spacecraftLocation
@@ -84,15 +85,23 @@ def conjunction_valid(self) -> bool:
8485
"""Check if conjunction has not occured."""
8586
return len(self.conjunctions) == 0
8687

87-
@default_args(conjunction_radius=10)
88-
def setup_conjunctions(self, conjunction_radius: float, **kwargs) -> None:
88+
@default_args(conjunction_radius=10, conjunction_check_rate=None)
89+
def setup_conjunctions(
90+
self,
91+
conjunction_radius: float,
92+
conjunction_check_rate: Optional[float],
93+
**kwargs,
94+
) -> None:
8995
"""Set up conjunction checking between satellites.
9096
9197
Args:
9298
conjunction_radius: [m] Minimum distance for a conjunction.
99+
conjunction_check_rate: [s] Rate at which to check for conjunctions. Defaults to sim rate.
93100
kwargs: Passed to other setup functions.
94101
"""
95102
self.conjunction_radius = conjunction_radius
103+
if conjunction_check_rate is None:
104+
conjunction_check_rate = self.simulator.sim_rate
96105

97106
for sat_dyn in self.simulator.dynamics_list.values():
98107
if sat_dyn != self and isinstance(sat_dyn, ConjunctionDynModel):
@@ -126,11 +135,12 @@ def side_effect(sim):
126135
valid_func_name(
127136
f"conjunction_{self.satellite.name}_{sat_dyn.satellite.name}"
128137
),
129-
macros.sec2nano(self.simulator.sim_rate),
138+
macros.sec2nano(conjunction_check_rate),
130139
True,
131140
conditionFunction=condition,
132141
actionFunction=side_effect,
133142
terminal=True,
143+
exactRateMatch=False,
134144
)
135145

136146

0 commit comments

Comments
 (0)