六自由度机器人逆向运动学_【课程笔记】Notes for Robotics/机器人学 (Part1)

5ce806bfe677d62090565a683fbade65.png

之前打ICRA2018的Tidy Up My Room challenge的时候就已经接触了一些机器人学的内容,不过以偏应用的ROS,轨迹规划,控制居多,对于机械臂和力学确实了解的不多,这学期选了ME300,恶补了一些机械臂的知识,笔记部分内容直接copy自老师ppt,部分内容是自己总结的,我看的两本机器人学教材:

【1】《Introduction to Robotics: Mechanics and Control (4th Edition)》 John J. Craig

【2】《机器人学:建模、控制与视觉》熊有伦 华中科技大学出版社

头图来自minori的机器人学游戏《トリノライン》,参考【百度百科】 【bangumi】


一、机器人的总体和机械结构设计

基本组成:机械部分、传感部分、控制部分

机器人自由度:机器人所具有的独立坐标轴运动的数目。构件所具有的独立运动数目(或确定构件位置的独立参变量的数目)。

开链机构:工作空间大,刚性小,如PUMA562机器人

闭环机构:刚度大,工作空间受限,如Stewart机构 Grubler公式:

其中 n-关节总数,l-连杆数,

-第i个关节自由度数,F-自由度数

其它基本参数:机器人精度、工作范围、最大工作速度、承载能力

机器人的总体设计:确定基本参数、选择运动方式、手臂配置形式、位置检测、驱动和控制方式等。(结构设计时,对各部件的刚度、强度做验算。)

驱动方式:液压(大负载),气动(节拍快),电动(动作复杂/轨迹严格)

传动部件设计:关节-转动关节(Rotary Joint)/ 移动关节(Slide Joint)

二、位姿描述和齐次变换

位姿:位+姿,刚体相对参考点的位置和刚体的姿态,描述方法-齐次变换/矢量/旋量/四元素

位置的描述-位置矢量,空间任意点P的位置

姿态的描述-旋转矩阵,n参考坐标系{A} 、直角坐标系{B}与刚体固接,用{B}的三个主单位矢量xB/yB/zB相对于{A}的方向余弦组成的矩阵,表示刚体B相对于坐标系{A}的方位。

旋转矩阵是3x3的方阵,但实际上只有3个独立元素,可以用旋转矩阵的两个性质建立:

1.三个矢量是单位矢量:

2.三个矢量相互垂直:

刚体的位姿描述:位置+姿态

a315bd01b50ca77ed336aaf4a5a776d2.png

手爪坐标系:

a:手指接近目标物体的方向为z轴,称为接近矢量。

o:两手指连线方向为y轴,称为方位矢量。

n:另外一个矢量反向由右手法则确定,称为法向矢量

坐标变换:平移

旋转:

绕单轴旋转的基本旋转矩阵:

齐次坐标:用四维向量表示三维空间一点的位置P,称为点的齐次坐标

机器人学中的齐次坐标: ω=1

齐次变换矩阵:

R-旋转矩阵 P-位置向量 f-透视向量,一般取[0,0,0]

齐次变换

,则
,相比
变成了齐次

齐次变换可以分解成旋转变换和平移变换:

平移:

旋转:

齐次复合变换的规则:相对固定坐标系变换矩阵左乘,相对变化坐标系右乘

齐次变换求逆,运用性质:

欧拉法:设最初坐标系{B}与参考系{A}重合,首先使{B}绕zB转α角,继而绕yB转β角,最后绕zB转γ角,α-β-γ称为z-y-z欧拉角,这种描述刚体相对坐标系{A}方位的方法称为欧拉法。

c64c3800d353918022eace85be295240.png

RPY角/RPY变换:nRPY角是描述船舶在海中航行姿态常用的一种方法,船的行驶方向为z轴,绕z轴的旋转角α称为回转(Roll),绕y轴的旋转角β称为俯仰(Pitch),绕x轴的旋转角γ称为偏转(Yaw)。n设最初坐标系{B}与参考系{A}重合,首先使{B}绕xA转γ角,继而绕yA转β角,最后绕zA轴转α角,α、β、γ称为RPY角。

373f9845bc64a4a41fef5d957168f637.png

