{ "video1": "0", "video2": "1", "sensor_config1": "./config/ddjx01.json", "sensor_config2": "./config/ddjx01.json", "sensor_fps": 30.0, "motion_threshold": 0.0, "sensor_cpu": false, "port": "COM5", "slave_id": 1, "baudrate": 115200, "serial_timeout": 0.2, "open_pos": 0, "close_pos": 9000, "speed": 25, "accel": 80, "decel": 80, "release_open_speed": 50, "release_open_accel": 120, "release_open_decel": 120, "open_force": 15, "close_force": 15, "grip_start_force": 10, "hold_force": 15, "initial_force": 15, "force_min": 10, "force_max": 80, "control_hz": 30.0, "baseline_seconds": 1.0, "filter_alpha": 0.55, "shear_filter_alpha": 0.65, "trigger_normal_force": 0.1, "trigger_shear_force": 0.1, "trigger_clear_stable_seconds": 0.2, "open_wait_stable_samples": 12, "open_wait_stable_range_n": 0.03, "open_wait_stable_trend_n": 0.015, "grip_normal_force": 0.2, "grip_requires_both": true, "close_timeout_seconds": 5.0, "closing_command_interval": 0.2, "force_ramp_step": 1, "force_ramp_interval": 0.1, "grip_settle_seconds": 0.1, "adaptive_grip_enabled": true, "adaptive_shear_start_force": 0.1, "adaptive_shear_full_force": 0.6, "adaptive_force_min": 15, "adaptive_force_max": 45, "adaptive_force_step": 1, "adaptive_force_interval": 0.05, "release_arm_delay_seconds": 0.8, "release_normal_change": 0.2, "release_shear_change": 0.2, "rearm_seconds": 0.5, "recover_normal_force": 0.02, "recover_shear_force": 0.02, "recover_stable_seconds": 0.4, "open_position_recover_enabled": true, "open_position_tolerance": 100, "open_position_stable_seconds": 0.1, "open_position_check_interval": 0.1, "hold_fallback_pos": null, "trigger_force_update": false, "open_at_end": true, "dry_run": false, "normal_force_calibration": { "enabled": true, "method": "piecewise_linear", "extrapolate": true, "clamp_output_min": 0.0, "points": [ { "fnormal": 1000.0, "force_n": 0.0 }, { "fnormal": 10000.0, "force_n": 0.377 }, { "fnormal": 30000.0, "force_n": 1.377 }, { "fnormal": 62000.0, "force_n": 2.377 } ] }, "shear_force_calibration": { "enabled": true, "method": "piecewise_linear", "input": "components", "signed": true, "extrapolate": true, "clamp_output_min": 0.0, "points": [ { "raw": 1000.0, "force_n": 0.0 }, { "raw": 36000.0, "force_n": 1.19 }, { "raw": 68000.0, "force_n": 2.06 } ] } }