Skip to main content

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).

Back to top