两类矢量:

  1. 自由矢量:由维数、大小和方向三要素唯一规定,例如速度、力矩。变换仅涉及旋转变换
  2. 线矢量:维数、大小、方向、作用线四要素唯一规定,例如力。变换旋量法 参考“Kinematics Geometry of mechanisms”

三、操作臂运动学

研究对象:手臂各连杆之间的位移关系、速度关系和加速度关系。

研究目的:寻找相邻连杆之间的运动与任意连杆之间的运动之间的关系。

研究方法:在每个连杆上固接一个坐标系,然后描述这些坐标系之间的关系(D-H齐次变换)

关节:转动关节(Rotary joint)/移动关节(Prismatic joint)

连杆i ( i=1,2,…n,n为机器人含有关节数目,即机器人自由度数)两端有关节i 和 i+1,在驱动装置带动下,连杆将绕或沿关节轴线,相对于前一临近连杆转动或移动。

连杆的尺寸参数:长度

:两关节轴线沿公垂线距离/扭角
:两轴线夹角

连杆的关系参数:偏置

:沿关节i轴线方向,两个公垂线(轴线(i-1)及轴线i, 轴线i及轴线(i+1))之间的距离 / 关节角
:垂直于关节轴线的平面内,关节轴线i-1和i的公垂线与关节轴线i和i+1的公垂线之间的夹角

机器人每个连杆由四个参数ai、αi、di、θi来描述,称为机器人D-H坐标法。(因为提出者是Denavit和Hartenberg~)

转动连杆的D-H变换:绕zi-1轴转θi角->沿zi-1轴移动di->沿xi轴移动ai->绕xi轴转αi

移动连杆的D-H变换:

机器人运动学方程:将机器人位姿从关节空间变换为直角坐标空间描述,求机器人末端操作装置的位姿->机器人运动学正解。

机器人运动学逆解:给定机器人终端位姿,求各关节变量,也称为机器人逆运动学问题,包括存在性、唯一性及解法。一般方法:求机器人运动学逆解常采用臂腕分离的方法,机器人运动学方程包括臂运动及腕运动。机器人总位移为臂终端相对基座的位移加上终端操作装置中心相对臂终端的位移(均在基坐标系中)。机器人关节变量也分臂、腕两部分求解。


四、操作臂的雅可比

这部分真的挺难的,在用微分运动引入雅可比的时候对于不同坐标系微分运动的变换不太好理解,建议着重看怎么用矢量积法来构造雅可比矩阵就好,微分变换记结论。

关节空间->操作空间:运动学正解 操作空间->关节空间:运动学逆解

雅克比矩阵:研究操作空间速度与关节空间速度之间的线性映射关系

机器人的关节速度向量

qi为连杆i相对于
i-1的角速度或线速度

手爪在基坐标系中的广义速度向量:

v为线速度,w为角速度,从关节空间速度q向操作空间速度V映射的线性关系称为雅可比矩阵,简称Jacobian,记为J:

雅可比矩阵(Jacobian) J:定义为从关节空间速度向操作空间速度V映射的线性关系

微分运动:微分移动+微分转动,

R是旋转矩阵,S(P)为矢量P=[px,py,pz]T的反对称矩阵。

任意两坐标系{A}和{B}之间广义速度的坐标变换:

构造方法:矢量积/微分变换

1.矢量积法:对于有n个关节的机器人,雅可比矩阵为6×n阶矩阵,前三行为位置雅可比矩阵,代表对手爪线速度v的传递比,后三行为方位矩阵,代表相应的关节速度对手爪角速度的传递比。可得分块雅可比矩阵:

1ae36e945e041947a6973d9507511545.png

对于移动关节

转动关节

其中

2.微分变换法(记结论就好,过程有点麻烦):

移动关节

转动关节

逆雅克比矩阵:若给定机器人终端手爪的广义速度向量V们可以解出关节速度

逆雅可比矩阵求解:利用逆运动学问题的解,直接对其微分来求J-1,对于带球面腕的机器人可用臂腕分离来求J-1 。当J不是方阵时,不存在J-1,可用广义逆(伪逆)雅可比矩阵来确定关节速度向量。超定-最小方差/欠定-拉格朗日乘子法

