Skip to content

Checks_ReadReachTrace

GET
/v1/accounts/{account}/checks/{check}/results/{result}:readReachTrace
curl --request GET \
--url https://dev-api.qualiastudios.dev/v1/accounts/example/checks/example/results/example:readReachTrace \
--header 'X-API-Key: <X-API-Key>'

Read one result’s bounded sampled solver joint trace. The key must still be current for the episode’s target robot and settings (or be the key ReadReachTracesRequest.expected_key also admits); a stale key is FAILED_PRECONDITION, and a trace that could not be read just now is UNAVAILABLE. max_frames is at most 512 (0 means 512). (— api-linter: core::0131::synonyms=disabled aip.dev/not-precedent: This bounded child-resource read also requires a stale-key precondition. —)

account
required
string

The account id.

check
required
string

The check id.

result
required
string

The result id.

expectedKey
string

The key from CheckResult.reach.trace. A stale trace is refused.

maxFrames
integer format: int32

At most 512 samples. 0 means the maximum.

dataset
string

Current dataset scope whose settings and pose/calibration identity must still produce expected_key; this prevents reading an old shared result after placement changes in an upload or any member of a merged dataset.

OK

Media type application/json

A bounded sampled solver posture trace for one episode.

object
key

The current reach key this trace belongs to.

string
robot

The target robot whose URDF joints appear in each frame.

string
configDigest

Robot model digest the solver used.

string
poseSource

Where the source hand poses were recorded.

string format: enum
Allowed values: POSES_AT_UNSPECIFIED ROOT TCP
calibrationDigest

Calibration digest already applied to TCP channels, empty at root.

string
placementDigest

Digest of the fixed-base placement settings.

string
frameCount

Number of frames in the original take.

integer format: int32
sampleEvery

Number of original input rows between retained solver frames.

integer format: int32
fps

Source take’s frames per second.

number format: double
jointNames

Actuated URDF joints in the exact order used by each joint_positions row.

Array<string>
homeMidpointM

Mean of both hand positions at solver home, in fixed-base metres.

Array<number>
frames

Bounded samples with original row indices and reach flags.

Array<object>

One frame of a solver posture trace.

object
index

Index in the original take, before the trace’s bounded stride.

integer format: int32
seconds

Seconds from the start of the take.

number format: double
jointPositions

One position per response joint_names, in URDF joint order.

Array<number>
reachable

Whether every targeted hand pose in this frame met the reach tolerance.

boolean
valid

False means the frame must not be replayed as a solved posture.

boolean
diagnostics

Local measured causes at this exact sampled row, never interpolated.

object
sides

Only hands that missed their target in this row.

Array<object>

Factual diagnostics for one missed hand at one sampled posture.

object
side

Configured hand side.

string format: enum
Allowed values: SIDE_UNSPECIFIED SIDE_LEFT SIDE_RIGHT
heldJoints

Locally limiting joints, with actual URDF attribution.

Array<object>

A finite active joint bound whose outward differential reduces target error. This is local constraint evidence, not proof that every IK branch fails.

object
joint

Actual URDF joint and the link it turns.

string
childLink

Actual URDF child link.

string
bound

“lower” or “upper”.

string
position

Measured position in radians (metres for prismatic).

number format: double
limit

The active URDF limit, in the same native joint unit.

number format: double
outwardErrorDecrease

Decrease of tolerance-normalized squared error per native joint unit in the direction beyond this bound. Positive, measured from actual FK.

number format: double
beyondChainReach

Present only when a finite fixed-anchor outer bound proves the excess.

object
distanceMeters

Target distance from the shoulder, metres.

number format: double
radiusMeters

Conservative chain radius, metres.

number format: double
excessMeters

Target distance minus radius minus the existing position tolerance.

number format: double
residualSolverMiss

Solver left a miss without either of the measured causes above.

boolean
armBounds

Conservative URDF bounds, carried once rather than repeated in every row.

Array<object>

A conservative outer sphere derived from the configured URDF chain/tool.

object
side

Configured arm side.

string format: enum
Allowed values: SIDE_UNSPECIFIED SIDE_LEFT SIDE_RIGHT
shoulderJoint

Actual first independent arm joint.

string
parentLink

Parent link containing the shoulder origin.

string
shoulderOriginMeters

Three metres in that parent link’s frame.

Array<number>
radiusMeters

Sum of downstream translation lengths and tool offset; finite prismatic excursion is included. Inside this sphere does not establish reachability.

number format: double
baseFixedAnchor

Only a base-fixed anchor can prove global beyond-chain reach.

boolean
gaps

Every missing-pose interval. Never interpolate a posture across one.

Array<object>

A gap in the original take’s pose coverage, independent of sampled postures.

object
startFrame

First original input row, zero based.

integer format: int32
frameCount

Consecutive missing-pose rows in this interval.

integer format: int32
startSeconds

Start on the original take’s clock, derived from its FPS.

number format: double
durationSeconds

Length on that clock; the end is exclusive.

number format: double
Example
{
"poseSource": "POSES_AT_UNSPECIFIED",
"frames": [
{
"diagnostics": {
"sides": [
{
"side": "SIDE_UNSPECIFIED"
}
]
}
}
],
"armBounds": [
{
"side": "SIDE_UNSPECIFIED"
}
]
}

Default error response

Media type application/json

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.

object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

integer format: int32
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

object
@type

The type of the serialized message.

string
key
additional properties
any
Example generated
{
"code": 1,
"message": "example",
"details": [
{
"@type": "example"
}
]
}