Back to 5.2.5 Arm Actuation

5.2.5.5 Testing & Evaluation

V-Model Traceability: This page validates RM-7 (Deliver jab, hook, and uppercut strike types) and RM-8 (Execute 90° arm sweep in ≤ 0.25 s) through acceptance criteria ARM-AC-1 to ARM-AC-5, covering strike speed, sparring endurance, regenerative braking safety, multi-strike chain execution, and peak motor current.

Performance Criteria

The following measurable targets were established from the torque calculations (Appendix 1), padwork research, and the instrumentation available within the project scope:

ID Criterion Target How Measured
ARM-AC-1 Strike speed (90° rotation) ≤ 0.25 s Firmware timestamp delta (N=43 speed tests)
ARM-AC-2 Sparring endurance 5 min continuous, <60°C motors Continuous sparring session with Damiao temperature telemetry
ARM-AC-3 Regenerative braking safety No PSU trip over 5 emergency stops Visual confirmation and voltmeter monitoring
ARM-AC-4 Multi-strike chain 3-strike chain ≤ 5 s total Video timestamp and GUI console log
ARM-AC-5 Peak current within safety limit < 2.0 A per motor across all strikes CAN current telemetry (N=43 speed tests)

Test Results

Results from the speed test validation (N=43 tests, all 6 standard strikes) are presented below. ARM-AC-2, ARM-AC-3, and ARM-AC-4 require dedicated test sessions and are documented as pending.

ID Criterion Target Measured Met?
ARM-AC-1 Strike speed (90°) ≤ 0.25 s 0.64 s (best, 30 rad/s Jab) Partial
↓ See Speed Test Benchmark below for full analysis of the PID overhead bottleneck.
ARM-AC-2 Sparring endurance 5 min, <60°C N/A Pending
ARM-AC-3 Regen braking safety No PSU trip / 5 E-stops N/A Pending
ARM-AC-4 Multi-strike chain 3-strike ≤ 5 s N/A Pending
ARM-AC-5 Peak current safety < 2.0 A per motor 0.69 A max (Right Hook M4) Pass

Speed Test Benchmark (N = 43 Tests)

A controlled strike-speed benchmark was conducted using the Speed Test tab across all 6 standard strikes at set speeds ranging from 10 to 30 rad/s, with 3 repetitions each. All 43 tests passed with zero safety trips (no current-limit events, no position timeouts).

RPM Convention: All RPM values below are motor shaft RPM (raw Damiao encoder). The 3:1 helical gear reduction means arm joint RPM = motor RPM ÷ 3. Similarly, pk_rad_s and avg_rad_s are motor-shaft angular velocity.

Per-Strike Summary (at 25 rad/s, 3 reps each)

Strike Arm Avg WU→AP (s) Avg Total (s) Pk Motor RPM Pk Current (A) Avg Sys Power (W)
Jab Left 0.66 1.24 239 M1: 0.63, M2: 0.58 ~10.5
Left Hook Left 0.67 1.25 300 M1: 0.57, M2: 0.59 ~9.7
Left Uppercut Left 0.55 1.09 218 M1: 0.49, M2: 0.57 ~10.1
Cross Right 0.61 1.18 285 M3: 0.61, M4: 0.63 ~9.4
Right Hook Right 0.62 1.20 207 M3: 0.51, M4: 0.69 ~8.6
Right Uppercut Right 0.57 1.07 238 M3: 0.52, M4: 0.62 ~8.9

Speed vs Execution Time (Left Jab)

Set Speed (rad/s) Avg WU→AP (s) Avg Pk Motor RPM Arm Joint RPM
10 0.85 113 ~38
15 0.73 185 ~62
20 0.68 223 ~74
25 0.66 226 ~75
30 0.64 254 ~85

Diminishing returns above 20 rad/s: execution time plateaus near 0.64 s as the PID acceleration/deceleration ramp time dominates.

PID Overhead Analysis: Why the Original 0.25 s Target Was Not Achievable

Triangular Velocity Profile

A 90° arm sweep (~1.57 rad joint / ~4.71 rad motor) at constant velocity theoretically requires only 0.19 s at 25 rad/s. However, the Damiao DM-J4310-2EC internal PID controller applies acceleration and deceleration ramps that add approximately 0.4–0.5 s of constant overhead regardless of the set speed:

Set Speed Theoretical (const vel) Measured WU→AP Overhead
10 rad/s 0.52 s 0.85 s +63%
20 rad/s 0.26 s 0.68 s +162%
30 rad/s 0.17 s 0.64 s +276%

The velocity profile is a triangle (not trapezoid): the motor never reaches steady-state velocity before deceleration begins. This is the primary bottleneck for strike speed. Tuning the Damiao PID acceleration parameters or implementing feed-forward control could reduce this overhead.

Key Findings

Power Budget Validation

The 43-test speed benchmark measured peak arm motor power at approximately 33 W, substantially below the theoretical maximum of 384 W (16 A stall current at 24 V). Three factors account for the order-of-magnitude discrepancy:

  1. Short travel distance (dominant): A punch is ~90° of arm sweep = ~4.71 rad at the motor. At 25 rad/s, the theoretical constant-velocity transit is only 0.19 s. The motor does not have sufficient distance to sustain peak velocity.
  2. PID acceleration/deceleration overhead: The approximately constant ~0.4–0.5 s ramp overhead means the velocity profile is triangular: the motor never reaches steady-state before deceleration begins.
  3. Current ∝ torque, not speed: The 16 A figure is the stall current (locked rotor, zero speed, maximum torque). During free punches actuating lightweight pool noodle padding (~200 g per arm), the torque demand never approaches stall values. Typical per-motor current is 0.5–1.0 A during acceleration, near-zero during constant velocity, and negative (regenerative) during deceleration.

Dual-Purpose Power Figures for Thesis

Value Purpose Cite As
33 W peak / 10 W avg PSU sizing, thermal design, operating cost, efficiency analysis “Measured operating power under sparring conditions (N=43 tests)”
384 W (theoretical stall) Wire gauge selection, fuse rating, current-limit design, safety analysis “Theoretical maximum under locked-rotor fault condition”
Raw Data: Full 43-row dataset with 29 columns (including per-motor power calculations at Vbus = 24 V) is available in ros2_ws/unified_v4/strike_speed_results.csv.

Video Evidence

Strike library chain execution: three sequential strikes (Jab, Left Hook, Uppercut) demonstrating vector alignment skip logic and proportional snap-back recovery. Recorded during N=43 speed test session.

Limitations