xarm_move_arc_line
1. Introduction
Linear motion.
Button: [Blockly] - [linear motion] - Move.
2. Request & Response
{
"cmd": "xarm_move_arc_line",
"data": {
"X": "200",
"Y": "0",
"Z": "240",
"A": "180",
"M": "0",
"B": "0",
"R": 0,
"isControl": true,
"isClickMove": false,
"wait":false
},
"id": "1"
}
Name | Type | Required fields | Description |
---|---|---|---|
X | String | Yes | X |
Y | String | Yes | Y |
Z | String | Yes | Z |
A | String | Yes | roll |
M | String | Yes | pitch |
B | String | Yes | yaw |
R | String | No | radius |
relative | String | Yes | whether relative motion or not |
wait | bool | No | wait or not |
isControl | bool | Yes | whether start the program by Blockly or not |
isClickMove | bool | Yes | whether click 'Move' in Blockly or not |
module | String | No | whether Blockly project is running or not. |
code=0->success;
code!=0->Failed, refer to xarm_api_code;
3. Code Example
background
code, limit = 0, False
if code == 0 and limit is False:
if is_control:
if is_click_move:
if GLOBAL.XArm.xarm.warn_code != 0:
return response(client, id, GLOBAL.XArm.xarm.error_code)
elif GLOBAL.XArm.xarm.error_code != 0:
# GLOBAL.XArm.xarm.set_mode(4)
return response(client, id, GLOBAL.XArm.xarm.error_code)
yield self.xarm_set_ready(None, id, data)
if GLOBAL.XArm.xarm.error_code != 0:
code = -1
else:
GLOBAL.XArm.xarm_printed = True
ret = yield self._wait_until_cmdnum_lt_max()
if ret is not None:
return response(client, id, ret)
self.last_move_client = client
code = GLOBAL.XArm.xarm.set_position(*pose, radius=radius, speed=mvvelo, mvacc=mvacc, mvtime=mvtime,is_radian=False, relative=relative)
front_end
self.moveArcLine = (data, isWait, callback, isControl, modName, isClickMove) => {
if (modName === 'blockly' && isControl === false && !window.Blockly.Running) {
return;
}
const params = window.GlobalConstant.INIT_CMD_PARAMS_COMMON_DATA();
Object.assign(params.data, {
X: Number(data.position.x || 0),
Y: Number(data.position.y || 0),
Z: Number(data.position.z || 0),
// A: self.model.robot.state.info.xarm_axis === 5 ? 180 : Number(data.orientation.roll || 0),
// B: self.model.robot.state.info.xarm_axis === 5 ? 0 : Number(data.orientation.pitch || 0),
A: Number(data.orientation.roll || 0),
B: Number(data.orientation.pitch || 0),
C: Number(data.orientation.yaw || 0),
// R: Number(data.radius || 0),
R: Number(data.orientation.r || 0),
F: Number(self.model.robot.state.local.speed || 0),
Q: Number(self.model.robot.state.local.acceleration || 0),
wait: isWait,
isControl: isControl === true ? true : false,
module: modName,
isClickMove: isClickMove,
mode: self.model.robot.state.info.xarm_mode,
});
self.sendCmd(window.GlobalConstant.MOVE_ARC_LINE, params, (dict) => {
self.codeHandle(dict, 'move (arc) line', isControl !== true);
if (callback) {
callback(dict);
}
});
};
Last updated