Surgical Robot & Navigation Electronics: Drives, Feedback, Safety
← Back to: Medical Electronics
Surgical robot motion becomes predictable and safe only when the servo electronics can measure position, current, and force reliably, and can stop, hold, and recover with gated, dual-channel interlocks backed by diagnosable logs and production tests.
H2-1 · What this subsystem does in a surgical robot
Joint / actuator electronics convert a motion command into verified torque and position, then enforce a safe state when any signal, timing, or interlock becomes untrusted—so motion is precise, controllable, stoppable, and provable.
A typical chain is: controller → servo drive → motor/gear/joint → encoder + torque/force sensing → closed loop. The electronics responsibility is to keep every step deterministic and measurable, so behavior does not depend on “best effort” software timing.
| Outcome | What must be stable | What to log as evidence |
|---|---|---|
| Precision | Position capture, torque estimate, and limit behavior must be repeatable (no hidden drift). | Encoder plausibility flags, calibration IDs, limit events (who/when/why), sensor snapshots. |
| Controllability | Deterministic timing from sample → compute → update; bounded jitter and latency. | Cycle time histogram, overrun counters, timestamp deltas, update-point markers. |
| Stoppability | A defined stop path that works even during faults: torque-off, controlled decel, brake-hold. | Stop trigger source, stop path taken, time-to-torque-off, brake feedback status. |
| Provability | Time alignment across control, sensing, and interlocks; reproducible fault diagnosis. | Timestamped interlock states, fault codes, sensor snapshots, software build ID. |
- Trip source: which interlock / monitor fired (STO input, limit switch, overcurrent, encoder plausibility, watchdog).
- Timing: control-cycle timestamp, sample→update latency, and whether an overrun occurred.
- Snapshot: position/velocity estimate + phase current/torque estimate + brake feedback state.
- Stop path: torque-off only vs controlled decel vs brake-hold (and the transition reason).
- Build + calibration IDs: firmware/build ID and sensor calibration version used at the time.
H2-2 · Motion control loops that drive electronics requirements
The position/speed/current loop stack turns “control theory” into concrete electronics requirements. The fastest loop (current/torque) is limited by sampling phase and PWM update timing. Upper loops (speed/position) are limited by timestamp quality and jitter. If timing is not deterministic, the robot can show micro-vibration, rough “feel”, or overshoot even when average accuracy seems acceptable.
| If this happens… | Typical symptom | Electronics control lever |
|---|---|---|
| Sample phase drifts vs PWM edges | Torque ripple / audible roughness / unstable current loop | Hardware-triggered sampling window; record phase marker |
| Encoder read jitter (no latch) | Micro-vibration; inconsistent feel; noisy speed estimate | Latch position at a defined instant; read later with timestamp |
| Compute latency varies / cycle overruns | Phase margin loss; overshoot; “random” instability | Worst-case compute budget + overrun detection + degrade/stop path |
| Limits saturate unexpectedly | Impact / jerk; discontinuous stop behavior | Predictable limit policy (slew/torque limit) + log trigger reason |
- Sampling window is defined and repeatable (ADC samples avoid switching edges).
- Encoder latch captures position at a defined instant; reading is decoupled from capture time.
- Compute budget has a worst-case bound; overruns increment counters and trigger a defined degrade/stop.
- PWM update point occurs at a predictable boundary; updates are tagged with timestamps/markers.
- Traceability: every stop or degrade records the control-cycle timestamp and the reason.
| Item | What to measure | Acceptance rule |
|---|---|---|
| Cycle time | Control loop period distribution (min/avg/max) | Max must stay below deadline; log any miss |
| Sample→update latency | Timestamp at sample and at PWM update | Bounded and repeatable; track drift vs temperature/load |
| Encoder capture jitter | Latch timestamp jitter across cycles | Must be within the allocated jitter budget |
| Limit/saturation events | Torque/velocity limit hit count + cause | Limit behavior predictable; no unlogged limit hits |
H2-3 · Motor stage: inverter, gate drive, braking and protections
The motor stage turns DC-bus energy into controlled three-phase current. A robust design treats the inverter, gate driver, dead-time, DC link, and braking/regen path as one system, then exposes protection hooks that can force a safe state without relying on software timing.
- 3× half-bridge: phase legs (U/V/W), freewheel paths, and switching node behavior.
- Gate driver: HO/LO outputs, UVLO, fault reporting, and an enable/disable input that can be overridden.
- Dead-time: configured as an engineering budget (prop delay + device tail), not a “magic constant”.
- DC link: bus capacitor + bus sense; regen events raise bus voltage unless energy is absorbed.
- Braking/regen path: brake chopper/resistor (or clamp strategy) to prevent bus over-voltage during decel.
| Protection | Monitor signal | Hardware action | Evidence to log |
|---|---|---|---|
| Overcurrent (OC) | Phase current / fast compare path | PWM inhibit / fast gate-off, then latch or controlled retry | Trip source + timestamp + current snapshot + stop path |
| Short-circuit (SC) | Desat / di/dt / very fast OC channel | Immediate gate-off, fault latch, disable re-enable until cleared | Fault code + bus voltage + gate disable state |
| Bus undervoltage (UV) | Bus sense / UV threshold | Block torque output, prevent unstable modulation | UV threshold hit + duration + commanded torque |
| Overtemperature (OT) | Driver / power stage temp sensors | Derate then stop if beyond limit (defined policy) | Temp snapshot + derate state + time-to-stop |
| Phase loss | Current symmetry / plausibility checks | Degrade/stop to avoid uncontrolled torque ripple | Which phase + imbalance metric + speed estimate |
| Brake mismatch | Brake command vs brake feedback | Torque-off + brake-hold verification + latch fault | Command/feedback states + timestamp + stop path |
- Fast fault path exists: OC/SC can disable gates via hardware even during compute overruns.
- Dead-time is intentional: configured to prevent shoot-through while limiting distortion and torque ripple.
- Regen is handled: bus rise during decel has an absorption path (chopper/clamp policy).
- Every trip is provable: timestamp, cause, and a minimal snapshot are captured consistently.
H2-4 · Current sensing you can trust (because torque control depends on it)
Torque control assumes current measurement is both accurate and time-aligned. “Trustworthy” sensing means: the sampling point is known, the error sources are bounded, and fault thresholds behave predictably under PWM noise, temperature drift, and dynamic load.
| Approach | Strength | Primary risk | Best fit in this page |
|---|---|---|---|
| Shunt (resistive) | High bandwidth, good linearity, cost-effective | Layout + switching noise + temperature drift | FOC phase current loop + fast OC compare |
| Hall / magnetic | Common-mode robustness, easier high-side sensing | Offset drift / bandwidth / linearity must be proven | Bus current, safety monitoring, reduced insertion loss |
| Flux-based (higher accuracy) | Better accuracy over temperature, lower offset drift | Size/cost/response trade-offs | When torque stability and drift bounds dominate |
- Phase current is the primary input for torque control (FOC). It demands careful sampling phase control relative to PWM edges.
- Bus current is valuable for energy/braking behavior and overall protection correlation, but it does not replace phase current for closed-loop torque control.
- Best practice: use phase sensing for control and add bus sensing to improve fault coverage and regen/brake observability.
- Define a sampling window: sample away from PWM switching edges and dead-time transitions.
- Hardware-trigger sampling: PWM timer triggers ADC conversion to eliminate software jitter.
- Tag timing: record sample timestamp/marker and sample→update latency for post-fault diagnosis.
- Fast fault path: OC compare can run in parallel to the control ADC path for deterministic protection.
- Consistency: phase currents match expected symmetry and plausibility rules; violations flag phase loss or sensing faults.
- Repeatability: offset/noise remain within bounds across temperature and torque demand (defined acceptance limits).
- Protection predictability: OC thresholds trip when expected and do not false-trigger due to PWM edge noise.
H2-5 · Encoder I/O: incremental, absolute, resolver—interfaces and pitfalls
Encoder I/O is an interface engineering problem: signals must arrive with clean thresholds, deterministic timing, and validity rules that prevent false motion from entering the control loop. This section focuses on signal conditioning, latching/timestamps, and the failure modes that create jitter, lost counts, or “phantom” position jumps.
| Encoder output | Conditioning blocks | Timing requirement | Validity / fault hooks |
|---|---|---|---|
| Incremental ABZ | Line receiver → threshold/Schmitt → edge filter → quadrature decoder (x1/x2/x4) | Deterministic edge capture; avoid software polling | Lost pulse detection, Z-index sanity, cable-open bias detect |
| sin/cos (analog) | Buffer → anti-alias → ADC → normalization (offset/gain) → interpolation | Sample aligned to the control cycle; avoid PWM edge noise windows | Amplitude/offset plausibility, saturation flags, cable-open amplitude collapse |
| Absolute (BiSS / SSI / EnDat) | Physical-layer receiver → frame capture → CRC/timeout → latch position output | Latch readout to a known instant; timestamp the frame used | CRC/timeout, replay/half-frame rejection, brownout gating (PG) |
| Resolver | Excitation source → sin/cos receive → demod → angle compute → latch/timestamp | Demod output latched into the control cycle (no phase wandering) | Excitation amplitude monitor, signal-loss detect, plausibility checks |
| Pitfall | Typical symptom | Mitigation (interface-side) | Verification target |
|---|---|---|---|
| Cable / common-mode noise | Edge chatter, false increments, unstable speed estimate | Differential receiver, hysteresis/Schmitt, input filtering, proper bias for open-line | Noise injection test: false count rate stays below limit |
| Edge jitter (ABZ) | Micro-vibration / rough feel from noisy velocity | Clean thresholds + latch capture; avoid software polling; bounded decode mode | Edge interval histogram stays within jitter budget |
| Lost pulses / bandwidth miss | Position drift after high-speed moves | Receiver bandwidth budget, overflow/counter checks, plausibility vs speed | High-speed motion: return-to-zero error within limit |
| Cable open / disconnect | Random toggling → phantom motion | Open-line detect (bias/monitor), amplitude collapse detect (sin/cos), CRC/timeout (absolute) | Unplug test: position freezes + valid flag drops deterministically |
| Supply droop → false motion | Sudden position jump near brownout events | PG/brownout gating, reject invalid frames, hold last-known-good value | Droop test: no accepted jump; logs show gating reason |
- Latch + timestamp: position is captured at a defined instant and tagged for diagnostics.
- Validity flag: CRC/timeout/brownout/open-line/saturation can invalidate position cleanly.
- Plausibility hooks: speed/position consistency checks prevent impossible motion from entering the loop.
- Fault evidence: logs contain reason codes plus minimal snapshots (PG state, CRC, amplitude, edge stats).
H2-6 · Force/torque AFE: turning micro-strain into stable control input
Force/torque control depends on micro-strain signals that are easily corrupted by drift, aliasing, and switching-related noise. A stable AFE is built around excitation integrity, low-drift amplification, true anti-alias filtering, and a clear “validity” contract so the control stack never consumes untrusted data.
- Strain bridge / torque ring → stable excitation (monitored) → INA → anti-alias filter → ADC.
- Then: digital filtering / notch → calibration + temperature compensation → validity + scaling → force/torque controller.
| Lever | Why it matters | Practical hook |
|---|---|---|
| Excitation integrity | Excitation drift becomes apparent force/torque drift | Exc sense monitor; brownout gating; ratiometric strategy |
| INA offset + drift | Micro-strain signals amplify offset and recovery artifacts | Zero-capture window; saturation flag; recovery hold-off |
| Anti-alias (analog) | Switching noise can fold into low-frequency “fake force” | Bandwidth limit before ADC; then digital filter for cleanup |
| Mains + switching rejection | 50/60 Hz and PWM-correlated ripple distort haptics | Notch/LPF choices; sampling alignment where possible |
| Validity contract | Control must never consume untrusted data | valid flag + reason codes (open, sat, drift, PG) |
- Zero stability: zero output remains within the allowed drift window after warm-up and across temperature changes.
- Noise floor: RMS noise within the control bandwidth stays below the torque ripple budget.
- Aliasing immunity: injected high-frequency noise does not reappear as low-frequency force/torque movement.
- Validity behavior: unplug/saturation/brownout events drop valid deterministically and trigger the defined degrade/stop action.
H2-7 · Redundant safety architecture at the electronics level
Redundant safety at the electronics level is not “two wires in parallel.” It is two independent channels that can each force a safe stop, plus cross-monitoring that detects mismatch, and a latch/reset gate that prevents uncontrolled restarts. This section focuses on the drive-permit chain, brake release + feedback, limit/E-stop redundancy, and the safety actions (STO, inhibit/disable, brake-engaged confirmation).
- Independence: Channel A and B do not share a single point whose failure can falsely allow motion.
- Cross-monitoring: each channel checks the other’s inputs and outputs (mismatch triggers safe stop + latch).
- Proven actions: safe stop is only “complete” when STO/inhibit is active and the brake feedback confirms engagement.
- Reset gating: recovery requires explicit conditions (inputs normal, feedback consistent, watchdog healthy).
| Safety element | Dual-channel form | Cross-check rule | Evidence to log |
|---|---|---|---|
| Drive permit (enable) | Permit_A & Permit_B from independent evaluation paths | Both must agree to run; mismatch → inhibit + latch | Permit_A/B, mismatch flag, reason code, timestamp |
| E-stop / limits | EStop_A/B, Limit_A/B; independent inputs and plausibility | Any asserted stop path forces safe stop; disagreement is a fault | Raw states, debounce outcome, stop cause, channel that tripped |
| STO / inhibit | STO_A/B (or Inhibit_A/B) with hard enforcement | Either channel can force STO; status must confirm activation | STO command & status, activation time, watchdog state |
| Brake release + feedback | BrakeCmd_A/B + Brake_FBK (engaged/released) | Command must match feedback within timeout; mismatch → latch | BrakeCmd_A/B, Brake_FBK, timeout flag, latch reason |
- Latch: any critical stop cause stores a latched fault (prevents oscillation between run/stop).
- Reset gate: reset is allowed only when inputs return normal, feedback is consistent, and the watchdog is healthy.
- Proof: every latch and reset decision is tied to a reason code and a timestamped snapshot.
H2-8 · Safe state machine for “stop, hold, recover”
A safe state machine turns fault detection into deterministic behavior: it defines when motion is limited (degraded), when torque must be removed (safe stop), how the system is held in a safe condition, and how recovery is gated so that restarting is controlled, observable, and reversible. This section focuses on states and transitions, not on algorithm details.
| State | Entry actions | Exit gate | Failure fallback |
|---|---|---|---|
| RUN | Normal permits; monitor watchdog, limits, encoder validity, current and temperature | Stay in RUN while all monitors are within bounds | Hard faults → SAFE_STOP; soft warnings → DEGRADED |
| DEGRADED | Limit torque/speed; tighten plausibility thresholds; raise monitoring rate | Condition clears → RUN (after brief observe window) | Timeout/worsen → SAFE_STOP |
| SAFE_STOP | Assert STO/inhibit; command brake engage; require brake feedback within timeout | STO active + Brake_FBK=engaged → HOLD | Brake timeout/mismatch → latched fault (stay stopped) |
| HOLD | Maintain STO/inhibit; maintain brake; monitor temperature, feedback consistency, input return | Reset gate passes → RECOVER | Any mismatch → remain in HOLD (or re-latch) |
| RECOVER | Clear latch (if allowed); verify inputs; release brake with feedback; enable torque; observe | Observe ok → RUN | Any mismatch → SAFE_STOP |
- Hard stop: overcurrent, overtemperature critical, watchdog timeout, E-stop, limit asserted, brake feedback mismatch.
- Degrade first: encoder anomaly that still allows bounded control, temperature warning margin, plausibility warnings.
- Escalation: degrade timeout or worsening conditions always escalate to safe stop.
H2-9 · Navigation I/O without turning into an imaging page
Navigation I/O on a surgical robot is an interface contract: sensor outputs are accepted only when they are time-aligned, timestamped, and labeled with validity and quality. This section keeps the scope at sync/trigger/timestamp and fusion-input formatting (IMU + marker tracker outputs), so the controller can fuse inputs deterministically under delay, jitter and dropouts.
| Field | Meaning | Why the controller needs it | Typical failure if missing |
|---|---|---|---|
| timestamp (t) | Time of the measurement on a common timebase | Aligns IMU and tracker inputs into the same control cycle | Fusion uses arrival time → drift and bias-like artifacts |
| frame_id / sync_id | Monotonic ID tied to trigger/sync events | Detects repeats/half-frames/out-of-order samples | Silent replays or mixed frames contaminate updates |
| age / latency | Estimated time from measurement to ingestion | Applies delay compensation or rejects stale samples | Late data becomes “wrong now” and creates jitter |
| valid | Binary accept/reject decision from the interface layer | Prevents untrusted data from entering the control stack | Dropouts become random holds with no explanation |
| quality | Confidence / tracking quality bucket | Allows degrade strategies under partial visibility | Controller treats low-confidence samples as equally good |
- Common timebase: all navigation inputs must map into one clock domain used by the controller.
- Hardware events: a trigger/sync pulse provides a stable anchor for frame_id and timestamping.
- Timestamp location: timestamp as close to the ingress boundary as possible to avoid queue-induced uncertainty.
- Determinism: the controller consumes (t, age, valid, quality), not “arrival order.”
| Condition | Interface decision | Controller-facing output | Evidence to log |
|---|---|---|---|
| age exceeds threshold | Reject stale sample | valid=0, reason=STALE | t, age, threshold, source_id |
| frame_id jump / repeat | Reject or mark out-of-order | valid=0, reason=ORDER | last_id, new_id, source_id |
| quality drops | Degrade update weight (bucket) | quality=LOW, valid=1 | quality bucket, duration |
| outlier detected | Mark as outlier; do not commit | valid=0, reason=OUTLIER | metric used, threshold, sample |
H2-10 · Power & isolation boundaries (only the interfaces)
Power and isolation boundaries are defined by interfaces: a noisy drive domain must not corrupt sensitive sensing and I/O through shared returns, capacitive dv/dt coupling, or magnetic di/dt coupling. This section explains drive/logic/sense partitioning, where isolation boundaries typically sit (signals and/or power), and how interface-level grounding strategy prevents encoder, strain and navigation inputs from inheriting switching artifacts.
| Domain | Typical contents | Primary risk | Interface goal |
|---|---|---|---|
| Drive domain | inverter switching, high di/dt loops, gate drive supply | dv/dt + di/dt noise injection | keep noise local; avoid shared returns |
| Logic domain | controller, timing, state machine, comms | ground bounce reaching digital thresholds | stable reference; controlled boundaries to sense |
| Sense domain | encoder I/O, strain AFE, navigation I/O ingress | micro-signal corruption and false motion | clean power/reference; reject injected noise |
| Coupling path | How it appears | Interface mitigation | Verification idea |
|---|---|---|---|
| shared return | reference shifts → drift, false edges, offset jumps | separate returns by domain; single controlled tie point | measure ground delta during switching events |
| capacitive dv/dt | PWM-correlated ripple on I/O and sensor lines | shield/reference strategy; filtering at ingress boundary | scope correlation: ripple aligns with switching edges |
| magnetic di/dt | induced spikes; intermittent count errors | minimize loop area; keep sensitive loops away from power loops | repeatable spike injection during current steps |
- Isolated signals: when digital I/O crosses from sense to logic while references must remain separated.
- Isolated power: when the sensing front-end needs a clean local supply that should not inherit drive-domain noise.
- Placement rule: isolate at the boundary where the interface is defined (not “somewhere later”).
H2-11 · Validation & production tests that catch the real failures
Validation and production tests must target the failures that actually create unsafe motion or untraceable behavior: encoder plausibility breaks, force/torque offsets that drift into control input, protection hooks that trip late, brake/interlock mismatches, and dual-channel disagreement that is not latched. This section defines a servo-chain BIST, a fault-injection set (open/short/jitter/delay/false pulses), and an evidence-first logging contract so every fail can be reproduced and diagnosed at end-of-line (EOL).
11.1 Servo-chain BIST: what to self-test, and how to prove it
A useful BIST is not a checkbox. Each check must define a stimulus, a measurable pass/fail criterion, a timeout, and the evidence fields recorded when it fails. The table below keeps scope strictly on robot-side servo electronics.
| BIST item | Stimulus | Pass criteria | Timeout | Evidence (log fields) |
|---|---|---|---|---|
| Encoder consistency | Read N samples; verify monotonic frame_id; apply small commanded motion (if safe) or simulated pulse | No out-of-order IDs; no illegal edge sequences; valid=1; plausibility holds | per sample window | source_id, frame_id jump, timestamp, valid, reason_code |
| Force/torque zero | Hold torque command at zero; sample bridge chain; optionally apply a known small reference load in fixture | Offset within allowed window; drift slope within limit; no saturation flags | zeroing window | offset_raw, temp, gain_range, valid, reason_code |
| Overcurrent hook | Inject OC-test input (or emulate sensor threshold crossing); confirm trip path behavior | Trip detected; STO/inhibit asserted; fault latched; state transitions are correct | trip window | OC_trip, trip_time, state_before/after, STO_cmd/status |
| Brake feedback match | Command brake engage/release; read Brake_FBK; repeat across A/B channels | Feedback matches command within timeout; mismatch latches; no “half released” condition | FBK window | BrakeCmd_A/B, Brake_FBK, mismatch flag, latch reason |
| Interlock open-wire | Toggle interlock; simulate open-wire/short via fixture; verify detection | Open-wire detected; permit drops; safe stop enforced; reset gate blocks restart | debounce window | input raw, debounce result, permit_A/B, reason_code |
| Dual-channel cross-check | Force A/B disagreement on one input or one output status (fixture-driven) | Mismatch detected; latch set; recovery requires gated reset conditions | mismatch window | channel, mismatch type, latch state, reset_gate result |
11.2 Fault injection: turn real failures into repeatable test vectors
Fault injection is most effective when it hits the interface boundary (connector/ingress), not a late software stage. The table below defines robot-side injection classes that reveal hidden hazards: open/short faults, stuck-at states, jitter, delay, and false pulses/frames. Each vector must drive a deterministic controller response and a specific log record.
| Target interface | Injection class | Injection idea (fixture) | Expected reaction | Evidence key |
|---|---|---|---|---|
| Encoder I/O | false pulse / order break | inject extra edge, swap phase, or jump frame_id | valid=0 → degrade or safe stop (policy-based) | frame_id jump + reason_code |
| Encoder I/O | open / short | open one differential line, short to GND/VDD | permit drops; safe stop; latch on mismatch | input raw + debounce + latch |
| Force/torque AFE | open / short / saturation | switch bridge legs open/short; force ADC full-scale | valid=0; move to degraded or safe stop | offset/sat flags + reason_code |
| Navigation I/O ingress | delay / jitter | insert fixed delay; randomize message timing; skew sync | age threshold rejects stale data (valid=0) | age + threshold + source_id |
| Interlock / brake FBK | stuck-at / mismatch | force FBK stuck high/low; break return wire | safe stop + latch; reset gate blocks restart | BrakeCmd vs FBK mismatch + latch |
| OC hook / watchdog | assert / timeout | force trip input; suppress heartbeat to WDT | immediate safe stop; predictable transition | trip_time / WDT cause + state transition |
11.3 Evidence-first logging: the minimum record that makes failures diagnosable
Production testing only scales when every failure is explainable without a lab setup. A minimal evidence record must bind the trigger, the channel, the state transition, and the key interface fields.
{
"event_time": "timestamp",
"reason_code": "ENUM",
"channel": "A|B",
"state_before": "RUN|DEGRADED|SAFE_STOP|HOLD|RECOVER",
"state_after": "RUN|DEGRADED|SAFE_STOP|HOLD|RECOVER",
"permit_A": "0|1",
"permit_B": "0|1",
"STO_cmd": "0|1",
"STO_status": "0|1",
"BrakeCmd_A": "0|1",
"BrakeCmd_B": "0|1",
"Brake_FBK": "engaged|released|unknown",
"encoder": { "valid": "0|1", "frame_id": "u32", "flags": "bitfield" },
"nav_io": { "valid": "0|1", "age_ms": "u16", "quality": "LOW|MID|HIGH" },
"oc_hook": { "trip": "0|1", "trip_time_us": "u32" }
}
Pass/fail at EOL should output a short diagnostic code that maps directly to one record type (for example: ENC_ORDER, ENC_OPEN, FT_SAT, BRAKE_MISMATCH, INTERLOCK_OPEN, OC_TRIP, WDT_TIMEOUT, AB_MISMATCH).
11.4 Production EOL: compress validation into a timed test matrix (with example parts)
- Step 1 (fast): connector + open-wire screening (interlock/encoder lines) → immediate fail codes.
- Step 2: encoder interface injection (false pulses / ordering / open-short) → valid/flags + state reaction.
- Step 3: force/torque chain (zero + saturation signature) → stable zero and reject abnormal input.
- Step 4: OC hook + watchdog path → confirm safe stop and latch behavior.
- Step 5: brake + interlock mismatch → verify commanded action matches feedback within timeout.
- Output: PASS/FAIL + reason_code + evidence record export.
H2-12 · FAQs × 12
These FAQs focus on robot servo electronics: motion-drive behavior, encoder integrity, force/torque signal trust, dual-channel safety actions, time-stamped inputs, and production tests that catch wiring and noise-coupling issues.