预置算法
kinematics_forward(joints)
正解
正解 将关角度转成笛卡尔位置和姿态
请求参数
参数名 | 类型 | 描述 |
---|---|---|
joints |
table | 关节角度:{j1=0, j2=1.57, j3=-1.57, j4=0, j5=3.14, j6=3.14} |
返回值
参数 | 类型 | 说明 |
---|---|---|
笛卡尔位置和姿态 |
table | {x, y, z, Rz, Ry, Rx, ok=true} 如 {-0.36435443592898153, 0.25548551781114875, 0.1477188562117689, 0.27649950521632694, 0.913569441486944, -2.9826903521006582, ok=true} ok 解算是否成功 true :成功 false :失败 |
示例
-- Lua示例
p = kinematics_forward({j1=0, j2=1.57, j3=-1.57, j4=0, j5=3.14, j6=3.14})
for k,v in ipairs(p) do
print(k,v)
end
print(p["ok"])
JSON 请求 | 暂不支持 |
JSON 响应 | 暂不支持 |
kinematics_inverse(vector, joints)
反解
机器人运动学反解,将笛卡尔位置和姿态转换成关节角度。计算结果与当前 TCP 设置和当前关节位置有关。
在 2.3.5 版本以后,增加了第二个关节参数,当反解出现多解时,会取距离 joints
最近的一个解。
请求参数
参数名 | 类型 | 描述 |
---|---|---|
vector |
table | 工具空间的位置和姿态 |
joints |
table | 可选。关节空间参考位置 |
返回值
参数 | 类型 | 说明 |
---|---|---|
关节角度值 |
table | {j1=a, j2=b, j3=c, j4=d, j5=e, j6=f, ok=true} 对应关节空间 如 {j1=0, j2=1.57, j3=-1.57, j4=0, j5=3.14, j6=3.14, ok=true} ok 解算是否成功 true :成功 false :失败 |
示例
-- Lua示例
p = kinematics_inverse({1.12,2.12,3.12,4.12,.125,6.12})
for k,v in ipairs(p) do
print(k,v)
end
print(p["ok"])
JSON 请求 | 暂不支持 |
JSON 响应 | 暂不支持 |
pose_times(a, b)2.1
位姿乘法
算法分别将 a 和 b 转为 4×4 的齐次矩阵 A 和 B,然后求矩阵乘法 C=AB,最后将 C 转为位姿表示法返回。
物理意义相当于,以 a 为用户坐标系 A,b 是相对于坐标系 A 的位姿描述。最后返回相对于机器人世界坐标系的位姿描述,该结果可用于 move
系指令。
请求参数
参数名 | 类型 | 描述 |
---|---|---|
a |
table | 位姿 A |
b |
table | 位姿 B |
返回值
参数 | 类型 | 说明 |
---|---|---|
c |
table | 位姿 C = AB |
示例
--- Lua示例
local res = pose_times({-0.159,-0.342,-0.0391,-2.97,-0.017,-3.14}, {-0.044,-0.0036,-0.0004,3.89,0,0})
movej(res, 1, 1, 0, 1)
JSON 请求 | 暂不支持 |
JSON 响应 | 暂不支持 |
pose_inverse(a)2.1
位姿的逆
用于求位姿 a 对应的齐次矩阵 A,A 的逆 A^(-1) 的位姿描述。
可用于求解位姿方程。
请求参数
参数名 | 类型 | 描述 |
---|---|---|
a |
table | 位姿 A |
返回值
参数 | 类型 | 说明 |
---|---|---|
c |
table | A 的转置 A^(-1) |
示例
- 已知用户坐标系位姿 a(可以为某个示教点),然后示教出另一个点 b,用该方法可以求出 b 相对于 a 的描述。
- 计算出该结果之后,当用户坐标系发生改变,但示教点相对位置不变时,无需重新示教。
--- Lua示例
-- AX=B -> X=A^(-1)B
function axb(a, b)
return pose_times(pose_inverse(a), b)
end
local 相对落杯 = axb(预落杯, 落杯)
相对落杯.base = a
movej(相对落杯, 1, 1, 0, 1)
JSON 请求 | 暂不支持 |
JSON 响应 | 暂不支持 |