tune(walking): default Start Wmean 4→15, Start Hold 1s→6s (사용자 실측 기준)
증상: 앉아있다 일어서기만 해도 walking false-trigger.
원인: 사용자 실측 데이터 분석 — stand-up + 자세 조정 motion 이 wmean
5-10 dps 로 약 3-5초 지속. 이전 default (Start Wmean=4, Hold=1s) 는
이 motion 을 walking 으로 잡음.
수정:
Start Wmean: 4 → 15 (stand-up 의 typical wmean 보다 위)
Start Hold: 1초 → 6초 (stand-up settling 보다 김)
근거:
- 사용자 측정 stand-up motion: wmean 5-10 (저강도) ~ 100 (spike)
- 진짜 보행 (body-mounted, 예상): wmean 50+ 지속
- Hold 6초 — 정상 보행은 무한 지속이라 자동 만족, stand-up 은 5초 미만
비고:
- 임계는 여전히 dev slider 로 조정 가능 (이전 commit 18a4cee)
- 사용자별 / 디바이스별 튜닝 가능
- 향후 periodicity check (FFT) 추가 시 임계 다시 완화 가능
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -42,12 +42,14 @@ object GreenZoneConstants {
|
||||
// ── Walking detector 임계값 (flowchart 4-2 / 5-2) ─────────────────
|
||||
/** Walking 인정 최소 pitch (deg). |pitch| > 이 값 이라야 walking 후보. */
|
||||
@Volatile var walkingMinPitchDeg: Float = 45f
|
||||
/** Walking 시작 — gyro 이동평균 (wmean) 임계 (dps). */
|
||||
@Volatile var walkingStartWmean: Float = 4f
|
||||
/** Walking 시작 — gyro 이동평균 (wmean) 임계 (dps). 실측: stand-up + 자세조정
|
||||
* motion 이 5~10 dps 지속 → 임계 15 로 false-trigger 차단. 진짜 보행은 50+ dps. */
|
||||
@Volatile var walkingStartWmean: Float = 15f
|
||||
/** Walking 시작 — gyro 이동표준편차 (wstd) 임계 (dps). */
|
||||
@Volatile var walkingStartWstd: Float = 2f
|
||||
/** Walking 시작 — 두 임계 모두 만족한 채 지속해야 하는 최소 시간 (ms). */
|
||||
@Volatile var walkingStartHoldMs: Long = 1000L
|
||||
/** Walking 시작 — 두 임계 모두 만족한 채 지속해야 하는 최소 시간 (ms). 실측: stand-up
|
||||
* motion 이 3-5초 → 6초 로 차단. 실제 보행은 무한 지속이라 6초 이상 자동 만족. */
|
||||
@Volatile var walkingStartHoldMs: Long = 6000L
|
||||
/** Walking 유지 — gyro wmean 임계 (dps). 시작보다 낮음. */
|
||||
@Volatile var walkingKeepWmean: Float = 2f
|
||||
/** Walking 유지 — wmean 임계 미달 후 종료까지 grace 시간 (ms). 미만 지속이 이 값 넘으면 walking 종료. */
|
||||
|
||||
Reference in New Issue
Block a user