GDUT自动化创卓机器人学课程大作业:机械臂工作空间绘制

这篇具有很好参考价值的文章主要介绍了GDUT自动化创卓机器人学课程大作业:机械臂工作空间绘制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、机器人选型

二、机器人DH参数和正运动学

(一)、DH参数

 (二)、正运动学

三、工作空间绘制

四、构型分析

五、附录绘制机械臂工作空间,机器人,矩阵,matlab

一、机器人选型

        UR协作机器人系列是优傲公司的代表产品,也是目前比较通用的产品级机械臂。选取UR系列的UR5协作机器人,产品参数如下:

绘制机械臂工作空间,机器人,矩阵,matlab

二、机器人DH参数和正运动学

(一)、DH参数

        机械臂的正运动学是把机械臂的关节变量作为自变量,描述机械臂末端执行器的位置和姿态与机械臂基座之间的函数关系。

        将各关节简化为圆柱体,将如下状态视为初始状态,用标准DH法建立坐标如下:

绘制机械臂工作空间,机器人,矩阵,matlab

        坐标系1,2,3,4,5,6是各个关节的坐标,其中坐标系2,3,4,5,6由于Zn-1和Zn 共面而导致坐标系偏离实际关节中心(坐标系应建立在Zn-1 和Zn 的交点处),坐标系7是机械臂末端点的位姿。

        得到下列DH参数表:

绘制机械臂工作空间,机器人,矩阵,matlab

         其中,由机械臂参数可得:

绘制机械臂工作空间,机器人,矩阵,matlab

 保留​t​heta​​​​变量,将常量代入DH参数表,即:

绘制机械臂工作空间,机器人,矩阵,matlab

 (二)、正运动学

        下面根据DH表推导UR5机器人正运动学。

        标准DH法坐标系n到n+1的变换矩阵如下:

绘制机械臂工作空间,机器人,矩阵,matlab

        观察DH参数表,可以知道α 均为0或±90°,故cos​​​​​α 、sinα 均为0或±1,这里先将其带入其次变换矩阵,这一步是为了方便后续编程进行符号运算。 

绘制机械臂工作空间,机器人,矩阵,matlab

   则有:

绘制机械臂工作空间,机器人,矩阵,matlab

         利用matlab在画布上画出机器人验证DH法推导过程是否正确,绘制出的机器人构型和模拟运动符合预期(完整视频可见附录):

绘制机械臂工作空间,机器人,矩阵,matlab

三、工作空间绘制

        将正运动学得到的齐次变换矩阵输入matlab代码文件中,利用matlab符号运算得出夹具末端位置坐标点的计算公式:

绘制机械臂工作空间,机器人,矩阵,matlab

        为了减少函数调用的时间,可以先将所有点的位置计算出来,这样只需调用一次绘图函数即可绘制所有的点。这样的做节省的是调用绘图函数的时间。即使先计算点的坐标,算法的时间复杂度仍然没有下降。

        实际上,在Matlab或Pyhton等语言中,调用库函数或者自带的矩阵运算操作会比自己写for循环快得多,因为库函数和矩阵变换一般会有更底层语言的代码支持。

        利用上述思想,我的做法是使用ndgrid函数建立网格坐标,省去for循环优化处理的速度。再使用plot3或scatter3函数进行工作空间绘制。ndgrid是一个网格坐标生成函数,和python的meshgrid异曲同工。对于传入的多个向量,函数返回由这些向量中的点所构成给的网格点的坐标。如调用如下语句:

[x1,x2]=ndgrid([1,2,3],[4,5,6])

        则函数会返回:

绘制机械臂工作空间,机器人,矩阵,matlab

        当我们把x1和x2中每个位置的数匹配起来看:

        会得到:

绘制机械臂工作空间,机器人,矩阵,matlab

         我们将Ans展开即可得到:分别从数列1,2,3和数列4,5,6中各取一个数的所有可能情况。故我们可以将六个角度的范围传入ndgrid来得到所有角度的组合,来得到角度所有可能的组合。再利用对矩阵取cos、sin以及加减等操作,得到最终包含所有点的x,y,z坐标的向量。

        使用此方式绘制得到的工作空间如下:

绘制机械臂工作空间,机器人,矩阵,matlab

        上述的优化始终改变不了算法的时间复杂度,一切的投机取巧终究还是班门弄斧,改变不了算法复杂本质。想要加快绘制的速度,除非换个算法,这里有一个更快而且能更好的拟合工作空间的算法:蒙特卡洛法。 

         当我们随机地取一定数量的θ ,当取的数量“足够多”时,就可以很好得描述工作空间的形状。显然这里的“足够多”可以远远小于十的九次方  。相比之前的方法,本方法得到的点云虽然稀疏,但很均匀。更能描述工作空间的形状。而且算法实现也很简单。当取1000个点时,效果如下:

