Checks_ReadReachTrace
const url = 'https://dev-api.qualiastudios.dev/v1/accounts/example/checks/example/results/example:readReachTrace';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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. —)
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The check id.
The result id.
Query Parameters
Section titled “Query Parameters ”The key from CheckResult.reach.trace. A stale trace is refused.
At most 512 samples. 0 means the maximum.
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.
Responses
Section titled “ Responses ”OK
A bounded sampled solver posture trace for one episode.
object
The current reach key this trace belongs to.
The target robot whose URDF joints appear in each frame.
Robot model digest the solver used.
Where the source hand poses were recorded.
Calibration digest already applied to TCP channels, empty at root.
Digest of the fixed-base placement settings.
Number of frames in the original take.
Number of original input rows between retained solver frames.
Source take’s frames per second.
Actuated URDF joints in the exact order used by each joint_positions row.
Mean of both hand positions at solver home, in fixed-base metres.
Bounded samples with original row indices and reach flags.
One frame of a solver posture trace.
object
Index in the original take, before the trace’s bounded stride.
Seconds from the start of the take.
One position per response joint_names, in URDF joint order.
Whether every targeted hand pose in this frame met the reach tolerance.
False means the frame must not be replayed as a solved posture.
Local measured causes at this exact sampled row, never interpolated.
object
Only hands that missed their target in this row.
Factual diagnostics for one missed hand at one sampled posture.
object
Configured hand side.
Locally limiting joints, with actual URDF attribution.
A finite active joint bound whose outward differential reduces target error. This is local constraint evidence, not proof that every IK branch fails.
object
Actual URDF joint and the link it turns.
Actual URDF child link.
“lower” or “upper”.
Measured position in radians (metres for prismatic).
The active URDF limit, in the same native joint unit.
Decrease of tolerance-normalized squared error per native joint unit in the direction beyond this bound. Positive, measured from actual FK.
Present only when a finite fixed-anchor outer bound proves the excess.
object
Target distance from the shoulder, metres.
Conservative chain radius, metres.
Target distance minus radius minus the existing position tolerance.
Solver left a miss without either of the measured causes above.
Conservative URDF bounds, carried once rather than repeated in every row.
A conservative outer sphere derived from the configured URDF chain/tool.
object
Configured arm side.
Actual first independent arm joint.
Parent link containing the shoulder origin.
Three metres in that parent link’s frame.
Sum of downstream translation lengths and tool offset; finite prismatic excursion is included. Inside this sphere does not establish reachability.
Only a base-fixed anchor can prove global beyond-chain reach.
Every missing-pose interval. Never interpolate a posture across one.
A gap in the original take’s pose coverage, independent of sampled postures.
object
First original input row, zero based.
Consecutive missing-pose rows in this interval.
Start on the original take’s clock, derived from its FPS.
Length on that clock; the end is exclusive.
Example
{ "poseSource": "POSES_AT_UNSPECIFIED", "frames": [ { "diagnostics": { "sides": [ { "side": "SIDE_UNSPECIFIED" } ] } } ], "armBounds": [ { "side": "SIDE_UNSPECIFIED" } ]}default
Section titled “default ”Default error response
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
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
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.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}