注:全文为本人见解如有错误請指点!
以下代码直接对robotics工具箱中的ikine函数进行解释
% 这个方法适用于任意自由度的机器人
% 使用上一步的解作为当前步的初始值
% 欠驱动机器人解空间维数比关节坐标维数多?
% 使用“mask”矢量指定失去的自由度机器人自由度等于改矢量的非零元素的个数。
%
举个例子当使用三自由喥机械手时,旋转方向可能不重要(不影响逆运动学求解)mask向量设置为
[1 1 1 0 0 0] %
对于
4或
5个自由度的机器人,这种方法较难使用
% 通过LM变步长求解器實现
% 误差是根据当前工具姿态和期望(求解)姿态的范数计算
% 求解的值不唯一且与初值有关,初值Q0默认为
0 % 这是通用的解法所以效率不高
% 此方法可能在奇异点求出解
% 如果定义了关节偏移,将添加到逆运动学中以生成Q
% 不考虑关节的范围限制
% “search”选项形成一个强力搜索初始条件从整个关节空间中随机选择
% 如果使用“搜索”选项,则任何移动关节都必须定义关节范围 qt
= q
; %如果不为空集q为所求值
break %迭代失败,并跳絀循环
break; %如果小于容许误差跳出循环
% 用LM法做阻尼逆高斯牛顿
% 该步被拒绝,增加阻尼并重试
break; %迭代失败跳出循环
}