绘制机械臂工作空间,机器人,矩阵,matlab

        查阅官方的数据手册:UR5机器人的工作空间是指机座关节周围一定空间内的球形区域除去机械臂上方的圆柱形区域。

绘制机械臂工作空间,机器人,矩阵,matlab

         观察上述图像,可以推断,如果θ 很小时,得出的工作空间确实是一个球。这里还有一个问题,除去的圆柱形区域在我们所绘制的空间中没有体现,这一点将在关节构型处分析。

        上述算法的流程图如下:

绘制机械臂工作空间,机器人,矩阵,matlab

        蒙特卡洛法虽然又快又准,但形态上却看不出变化的过程。暴力枚举法虽然难以达到理想的结果,但每一次的蜕变都会带来形态上变化。好比生活并不只看结果,享受过程又何尝不是一种快乐。

四、构型分析

         对于UR5机器人,先只考虑机器人的第六个关节:

绘制机械臂工作空间,机器人,矩阵,matlab

         由于最后一个关节的旋转,它的轨迹是一个点。

        接着考虑第五、第六两个关节:

绘制机械臂工作空间,机器人,矩阵,matlab

        上一步中的点绕一个轴纯旋转,最后得到的是轨迹是一个圆形的轨迹线。

        设如图所示P点的坐标为初始坐标,旋转的半径为r1,则轨迹为:

绘制机械臂工作空间,机器人,矩阵,matlab

        再考虑倒数第三个关节:

绘制机械臂工作空间,机器人,矩阵,matlab

        即一个圆形线绕着一根平行于该线所在平面的线旋转,主视图如上,最终的轨迹应该是一个带孔的圆柱: 

绘制机械臂工作空间,机器人,矩阵,matlab

         其中:

绘制机械臂工作空间,机器人,矩阵,matlab

        最终得到轨迹如下:

绘制机械臂工作空间,机器人,矩阵,matlab

         考虑倒数第四个关节:

绘制机械臂工作空间,机器人,矩阵,matlab

         将带孔圆柱绕着一条平行于带孔圆柱轴线的直线进行旋转,这里有两种可能:

绘制机械臂工作空间,机器人,矩阵,matlab

(1)

绘制机械臂工作空间,机器人,矩阵,matlab

(2)

         情况(1)关节在带孔圆柱内部,旋转的结果是一个不带孔的圆柱;

         情况(2)关节在带孔圆柱外部,旋转的结果仍然是一个带孔的圆柱

         对于UR5来说这里属于第二种情况:

绘制机械臂工作空间,机器人,矩阵,matlab

         有

绘制机械臂工作空间,机器人,矩阵,matlab

        得到的仍然是带孔圆柱。

        再考虑倒数第五个关节,此种情况同上种情况类似,但此时属于情况(1),故得到是一个完整的圆柱:

绘制机械臂工作空间,机器人,矩阵,matlab

         有:

绘制机械臂工作空间,机器人,矩阵,matlab

        再考虑最后一个关节,俯视图:

绘制机械臂工作空间,机器人,矩阵,matlab绘制机械臂工作空间,机器人,矩阵,matlab

        图中的矩形代表上一环节圆柱的侧视图,这种情况下的俯视图是一个矩形绕一个点进行旋转,最后得到的结果应该是一个带圆柱形通孔的球状区域,注意这里并不是一个标准的球形区域,因为俯视图和主视图的半径并不一样

        (1)对于俯视图:

绘制机械臂工作空间,机器人,矩阵,matlab

         其中,圆柱形通孔的半径为:

绘制机械臂工作空间,机器人,矩阵,matlab

         外圆形的半径为:

绘制机械臂工作空间,机器人,矩阵,matlab

        (2)对于主视图 :

绘制机械臂工作空间,机器人,矩阵,matlab

绘制机械臂工作空间,机器人,矩阵,matlab

绘制机械臂工作空间,机器人,矩阵,matlab

         代入参数计算可得:

绘制机械臂工作空间,机器人,矩阵,matlab

绘制机械臂工作空间,机器人,矩阵,matlab

绘制机械臂工作空间,机器人,矩阵,matlab

绘制机械臂工作空间,机器人,矩阵,matlab

        观察上述式子可以看到:

绘制机械臂工作空间,机器人,矩阵,matlab

        由于主视图横竖近似相等,故可将主视图看成一个标准圆形。

        由于俯视图内外半径差距极大,故可将俯视图看出一个标准的圆形。

        我认为这也是使用Matlab绘制出来的工作空间看不出空心圆柱的原因。

