Interface Arm

Represents a physical robot arm that exists in three-dimensional space.

interface Arm {
    getEndPosition: (
        extra?: Struct,
    ) => Promise<PlainMessage<commonApi.Pose>>;
    getGeometries: (extra?: Struct) => Promise<commonApi.Geometry[]>;
    getJointPositions: (
        extra?: Struct,
    ) => Promise<PlainMessage<JointPositions>>;
    isMoving: () => Promise<boolean>;
    moveToJointPositions: (
        jointPositionsList: number[],
        extra?: Struct,
    ) => Promise<void>;
    moveToPosition: (pose: PlainMessage, extra?: Struct) => Promise<void>;
    name: string;
    stop: (extra?: Struct) => Promise<void>;
    doCommand(command: Struct): Promise<JsonValue>;
}

Hierarchy (View Summary, Expand)

Implemented by

Properties

getEndPosition: (extra?: Struct) => Promise<PlainMessage<commonApi.Pose>>

Get the position of the end of the arm expressed as a pose

const arm = new VIAM.ArmClient(machine, 'my_arm');
const pose = await arm.getEndPosition();

For more information, see Arm API.

getGeometries: (extra?: Struct) => Promise<commonApi.Geometry[]>

Get the geometries of the component in their current configuration

const arm = new VIAM.ArmClient(machine, 'my_arm');
const geometries = await arm.getGeometries();
console.log(geometries);

For more information, see Arm API.

getJointPositions: (extra?: Struct) => Promise<PlainMessage<JointPositions>>

Gets the current position of each joint.

const arm = new VIAM.ArmClient(machine, 'my_arm');
const jointPositions = await arm.getJointPositions();

For more information, see Arm API.

isMoving: () => Promise<boolean>

Get if the arm is currently moving.

const arm = new VIAM.ArmClient(machine, 'my_arm');
const isMoving = await arm.isMoving();
console.log(isMoving);

For more information, see Arm API.

moveToJointPositions: (
    jointPositionsList: number[],
    extra?: Struct,
) => Promise<void>

Move each joint of the arm based on the angles on the joint positions.

Type declaration

    • (jointPositionsList: number[], extra?: Struct): Promise<void>
    • Parameters

      • jointPositionsList: number[]

        List of angles (0-360) to move each joint to.

      • Optionalextra: Struct

      Returns Promise<void>

const arm = new VIAM.ArmClient(machine, 'my_arm');

// Move an arm with 6 joints (6 DoF)
await arm.moveToJointPositions([90, 0, 0, 0, 15, 0]);

For more information, see Arm API.

moveToPosition: (pose: PlainMessage, extra?: Struct) => Promise<void>

Move the end of the arm to the pose.

Type declaration

const arm = new VIAM.ArmClient(machine, 'my_arm');

// Create a pose for the arm to move to
const pose: Pose = {
x: -500,
y: -200,
z: 62,
oX: 1,
oY: 0,
oZ: 1,
theta: 90,
};

// Move the arm to the pose
await arm.moveToPosition(pose);

For more information, see Arm API.

name: string

The name of the resource.

stop: (extra?: Struct) => Promise<void>

Stop the motion of the arm.

const arm = new VIAM.ArmClient(machine, 'my_arm');
await arm.stop();

For more information, see Arm API.

Methods

  • Send/Receive arbitrary commands to the resource.

    Parameters

    • command: Struct

      The command to execute.

    Returns Promise<JsonValue>

    const result = await resource.doCommand({
    name: 'myCommand',
    args: { key: 'value' },
    });
MMNEPVFCICPMFPCPTTAAATR