Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/bsk_rl/sim/dyn/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ def _setup_dynamics_objects(self, **kwargs) -> None:
vN=None,
oe=random_orbit,
mu=orbitalMotion.MU_EARTH * 1e9,
min_orbital_radius=(orbitalMotion.REQ_EARTH + 200) * 1e3,
)
def setup_spacecraft_hub(
self,
Expand All @@ -330,6 +331,7 @@ def setup_spacecraft_hub(
rN: Optional[Iterable[float]],
vN: Optional[Iterable[float]],
mu: float,
min_orbital_radius: float,
priority: int = 2000,
**kwargs,
) -> None:
Expand All @@ -352,6 +354,7 @@ def setup_spacecraft_hub(
mu: Gravitational parameter (used only with ``oe``).
rN: [m] Initial inertial position.
vN: [m/s] Initial inertial velocity.
min_orbital_radius: [m] Minimum allowable orbital radius.
priority: Model priority.
kwargs: Passed to other setup functions.
"""
Expand Down Expand Up @@ -384,6 +387,8 @@ def setup_spacecraft_hub(
self.task_name, self.scObject, ModelPriority=priority
)

self.min_orbital_radius = min_orbital_radius

self.setup_gravity_bodies()
self.setup_disturbance_torque(**kwargs)
self.setup_density_model()
Expand Down Expand Up @@ -502,9 +507,10 @@ def setup_simple_nav_object(self, priority: int = 1400, **kwargs) -> None:
def altitude_valid(self) -> bool:
"""Check that satellite has not deorbited.

Checks if altitude is greater than 200km above Earth's surface.
Checks if altitude is greater than the configurable minimum orbital radius
(`min_orbital_radius`). The default value corresponds to 200km above Earth's surface.
"""
return np.linalg.norm(self.r_BN_N) > (orbitalMotion.REQ_EARTH + 200) * 1e3
return np.linalg.norm(self.r_BN_N) > self.min_orbital_radius

@default_args(
wheelSpeeds=lambda: np.random.uniform(-1500, 1500, 3),
Expand Down
1 change: 1 addition & 0 deletions tests/unittest/sim/test_dynamics.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ def test_wheel_properties(self):
)
def test_altitude_valid(self, vec, valid):
dyn = BasicDynamicsModel(MagicMock(simulator=MagicMock()), 1.0)
dyn.min_orbital_radius = 1e6
dyn.simulator.world = MagicMock()
dyn.scObject = MagicMock()
message = dyn.scObject.scStateOutMsg.read.return_value
Expand Down