I’m working with the ZED SDK (pyzed 4.2) and trying to play back an SVO file through Camera.enable_body_tracking()
, but I keep getting:
[WARNING] Positional Tracking GEN1 with IMU fusion enabled requires sensors data. IMU Fusion will be disabled, performance will be degraded
[WARNING] MOTION SENSORS REQUIRED in enum sl::ERROR_CODE __cdecl sl::Camera::enableBodyTracking(...)
enable_body_tracking returned: MOTION_SENSORS_REQUIRED
Error name: MOTION_SENSORS_REQUIRED
- Is there any way to force the body tracker to run purely on depth data without requiring IMU/area-memory?
- Are there any hidden flags or init parameters I’m missing that allow non‑IMU playback?
This recording is important and I would really appreciate if I could do something with it.
Here is a test code I used:
#!/usr/bin/env python3
import sys
import pyzed.sl as sldef main():
if len(sys.argv) < 2:
print(“Usage: python test_body_tracking.py <svo_file>”)
sys.exit(1)svo_file = sys.argv[1] zed = sl.Camera() init_params = sl.InitParameters() init_params.set_from_svo_file(svo_file) # Open SVO status = zed.open(init_params) if status != sl.ERROR_CODE.SUCCESS: print(f"❌ Failed to open SVO file: {status}") sys.exit(1) # Positional tracking with NO IMU fusion and NO area memory tracking_params = sl.PositionalTrackingParameters() tracking_params.enable_imu_fusion = False tracking_params.enable_area_memory = False zed.enable_positional_tracking(tracking_params) # Body tracking setup body_params = sl.BodyTrackingParameters() body_params.enable_tracking = True body_params.enable_body_fitting = True body_params.detection_model = sl.BODY_TRACKING_MODEL.HUMAN_BODY_ACCURATE # Attempt to start body tracking ret_bt = zed.enable_body_tracking(body_params) print(f"enable_body_tracking returned: {ret_bt}") if ret_bt != sl.ERROR_CODE.SUCCESS: print(f"Error name: {ret_bt.name}") # Clean up zed.close()
if name == “main”:
main()