3轴机器人各关节运动学建立,python编程,非常容易理解

分类:机器人学

一、问题描述

  如右图所示的三自由度机械臂,关节1和关节2相互垂直,关节2和关节3相互平行。如图所示,所有关节均处于初始状态。   要求: (1) 定义并标注出各关节的正方向; (2) 定义机器人基坐标系{0}及连杆坐标系{1},{2},{3}; (3) 求变换矩阵 , , ; (4) 根据末端腕部位置 (x, y, z) 返求出对应关节 , , ; (5) 利用软件绘制出机器人模型的三维点线图,并控制机器人腕部沿半径r=0.1的圆弧运动.  

 

二、任务求解

2.1建立坐标系

 

 

2.2 变换矩阵

2.2.1 变换求解

  (1)连杆坐标系{1}——基坐标系{0}   原点重合,可绕z轴任意旋转  

  (2)连杆坐标系{2}——连杆坐标系{1} 先绕x轴旋转90°,再绕新得到的y轴旋转90°,然后沿新得到的y轴平移 ,最后得到的坐标系可绕z轴任意旋转    3)连杆坐标系{3}——连杆坐标系{2}   绕z轴旋转-90°,再沿新得到的y轴平移 ,最后得到的坐标系可绕z轴任意旋转   

2.2.2 物理意义求解

  变换矩阵的前三列,每列值对应的数为变换坐标系的坐标轴x、y、z在基坐标系中的坐标位置,第四列为变换坐标系的原点在基坐标系中的坐标位置,第四行为齐次补行数据,则可根据坐标系的位置直接列出下式:  

  可见,两种方式的结果表达式一致。

2.2.3 变换矩阵终解

 

 

2.3 逆运动学求解

2.3.1 矩阵逆推导

  由连杆坐标系{3}到基座坐标系{0}的齐次矩阵可以表示为  

  末端执行器的位置在基座坐标系{0}中的描述为    末端执行器的位置在基座坐标系{0}中的描述为    关系为:    根据矩阵对应元素相等,由MATLAB计算可得可得下面等式:  

x=-(7*cos(a2)*sin(a1))/25-(7*cos(a2)*sin(a1)*sin(a3))/20(7*cos(a3)*
sin(a1)*sin(a2))/20
y=(7*cos(a1)*cos(a2))/25+(7*cos(a1)*cos(a2)*sin(a3))/20+(7*cos(a1)*cos(a3)*sin(a2))/20
z=(7*sin(a2))/25 + (7*sin(a2)*sin(a3))/20 - (7*cos(a2)*cos(a3))/20 + 47/100

由  

  则:    由对应元素相等,得:

(x*cos(a1))/(cos(a1)^2 + sin(a1)^2) + (y*sin(a1))/(cos(a1)^2 + sin(a1)^2)=0(y*cos(a1))/(cos(a1)^2 + sin(a1)^2) - (x*sin(a1))/(cos(a1)^2 + sin(a1)^2)=(7*cos(a2))/25+(7*cos(a2)*sin(a3))/20+(7*cos(a3)*sin(a2))/20z=(7*sin(a2))/25 + (7*sin(a2)*sin(a3))/20 - (7*cos(a2)*cos(a3))/20 + 47/100

  综上可得,  

 

2.3.2 几何推导

  在x0y平面,将末端执行器的轨迹投影到该平面,蓝色表示原位置,橘色代表移动后的位置,黑色坐标系为基坐标系,如下图:  

  由图易见, 为末端执行器投影到xoy平面x与y的夹角,(逆时针为正),    在y0z平面,将末端执行器的轨迹投影到该平面,蓝色表示原位置,橘色代表移动后的位置,黑色坐标系为基坐标系,如下图:       将末端执行器的轨迹投影到下图所示平面,蓝色表示原位置,橘色代表移动后的位置,黑色坐标系为基坐标系,如下图:    构建直角三角形,可得:    综上,得各关节角与坐标位置的关系为:   

三、D-H模型法求解

3.1 坐标系建立

  0号杆件固连在基座上,建立基坐标系  

 

3.2 D-H参数

 

 

3.3 各关节变换矩阵

  若已知四个参数就完全确定了两连杆之间的相对关系。对此,我们建立基坐标系和连杆运动坐标系之间的变换关系。对于旋转关节可以确定以下的齐次矩阵   即先绕x轴旋转,  

  然后沿x轴移动,再沿基坐标系的z轴移动d,最后绕z轴旋转   将参数代入上式,由此可以得到各关节变换矩阵   

3.4 求逆变换

  同2.3.1  

四、软件仿真

4.1 程序代码

  用软件python(x,y)编写代码,如下:  

 

4.2 仿真结果

 

运动学建模仿真Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win 10 源码一览:0.5T 代码、400 万文件、50 万文件夹

Windows 操作系统本身是不开源的,但是近日微软内核工程师 Axel Rietschin 发表了一篇博客,带大家一窥了 Windows 10 内核的魅力。 Axel 介绍,Windows 10 与 Windows 8.x、7、Vista、XP、2000 和 NT 的代码库是相同的,其中每一代都…

JDK+Tomcat搭建JSP运行环境--JSP基础