雅可比的秩不是满秩的关节矢量q称为奇异形位,即: rank(J(q))<min(6,n)。相应的操作空间中的点P(q)为工作空间的奇异点,此时机器人至少丧失一个自由度,常称机器人处于退化位置。

力雅克比:末端广义力矢量:机器人与外界环境相互作用时,在接触处要产生力f和力矩n,统称为末端广义力矢量。

静止状态下,广义力矢量F应与与各关节的驱动力(或力矩)相平衡,n个关节的驱动力(或力矩)组成的n维矢量:

根据各关节作的虚功之和与末端执行器所作虚功应该相等原则有:

机器人力雅可比:表示静止平衡状态下,末端广义力向关节力映射的线性关系。两坐标系{A}和{B}之间广义操作力的坐标变换关系:

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

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

相关文章

欧美剧集观看最佳索引 US SHOWS GUIDE 【2005-12-27 转verycd】

原文地址 http://bbs.verycd.com/topics/230847/中文名称&#xff1a;欧美剧集观看最佳索引英文名称&#xff1a;US TV SHOWS GUIDE别名&#xff1a;欧美剧集观看最佳索引版本&#xff1a; 2005-2006导演&#xff1a;US TV SHOWS GUIDE演员&#xff1a;US TV SHOWS GUIDE简介&a…

binlog日志_【删库跑路】使用Binlog日志恢复误删的MySQL数据

前言“删库跑路”是程序员经常谈起的话题&#xff0c;今天&#xff0c;我就要教大家如何删&#xff01;库&#xff01;跑&#xff01;路&#xff01;开个玩笑&#xff0c;今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复&#xff0c;读完本文&#xff0c;你…

Java并发编程笔记之ThreadLocal内存泄漏探究

使用 ThreadLocal 不当可能会导致内存泄露&#xff0c;是什么原因导致的内存泄漏呢&#xff1f; 我们首先看一个例子&#xff0c;代码如下&#xff1a; /*** Created by cong on 2018/7/14.*/ public class ThreadLocalOutOfMemoryTest {static class LocalVariable {private L…

Res协议,专题

打造完美的&#xff29;&#xff25;网页木马 发表&#xff1a;2004-5-20 19:41:00 出处&#xff1a;你的博客网(yourblog.org) 打造完美的&#xff29;&#xff25;网页木马 icyfox &#xff08;测试页面:http://www.godog.y365.com/runexe/icyfox.htm&#xff0c;此处所…

springboot中获取bean_最新Spring Boot干货总结(超详细,建议收藏)

前言&#xff1a;本文非常长&#xff0c;建议先mark后看&#xff0c;也许是最后一次写这么长的文章说明&#xff1a;前面有4个小节关于Spring的基础知识分别是&#xff1a;IOC容器、JavaConfig、事件监听、SpringFactoriesLoader详解它们占据了本文的大部分内容&#xff1a;虽然…

python全栈学习总结三:函数学习

一函数基本概念 1 函数定义 def 函数名&#xff08;参数1&#xff0c;参数2&#xff0c;参数3&#xff0c;......&#xff09;: """ 功能&#xff1a; 参数1&#xff1a; 参数2&#xff1a; 参数3&#xff1a; ...... 返回值&#xff1a; """ 函…

街机模拟器联网简谈

Kawaks联网教程现在大多数模拟器的联网功能主要是靠"kaillera"来实现的,要想实现联网玩游戏,你必须有一个kaillera的客户端和一个服务器端的程序,客户端现在大多在模拟器中自带,而服务器端则是一个单独的程序.kaillera有多种操作系统,而大多是在windows下,好了废话不…

freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5

最近因为工作需要用到FreeRTOS&#xff0c;其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程&#xff0c;但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的&#xff0c;这个道理就像公司内心深处不想给你涨工资一样。好了跑偏了言…

破解静态WEP KEY全过程

破解静态WEP KEY全过程广州卓讯盟科技有限公司 黄超毅Email:huangchaoyigzpia.com/demonalexdark2s.org发现首先通过NetStumbler确认客户端已在某AP的覆盖区内&#xff0c;并通过AP信号的参数进行‘踩点’&#xff08;数据搜集&#xff09;。NetStumbler 下载地址 http://www.n…

apicloud项目怎么运行_Spring Boot教程(3) – 运行第一个项目

