文章目录
- 1 三维空间中的位置与姿态
-
- 1.1 位置描述
- 1.2 姿态描述
- 2 相关函数详细用法
-
- 2.1 获取旋转矩阵 rot
- 2.2 绘制坐标系 trplot
- 2.3 动画演示 tranimate
关注微信公众号`二进制人工智能`,回复`robot`获取机器人工具箱
1 三维空间中的位置与姿态
通常来说,机器人指的是至少包含有一个固定刚体和一个活动刚体的机器装置。其中,固定的刚体称为基座,而活动的刚体称为末端执行器。在两个部件之间会有若干连杆和关节来支撑末端执行器﹐并使其移动到一定的位置。
控制一个机器人的运动,可以通过控制机器人(机械臂)上各关节的位置,设定关节运动的轨迹。而首先需要做的就是获取机器人本身的位姿。所谓位姿,就是指机器人上每个关节在每一时刻的位置和姿态。这就需要确定描述空间物体位姿的方法,本书中使用空间坐
标系来描述相关位姿。当得到位姿的描述以后﹐就可以利用各关节位姿之间的关系来描述机器人的整个运动链,进而得到机器人的基座坐标系和末端执行器坐标系之间的关系。
机器人的运动学模型包括机器人各连杆、关节的位置姿态以及在各关节上的坐标系,其任务之一就是确立机器人末端执行器的位姿。机器人的机械臂通常是由一组关节连接的连杆结合体:第一个连杆固定﹐连接该机械臂的基座,而最后一个连杆连接的是它的末端执行器。操作机器人是为了控制与机器人相关的零件、工具在三维空间中运动,因此需要描述相应的位置和姿态。任务之一就是确立机器人末端执行器的位姿。机器人的机械臂通常是由一组关节连接的连杆结合体:第一个连杆固定﹐连接该机械臂的基座,而最后一个连杆连接的是它的末端执行器。操作机器人是为了控制与机器人相关的零件、工具在三维空间中运动,因此需要描述相应的位置和姿态。
1.1 位置描述
如图1-4所示,在三维空间中建立某一坐标系,于是空间中的任何一个点就可以通过一个3×1的位置矢量来确定。建立一个直角坐标系A,空间中的任一点AP 可以表示为:
px、py、pz分别是AP在坐标系A中的三个坐标分量,AP称为位置矢量。
1.2 姿态描述
空间中的物体还需要描述它的姿态(也称为方位),这用固定在物体上的坐标系B来描述。如图1-5所示,为了规定空间某刚体B的方位,设一坐标系B与此刚体固连﹔用三个单位矢量 xB , yB , zB来表示坐标系{B}的主轴方向﹐因此物体相对于参考坐标系{A}的姿态可以用矢量 xB , yB , xB 相对于参考坐标系A的方向余弦组成的3×3矩阵来表示,这个矩阵称为旋转矩阵。
用矢量两两之间的余弦则表示为:
对应于轴X,Y或Z作转角为θ的旋转变换,其旋转矩阵分别为:
旋转矩阵具有这样的特点:
(1)3个主矢量两两垂直
(2)9个元素中,只有3个是独立的
(3)3个单位主矢量满足6个约束条件:
(4)旋转矩阵为正交矩阵,且满足条件:
机器人工具箱中,可分别用函数计算旋转θ的旋转矩阵,并且在默认情况下,θ用弧度表示。
例如围绕X轴做转角为180°的旋转变换:
R=rotx(pi)
运行结果:
如果直接用角度θ表示,可以分别用 计算旋转矩阵:
R=rotx(180,'deg')
运行结果:
以上两种方式,都可以得到相对应的旋转矩阵。
在机器人工具中,可以使用两种函数实现坐标的旋转可视化。函数trplot()
可以用图形表示相应的体坐标系,函数tranimate
用动画展示世界坐标系旋转为体坐标系的过程。
trplot(R)
tranimate(R)
2 相关函数详细用法
2.1 获取旋转矩阵 rot
(1) rotx():R=rotx(θ)是表示围绕X轴旋转弧度为θ得到的旋转矩阵,返回一个3×3的矩阵R。
(2) roty():R=roty(θ)是表示围绕Y轴旋转弧度为θ得到的旋转矩阵,返回一个3×3的矩阵R。
(3) rotz():R=rotz(θ)是表示围绕Z轴旋转弧度为θ得到的旋转矩阵,返回一个3×3的矩阵R。
2.2 绘制坐标系 trplot
函数为:trplot()
对于三维坐标系的绘制,机器人工具箱提供了强大的可视化函数trplot()。
(1) trplot(R):绘制由旋转矩阵得到的坐标系,其中坐标系根据正交旋转矩阵围绕原点旋转得到, R R R为3×3的矩阵。
(2) trplot(T):绘制由齐次变换矩阵T表示的三维坐标系,其中T为4×4的矩阵。
此外,它包含了许多可选参数,这里列举主要的几种:
2.3 动画演示 tranimate
函数为:tranimate()。
(1)tranimate( xl, x2,options)展示3D坐标系从姿态xl变换到姿态x2的动画效果。
其中,姿态xl和x2有三种表示方法:一个4×4的齐次矩阵,或一个3×3的旋转矩阵,或一个四元数。
(2) tranimate(x,options)展示了坐标系由上一个姿态变换到姿态x的动画效果。同样地,姿势x也有三种表示方法:一个4×4的齐次矩阵,或一个3×3的旋转矩阵,或一个四元数。
(3) tranimate(xseq,options)展示了移动一段轨迹的动画效果。xseq可以是一组4×4×N的齐次矩阵,或一组3×3×N的旋转矩阵,或是一组四元数向量(N×1)。
它包含的可选参数如下:
《机器人仿真与编程技术》 杨辰光 李智军 许扬