目录

  • 1 概要
  • 2 uarm机械臂的结构分析及逆解算式推导
    • 2.1 uarm机械臂的结构分析
      • (1)俯视——水平面的运动投影
      • (2)侧视——垂直平面的运动投影
    • 2.2 uarm机械臂逆解公式推导

1 概要

本篇是《python——VREP数字孪生四轴机械臂联合仿真》https://editor.csdn.net/md/?articleId=125154971的姊妹篇(上),主要解决的问题是如何通过python编程实现对vrep里uarm机械臂的在世界坐标系下的精准运动控制,即可以根据想要的坐标(x,y,z),使用机械臂逆解算法计算出uarm各个轴的旋转角度,并发送指令到vrep仿真模型,执行动作。本篇将分为两个部分:
(上)uarm机械臂的结构分析及逆解算式推导
本节将对uarm的结构进行分析,并进行几何简化,原理类似笔者之前所著的《对六自由度机械臂的运动控制及python实现(附源码)》https://mp.csdn.net/mp_blog/creation/editor/119819623,同时,绕开机器人传统复杂的空间变换矩阵运算,利用初中几何知识对机器人逆解算法进行推导。
(下)uarm机械臂运动控制程序的python实现
本节根据上节得到的逆解算式,用python、面向对象等知识,进行uarm控制程序的编程。为《python——VREP数字孪生四轴机械臂联合仿真》提供核心控制算法。

2 uarm机械臂的结构分析及逆解算式推导

2.1 uarm机械臂的结构分析

如下图所示,uarm机械臂是一个有四个旋转轴的机械臂,在工业制造领域有着非常广泛的应用,常用于产品的码垛、搬运等:


下面我们对uarm进行几何解析,首先看一张俯视图:

(1)俯视——水平面的运动投影

在vrep环境里面,所定义的坐标系为机械臂初始位置俯视投影在x轴轴上,机械臂的左侧为y轴正方向。其它轴不变,只是运动轴J1,则机械臂在x-y平面内做旋转运动,如果改变J2、J3的角度,在俯视图看来,投影的臂长L或增加或缩短,简化如下图所示:

(2)侧视——垂直平面的运动投影

这里所说的“侧视”投影面,是需要想象出来的,它是指机械臂左侧正对着L-Z平面看到的机械臂的投影,如下图:

我们的下面的算法将在这个面进行解析,我们通过绘制机械臂的主要机构,对这个机械臂的运动特点进行分析,画出如下稍微简单的结构:

上图可以看到,其实这个机械臂在侧视平面内的运动,是通过改变两根红色臂杆L1、Lq的旋转带动末端(或抓具)运动的,两根驱动的杆子又分别是两个电机J2、J3来驱动的。如下图:

上图把机械臂主要的部分“扣”了出来,左上角画出了只转动臂杆L1时出现的状态,可见,在一定的驱动杆Lq位置固定下,运动是有位置限制的(边界的),我们在python实现的时候要注意这一点,以免超出边界还再给电机发送指令导致电机过载(仿真环境还好,在实际机械臂中容易发生),运动L1后,机械臂的前后运动为主方向,变化比较大,相对地,上下运动为次要方向,变化幅度小。;同样的,右边是固定L1时,改变Lq,可以使机械臂末端主要进行上下运动,同样也存在边界状态。
以上是uarm机械臂的运动特点,需要注意的是,它还有一个连杆机构,如下图(红圈),其目的是使机械臂的末端抓具始终垂直于水平面,这是一个隐含条件:

最后,我们可以将机械臂侧视投影简化为(下图所示):由6跟杆组成包括(Lg、L0、L1、L2、L3、L4)、三个转轴(或关节,包括J1、J2、J3)的一个连杆结构,同时受到隐形的约束,抓具必须始终保持垂直状态。
Ps:此处去掉了对轴J4的考虑,因为我们用的是吸头,它的角度改变实际是没有用的。

2.2 uarm机械臂逆解公式推导

问题描述:
已知目标物体中心相对机械臂的位置坐标(x,y,z),求抓取该物体,所需的机械臂各旋转关节的角度各是多少(J1,J2,J3)?
求解问题得流程如下两步:

至此,当我们知道目标物体得坐标时(x,y,z),我们就可以通过以上的初高中几何知识计算出控制uarm机械臂的三个轴的角度值(J1,J2,J3)从而将机械臂的抓手送至目标位置,实现准确的抓取动作。

下一篇,我们将从0开始一步一步根据uarm的具体结构和参数,构建控制uram抓取的python核心算法程序