把项目运行起来是极具成就感的事情&#xff0c;不管是在学习新语言还是新框架的过程中。上一篇文章说明了如何使用Spring Initializr和IDE来创建项目&#xff0c;下面就看看项目能不能跑起来&#xff0c;我们通过IDE和命令行&#xff0c;直观地理解框架的作用。先来一张Intelli…

Matlab从入门到精通 Chapter5 数据可视化

5-1 图形绘制示例 >> x2-17:0.02:3;>> y21./((x23).^21)1./((x29).^24)5; >> subplot(2,2,2);>> plot(x2,y2,rp);>> axis([-17 3 5 6.5]);>> title(figure2);>> grid on subplot 子图表绘制函数 默认情况下&#xff0c;plot函数将绘…

破解WEP密钥过程全解 (下)

三、实战破解过程1、用Kismet进行网络探测Kismet是一个基于Linux的无线网络扫描程序&#xff0c;这是一个相当方便的工具&#xff0c;通过测量周围的无线信号来找到目标WLAN。虽说Kismet也可以捕获网络上的数据通信&#xff0c;但在还有其他更好的工具使用(如Airodump)&#xf…

mpAndroidchart 坐标和图表距离_【玩转图表系列】六步,美化你的图表,让老板刮目相看!...

近期隆重推出图表分析系列&#xff0c;包括销售分析、盈亏分析、费用分析、趋势分析、进度分析等&#xff0c;通过双坐标图、甘特图、瀑布图、双层饼图等系列图表精美展现&#xff0c;专业高效&#xff0c;让你从初级学到高级、从小白跨越专业。今天开启我们邦邦财玩转图表第一…

SpringBoot+FreeMarker开发word文档下载,预览

背景&#xff1a; 开发一个根据模版&#xff0c;自动填充用户数据并下载word文档的功能 使用freemarker进行定义模版&#xff0c;然后把数据进行填充。 maven依赖&#xff1a; <parent> <groupId>org.springframework.boot</groupId> <artifactId>…

使用 IPsec 与组策略隔离服务器和域-第 7 章 IPsec 疑难解答

本章提供有关如何对 Internet 协议安全性 (IPsec) 问题&#xff08;如服务器和域隔离方案中的安全性问题&#xff09;进行疑难解答的信息&#xff0c;这些信息依赖于 Microsoft 信息技术 (IT) 小组的经验和方法。 在有可能的时候&#xff0c;本章将引用现有的 Microsoft 疑难解…

python 在gui中显示logging_如何在GUI中显示print()的输出python

有几种方法可以显示tkiner中的任何操作的结果。 您可以使用Label,Entry,Text&#xff0c;甚至弹出消息框。还有其他一些选择&#xff0c;但这些可能会是你正在寻找的。 看看下面的例子。 我有一个简单的添加程序&#xff0c;将采取2个数字并将它们添加在一起。它将显示每种字段…

用批处理实现文本文件中指定字符串的替换 zz

主题 用批处理实现文本文件中指定字符串的替换 上一主题 | 下一主题 uglyfrog 发表于&#xff1a;2005-03-02 02:50 回复发帖&#xff1a; 249积分&#xff1a; 0注册&#xff1a; 2001-12-30其实批处理也可以干很多事的&#xff0c;下面的批处理文件实现了对指定目录下的特定…

单片机的单个IO口可以发送数据吗_关于51单片机各个引脚它的功能你了解多少?...

对于40引脚双列直插51单片机各个引脚功能情况分析。P0端口一默认是开漏准双向IO口&#xff0c;没有输出没有驱动能力&#xff0c;要做逻辑输出要在外部接上拉电阻。P0端口除了作为普通的输入输出功能&#xff0c;还可以用来当做数据总线接口或者地址总线&#xff0c;当外面扩展…

Spring-Boot——Cache

简单使用 1. maven 依赖 2. 开启缓存配置 在启动类上开启缓存 EnableCaching 3. 使用缓存 Cacheable 是将方法的返回值保存到缓存中CachePut 是根据key更新缓存中的数据CacheEvict 是根据key删除缓存数据 Cacheable(cacheNames {"emp"}, key "#id") publ…

awk中文手册

awk中文手册下载&#xff1a;http://www.klabaster.com/freeware.htm#mawk1. awk简介awk 是一种编程语言&#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件&#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进…