位置和姿态
从资源库加载路点位姿
pose = lebai:load_pose(name, dir)
- 参数
name
名称dir
工作空间名称。可选,默认根目录
- 返回
pose
相对于基座的位姿
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "load_pose", "params": [{"name": "", "dir": ""}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"kind": ""}, "id": 1 }
保存路点位姿到资源库中
lebai:save_pose(name, pose, dir)
- 参数
name
名称pose
相对于基座的位姿dir
工作空间名称。可选,默认根目录
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "save_pose", "params": [{"name": "", "dir": "", "data": {}}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {}, "id": 1 }
从资源库加载特征坐标系
frame = lebai:load_frame(name, dir)
- 参数
name
名称dir
工作空间名称。可选,默认根目录
- 返回
frame
相对于基座的偏移量
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "load_frame", "params": [{"name": "", "dir": ""}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"position": {}, "rotation": {}}, "id": 1 }
正解
cart = lebai:kinematics_forward(pose)
通过机器人正向运动学将关角度转成笛卡尔位置和姿态。
- 参数
pose
位姿
- 返回
cart
笛卡尔空间位姿
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "get_forward_kin", "params": [{"kind": ""}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"position": {}, "rotation": {}}, "id": 1 }
反解
joints = lebai:kinematics_inverse(pose, joints)
通过机器人逆向运动学反解,将笛卡尔位置和姿态转换成关节角度。计算结果与当前 TCP 设置和当前关节位置有关。
- 参数
pose
位姿joints
关节空间参考位置。可选,默认为当前反馈关节位置。当反解出现多解时,会取距离joints
最近的一个解。
- 返回
joints
关节空间位姿
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "get_inverse_kin", "params": [{"kind": ""}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"joint": [0]}, "id": 1 }
位姿特征坐标系转换
c = lebai:pose_trans(a, b)
以 a 为用户坐标系 ,b 是相对于坐标系 的位姿描述。最后返回相对于机器人世界坐标系的位姿描述
- 参数
a
位姿 。b
位姿 。
- 返回
c
位姿 。
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "get_pose_trans", "params": [{"from": {"kind": ""}, "from_to": {"kind": ""}}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"position": {}, "rotation": {}}, "id": 1 }
位姿的逆
c = lebai:pose_inverse(a)
用于求位姿 a 对应的齐次矩阵 , 的逆的位姿描述。可用于求解位姿方程。
齐次矩阵的逆等于其转置 。
- 参数
a
位姿 。
- 返回
c
的逆 。
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "get_pose_inverse", "params": [{"kind": ""}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"position": {}, "rotation": {}}, "id": 1 }
3.1.13
位姿的加pose = lebai:pose_add(base, delta, frame)
从base位置,往frame方向移动delta后的位姿
- 参数
base
。起始位姿。delta
。位姿偏移量。frame
。位姿偏移量方向,仅姿态部分有效。可空,默认基座方向
- 返回
pose
。移动后的位姿。
示例程序
base = {x=-0.4, y=0, z=0.1, rz=-1.57, ry=0, rx=1.57}
frame = {x=0, y=0, z=0, rz=0, ry=-0.78, rx=0} -- 绕y轴旋转45°,使z轴斜向上
delta = {x=0, y=0, z=0.1, rz=0, ry=0, rx=0} -- 沿z轴方向移动0.1m
pose = lebai:pose_add(base, delta, frame)
lebai:movej(base, 0.4, 0.1)
lebai:movel(pose, 0.4, 0.1)