Skip to main content

PackagingCellScenario

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 packaging cell’s carriage that must stop before a fixed stop line.

The pre-brake delay is a chain of four allocations (event to usable frame, transfer through admission, command delivery, brake onset); the stop is the elementary constant-deceleration budget (StoppingBudgetModel) with the allocated reserve held back from the clearance, so the speed ceiling is the positive root of v tau + v^2/(2a) = clearance - reserve. The supervisory settings (force limiter, thermistor trip, stall timeout, bus overvoltage trip, kinematic-check rate) are selected thresholds, not measured limits.

Notes

Equation: Stopping uses v*delay+v**2/(2*deceleration) with reserved clearance; energy uses mass*speed**2/2.

Assumptions: Delay components add serially and braking deceleration is constant and positive.

Excludes: Measured actuator dynamics, traction variation, threshold validation, and a safety certification.

References

Derivation: the scenario composes mlsysim.physics.robotics.actuation.calc_kinetic_energy, mlsysim.solvers.StoppingBudgetModel. Their contracts supply the underlying equations; property equations show the remaining unit conversions and accounting.

Examples

>>> from mlsysim import Scenarios
>>> scenario = Scenarios.PackagingCellTransit
>>> value = scenario.delay
>>> str(value.units)
'ms'

Attributes

Name Description
bus
bus_trip
check_rate
clearance
deceleration
deficit Modeled stopping distance minus clearance in millimeters; negative values mean spare
delay Total allocated pre-brake latency in milliseconds, summing exposure, processing, bus,
exposure
force_limit
kinetic_energy Carriage kinetic energy in joules via the shared mass-and-speed equation.
mass
onset
processing
remaining Millimeters between the modeled stopping position and stop line, including the reserved
reserve
result Return the typed accounting result from StoppingBudgetModel using this scenario’s
root_terms Speed-root operands a*tau, 2*a*d, and their combined square root in consistent
speed
stall_timeout
stop_budget Usable stopping clearance after physical reserve, in millimeters.
temperature_trip

mass

Type: Quantity.

Declared default: required.

speed

Type: Quantity.

Declared default: required.

clearance

Type: Quantity.

Declared default: required.

reserve

Type: Quantity.

Declared default: required.

deceleration

Type: Quantity.

Declared default: required.

exposure

Type: Quantity.

Declared default: required.

processing

Type: Quantity.

Declared default: required.

bus

Type: Quantity.

Declared default: required.

onset

Type: Quantity.

Declared default: required.

check_rate

Type: Optional[Quantity].

Declared default: None.

force_limit

Type: Optional[Quantity].

Declared default: None.

temperature_trip

Type: Optional[Quantity].

Declared default: None.

stall_timeout

Type: Optional[Quantity].

Declared default: None.

bus_trip

Type: Optional[Quantity].

Declared default: None.

delay

engine.scenario_types.PackagingCellScenario.delay

Total allocated pre-brake latency in milliseconds, summing exposure, processing, bus, and onset.

Equation: (exposure + processing + bus + onset).to('ms').

stop_budget

engine.scenario_types.PackagingCellScenario.stop_budget

Usable stopping clearance after physical reserve, in millimeters.

Equation: (clearance - reserve).to('mm').

result

engine.scenario_types.PackagingCellScenario.result

Return the typed accounting result from StoppingBudgetModel using this scenario’s declared inputs; units and exclusions follow that solver contract.

Equation: StoppingBudgetModel().solve(speed, delay, deceleration, clearance, physical_margin=reserve).

remaining

engine.scenario_types.PackagingCellScenario.remaining

Millimeters between the modeled stopping position and stop line, including the reserved margin.

Equation: (clearance - result.stop_distance).to('mm').

deficit

engine.scenario_types.PackagingCellScenario.deficit

Modeled stopping distance minus clearance in millimeters; negative values mean spare clearance.

Equation: (result.stop_distance - clearance).to('mm').

kinetic_energy

engine.scenario_types.PackagingCellScenario.kinetic_energy

Carriage kinetic energy in joules via the shared mass-and-speed equation.

Equation: calc_kinetic_energy(mass, speed).to('J').

root_terms

engine.scenario_types.PackagingCellScenario.root_terms

Speed-root operands a*tau, 2*a*d, and their combined square root in consistent SI units.

Equation: (a_tau, two_a_d, ((a_tau ** 2 + two_a_d) ** 0.5).to('m/s')).

Back to top