UNPKG

movemaster-robot

Version:

A module to control a Mitsubishi Movemaster EX RV-M1 robotic arm via USB

91 lines (87 loc) 3.04 kB
import { SerialPort } from 'serialport'; type Position = { x: number; y: number; z: number; p: number; r: number; }; declare enum ROBOT_ERRORS { HARDWARE_ERROR = 1, COMMAND_ERROR = 2, UNKNOWN_ERROR = 99 } declare class Robot { port: SerialPort | null; position: Position | null; toolIsOpen: boolean; toolLength: number; speed: number; portIsOpen: boolean; connect(comPortName: string): Promise<void>; isConnected(): boolean; private checkPortOpen; sendCommandNoAnswer(command: string): Promise<void>; sendCommandWithAnswer(command: string): Promise<string>; checkRobotErrorCode(): Promise<{ ok: true; } | { ok: false; error: ROBOT_ERRORS; }>; moveTo(position: Position, interpolatePoints?: number): Promise<void>; /** * Moves the robot arm to the given absolute x-y-z coordinates using current P and R values */ moveToXYZ(x: number, y: number, z: number, interpolatePoints?: number): Promise<void>; getActualPosition(forceUpdateByHardware?: boolean): Promise<Position>; setGripper(open: boolean): Promise<void>; setSpeed(speed: number): Promise<void>; setToolLength(length: number): Promise<void>; withCheck<T>(result: Promise<T>): Promise<T>; movePath(points: Position[]): Promise<void>; /** * Moves all axes to zero position */ moveToHomePosition(): Promise<void>; /** * Moves the robot to its mechanical origin position * Must be performed immediately after power on */ nest(): Promise<void>; /** * Resets the control box */ reset(): Promise<void>; /** * Defines the pressure of the robot arm gripper * @param startingGripForce Starting gripping force (0-15) * @param retainedGrippingForce Retained gripping force (0-15) * @param startGrippingForceRetentionTime Start gripping force retention time (0-99) */ setGripPressure(startingGripForce: number, retainedGrippingForce: number, startGrippingForceRetentionTime: number): Promise<void>; /** * Rotates the axes relative to the actual position */ rotateAxis(x: number, y: number, z: number, p: number, r: number): Promise<void>; /** * Moves the robot arm to the given relative position/axis values * @param interpolatePoints when != 0: use linear calculated path points */ moveDelta(x: number, y: number, z: number, interpolatePoints?: number): Promise<void>; moveDelta(x: number, y: number, z: number, p: number, r: number, interpolatePoints?: number): Promise<void>; /** * Utility function to clean up R value based on X and Y coordinates */ cleanUpRValue(x: number, y: number, rTarget: number): number; /** * Gets if the tool gripper is closed */ getGripperClosed(): boolean; disconnect(): void; getPosition(): Position | null; getToolLength(): number; getSpeed(): number; listPorts(): Promise<string[]>; } export { Robot };