python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(上)相关推荐

  1. python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(下)

    目录 1 概要 2 uarm机械臂运动控制程序的python实现 2.1机械结构的python表达 2.2 逆解算法的python表达 2.2.1 俯视图根据目标点(x,y)计算J1,L 2.2.2 ...

  2. MATLAB机器人机械臂运动学正逆解、动力学建模仿真与轨迹规划

    MATLAB机器人机械臂运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解.蒙特卡洛采样画出末端执行器工作空间 基于时间最优的改进粒子群优化算法机械臂轨迹规划设计 ID:4610679190520 ...

  3. 多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试

    多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试 ) DH建模法可以参考这个博客: 还有<机器人>这本书,一定要理论实践相结合,理解后可以用几何法建模也可以用 ...

  4. 【机器人学】冗余七自由度机械臂的解析解逆解算法

    冗余七自由度机械臂的解析解逆解算法 参考 论文一 论文二 参考 -[1] An Analytical Solution for a Redundant Manipulator with Seven D ...

  5. Parallel Platform (Stewart Platform) 类型机械臂的正逆解 01

    并联机器人相对于串联机器人有着不同的应用场景.本文主要是基于并联机械臂的基础控制算法做一些阐述.对于机械臂的架构通讯方式(RS232 RS485 Canbus Modbus),结构设计(球关节,uni ...

  6. 和ur的区别_UR机械臂simscape正逆解仿真

    最近在看相关的课程,把作业做一下,还是蛮有意思的.(课程代码所以涉及版权问题,经过同意后我上传代码) UR机械臂的物理模型文件是根据SolidWorks插件simscape导出的xml文件,课程直接提 ...

  7. UR机械臂simscape正逆解仿真

    最近在看相关的课程,把作业做一下,还是蛮有意思的. UR机械臂的物理模型文件是根据SolidWorks插件simscape导出的xml文件,课程直接提供的,博客不便给出,清楚整个建模原理就行.但个人还 ...

  8. ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(3)

    在上一节已经进行了UR3机械臂的运动规划仿真,这一节就进行真实的UR3机械臂运动控制. 1. 电脑和UR3机械臂连接配置 在启动UR3机械臂后,笔记本电脑通过网线连接UR3的控制箱,此时需要配置网络连 ...

  9. python机器人编程——在VREP环境中,UARM与摄像头联动,实现基于视觉识别的自动抓取,垃圾自动分类(上)

    目录 前言 在VREP中加入视觉传感,用python侧获取图像 在VREP中布置垃圾分类场景 Step1:用三维软件造模型 Step2:导入到vrep Step3:关联shap.调整位置及贴图 测试一 ...

最新文章

  1. pandas使用query函数查询指定日期索引之间对应的dataframe数据行(select rows date index between a certain date interval)
  2. 架构模式:MVC与MVVM
  3. Spark2.1.0之内置RPC框架
  4. Segment Routing — SRv6 — 统一的 SDN 控制面与数据面
  5. 简单的文本片段替换器
  6. TensorFlow读取MNIST数据集错误的问题
  7. 动态加载Fbx模型文件
  8. Java中Object转Map类型,Map转Object类型
  9. lazy-load-img.js 源码 学习笔记及原理说明
  10. HNUCM-1435 最大最小值(分治法)
  11. 施工员简历英语计算机水平,土建施工员电子版英文简历模板
  12. unity 裙子摆动_【Unity Shader】摇摆的小草——顶点动画
  13. echarts的饼图制作分析
  14. Android自定义Activity切换动画完全解析
  15. Android 方向感应器实现指南针
  16. html5个人收藏页面,safari个人收藏全不见 大侠不过一剑之遥是倚天的新版本吗?...
  17. win10 软件安装出现错误代码 2502/2503
  18. 教你三种照片风格处理教程,秒变女神
  19. 计算机谈音乐南山南,马頔:从《南山南》到《是首俗歌》,恰是我们难以言表的流年...
  20. JAVA资深架构师成长路线-架构师筑基必备技能-深入Tomcat底层

热门文章

  1. 小程序兼容苹果底部安全距离
  2. php弹幕,PHP直播源码,实现简单弹幕效果
  3. 【LeetCode第59题】长舒一口气,终于学会了这苦涩难懂的 螺旋矩阵II
  4. C1073 涉及增量编译的内部错误(编译器文件“d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl
  5. 一篇文章带你玩转C语言基础语法。2:数据类型。千字总结
  6. 卸载idea步骤(快速彻底)
  7. 手机收发邮件简单实现?注册163电子邮箱今天圆梦
  8. 电功率与力功率的学习
  9. [C]循环语句(5/7)→ 用do……while语句循环
  10. camera驱动电源配置_Camera driverV4L2驱动架构介绍