Skip to content

Checks_CancelReachStatus

POST
/v1/accounts/{account}/datasets/{dataset}/reachStatus:cancel
curl --request POST \
--url https://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/reachStatus:cancel \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "name": "example" }'

Stops the dataset’s current press (REQUESTED or RUNNING), including its selected legacy group of per-upload runs, as CANCELLED. Independent presses on member uploads keep running. Takes not yet sent to the solver are dropped, op runs already on it are stopped (within a dispatcher tick or two), and takes already solved keep their results: a later RunCheck on checks/reach answers them from storage and queues the rest. A run whose takes are all answered ends SUCCEEDED instead. Answers the status as it reads after the cancel; with no run under way it changes nothing. Needs what RunCheck needs (a write on the dataset). NOT_FOUND outside the caller’s workspace.

account
required
string

The account id.

dataset
required
string

The dataset id.

Media type application/json

Request for Checks.CancelReachStatus.

object
name
required

Accounts/{account}/datasets/{dataset}/reachStatus

string
Example generated
{
"name": "example"
}

OK

Media type application/json

Where a dataset’s reach check stands (Checks.GetReachStatus): one per dataset, always there. Reading it writes nothing and asks for no run.

Served by qds-api.

object
name

Accounts/{account}/datasets/{dataset}/reachStatus

string
settings

The settings a RunCheck on checks/reach would use now, resolved: the target robot’s solver, and the dataset’s base and heading, else the robot model’s reach_base, else 0, 0, 0. A dataset has no solver of its own, and there is no default solver: solver is SOLVER_UNSPECIFIED whenever none was resolved (no target robot, the robot removed, without a model or in another workspace, a robot without a solver, or fleet could not be asked).

object
solver

The IK solver the dataset is solved with: always its target robot’s, and set only on a status read (a run’s resolved settings). A dataset does not pick one: a request that names a solver here (UpdateDataset, CreateDataset) is refused with INVALID_ARGUMENT (“a dataset uses its robot’s solver; change it on the robot’s Solver page”), and a solver stored on a dataset before that is ignored. A robot with no solver cannot be solved on.

string format: enum
Allowed values: SOLVER_UNSPECIFIED PYROKI DLS MINK
baseM

Where the takes’ start sits from the relaxed grippers’ midpoint, metres in the robot’s base frame (x forward, y left, z up): empty or exactly three numbers, each finite and within 5 m either way. Empty follows the target robot model’s reach_base, else 0, 0, 0. Stored to 0.1 mm and applied to both hand paths as one rigid translation from the robot’s home hand midpoint.

Array<number>
homeHeadingRad

Rotate both paired paths around world up before placing their first-row midpoint at the shared home reference. Radians; finite and within +/- pi. The robot base remains at world (0, 0, 0).

number format: double
poseSource

Where the source episode’s hand poses were recorded. Set by qds-api on reads; clients do not set it. TCP runs consume already-resolved TCP channels and never apply calibration again.

string format: enum
Allowed values: POSES_AT_UNSPECIFIED ROOT TCP
calibrationDigest

Digest of the TCP calibration already applied to the published upload, empty for root poses. Set by qds-api on reads.

string
currentKey

The reach key those settings make with the target robot’s current model config. Empty when the dataset has no target robot, the robot cannot be solved against (removed, no model, no solver, in another workspace), a merged dataset’s uploads hold their poses at different frames, or fleet could not be asked.

string
lastRun

The newest run of any state; unset until the first press.

object
operation

Accounts/{account}/operations/{operation}: the RunCheck that recorded it.

string
key

The key its results are stored under (ReachStatus.current_key).

string
settings

What it was keyed with, resolved: the solver is PYROKI, DLS or MINK and base_m has three numbers.

object
solver

The IK solver the dataset is solved with: always its target robot’s, and set only on a status read (a run’s resolved settings). A dataset does not pick one: a request that names a solver here (UpdateDataset, CreateDataset) is refused with INVALID_ARGUMENT (“a dataset uses its robot’s solver; change it on the robot’s Solver page”), and a solver stored on a dataset before that is ignored. A robot with no solver cannot be solved on.

string format: enum
Allowed values: SOLVER_UNSPECIFIED PYROKI DLS MINK
baseM

Where the takes’ start sits from the relaxed grippers’ midpoint, metres in the robot’s base frame (x forward, y left, z up): empty or exactly three numbers, each finite and within 5 m either way. Empty follows the target robot model’s reach_base, else 0, 0, 0. Stored to 0.1 mm and applied to both hand paths as one rigid translation from the robot’s home hand midpoint.

Array<number>
homeHeadingRad

Rotate both paired paths around world up before placing their first-row midpoint at the shared home reference. Radians; finite and within +/- pi. The robot base remains at world (0, 0, 0).

number format: double
poseSource

Where the source episode’s hand poses were recorded. Set by qds-api on reads; clients do not set it. TCP runs consume already-resolved TCP channels and never apply calibration again.

