Wear, Calibrate, and Run Mocap

Roles and Mounting

One session selects exactly one wear_side: right or left. Bind IMUs to chest, upper_arm, forearm, palm, and optional finger.

Upper-arm and forearm mounting does not require a perfect world-axis alignment; the body calibration estimates mounting alignment. It does require a rigid mount:

  • Fasten the IMU so it cannot rotate or slide during calibration and use.

  • Place upper-arm IMU around the middle of the upper arm, clear of shoulder and elbow joints. Place forearm IMU around the middle of the forearm, clear of elbow and wrist.

  • For repeatability, use the same visible orientation: board long edge toward the elbow on the upper arm and toward the wrist on the forearm.

  • Recalibrate after a material mounting-position or orientation change.

For palm and finger, mount local +X from wrist toward fingertips when possible. The straight-reference pose can then establish palm roll/pitch and the open finger reference consistently.

WirelessIMU body calibration reference sequence

This is a calibration reference diagram, not a substitute for a real wearing photo. The right/left sideways vectors are expressed in body_rh.

Calibration Sequence

First calibrate each individual IMU as a sensor, including magnetometer work when applicable. Then wear all IMUs and perform body calibration:

Step

Both sides

Right known direction

Left known direction

1

Arm naturally down

[0, 0, -1]

[0, 0, -1]

2

Arm forward and level

[1, 0, 0]

[1, 0, 0]

3

Arm sideways and level, palm down

[0, -1, 0]

[0, 1, 0]

4

Roll-axis motion

estimated from motion

estimated from motion

In the visualizer, press C to start/restart calibration and to begin each pose capture. Static captures last 3 seconds; roll capture lasts 5 seconds. The UI shows a countdown, sample count, quaternion angular standard deviation, and variance. These are initial quality warnings, not hard gates.

Palm, Finger, and Claw

After the arm steps, keep upper arm, forearm, palm, and finger nearly collinear, with straight wrist/fingers and palm down:

  • palm down: roll=0, pitch=0;

  • palm left: roll=+90 deg;

  • palm forward: pitch=-90 deg;

  • finger-palm pitch delta of 0 degrees: claw=1.

Optionally record a maximum-closed finger reference. Otherwise 120 degrees is the default closed delta. Calibration is saved separately per side as imu_body_calibration_right.json or imu_body_calibration_left.json; it contains frame=body_rh, role IDs, and all calibration references.

Live and Replay

python3 SOFTWARE/人体动捕/mocap_viz.py --wear-side right
python3 SOFTWARE/人体动捕/mocap_viz.py --replay examples/demo_replay.jsonl

Replay uses the calibration snapshot embedded in JSONL by default. It exercises the same solver as live mode and is the required first diagnostic before external robot integration. See JSONL Recording and Replay.