我是靠谱客的博主 粗暴衬衫,最近开发中收集的这篇文章主要介绍【Robotics toolbox】(一)获取旋转矩阵 rot|绘制坐标系 trplot|动画演示 tranimate1 三维空间中的位置与姿态2 相关函数详细用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 1 三维空间中的位置与姿态
    • 1.1 位置描述
    • 1.2 姿态描述
  • 2 相关函数详细用法
    • 2.1 获取旋转矩阵 rot
    • 2.2 绘制坐标系 trplot
    • 2.3 动画演示 tranimate

关注微信公众号`二进制人工智能`,回复`robot`获取机器人工具箱

1 三维空间中的位置与姿态

通常来说,机器人指的是至少包含有一个固定刚体和一个活动刚体的机器装置。其中,固定的刚体称为基座,而活动的刚体称为末端执行器。在两个部件之间会有若干连杆和关
节来支撑末端执行器﹐并使其移动到一定的位置。

控制一个机器人的运动,可以通过控制机器人(机械臂)上各关节的位置,设定关节运动的轨迹。而首先需要做的就是获取机器人本身的位姿所谓位姿,就是指机器人上每个关节在每一时刻的位置和姿态。这就需要确定描述空间物体位姿的方法,本书中使用空间坐
标系来描述相关位姿。当得到位姿的描述以后﹐就可以利用各关节位姿之间的关系来描述机器人的整个运动链,进而得到机器人的基座坐标系和末端执行器坐标系之间的关系。

机器人的运动学模型包括机器人各连杆、关节的位置姿态以及在各关节上的坐标系,其任务之一就是确立机器人末端执行器的位姿。机器人的机械臂通常是由一组关节连接的连杆结合体:第一个连杆固定﹐连接该机械臂的基座,而最后一个连杆连接的是它的末端执行器。操作机器人是为了控制与机器人相关的零件、工具在三维空间中运动,因此需要描述相应的位置和姿态。任务之一就是确立机器人末端执行器的位姿。机器人的机械臂通常是由一组关节连接的连杆结合体:第一个连杆固定﹐连接该机械臂的基座,而最后一个连杆连接的是它的末端执行器。操作机器人是为了控制与机器人相关的零件、工具在三维空间中运动,因此需要描述相应的位置和姿态。

1.1 位置描述

在这里插入图片描述

如图1-4所示,在三维空间中建立某一坐标系,于是空间中的任何一个点就可以通过一个 3 × 1 3×1 3×1的位置矢量来确定。建立一个直角坐标系 A {A} A,空间中的任一点 A P ^AP AP可以表示为:
在这里插入图片描述

p x 、 p y 、 p z p_x、p_y、p_z pxpypz分别是 A P ^AP AP在坐标系 A {A} A中的三个坐标分量, A P ^AP AP称为位置矢量。

1.2 姿态描述

在这里插入图片描述

空间中的物体还需要描述它的姿态(也称为方位),这用固定在物体上的坐标系 B {B} B来描述。如图1-5所示,为了规定空间某刚体 B B B的方位,设一坐标系 B {B} B与此刚体固连﹔用三个单位矢量 x B , y B , z B x_B,y_B ,z_B xB,yB,zB来表示坐标系 { B } {B} {B}的主轴方向﹐因此物体相对于参考坐标系 { A } {A} {A}的姿态可以用矢量 x B , y B , x B x_B ,y_B,x_B xB,yB,xB相对于参考坐标系 A {A} A的方向余弦组成的 3 × 3 3×3 3×3矩阵来表示,这个矩阵 B A R ^A_BR BAR称为旋转矩阵。
在这里插入图片描述

用矢量两两之间的余弦则表示为:
在这里插入图片描述

对应于轴 X , Y X,Y X,Y Z Z Z作转角为 θ theta θ的旋转变换,其旋转矩阵分别为:
在这里插入图片描述

旋转矩阵 B A R ^A_BR BAR具有这样的特点:
(1)3个主矢量两两垂直
(2)9个元素中,只有3个是独立的
(3)3个单位主矢量满足6个约束条件:
在这里插入图片描述

