LatchSeriesSpringScenario
Robotics scenarios · Implementation: mlsysim/engine/scenario_definitions/robotics/site_limits.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
A series spring sized so machine’s arm stays under site’s declared latch floor.
The arm’s stop is held to what the guarded approach on the rigid plate needs (calc_latch_contact_stopping_profile); at the fast approach the series stiffness must keep tripwire force plus driven stroke under the floor (calc_passive_compliance_stiffness_bound), and the spring element is the stiffness that gives it in series with the plate. Coasting peaks price the case where the response cuts torque at the tripwire instead (calc_coasting_contact_peak_force).
Notes
Equation: The stopping and compliance helpers bound driven stroke and effective stiffness; complementary series stiffness determines the added spring.
Assumptions: The declared latch force budget, tripwire force, response delay, and effective arm mass describe one contact model.
Excludes: Nonlinear material response, damping uncertainty, contact geometry variation, and certified human-contact safety.
References
Derivation: the scenario composes mlsysim.physics.robotics.actuation.calc_coasting_contact_peak_force, mlsysim.physics.robotics.actuation.calc_passive_compliance_stiffness_bound, mlsysim.physics.robotics.learning.calc_complementary_series_stiffness, mlsysim.physics.robotics.stopping.calc_latch_contact_stopping_profile. Their contracts supply the underlying equations; property equations show the remaining unit conversions and accounting.
Examples
>>> from mlsysim import Scenarios
>>> scenario = Scenarios.WarehouseLatchSeriesSpring
>>> value = scenario.arm_deceleration
>>> str(value.units)
'm/s²'Attributes
| Name | Description |
|---|---|
| arm_deceleration | Required arm deceleration in m/s² for the guarded rigid-plate latch approach. |
| arm_deceleration_rigid_fast | Required arm deceleration in m/s² for the faster rigid-plate approach. |
| coasting_rigid_fast | Peak coasting force in newtons for the fast approach against the rigid plate. |
| coasting_rigid_guarded | Peak coasting force in newtons for the guarded approach against the rigid plate. |
| coasting_spring_fast | Peak coasting force in newtons for the fast approach with the bounded effective |
| driven_stroke | Post-tripwire driven stroke in millimeters from the passive-compliance bound. |
| machine | |
| preload | |
| series_stiffness_max | Maximum effective series stiffness in N/m under the declared force budget. |
| site | |
| spring_fast_profile | Stopping profile at fast approach using the bounded effective series stiffness. |
| spring_stiffness_max | Maximum added spring stiffness in N/m that realizes the effective series bound with the |
| spring_stroke | Spring deflection in millimeters at the declared force ceiling after subtracting |
Methods
| Name | Description |
|---|---|
| coasting_peak | Peak coasting contact force in newtons from speed, effective arm mass, stiffness, and |
coasting_peak
engine.scenario_types.LatchSeriesSpringScenario.coasting_peak(stiffness, speed)Peak coasting contact force in newtons from speed, effective arm mass, stiffness, and tripwire force.
Equation: calc_coasting_contact_peak_force(speed, machine.arm_effective_contact_mass, stiffness, site.f_latch_tripwire).to('N').
site
Type: Any.
Declared default: required.
machine
Type: Any.
Declared default: required.
preload
Type: Quantity.
Declared default: Q_(0.0, 'N').
arm_deceleration
engine.scenario_types.LatchSeriesSpringScenario.arm_deceleration
Required arm deceleration in m/s² for the guarded rigid-plate latch approach.
Equation: _profile(site.v_latch_approach)['a_arm_needed'].to('m/s**2').
arm_deceleration_rigid_fast
engine.scenario_types.LatchSeriesSpringScenario.arm_deceleration_rigid_fast
Required arm deceleration in m/s² for the faster rigid-plate approach.
Equation: _profile(site.v_latch_high)['a_arm_needed'].to('m/s**2').
driven_stroke
engine.scenario_types.LatchSeriesSpringScenario.driven_stroke
Post-tripwire driven stroke in millimeters from the passive-compliance bound.
Equation: _bound()[1].to('mm').
series_stiffness_max
engine.scenario_types.LatchSeriesSpringScenario.series_stiffness_max
Maximum effective series stiffness in N/m under the declared force budget.
Equation: _bound()[0].to('N/m').
spring_stiffness_max
engine.scenario_types.LatchSeriesSpringScenario.spring_stiffness_max
Maximum added spring stiffness in N/m that realizes the effective series bound with the latch plate.
Equation: calc_complementary_series_stiffness(series_stiffness_max, site.k_latch).to('N/m').
spring_stroke
engine.scenario_types.LatchSeriesSpringScenario.spring_stroke
Spring deflection in millimeters at the declared force ceiling after subtracting preload.
Equation: ((site.f_latch_limit - preload) / spring_stiffness_max).to('mm').
coasting_rigid_guarded
engine.scenario_types.LatchSeriesSpringScenario.coasting_rigid_guarded
Peak coasting force in newtons for the guarded approach against the rigid plate.
Equation: coasting_peak(site.k_latch, site.v_latch_approach).
coasting_rigid_fast
engine.scenario_types.LatchSeriesSpringScenario.coasting_rigid_fast
Peak coasting force in newtons for the fast approach against the rigid plate.
Equation: coasting_peak(site.k_latch, site.v_latch_high).
coasting_spring_fast
engine.scenario_types.LatchSeriesSpringScenario.coasting_spring_fast
Peak coasting force in newtons for the fast approach with the bounded effective stiffness.
Equation: coasting_peak(series_stiffness_max, site.v_latch_high).
spring_fast_profile
engine.scenario_types.LatchSeriesSpringScenario.spring_fast_profile
Stopping profile at fast approach using the bounded effective series stiffness.
Equation: _profile(site.v_latch_high, series_stiffness_max).