MATLAB 中的机械臂算法——运动学
机械臂算法
MATLAB 在 2016 年就推出了 Robotics System Toolbox(RST),其中有很多关于机械臂方面的算法。而且随着客户需求的增加,也在加入一些新的功能。为了试图让读者了解更多 RST 在机械臂方面的支持,让我们来看一下机械臂方面的算法概貌。
这些名词听起来都比较深奥,但是在机械臂的世界里,这些都非常有用。
让我们看一个简单的例子。下图是一个简单的机械臂示意:机械臂的 end-effector(末端机构)受到 4 个旋转关节和 3 个连杆的共同作用,可以到达不同的作业地点,也可以处于不同的旋转角度。
为了分析 end-effector 的具体位置和角度,我们看到:
它相对底座开始,做了 4 次旋转(rotation)和 3 次转置(translation)。那这 4 此旋转和 3 此转置的总和,我们可以用一个矩阵来表示:
这个矩阵也叫 Homogeneous Transformation(齐次变换)。
有时候,对于旋转会有不同的表达方式,例如欧拉角(Euler Angles)、四元素(Quaternion)、旋转矩阵(Rotation Matrix)等等;表达转置,也可使用转置向量(Translation Vector)。有了 RST 这些都可以轻松通过不同的函数进行互换。下图为具体的函数列表:
例如:将欧拉角转为 Homogeneous Transformation:
>> eul = [0 pi/2 0];
tformZYX = eul2tform(eul)
tformZYX =
0.0000 0 1.0000 0
0 1.0000 0