SIPA_RoboDK_v2.4 Test Package
=============================

This package contains an experimental RoboDK test update for SIPA.

Included files
--------------
1. sipa_roboDK_audit_6axis_7axis_v4.py
   Main audit script for RoboDK CSV exports.
   Supports both:
   - native 7-axis trajectories
   - first-pass 6-axis profile

2. core/solver_fingerprint.py
   Updated solver-instability / continuity fingerprint logic.

3. core/root_cause.py
   Updated context-aware root-cause classifier.

Purpose
-------
This package is intended to help separate:
- true continuity / physical-consistency issues
from
- export-related jumps caused by sparse instruction-level CSVs.

What is new
-----------
- first 6-axis audit profile
- native 7-axis audit profile
- sampling-density warning
- improved solver fingerprint interpretation
- improved context-aware root-cause classification

Important note
--------------
This is an experimental test package, not yet a final release.
The 6-axis profile has been written carefully, but it still needs validation on real RoboDK 6-axis exports.

How to place the files
----------------------
Keep the following structure:

SIPA/
├── sipa_roboDK_audit_6axis_7axis_v4.py
└── core/
    ├── solver_fingerprint.py
    └── root_cause.py

Example usage
-------------
7-axis:
python sipa_roboDK_audit_6axis_7axis_v4.py --input your_7axis.csv --robot auto --unit auto

6-axis:
python sipa_roboDK_audit_6axis_7axis_v4.py --input your_6axis.csv --robot generic6 --unit auto

Sampling-density warning
------------------------
If the script detects unusually large TCP gaps together with sparse sampling,
it will warn that the jump may be influenced by instruction-level sparsity / export granularity,
and suggest re-exporting with a denser time-based joint stream.

Recommended dense export path in RoboDK
---------------------------------------
If possible, re-export the same program as a dense time-sampled joint stream
(for example using InstructionListJoints(..., flags=4, time_step=0.002)).

Goal
----
The goal of this package is to help test whether continuity / topology issues
also appear in 6-axis libraries, not only in native 7-axis trajectories.

If you generate a dense export and compare it with the original instruction-level CSV,
the result will be much easier to interpret.