一、搭建JSP运行环境之前需要了解的基本知识 配置JSP运行环境之前,我们需要了解JSP的运行机制。只有了解JSP运行机制后,我们才能知道为什么要搭建JSP运行环境?如何去搭建JSP运行环境?为什么要配置Tomcat、JDK? JSP(Java Sever Page)即Java服…

Docker容器的自动化监控实现

本文由 网易云 发布。 近年来容器技术不断成熟并得到应用。Docker作为容器技术的一个代表,目前也在快速发展中,基于 Docker的各种应用也正在普及,与此同时 Docker对传统的运维体系也带来了冲击。我们在建设运维平台的过程中,也需…

人工智能实战小程序之语音_前端开发

1. 人工智能实战小程序之准备工作 2. 人工智能实战小程序之语音_前端开发 今天这部分主要讲小程序前端功能的开发由于我偏后端,css是我的弱项,可能很多人和我一样开发小程序不知道如何下手,希望本篇文章对你有帮助我的学习路线是:…

当TFS/VSTS遇上Power BI

引言众所周知,要对TFS进行深入的图表分析,往往需要依赖于SQL Server Analysis Service和SQL Server Reporting Service。虽然随着TFS对敏捷项目的支持,内置了诸如累积流图、燃尽图等快捷图表;并且在最新的版本中还可以在仪表盘和查…

HashMap深度解析:一文让你彻底了解HashMap

写在前面HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后&#…

python_线程、进程和协程

线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。 1 #!/usr/bin/env python2 #codingutf-83 __author__ yinjia4 5 6 import threading,time7 8 def show(arg):9 time.sleep(2) 10 print(线程: str(arg)) 11 12 for i in range(…

第四章:手机平板要兼顾-探究碎片

碎片是什么? 碎片(Fragment)是一种可以嵌入在活动(Activity)中的 UI 片段,它能让程序更加合理和充分的利用大屏幕的空间,因而在平板上应用的非常广泛。 碎片的使用方式 静态嵌入动态加载碎片和活…

Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源

经过6个月的开发时间,网络大厂17日发布了最新版的App开发IDE Android Studio 3.4,现在就能够下载使用,除了有超过300个错误修护和稳定度增强之外,在开发、建置和测试App阶段,都推出了一些小的新功能和工具,…

[IoC容器Unity]第三回:依赖注入

上节介绍了,Unity的Lifetime Managers生命周期,Unity具体实现依赖注入包含构造函数注入、属性注入、方法注入,所谓注入相当赋值,下面一个一个来介绍。 2.构造函数注入 Unity利用Resolve方法解析一个对象,都是调用注册类…

Apache CarbonData 1.5.0编译及安装

2019独角兽企业重金招聘Python工程师标准>>> 一、编译环境描述 OpenStack创建五个虚拟机,其中1个主节点(hostname为bigdatamaster),4个从节点(hostname分别为,bigdataslave1、bigdataslave2、bi…

Filter介绍

Filter 可认为是 Servlet的一种 “ 加强版 ”,它主要用于对用户请求进行预处理, 也可以对HttpServletResponse 进行后处理,是个典型的处理链。Filter 也可对用户请求生成响应,这一 点与Servlet 相同, 但实际上很少会使…

python --- 二分查找算法

二分查找法:在我的理解中这个查找方法为什么会叫二分呢,我认为是将要查询的一个列表分成了两份,然后在利用某个值来进行比较,在一个不断循环的过程中来找出我们要找的某一个值。 废话不多说,先上代码: 1 de…

Java暑假作业

一.《大护法》观影有感 ... 从预告开始就期待着这部影片,在看过一遍后又忍不住二刷,影片观看至第二遍后,对于全片的脉络也更清晰了一点,虽然打着暴力美学的旗子,但《大护法》偏偏更文艺一些。文艺片是没有对错的&a…

使用EasyNetQ组件操作RabbitMQ消息队列服务

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,…

TensorFlow 1.12.2 发布,修复 GIF 构造安全漏洞

开发四年只会写业务代码,分布式高并发都不会还做程序员? TensorFlow 1.12.2 发布了,此处本修复了一个潜在的安全漏洞: 精心设计的 GIF 图像可以在解码过程中产生空指针解引用更新说明: https://github.com/tensorflo…

对象变为指定格式的数组

拿到的对象的格式(一个对象里面都好多属性) 想要转换成的数据格式(一个数组里面有好多个对象,每个对象有一个id和name的属性) 如何处理的 selectionChange(val) { // 列表选择var dynamicTags1 [];var arr[]for(var i…

mysql学习(2)索引的本质

2019独角兽企业重金招聘Python工程师标准>>> 问题:SQL查询慢怎么办? 优化手段,加索引。 索引是帮助MYSQL高效的获取数据的排好序的数据结构。 问题:索引结构为什么使用Btree而不使用二叉树,红黑树或者HASH结…

CSS3:CSS3 文本效果

ylbtech-CSS3:CSS3 文本效果1.返回顶部 1、CSS3 文本效果 CSS3 文本效果 CSS3中包含几个新的文本特征。 在本章中您将了解以下文本属性: text-shadowbox-shadowtext-overflowword-wrapword-break浏览器支持 属性 text-shadow4.010.03.54.09.5box-sha…

洛谷 P2296 寻找道路

题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。 2 .在满足…