Robots_GetSolverTemplate
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/solverTemplates/example';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://junction-api.qualiastudios.dev/v1/accounts/example/solverTemplates/example \ --header 'X-API-Key: <X-API-Key>'Gets one solver template. NOT_FOUND for one of another workspace.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The solverTemplate id.
Responses
Section titled “ Responses ”OK
A named solver choice with its parameters, kept in a workspace to apply to rigs (see CreateSolverTemplate). Served by fleet.
object
Accounts/{account}/solverTemplates/{solver_template}
Unique per workspace, 1 to 64 characters.
PYROKI, DLS or MINK; SOLVER_UNSPECIFIED is INVALID_ARGUMENT. Never changed after creation.
Set exactly when the solver is MINK, and then whole (see RobotModel.MinkParameters).
object
Each arm’s frame task on its tool frame: its position cost, 0 or more. pos_cost and ori_cost are not both 0.
The frame task’s orientation cost, 0 or more.
The frame task’s Levenberg-Marquardt damping, 0 or more.
The posture task’s cost on the arm joints, 0 or more.
What the posture task pulls the arm joints toward.
The smoothness task’s cost, 0 or more; 0 turns it off.
The elbow-down task’s cost, 0 or more; 0 turns it off.
The singularity task’s threshold, 0 or more; 0 turns it off.
The singularity task’s damping, 0 or more; 0 turns it off.
The QP’s step, above 0.
The QP’s Levenberg-Marquardt damping, 0 or more.
The most QP steps a row takes, 1 to 1000.
A row’s steps stop once every arm’s position error is within this and its orientation error within ori_tol; a 0 tolerance is never met.
The orientation tolerance that goes with pos_tol; 0 is never met.
A row’s steps stop once a step moves the joints less than this; 0 never stops one.
A row’s steps stop once its error shrank by less than min_progress over this many steps, 0 to 1000; 0 never stops one.
The share of its error a row must lose over progress_window steps to keep stepping, 0 or more and below 1.
Q-research’s checked step (inference) instead of mink.solve_ik (teleop).
The arm joints’ speed limit in the QP, 0 or more; 0 is no limit.
The arm joints’ speed limit from one row of the take to the next, 0 or more; 0 is no limit.
Whether the collision limit, on the robot’s capsules, is on.
The capsule pairs the collision limit watches.
The collision limit’s minimum distance, 0 or more.
The collision limit’s detection distance, above collision_min_distance.
The collision limit’s gain, above 0 and at most 1.
The collision limit’s bound relaxation, 0 or more.
The shoulder link’s name (“{side}” stands for left or right, at most 256 characters); empty is the arm chain’s 2nd joint’s child link.
The elbow link’s name, like shoulder_link; empty is the 4th joint’s child link.
The wrist link’s name, like shoulder_link; empty is the 5th joint’s child link.
Set exactly when the solver is PYROKI, and then whole (see RobotModel.PyrokiParameters). DLS has no parameters.
object
The pose cost’s weight on each hand’s position, 0 to 1e6. pos_weight and ori_weight are not both 0.
The pose cost’s weight on each hand’s orientation, 0 to 1e6.
The weight pulling each row toward the last answer, 0 to 1e6. It pulls toward the same value as anchor_weight, so only their sum of squares matters and tuning either has the same effect.
The weight pulling each row toward the row before it, 0 to 1e6. Not toward home: see last_weight.
The weight on the arm’s manipulability, 0 to 1e6.
The weight keeping the joints inside their limits, 0 to 1e6.
The weight keeping the arms’ capsules apart, 0 to 1e6.
How near two capsules may come before the collision cost acts, in metres, 0 to 1.
The most solver iterations a row takes, 1 to 50.
When it was registered.
Who registered it, as events name an actor.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
Example
{ "solver": "SOLVER_UNSPECIFIED", "minkParameters": { "postureTarget": "POSTURE_TARGET_UNSPECIFIED", "collisionPairs": "COLLISION_PAIRS_UNSPECIFIED" }, "creator": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }}default
Section titled “default ”Default error response
A refusal from the API itself.
object
The gRPC code name in upper case, e.g. NOT_FOUND.
Whether the same call may succeed if retried.
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.
object
A refusal from the gateway before the call reaches the API, for example 401 bad or missing API key, 403 key lacks the scope or environment closed, 413 body too large.
object
What went wrong.
Example generated
{ "code": "example", "message": "example", "retryable": true, "details": [ {} ]}