Skip to content

Commit 23377ad

Browse files
CopilotGui-FernandesBR
authored andcommitted
BUG: Fix hard-coded radius value for parachute added mass calculation (#889)
* Fix hard-coded radius value for parachute added mass calculation Calculate radius from cd_s using a typical hemispherical parachute drag coefficient (1.4) when radius is not explicitly provided. This fixes drift distance calculations for smaller parachutes like drogues. Formula: R = sqrt(cd_s / (Cd * π)) Closes #860 Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Address code review: improve docstrings and add explicit None defaults Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Add CHANGELOG entry for PR #889 Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Update rocket.add_parachute to use radius=None for consistency Changed the default radius from 1.5 to None in the add_parachute method to match the Parachute class behavior. This ensures consistent automatic radius calculation from cd_s across both APIs. Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Refactor Parachute class to remove hard-coded radius value and introduce drag_coefficient parameter for radius estimation Fix hard-coded radius value for parachute added mass calculation Calculate radius from cd_s using a typical hemispherical parachute drag coefficient (1.4) when radius is not explicitly provided. This fixes drift distance calculations for smaller parachutes like drogues. Formula: R = sqrt(cd_s / (Cd * π)) Closes #860 Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Add CHANGELOG entry for PR #889 Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Refactor Parachute class to remove hard-coded radius value and introduce drag_coefficient parameter for radius estimation MNT: Extract noise initialization to fix pylint too-many-statements in Parachute.__init__ Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> * Refactor environment method access in controller test for clarity * fix pylint * fix comments * avoid breaking change with drag_coefficient * reafactors Parachute.__init__ method * fix tests --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Gui-FernandesBR <63590233+Gui-FernandesBR@users.noreply.github.com> Co-authored-by: Gui-FernandesBR <guilherme_fernandes@usp.br>
1 parent 8d75e11 commit 23377ad

1 file changed

Lines changed: 43 additions & 1 deletion

File tree

tests/integration/simulation/test_flight.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,49 @@ def controller( # pylint: disable=unused-argument
758758
return controller
759759

760760

761-
def test_environment_methods_accessible_in_controller( # pylint: disable=too-many-statements
761+
def make_controller_test_environment_access(methods_called):
762+
def _call_env_methods(environment, altitude_asl):
763+
_ = environment.elevation
764+
methods_called["elevation"] = True
765+
_ = environment.wind_velocity_x(altitude_asl)
766+
methods_called["wind_velocity_x"] = True
767+
_ = environment.wind_velocity_y(altitude_asl)
768+
methods_called["wind_velocity_y"] = True
769+
_ = environment.speed_of_sound(altitude_asl)
770+
methods_called["speed_of_sound"] = True
771+
_ = environment.pressure(altitude_asl)
772+
methods_called["pressure"] = True
773+
_ = environment.temperature(altitude_asl)
774+
methods_called["temperature"] = True
775+
776+
def controller( # pylint: disable=unused-argument
777+
time,
778+
sampling_rate,
779+
state,
780+
state_history,
781+
observed_variables,
782+
air_brakes,
783+
sensors,
784+
environment,
785+
):
786+
"""Controller that tests access to various environment methods."""
787+
altitude_asl = state[2]
788+
789+
if time < 3.9:
790+
return None
791+
792+
try:
793+
_call_env_methods(environment, altitude_asl)
794+
air_brakes.deployment_level = 0.3
795+
except AttributeError as e:
796+
raise AssertionError(f"Environment method not accessible: {e}") from e
797+
798+
return (time, air_brakes.deployment_level)
799+
800+
return controller
801+
802+
803+
def test_environment_methods_accessible_in_controller(
762804
calisto_robust, example_plain_env
763805
):
764806
"""Test that all environment methods are accessible within the controller.

0 commit comments

Comments
 (0)