arazzo: 1.0.1
info:
title: Viam Arm Move and Verify
summary: Read an arm's pose, move it to a target, verify joints, then stop it.
description: >-
Drives a robotic arm component through a safe move-and-verify cycle. It reads
the current end-effector pose, commands a move to a target pose, reads the
resulting joint positions to verify the motion, and stops the arm. The
endpoint is the per-machine viam-server address, authenticated with a Viam
API key or location secret. Each request body is inlined so the motion can be
executed directly against the Viam Component APIs.
version: 1.0.0
sourceDescriptions:
- name: armApi
url: ../openapi/viam-arm-api-openapi.yml
type: openapi
workflows:
- workflowId: arm-move-and-verify
summary: Read arm pose, move to a target pose, verify joints, and stop.
description: >-
Reads the arm's current end-effector pose, moves it to the supplied target
pose, reads the resulting joint positions, and stops the arm.
inputs:
type: object
required:
- apiKey
- armName
- targetPose
properties:
apiKey:
type: string
description: Viam API key or location secret sent in the key header.
armName:
type: string
description: Configured name of the arm component.
targetPose:
type: object
description: Target end-effector pose object to move the arm to.
steps:
- stepId: readPose
description: Read the current pose of the arm's end effector.
operationId: armGetEndPosition
parameters:
- name: key
in: header
value: $inputs.apiKey
requestBody:
contentType: application/json
payload:
name: $inputs.armName
successCriteria:
- condition: $statusCode == 200
- stepId: moveArm
description: Move the arm's end effector to the supplied target pose.
operationId: armMoveToPosition
parameters:
- name: key
in: header
value: $inputs.apiKey
requestBody:
contentType: application/json
payload:
name: $inputs.armName
to: $inputs.targetPose
successCriteria:
- condition: $statusCode == 200
- stepId: verifyJoints
description: Read the resulting joint positions to verify the arm moved.
operationId: armGetJointPositions
parameters:
- name: key
in: header
value: $inputs.apiKey
requestBody:
contentType: application/json
payload:
name: $inputs.armName
successCriteria:
- condition: $statusCode == 200
- stepId: stopArm
description: Stop the arm to leave it in a safe idle state.
operationId: armStop
parameters:
- name: key
in: header
value: $inputs.apiKey
requestBody:
contentType: application/json
payload:
name: $inputs.armName
successCriteria:
- condition: $statusCode == 200
outputs:
armName: $inputs.armName
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.