Skip to content

Robots_GetSolverTemplate

GET
/v1/accounts/{account}/solverTemplates/{solverTemplate}
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.

account
required
string

The account id.

solverTemplate
required
string

The solverTemplate id.

OK

Media type application/json

A named solver choice with its parameters, kept in a workspace to apply to rigs (see CreateSolverTemplate). Served by fleet.

object
name

Accounts/{account}/solverTemplates/{solver_template}

string
displayName
required

Unique per workspace, 1 to 64 characters.

string
solver
required

PYROKI, DLS or MINK; SOLVER_UNSPECIFIED is INVALID_ARGUMENT. Never changed after creation.

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

Set exactly when the solver is MINK, and then whole (see RobotModel.MinkParameters).

object
posCost

Each arm’s frame task on its tool frame: its position cost, 0 or more. pos_cost and ori_cost are not both 0.

number format: double
oriCost

The frame task’s orientation cost, 0 or more.

number format: double
frameLmDamping

The frame task’s Levenberg-Marquardt damping, 0 or more.

number format: double
postureCost

The posture task’s cost on the arm joints, 0 or more.

number format: double
postureTarget

What the posture task pulls the arm joints toward.

string format: enum
Allowed values: POSTURE_TARGET_UNSPECIFIED ENGAGE ROW
smoothnessCost

The smoothness task’s cost, 0 or more; 0 turns it off.

number format: double
elbowDownCost

The elbow-down task’s cost, 0 or more; 0 turns it off.

number format: double
singularityThreshold

The singularity task’s threshold, 0 or more; 0 turns it off.

number format: double
singularityDamping

The singularity task’s damping, 0 or more; 0 turns it off.

number format: double
dt

The QP’s step, above 0.

number format: double
damping

The QP’s Levenberg-Marquardt damping, 0 or more.

number format: double
maxIters

The most QP steps a row takes, 1 to 1000.

integer format: int32
posTol

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.

number format: double
oriTol

The orientation tolerance that goes with pos_tol; 0 is never met.

number format: double
stallTol

A row’s steps stop once a step moves the joints less than this; 0 never stops one.

number format: double
progressWindow

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.

integer format: int32
minProgress

The share of its error a row must lose over progress_window steps to keep stepping, 0 or more and below 1.

number format: double
checkedSteps

Q-research’s checked step (inference) instead of mink.solve_ik (teleop).

boolean
maxJointVelocity

The arm joints’ speed limit in the QP, 0 or more; 0 is no limit.

number format: double
maxJointSpeedPerRow

The arm joints’ speed limit from one row of the take to the next, 0 or more; 0 is no limit.

number format: double
selfCollision

Whether the collision limit, on the robot’s capsules, is on.

boolean
collisionPairs

The capsule pairs the collision limit watches.

string format: enum
Allowed values: COLLISION_PAIRS_UNSPECIFIED ALL AVOIDED
collisionMinDistance

The collision limit’s minimum distance, 0 or more.

number format: double
collisionDetectionDistance

The collision limit’s detection distance, above collision_min_distance.

number format: double
collisionGain

The collision limit’s gain, above 0 and at most 1.

number format: double
collisionBoundRelaxation

The collision limit’s bound relaxation, 0 or more.

number format: double
shoulderLink

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.

string
elbowLink

The elbow link’s name, like shoulder_link; empty is the 4th joint’s child link.

string
wristLink

The wrist link’s name, like shoulder_link; empty is the 5th joint’s child link.

string
pyrokiParameters

Set exactly when the solver is PYROKI, and then whole (see RobotModel.PyrokiParameters). DLS has no parameters.

object
posWeight

The pose cost’s weight on each hand’s position, 0 to 1e6. pos_weight and ori_weight are not both 0.

number format: double
oriWeight

The pose cost’s weight on each hand’s orientation, 0 to 1e6.

number format: double
lastWeight

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.

number format: double
anchorWeight

The weight pulling each row toward the row before it, 0 to 1e6. Not toward home: see last_weight.

number format: double
manipulabilityWeight

The weight on the arm’s manipulability, 0 to 1e6.

number format: double
limitWeight

The weight keeping the joints inside their limits, 0 to 1e6.

number format: double
collisionWeight

The weight keeping the arms’ capsules apart, 0 to 1e6.

number format: double
collisionMargin

How near two capsules may come before the collision cost acts, in metres, 0 to 1.

number format: double
maxIterations

The most solver iterations a row takes, 1 to 50.

integer format: int32
createTime

When it was registered.

string format: date-time
creator

Who registered it, as events name an actor.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

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.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
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 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": [
{}
]
}