Physics Metrics¶
Use physics metrics to inspect sampled speed and to flag trajectories that violate acceleration, jerk, curvature, or combined dynamic feasibility constraints.
Reference¶
Standard finite-difference kinematics and common robotics dynamic constraint checks.
Quick Example¶
import numpy as np
from robometrics import speed_profile, dynamic_feasibility_score
traj = np.array([[0.0, 0.0], [0.5, 0.0], [1.0, 0.1], [1.5, 0.2]])
dt = 0.1
print(speed_profile(traj, dt))
print(dynamic_feasibility_score(traj, dt, constraints={"max_speed": 8.0}))
Metrics¶
speed_profile(traj, dt) -> NDArray[np.float64]¶
Formula: norm of first finite-difference gradient divided by dt. Reference: Standard finite-difference kinematics Unit: m/s Direction: context dependent
Speed profile exposes sampled velocity for limits and diagnostics. It returns
one speed estimate per trajectory point; endpoint values are gradient-estimated
rather than N-1 interval speeds.
acceleration_limits_violated(traj, dt, max_accel) -> MetricResult¶
Formula: true when any acceleration magnitude exceeds max_accel. Reference: Standard acceleration constraint violation metric Unit: m/s^2 Direction: lower is better
Acceleration violation reports whether acceleration constraints are breached.
jerk_limits_violated(traj, dt, max_jerk) -> MetricResult¶
Formula: true when any jerk magnitude exceeds max_jerk. Reference: Standard jerk constraint violation metric Unit: m/s^3 Direction: lower is better
Jerk violation catches abrupt motion beyond configured limits.
curvature_limits_violated(traj, max_curvature) -> MetricResult¶
Formula: true when any curvature sample exceeds max_curvature. Reference: Standard curvature constraint violation metric Unit: 1/m Direction: lower is better
Curvature violation identifies turns that exceed path constraints.
dynamic_feasibility_score(traj, dt) -> float¶
Formula: 1 minus normalized count of configured dynamic limit violations. Reference: RoboMetrics internal heuristic Unit: score Direction: higher is better
Dynamic feasibility score combines several constraint checks into a scalar score.
kinematic_feasibility(positions, dt=1.0, timestamps=None, max_velocity=None, max_acceleration=None, max_curvature=None) -> float¶
Formula: fraction-style score over optional finite-difference velocity, acceleration, and curvature checks. Reference: Standard kinematic feasibility checks Unit: score Direction: higher is better
Kinematic feasibility scores how often sampled motion remains within configured kinematic limits.
dynamic_feasibility(mass, accelerations, ...) -> float¶
Formula: Newtonian feasibility score over optional force, acceleration, torque, and friction constraints. Reference: Standard dynamics feasibility checks Unit: score Direction: higher is better
Dynamic feasibility checks force and friction-style physical constraints.
physics_violation_rate(violations) -> float¶
Formula: fraction of timesteps or events with any physics violation. Reference: RoboMetrics internal violation aggregation Unit: ratio Direction: lower is better
Physics violation rate aggregates boolean or mapping-based violation signals.