Joint move
{"cmd":"jmove", ...}
This command moves the robot from the current position to a new position with a certain speed, acceleration, and jerk. In this motion the robot joints move simultaneously and uniformly on a line in the joints space.
In
jmove
the robot motors travel the shortest possible distance to the destination point and therefore is the best option for fast moves.
Key, value pairs
Key | Value | Required | Description |
---|---|---|---|
"cmd" | "jmove" | Yes | Moves the robot to a new point on a line path in the joints space. |
"id" | Int (>0) | No | Id can be any positive integer. If id is not provided, status of the command will not be returned from the controller. |
"j0", "j1", …, "j7", or "x", "y", "z", "a", "b", "c", "d", "e" | Double | Yes | The position of the target point. Either you have to use joint representation of the target point by specifying joint values j0, j1, …., j7 or the Cartesian representation by specifying x, y, z, a, b, c, d, e. In joint representation, at least one of the joint values j0, … j7 should be present in the command. The joints that are missing will remain the same after motion is completed. Joints values are given in degrees. If no joint is present in the command, then the target point should be presented using Cartesian coordinates x, y, z, a, b, c, d, e. In Cartesian coordinate representation, the value of any missing coordinate will not change after the command is completed. Coordinates x, y, z, are in mm and the remaining coordinates are in degrees. |
"rel" | 0 / 1 | No | This value specifies if the move command is relative or absolute. If it is set to 0, the move command will be absolute and the joint or Cartesian coordinates in the command will represent the target joint or Cartesian coordinates. Otherwise, the move command will be relative, and the joint or Cartesian coordinates in the command will be added to the current joint or Cartesian coordinates to achieve the target joint or Cartesian coordinates. If this field is not present, the last given value will be used. |
"vel" | Double (>0) | No | The maximum velocity in the joints space in degree/second. If this field is not present, the last given value will be used. |
"accel" | Double (>0) | No | The maximum acceleration in the joints space in degree / second^2. If this field is not present, the last given value will be used. |
"jerk" | Double (>0) | No | The maximum jerk in the joints space in degree / second^3. If this field is not present, the last given value will be used. |
"cont" | 0 / 1 | No | If this value is 0, the robot will stop at the end of the motion and if it is 1 the motion is continuous motion. In continuous motion, the robot will not stop at the end of the motion, and the move will continue by joining to the next move command. If this field is not present, the last given value will be used. |
"corner" | Double (>0) | No | If continuous motion is active, the robot uses corner value as the corner radius of the junction between the current move command and the next move command. If this field is not present, the last given value will be used. |
Example
{"cmd":"jmove", "id":12, "j0":10, "j3":-20, "rel":1, "vel":234}
This command will move j0, 10 degrees and j3, -20 degrees relative to their current position. Other joints will not change. The maximum velocity will be 234 deg/sec and acceleration and jerk will be at the last given value. Note that if "rel" is set to 0, then the robot will move to the coordinates, j0 = 10 and j3 = -20.
Error codes
Stat | Value |
---|---|
-1 | General error |
-100 | Final position is out of range |
-102 | Midpoint is out of range for circle |
-103 | Midpoint is not provided for circle |
-104 | Velocity coefficient is out of range |
-105 | Acceleration coefficient is out of range |
-106 | Jerk coefficient is out of range |
-107 | Velocity should be positive |
-108 | Acceleration should be positive |
-109 | Jerk should be positive |
-110 | Point out of range on the path |
-111 | Circle cannot be realized |
-300 | Halt already in process |
-400 | Alarm activated |