(4)旋转矩阵为正交矩阵,且满足条件:
在这里插入图片描述
机器人工具箱中,可分别用函数 r o t x ( θ ) , r o t y ( θ ) , r o t z ( θ ) rotx(theta),roty(theta),rotz(theta) rotx(θ),roty(θ),rotz(θ)计算旋转 θ theta θ的旋转矩阵,并且在默认情况下, θ theta θ用弧度表示。

例如围绕 X X X轴做转角为180°的旋转变换:

R=rotx(pi)

运行结果:
在这里插入图片描述
如果直接用角度 θ theta θ表示,可以分别用 r o t x ( θ , ′ d e g ′ ) , r o t y ( θ , ′ d e g ′ ) , r o t z ( θ , ′ d e g ′ ) rotx(theta,'deg'),roty(theta,'deg'),rotz(theta,'deg') rotx(θ,deg),roty(θ,deg),rotz(θ,deg)计算旋转矩阵:

R=rotx(180,'deg')

运行结果:
在这里插入图片描述

以上两种方式,都可以得到相对应的旋转矩阵。

在机器人工具中,可以使用两种函数实现坐标的旋转可视化。函数trplot()可以用图形表示相应的体坐标系,函数tranimate用动画展示世界坐标系旋转为体坐标系的过程。

trplot(R)

在这里插入图片描述

tranimate(R)

在这里插入图片描述

2 相关函数详细用法

2.1 获取旋转矩阵 rot

(1) rotx():R=rotx( θ theta θ)是表示围绕X轴旋转弧度为 θ theta θ得到的旋转矩阵,返回一个3×3的矩阵R。

(2) roty():R=roty( θ theta θ)是表示围绕Y轴旋转弧度为 θ theta θ得到的旋转矩阵,返回一个3×3的矩阵R。
(3) rotz():R=rotz( θ theta θ)是表示围绕Z轴旋转弧度为 θ theta θ得到的旋转矩阵,返回一个3×3的矩阵R。

2.2 绘制坐标系 trplot

函数为:trplot()

对于三维坐标系的绘制,机器人工具箱提供了强大的可视化函数trplot()。

(1) trplot(R):绘制由旋转矩阵得到的坐标系,其中坐标系根据正交旋转矩阵围绕原点旋转得到, R R R为3×3的矩阵。

(2) trplot(T):绘制由齐次变换矩阵T表示的三维坐标系,其中 T T T为4×4的矩阵。

此外,它包含了许多可选参数,这里列举主要的几种:
在这里插入图片描述

2.3 动画演示 tranimate

函数为:tranimate()

(1)tranimate( xl, x2,options)展示3D坐标系从姿态xl变换到姿态x2的动画效果。

其中,姿态xlx2有三种表示方法:一个4×4的齐次矩阵,或一个3×3的旋转矩阵,或一个四元数。

(2) tranimate(x,options)展示了坐标系由上一个姿态变换到姿态x的动画效果。同样地,姿势x也有三种表示方法:一个4×4的齐次矩阵,或一个3×3的旋转矩阵,或一个四元数。

(3) tranimate(xseq,options)展示了移动一段轨迹的动画效果。xseq可以是一组 4 × 4 × N 4×4×N 4×4×N的齐次矩阵,或一组 3 × 3 × N 3×3×N 3×3×N的旋转矩阵,或是一组四元数向量( N × 1 N×1 N×1)。

它包含的可选参数如下:
在这里插入图片描述

《机器人仿真与编程技术》 杨辰光 李智军 许扬

最后

以上就是粗暴衬衫为你收集整理的【Robotics toolbox】(一)获取旋转矩阵 rot|绘制坐标系 trplot|动画演示 tranimate1 三维空间中的位置与姿态2 相关函数详细用法的全部内容,希望文章能够帮你解决【Robotics toolbox】(一)获取旋转矩阵 rot|绘制坐标系 trplot|动画演示 tranimate1 三维空间中的位置与姿态2 相关函数详细用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部