Skip to content

More loose LM-rescued points at singular general_6r poses after #675's wider split #676

Description

@siddhss5

#675 (fixing #673) makes the shift split keep one vector per real, simple eigenvalue and always read both shifts when k ≥ 2. That recovered 5 regular branches. As a side effect, at singular poses (σ_J < 1e-4) there are now more loose lm-rescued points across #663's ~31k-pose sample: Python 826 → 1420, native 778 → 1363. Each closes FK within the 1e-5 contract but sits about 1e-3 to 1e-2 from a true branch: clutter in the solution set, not wrong answers. One piper wrist-lock point moved 0.05 along its continuum and now closes only to 4e-6.

Fix direction: drop a rescued candidate when it lies on, or within its own error band of, a continuum or branch that is already returned (the #667 slide plus #604 same-root dedup), or when an exactly certified branch dominates it. Measure on the same sample; no regular-root loss and no uniform-pose slowdown.

Activity

  1. siddhss5 commented on Oct 3, 2026

    @siddhss5
    CollaboratorAuthor

    The examples audit suggests this isn't confined to singular poses. Prebuilt PiPER (general_6r) returns solutions with FK residual 1e-6 to 1e-5 on about 25 of 2,000 interior uniform poses, with up to 18 solutions for a 6R. That is within the documented tolerance, but worth including in the measurement for this issue. Repro script: tpiper.py in the audit's scratch directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions