Recorded-pose investigation · 2 October 2026

The robot has two models.
They place the arm differently.

The IK solver and collision checker receive the same joint angles, but place the shortened arm differently. That can make the software’s idea of “what is close” disagree with what you see on the robot.

Inspection only · no runtime changes
Pose captured at 12:56:29 JST, before foldingAssembly: EE + U1–U4 + U7 + U8 + BASERecorded snapshot, not live telemetry
90°

Different arm orientation

The disagreement starts where the shortened arm attaches to U7.

2 rules

Limited EE–U1 coverage

Angle-based rules are used instead of a complete check between the two bodies.

10 mm

A separate numerical stall

The solver repeatedly times out at a capsule-clearance boundary.

01

Same angles. Different placement.

The left image is what collision avoidance checks. The right is the motion model used by IK. Their base origins are aligned; the arm has not been rotated to make the drawings agree.

Recorded motor anglesOne measured pose from the stalled run.
Two independent modelsIK computes movement. Collision geometry checks clearance.
They should describe one robotIn this partial assembly, the arm bearings differ by about 90°.
Two views of the same measured joint angles. The collision model places the EE away from U7, while the motion model places it over U7.
This is a model consistency problem, not a confirmed swap of unit names.

The logged U3 and U1 names trace to the correct scene objects and software motor slots. Correct names do not guarantee correct body placement.

Where the disagreement begins

First arm link bearing comparisonThe partial assembly has a 90 degree bearing difference between motion and collision models; the full assembly agrees. U7 attachmentMotion modelCollision model90°

U4 points a different way in the two models.

Bearing-only schematic at zero joint angles. Local origins aligned; dimensions and heights omitted.

Why shortening the chain matters

The full scene connects U7 → U6 → U5 → U4. Your robot connects U7 → U4.

The collision model removes U6/U5 and reconnects U4, but keeps a local mounting transform that originally belonged under U5’s yaw. The motion model constructs its shorter chain separately.

Those two constructions disagree. U7/U8 bearings agree within 0.005°, while the first arm link differs by 89.9985°.

What still needs checking

Which mounting orientation matches the physical robot. This audit proves the two software models disagree; it does not independently measure the hardware mounting.

02

What that means for the pairs you noticed

“The checker reports this pair” and “these are the closest physical parts” are different claims.

  • EE ↔ U7
    Placement is suspect

    The collision model reports about 57 cm between its closest EE/U7 envelopes. Both the commanded and measured poses give a similar value. The 90° attachment disagreement is a reason not to treat that number as the robot’s actual clearance.

  • EE ↔ U1
    Coverage is limited

    These adjacent bodies are excluded from the capsule checks. Two angular rules pass in the recorded pose, but they do not test every EE surface against every U1 surface.

  • U3 ↔ U1
    Confirmed software blocker

    The last accepted command sits at 10.000085 mm capsule clearance. The measured pose gives about 14.9 mm. These are model-envelope gaps, not measured metal-to-metal distances. Rotating the entire arm relative to U7 would preserve U3–U1’s relative separation.

Show the collision-model labels and their mapping
Collision model with colored labels for BASE, U8, U7, U4, U3, U2, U1 and EE. The U3-U1 capsule gap is marked in black.
Scene shapeParent jointMotor identityWire slot
Unit3_linkFA_joint10UNIT_3 / PITCH9
Unit1_linkFA_joint14UNIT_1 / PITCH13

Wire slots are zero-based and do not shift when units are absent. Incoming yaw ownership is preserved: U2 yaw moves U1’s body; U4 yaw moves U3’s body.

03

How EE–U1 is actually checked

The existing rules use joint angles as an approximation of clearance. They do not calculate the full distance between the EE and U1 bodies.

RULE 1 · U1 PITCH

Does U1 pitch exceed its yaw-dependent minimum?

The permitted minimum ranges from −20° to −12°, depending on U1 yaw.

Recorded pose: +1.2° ≥ −20° → passes.
RULE 2 · EE THROAT

Is the yaw condition satisfied, or is the pitch combination allowed?

This rule accepts either condition. When its yaw branch passes, this rule alone does not restrict EE pitch.

Recorded pose: yaw branch passes, even with EE pitch near −90°.

Explore the two rules

Starts at the recorded command, rounded to 0.1°. This is an explanation of the raw rules, not a robot control or a complete motion-safety verdict.

−180°+180°
−25°+40°
−90°+90°
Rule 1 · U1 pitch minimumPasses

Rule 2 · EE throatPasses

Passing these rules is not proof of body clearance. EE–U1’s complete shapes are not checked against each other. Motor limits and other collision checks still apply separately.

Technical detail: the actual angle test

Let φ be U1 yaw’s wrapped angular distance from ±180°. At the recorded pose, φ ≈ 28.3°.

Rule 1 requires U1 pitch + allowed_downward_pitch(φ) ≥ 0. The allowance is interpolated from φ = [0, 100, 140, 180]° and allowance = [20, 20, 12, 12]°.

Rule 2 requires max(93° − φ, EE pitch + max(allowance(φ) + U1 pitch, −90°)) ≥ 0. Its allowance uses φ = [0, 93, 143, 180]° and values = [77, 77, 0, 0]°.

The planner also uses mechanical headroom of up to 2°, and validates the commanded joint segment. The explorer intentionally shows the underlying angular rules; it does not simulate all planner checks.

04

Why forward input kept producing no movement

The log still gives a clear explanation of the software hold, even though the model’s physical accuracy now needs attention.

Observed at 12:56:15 JST

10 seconds of forward input, 200 rejected ticks

COMMAND was ON. The selected group was EE + U1–U4. Motors remained online and feedback was fresh.

10 seconds earlierLatest inspected tick

Every tick returned a deadline hold. No new movement command was requested during this window.

The solver keeps trying the difficult boundary

Its proposed movements approach the 10 mm capsule-clearance limit. Numerical rounding can put a candidate just below the limit, while certifying the entire movement can consume the 35 ms calculation budget.

The next tick starts from the same accepted pose and repeats the problem.

Two separate problems

Correcting the attachment geometry does not automatically solve this numerical stall. Keeping all distal bodies in the same rigid orientation relative to one another preserves U3–U1’s gap.

05

What is established, and what comes next

The inspection is complete enough to identify the model mismatch. A correction has not been deployed.

QuestionWhat the evidence establishes
Are U3 and U1 mislabeled?No swapped index was found in the scene-object → wire-slot → protocol identity mapping.
Do the models agree?No. With the same joint angles, the partial arm differs in bearing by about 90° at the U7 attachment. The full U1–U6 comparison agrees in bearing.
Which model matches hardware?Not independently qualified by this audit. The reported EE–U7 proximity is consistent with the motion-model drawing.
Is EE–U1 fully covered?No complete volume test. The two angular rules pass in the captured pose.
Was physical contact proved?No. These logs and calculations describe modeled envelopes and motor angles, not measured surface contact.

Proposed order of work

  1. Make both models describe the same installed robot.

    Confirm the physical mounting orientation, reconcile the partial-assembly transforms, and check agreement for every supported assembly.

  2. Define complete EE–U1 collision coverage.

    Distinguish the intended attachment region from other EE/U1 surfaces that can collide. Blanket exclusion of adjacent bodies leaves a gap in coverage.

  3. Fix reliable progress near the clearance boundary.

    Account for command rounding and reserve time for smaller, fully checked steps. Keep the collision threshold enforced.

No runtime changes made. This page and its exploratory controls are a local explanation of the captured logs. They do not connect to the robot.
Evidence and reproducibility

Deployed source: baf3caf6e01fa854cb6b782cf06c8b2d87e3a75b. Recording: user-run-035455, 2 October 2026.

The independent scene-hierarchy evaluator agrees with the collision model’s transforms to approximately 5 × 10⁻¹⁶. The bearing mismatch reproduces with U1-only through U1–U5 assemblies containing U7/U8, and with the recorded U1–U4 pose. This is not a disagreement created by the drawing.

Three focused existing checks passed: scene export identity, zero-pose scene transforms, and all 19 UT targets through a local gRPC boundary. They do not test motion-versus-collision frame agreement on shortened chains.

Read the detailed audit and artifact locations ↗