《MATLAB Robotic Toolbox》SerialLink/ikne 翻译

来源:互联网 发布:js object to xml 编辑:程序博客网 时间:2024/06/05 18:22

%SerialLink.IKINE Inverse manipulator kinematics
%SerialLink.IKINE 机械手逆运动学函数
%
% Q = R.ikine(T) is the joint coordinates corresponding to the robot
% end-effector pose T which is a homogenenous transform.
%Q =R.ikine(T) 能够求解机器人R的在齐次矩阵T表示下,对应的关节空间的解 Q
%
%Q = R.ikine(T, Q0, OPTIONS) specifies the initial estimate of the joint
% coordinates.
%Q = R.ikine(T, Q0, OPTIONS) 指定了在初始的关节状态Q0下,实现机器人R的
%齐次矩阵表示的姿态T 所应对的关节解Q
%
%Q = R.ikine(T, Q0, M, OPTIONS) specifies the initial estimate of the joint
% coordinates and a mask matrix. For the case where the manipulator
% has fewer than 6 DOF the solution space has more dimensions than can
% be spanned by the manipulator joint coordinates. In this case
% the mask matrix M specifies the Cartesian DOF (in the wrist coordinate >
% frame) that will be ignored in reaching a solution. The mask matrix
% has six elements that correspond to translation in X, Y and Z, and rotation
% about X, Y and Z respectively. The value should be 0 (for ignore) or 1.
% The number of non-zero elements should equal the number of manipulator DOF.
%Q = R.ikine(T, Q0, M, OPTIONS) 指定了初始关节状态和一个蒙版矩阵M。
%这种情况适用于机械手自由度少于6的情况,因为在这种情况下解空间具有比关节空间更大
%的尺度,所以蒙版矩阵M用于将无关的解空间维度屏蔽。
%蒙版矩阵M应该具有如下性质:
%1、有6个元素分别对应笛卡尔空间中沿着X,Y,Z轴的平移和旋转。
%2、这些元素只能是0或者1,0表示将对应维度屏蔽
%3、蒙版矩阵M中的非零元素,应该等于机器手的自由度
% For example when using a 5 DOF manipulator rotation about the wrist z-axis
% might be unimportant in which case M = [1 1 1 1 1 0].
%例如对于一个5自由度机械手来说,腕部Z轴的旋转或许是不必要的,因此M可以赋值为
%M = [1 1 1 1 1 0]
%
% In all cases if T is 4x4xM it is taken as a homogeneous transform sequence
% and R.ikine() returns the joint coordinates corresponding to each of the
% transforms in the sequence. Q is MxN where N is the number of robot joints.
% The initial estimate of Q for each time step is taken as the solution
% from the previous time step.
%在输入的T是一个4X4XM的齐次矩阵序列的情况下,R.ikine()会返回序列中对应每个齐次矩
%阵的关节变量解,形式为MXN
%在每一步的计算中,前一时刻的Q值会作为下一个时刻的初始Q0
%
% Options::
% ‘pinv’ use pseudo-inverse instead of Jacobian transpose
% ‘ilimit’,L set the maximum iteration count (default 1000)
% ‘tol’,T set the tolerance on error norm (default 1e-6)
% ‘alpha’,A set step size gain (default 1)
% ‘novarstep’ disable variable step size
% ‘verbose’ show number of iterations for each point
% ‘verbose=2’ show state at each iteration
% ‘plot’ plot iteration state versus time
%“Options”可选的参数
% ‘pinv’ 用伪逆矩阵而不是雅克比矩阵的转置
% ‘ilimit’,L 设置最大的迭代步数为L,默认情况下是1000
% ‘tol’,T 设置最大的平方误差为T ,默认情况下是1e-6
% ‘alpha’,A 设置最大的步长为A,默认情况下是1
% ‘novarstep’ 设置为步长不可变
% ‘verbose’ 显示每个点的迭代次数
% ‘verbose=2’ 在每次迭代的时候显示状态
% ‘plot’ 绘制迭代状态随时间的变化图
%
% Notes::
%注意事项:
% - Solution is computed iteratively.
%- 运动学逆解是通过迭代实现的
% - Solution is sensitive to choice of initial gain. The variable
% step size logic (enabled by default) does its best to find a balance
% between speed of convergence and divergence.
% - 解的结果对初始增益的选择很敏感。可变步长逻辑(默认是使能的)会尽力去平
% 衡解发散和收敛的速度
% - Some experimentation might be required to find the right values of
% tol, ilimit and alpha.
%- 会需要一些实验来找到合适的允许误差、最大迭代步数和最大步长
% - The pinv option sometimes leads to much faster convergence.
% - 伪逆选项有时候会带来快非常多的收敛速度
% - The tolerance is computed on the norm of the error between current
% and desired tool pose. This norm is computed from distances
% and angles without any kind of weighting.
%- 误差的计算是根据当前位姿与目标位姿的平方差来的。而且在位置误差和
% 姿态误差在误差计算中所占的比重相同
% - The inverse kinematic solution is generally not unique, and
% depends on the initial guess Q0 (defaults to 0).
% - 运动学逆解一般来说都不是唯一的,并且会与初始姿态Q0有关,初始姿态
% 在不指定的情况下默认是所有关节值都为0
% - The default value of Q0 is zero which is a poor choice for most
% manipulators (eg. puma560, twolink) since it corresponds to a kinematic
% singularity.
% - Q0的默认值对于大多数机械手来说都是一个不好的选择,例如puma560和两连
% 杆模型,因为它会知道运动学奇异的发生。
% - Such a solution is completely general, though much less efficient
% than specific inverse kinematic solutions derived symbolically, like
% ikine6s or ikine3.
%- 这个函数提供的解决方案是完全具有通用型的,尽管比起特定的机械构型的逆运动
% 学求解方案要低效得多
% - This approach allows a solution to obtained at a singularity, but
% the joint angles within the null space are arbitrarily assigned.
% 这个函数允许在奇异位点处也能够获得解,但是因为奇异位点而无解(或者是耦合的关节)
% 它们的解是任意分配的
% - Joint offsets, if defined, are added to the inverse kinematics to
% generate Q.
% 如果定义了关节偏置的话, 它们会被加到逆运动学中来产生合适的关节解Q
%
% 欢迎讨论学习的小伙伴,将问题发到邮箱 cheungk.roc@foxmail.com一起共同学习。
% See also SerialLink.fkine, tr2delta, SerialLink.jacob0, SerialLink.ikine6s.