Repository navigation
fix(tracking): prevent overshoot from stale camera frames - #1396
stefanleyb wants to merge 1 commit into
Conversation
Assisted-by: OpenAI Codex: GPT-5
|
Videos of Before/after, where the overreach of the initial movement is visible in the current version (including blocking the movement because Reachy goes to its limits), which makes it a bit weird and unnatural. https://github.com/user-attachments/assets/7d5fd8d3-0929-41fb-9b25-f8036fa52f24 |
|
This is a very good input, thank you. We're reworking how the face tracking works. Would you be ok to test our new implementation for feedback? |
|
@RemiFabre yes, I would definitely be happy to test the new version! I am working on a version where the body moves also, and I think I finally managed to have a clean "natural-looking" movement for the body. At some point, body movement could be a parameter when launching face tracking instead of an app built on top of head-only movement. Feel free to ping me here or on discord (stephaneleyb_29208). |
The layer records overlay 08d9e40ca but never said where that commit comes from. It is pollen-robotics/reachy_mini#1396, so a reader can follow the fix to its source — and knows the layer becomes unnecessary if the PR merges. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Issue
Closes #1331
Description
Face tracking was projecting a detected face from the head pose at processing time, although the camera frame was captured earlier. While the head was moving, this made the target escalate and caused repeated overshoot/correction.
This records each producer-side camera frame timestamp by IPC buffer offset, retains a short measured head-pose history, and interpolates the pose at capture time before projecting the face into world coordinates. A detector configured for timestamps drops a frame when its timestamp is unavailable instead of silently using a later pose. No public API or daemon route changes.
Testing
ruff checkandmypypass for the changed source files.Tested on
--sim)--mockup-sim)AI assistance
Assisted-by: OpenAI Codex: GPT-5