五、附录

        UR5机器人运动模拟文章来源地址https://www.toymoban.com/news/detail-775700.html

到了这里,关于GDUT自动化创卓机器人学课程大作业:机械臂工作空间绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器人学】逆运动学

    逆运动学 是一个非线性的求解问题,相对于正运动学较为复杂,主要是因为可解性探究、多重解以及多重解的选择等问题。例如,形如【机器人学】正运动学详解-6.4 一个简单例子中所用的六自由度机器人,其 逆运动学 可以描述为:假设我们已经知道其次变换矩阵 R T H ^RT

    2023年04月08日
    浏览(53)
  • 机器人学-正运动学

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 DH约定 正运动学 总结 本文介绍串联机械臂基础算法,并使用python和matlab进行算法设计、建模仿真。 标准DH配置  坐标系示意图  DH参数 代码如下(python):

    2024年02月15日
    浏览(41)
  • 【机器人学】一、从线性变换的角度理解机器人坐标变换

    实际应用: 为什么要标定旋转中心 在机器视觉实际应用过程中,有这样的案例:机械手要抓取物料,物料每次的角度不一样,机械手的末端工具中心与其自身的旋转中心不重合,如果想完成这个抓取的工作,有两种解决方案: 方案一:TCP标定(Tool Center Point) 一般机械手都

    2024年04月29日
    浏览(39)
  • 机器人学基础--运动学--2.3 变换矩阵

    2.3 变换矩阵 (1)齐次坐标系变换 2.1,2.1中讨论了坐标系及其平移,旋转两种变换。在实际应用中两个坐标系之间的关系往往既有平移又有旋转,因此这篇文章我们将讨论一下如何以一种更为紧凑的方式来表达两个坐标系之间的位置及姿态关系。 可以把这个问题分解开来看

    2024年02月11日
    浏览(44)
  • 【现代机器人学】学习笔记十三:配套代码解析

    最近一直忙于工作,每天都在写一些业务代码。而目前工程中的技术栈并没有使用旋量这一套机器人理论系统,因此时间长了自己都忘记了。 于是决定把这本书配套的代码内容也过一遍,查漏补缺,把这本书的笔记内容完结一下。 代码来源于github:https://github.com/NxRLab/Moder

    2024年02月12日
    浏览(44)
  • 【机器人学导论】惯性张量旋转和平移变换的推导

    最近遇到了一些涉及惯性张量的实际问题,比如: 对两个通过铰链连接在一起的杆,如何计算整体的惯性张量? 对于一个由多个简单部件组合成的系统,如何计算整体的惯性张量? 在网上查找计算方法的过程中,难以通过正确的找到简明的数学方法。因此我在多番查

    2024年02月08日
    浏览(42)
  • 机器人学DH参数及利用matlab符号运算推导

    重新复习了一下机器人学DH参数,并且利用matlab符号运算进行了推导,验证了公式。 图中的 坐标系定义 : 坐标系 i {i} i 的 z z z 轴 z i z_i z i ​ 和关节轴线 i i i 共线,指向任意规定。 坐标系 i {i} i 的 x x x 轴 x i x_i x i ​ 和 a i a_i a i ​ 重合,由关节 i i i 指向关节 i + 1 i+1 i

    2024年02月02日
    浏览(53)
  • 《机器人学导论》根据DH参数表计算变换矩阵MATLAB代码

    PUMA560的DH参数表如下 根据参数表可以求出每一个连杆变换矩阵,求各连杆变换矩阵的MATLAB函数如下 带入DH表的最后三行参数,计算使用样例如下: 得到的结果为: 书上结果为  对比可得,代码计算结果与书上结果一致

    2024年02月06日
    浏览(52)
  • 【现代机器人学】学习笔记四:一阶运动学与静力学

    这节课的内容主要讲速度的正向运动学(也就是位置的一阶导数,所以叫一阶运动学)和静力学,这也是本书首次出现动力学相关的内容(刚体运动那节提到的力旋量算是一个概念的介绍)。 个人结合平时的工程项目看,觉得这节课的内容是一个内容和难度上的一个跨越,因

    2023年04月08日
    浏览(43)
  • 机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解

    SE(3):特殊欧式群 se(3):特殊欧式群的李代数 SO(3): 三维特殊正交群 so(3): 三维特殊正交群的李代数 T(3):三维移动群 R : 旋转矩阵 李代数:李群单位元处的切空间; SO(3) 和T(3) 都是SE(3)的李子群 SO3——log——so3, 3×1 vector SE3——log——se3, 6×1 vector so3——exp——SO3, 3×3 matrix se3——

    2024年01月17日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包