FlexTail Sensor Evaluation Series
Ergonomie einer Reinigungssitzung: ISO-Zonen, Beugeereignisse und Frame-basierte Qualität
Eine detaillierte Erläuterung der Analyse einer Reinigungssitzung: ISO-11226-Zonenklassifikation, Eskalation durch Beckenneigung, hysterese-basierte Beugeerkennung und der konfigurierbare Lift-Evaluation-Score.
Veröffentlicht
Eine Aufzeichnung, mehrere ergänzende Fragen
Eine lange Reinigungssitzung ist ein geeigneter Testfall für kontinuierliche Ergonomieanalyse: Sie enthält anhaltendes Bücken, wiederholtes Greifen, Wechsel zwischen Arbeitsbereichen und kurze Erholungsphasen. Keine einzelne Kennzahl erfasst dieses Verhalten. Das Playbook zerlegt die Aufzeichnung daher in vier Ebenen: sitzungsweite Haltungszonen aus sagittalen und lateralen Winkeln, zeitaufgelöste Beugefrequenz, diskrete mit Hysterese erkannte Beugeereignisse sowie einen konfigurierbaren Frame-Qualitätsscore je Beugephase.
Die Quellanalyse berichtet für die Reinigungssitzung 124.581 Samples, einen mittleren sagittalen Winkel von 26,2 Grad, eine mittlere absolute laterale Abweichung von 2,4 Grad und ein lumbales $P90$ von 34,6 Grad. Unter dem festgelegten Regelwerk lautet die Sitzungsclassification Medium. Dies sind Eigenschaften dieser Aufzeichnung und Konfiguration, keine normativen Referenzwerte für alle Reinigungsarbeiten.
ISO-Zonen auf Sitzungsebene
Die Analyse operationalisiert ein Drei-Zonen-Modell, orientiert an ISO 11226:2000 und DIN EN 1005-4:
$$ Z_{\mathrm{sag}}(\theta)=\begin{cases}\mathrm{Neutral},&\theta<20^\circ\\mathrm{Moderat},&20^\circ\leq\theta<40^\circ\\mathrm{Ungünstig},&\theta\geq40^\circ\end{cases} $$
$$ Z_{\mathrm{lat}}(\theta)=\begin{cases}\mathrm{Neutral},&|\theta|<10^\circ\\mathrm{Moderat},&10^\circ\leq|\theta|<20^\circ\\mathrm{Ungünstig},&|\theta|\geq20^\circ.\end{cases} $$
Die Zonen werden kreuzklassifiziert: Jede Kombination mit sagittal oder lateral Awkward ist High, neutral-neutral ist Low und die übrigen neutralen/moderaten Kombinationen sind Medium. Die Grundklasse ist die häufigste Matrixzelle. Erreicht das 90. Perzentil des Lumbalwinkels 40 Grad, wird sie um eine Stufe bis maximal High eskaliert:
$$R_{\mathrm{final}}=\min\left(2,R_{\mathrm{base}}+\mathbb{1}[Q_{0.90}(\theta_{\mathrm{lumbar}})\geq40^\circ]\right).$$
sag = df["sagittal_mean"].fillna(0.0)
df["sag_group"] = "Neutral"
df.loc[sag >= 20.0, "sag_group"] = "Moderate"
df.loc[sag >= 40.0, "sag_group"] = "Awkward"
lat = df["lateral_mean"].abs().fillna(0.0)
df["lat_group"] = "Neutral"
df.loc[lat >= 10.0, "lat_group"] = "Moderate"
df.loc[lat >= 20.0, "lat_group"] = "Awkward"
df["final_risk"] = (df["base_risk"] + (df["lumbar_p90"] >= 40.0)).clip(0, 2)
Die Eskalation trennt anhaltende Vorneigung von wiederholten tiefen Beugungen. Beides sollte sichtbar bleiben, weil Maßnahmen unterschiedlich sein können. Das Regelwerk implementiert nicht alle Anforderungen der ISO 11226; eine formale Arbeitsplatzbewertung berücksichtigt auch Dauer, Erholung, Kraft, Last, Umgebung und das vollständige Entscheidungsverfahren.
Beugen erkennen, ohne Ereignisse zu fragmentieren
Die sagittale Beugung wird mit einem verzögerten Schmitt-Trigger erkannt. Der Zustand tritt bei mehr als 30 Grad ein und endet erst, wenn die Flexion eine volle Sekunde unter 15 Grad bleibt:
$$q(t^+)=1\ \text{bei}\ q(t)=0\ \text{und}\ x(t)>30^\circ,$$
$$q(t^+)=0\ \text{bei}\ q(t)=1\ \text{und}\ x(u)<15^\circ\ \text{für alle}\ u\in[t-1\ \mathrm{s},t].$$
Das Hystereseband $[15^\circ,30^\circ]$ verhindert rasches Umschalten nahe einer Schwelle, der verzögerte Austritt verhindert das Aufteilen einer zusammengesetzten Bewegung. Vorher glättet die Pipeline kausal über fünf Samples:
$$\widetilde x_t=\frac{1}{\min(w,t+1)}\sum_{k=0}^{\min(w-1,t)}x_{t-k},\qquad w=5.$$
trigger = DelayedPredicateSchmittTrigger(enter_deg=30.0, exit_deg=15.0, low_duration=1.0)
states = np.array([trigger.process(sagittal[i], elapsed_seconds[i])
for i in range(len(sagittal))])
event_starts = int(np.sum(np.diff(states.astype(int)) > 0))
Der kausale Filter ist für Echtzeitfeedback geeignet, erzeugt aber Phasenverzug. Offline sollten nullphasige oder ungefilterte Varianten verglichen werden. Die berichteten 246 Ereignisse hängen von Glättung, Schwellen, Vorzeichenkonvention und Zeitdaten ab und sind keine Zählung jeder manuellen Handlung. Repräsentative Zeitreihen mit Ereignisphasen sollten manuell geprüft werden.
Häufigkeit, Dauer und Qualitätsscore
Für Fenster $w$ der Dauer $T_w$ ist die Beugefrequenz $f_w=n_w/T_w\times60$ in Beugen pro Minute. Pro Ereignis gehören Dauer $D_e$, Spitzenwinkel $A_e=\max_{t\in e}|x(t)|$ und aktive Zeit zum Bericht; Gesamtaktivzeit $T_{\mathrm{active}}=\sum_eD_e$ ist nur eine beschreibende Dosis und keine Kraftschätzung.
Die Lift-Evaluation berechnet an jedem Frame Komponenten für Lumbal, Sagittal, Lateral und Torsion. Für eine symmetrische Komponente in Radiant gilt
$$S(a)=\operatorname{clamp}(o-m|a|,0,100).$$
Standardmäßig sind $o=120$ und $m=114.59$; daraus folgen näherungsweise Scores 100, 80, 40 und 0 bei 0, 20, 40 und 60 Grad. Der gewichtete Frame-Score ist
$$S_{\mathrm{frame}}=\operatorname{clamp}\left(\frac{w_LS_L+w_SS_S+w_{Lat}S_{Lat}+w_TS_T}{w_L+w_S+w_{Lat}+w_T},0,100\right).$$
def score_component(angle_rad, offset, modifier):
return max(0.0, min(100.0, offset - modifier * abs(angle_rad)))
def calculate_weighted_score(s_lumbar, s_sagittal, s_lateral, s_twist, weights):
total = weights.lumbar + weights.sagittal + weights.lateral + weights.twist
return max(0.0, min(100.0, (weights.lumbar * s_lumbar + weights.sagittal * s_sagittal + weights.lateral * s_lateral + weights.twist * s_twist) / total))
Der Ereignisscore ist der Mittelwert aktiver Frames und wird als $q_e=\operatorname{clamp}((\overline S_e-60)/(90-60),0,1)$ skaliert. Die Labels Good ab $2/3$, Fair ab $1/3$ und Poor darunter sind Scoringkategorien, keine klinischen Grade oder validierten Verletzungsklassen. Numerische Komponenten und Konfiguration müssen zusammen mit dem Label berichtet werden.
Validierungsprüfungen und Quellen
Die vier Ebenen können sinnvoll voneinander abweichen: Eine Medium-Sitzung kann wenige tiefe, niedrig bewertete Beugungen enthalten; viele flache Beugungen können die Ereigniszahl erhöhen, ohne $P90$ zu steigern. Prüfen Sie Vorzeichen mit einer bekannten Bewegung, monotone Zeitstempel und reale Abtastrate, Roh- und geglättete Signale zufälliger Ereignisse sowie Sensitivität für 30/15 Grad und die Ein-Sekunden-Sperre. Kraft, Objektmasse, Reichweite und Arbeitshöhe bleiben separate Beobachtungen.
- International Organization for Standardization. ISO 11226:2000 Ergonomics - Evaluation of Static Working Postures.
- Deutsches Institut fur Normung. DIN EN 1005-4:2005 Safety of Machinery - Human Physical Performance - Evaluation of Working Postures and Movements in Relation to Machinery.