string format: enum
Allowed values: POSES_AT_UNSPECIFIED ROOT TCP
calibrationDigest

Digest of the TCP calibration already applied to the published upload, empty for root poses. Set by qds-api on reads.

string
robot

Accounts/{account}/robots/{robot}: the target robot it ran on.

string
requestTime

When Run solver was pressed.

string format: date-time
state

Where it stands.

string format: enum
Allowed values: STATE_UNSPECIFIED REQUESTED RUNNING SUCCEEDED FAILED CANCELLED
total

The takes it covers (handheld and egocentric episodes that carry hand poses): those of the dataset when it was pressed (or the selection), the ones answered from stored results included.

integer format: int32
done

Takes with a result.

integer format: int32
failed

Takes that could not be solved.

integer format: int32
note

Why a run that stands REQUESTED or RUNNING has not moved, or why it was given up, in a sentence a person reads (“waiting for the reach service”, “some takes are not ready yet”, “the robot model changed; run again”). Empty while it is moving.

string
lastFinishedRun

The newest run that ended (SUCCEEDED, FAILED or CANCELLED); unset until one has.

object
operation

Accounts/{account}/operations/{operation}: the RunCheck that recorded it.

string
key

The key its results are stored under (ReachStatus.current_key).

string
settings

What it was keyed with, resolved: the solver is PYROKI, DLS or MINK and base_m has three numbers.

object
solver

The IK solver the dataset is solved with: always its target robot’s, and set only on a status read (a run’s resolved settings). A dataset does not pick one: a request that names a solver here (UpdateDataset, CreateDataset) is refused with INVALID_ARGUMENT (“a dataset uses its robot’s solver; change it on the robot’s Solver page”), and a solver stored on a dataset before that is ignored. A robot with no solver cannot be solved on.

string format: enum
Allowed values: SOLVER_UNSPECIFIED PYROKI DLS MINK
baseM

Where the takes’ start sits from the relaxed grippers’ midpoint, metres in the robot’s base frame (x forward, y left, z up): empty or exactly three numbers, each finite and within 5 m either way. Empty follows the target robot model’s reach_base, else 0, 0, 0. Stored to 0.1 mm and applied to both hand paths as one rigid translation from the robot’s home hand midpoint.

Array<number>
homeHeadingRad

Rotate both paired paths around world up before placing their first-row midpoint at the shared home reference. Radians; finite and within +/- pi. The robot base remains at world (0, 0, 0).

number format: double
poseSource

Where the source episode’s hand poses were recorded. Set by qds-api on reads; clients do not set it. TCP runs consume already-resolved TCP channels and never apply calibration again.

string format: enum
Allowed values: POSES_AT_UNSPECIFIED ROOT TCP
calibrationDigest

Digest of the TCP calibration already applied to the published upload, empty for root poses. Set by qds-api on reads.

string
robot

Accounts/{account}/robots/{robot}: the target robot it ran on.

string
requestTime

When Run solver was pressed.

string format: date-time
state

Where it stands.

string format: enum
Allowed values: STATE_UNSPECIFIED REQUESTED RUNNING SUCCEEDED FAILED CANCELLED
total

The takes it covers (handheld and egocentric episodes that carry hand poses): those of the dataset when it was pressed (or the selection), the ones answered from stored results included.

integer format: int32
done

Takes with a result.

integer format: int32
failed

Takes that could not be solved.

integer format: int32
note

Why a run that stands REQUESTED or RUNNING has not moved, or why it was given up, in a sentence a person reads (“waiting for the reach service”, “some takes are not ready yet”, “the robot model changed; run again”). Empty while it is moving.

string
stale

Whether last_run was made under another key than current_key: the target robot, model, placement, pose frame or calibration changed since, and a RunCheck would compute something new. Nothing runs by itself.

boolean
targetRobot

Accounts/{account}/robots/{robot}; empty if no target robot is assigned.

string
Example
{
"settings": {
"solver": "SOLVER_UNSPECIFIED",
"poseSource": "POSES_AT_UNSPECIFIED"
},
"lastRun": {
"settings": {
"solver": "SOLVER_UNSPECIFIED",
"poseSource": "POSES_AT_UNSPECIFIED"
},
"state": "STATE_UNSPECIFIED"
},
"lastFinishedRun": {
"settings": {
"solver": "SOLVER_UNSPECIFIED",
"poseSource": "POSES_AT_UNSPECIFIED"
},
"state": "STATE_UNSPECIFIED"
}
}

Default error response

Media type application/json
One of:
API error

A refusal from the API itself.

object
code
required

The gRPC code name in upper case, e.g. NOT_FOUND.

string
message
required
string
retryable
required

Whether the same call may succeed if retried.

boolean
details
required

Empty, except when a dataset copy or move is refused: then one google.rpc.ErrorInfo with the refusal’s reason code, its domain and, in metadata, the datasets it names.

Array<object>
object
Example generated
{
"code": "example",
"message": "example",
"retryable": true,
"details": [
{}
]
}