由于工作的关系,一年前开始接触机械臂。与此同时也在学习【现代机器人学】与【机器人学导论】两本书,感觉【现代机器人学】写的更好一些。大致走马观花的看了一遍,确实有所收获。因此想再从头过一遍,做一些总结,写给自己,查漏补缺。

这个系列我会很快把它更新完毕。生命在于学习,尤其学习这种能很快变现成人民币的知识,学起来尤有动力,哈哈。

半路出家,才疏学浅,专业的人士读到,望不吝指正!


自由度

刚体自由度

硬币有6个自由度,直观上讲它的圆心可以出现在3维空间的任何一个位置,因此xyz三个维度可以变化。另外它还可以建立坐标系,可以绕三个轴旋转,因此是6个。

从约束的角度看,硬币上一个点A,可以在任意位置,因此有3个自由度。第二个点B,多了一个到A的距离约束(因为是刚体,AB距离限制住了),所以B只有2个自由度。第三个点C,和A,B都有约束,只有1个自由度。再来一个点D,已经提供不了自由度了,所以三维空间刚体自由度是3+2+1=6。

同理N维空间,也是第一个点提供N个,第二个点提供N-1个,一直到新增的点完全提供不了自由度的时候,就可以唯一确定N维空间中刚体的位形了。所以是N+N-1 + N-2 ....+1=n(n+1)/2。

机器人自由度

机器人的关节主要有常见的转动副R移动副P,这俩一个负责转,一个负责移动,都是只有一个自由度。此外还有圆柱副C,既可以转,又可以沿轴平移,因此是两个自由度。

稍微不常见的有:螺旋副H,它可以转,但是转的时候又伴随着沿轴的运动,有点像螺丝钉,这种是一个自由度。

万向节(虎克铰)U,两个轴正交,然后都可以沿轴旋转,有两个自由度。

球铰S,三个自由度,像肩部关节。


关节的表示形式有很多种,因此看图的时候不需要记长相,只要看它符合哪一种定义。

算自由度的方法有两种:

1.Grubler公式:

平面机构m=2,空间机构m=3。

N为把地面算在内的body数,J为关节数。后面的求和,则是所有关节提供的自由度。

实际上这个公式很不直观,尽管书里似乎推荐这样算。它是由别的公式推导来的,相比来说更加直观,业内的工程师一般通过这种方式来算:

2.刚体提供自由度,关节丢失自由度。

机器人自由度=刚体提供的自由度-关节丢失的自由度(关节约束)

因为地面提供不了任何自由度,因此除了地面以外,它有几个连杆,就提供对应的自由度。例如空间中5个连杆,就提供5*6=30个自由度。而上面有5个关节,如果每个都是R关节,R关节只有1个自由度,所以每引入一个R关节,机器人就丢失5个自由度,一共丢失5*5=25个自由度。所以这个机器人自由度就是30-25=5个自由度。

1.串联机器人,几个关节就是几个自由度。

2.对于并联机器人,算自由度主要有几个原则:

(1)两杆决定一个关节。

  • 在判断谁是连杆,谁是关节,以及关节有几个自由度的时候,就要坚持这个原则。对于看起来比较复杂的关节,要么它是有着多个自由度的一个关节,两边是连杆;要么它是好几个只有1个自由度的关节重合在一起,互相之间有看不见的连杆进行连接。
  • 如果有多个连杆重叠在一个关节上,那么这个关节实际上就不只有一个。例如3个body拴在一个R关节上,那么这里其实有两个R关节。

(2)Grubler公式提供的自由度实际上算出来的是自由度的下限值。因为并联机器人(闭链机器人)可能存在冗余。这属于并联机器人位形空间奇异的问题。【后续补充链接上来。】

拓扑与表达

拓扑等效:两个平面不采用切割和粘结的方式,从一共平面连续变化到另一个平面,就拓扑等效。

直线变不成圆(因为需要黏结)

平面变不成圆柱,变不成球,也变不成环,这种都是拓扑不等效。

一般E表示空间中平面,S表示空间中球,T表示空间中的环。

笛卡尔积x 则主要可以把低维空间的S合并成T,例如S1 x S1=T2。(注意这里,只能用S1进行合并,S3 x S1 可不能合成T4。)

一维空间的S是圆,它的取值范围是从0到2pi,并且又转回0。而T2代表二维空间的环,环从两个维度看,依然是从0到2pi又转回0。

但是S不能合并成S,比如二维空间的球,得通过经度和纬度来定义它上面的任意一点,经度固然可以绕一圈回到0,但是纬度的0是在赤道,在北极(北纬90度),不可能回到0,也不可能跳到南纬90度的南极,因此和环是不同的结构。

那为什么不能把南极当成0,然后转一圈,不是也是可以回到0吗?

这种理解不对,因为你活动在球面,而不是在两个垂直的圆上,球面其他部位,总有一个圆的半径是变化的。因此其实坐标轴的原点已经变化了,因此不能用这种理解。

这都是一些简单的拓扑学基础内容,我暂时在工业上也不知道它有什么用。(不过也许我还没有到用它的程度,仅做记录,后续如果知道具体用途了,在这补充。)


完整约束与非完整约束

这个东西说起来看似很复杂,其实也不难理解。

k个公式,n个变量,公式小于变量,就称为完整约束,这种就可以减少位形空间的维数。

上面是对位置的约束,那么对速度也存在约束,也很正常:(叫做Pfaffian约束)

这时,如果发现

里面的A可以积分,又叫可积约束,A能积分就意味着这个速度约束能变成位置约束,因此可以导致位形空间也有同样的约束,导致C空间维度减少。

但是如果A不能积分,那么这种就叫非完整约束。那么它只是对速度有限制,却限制不了位置。换言之非完整约束不能减少可达C空间的维数。

例如普通的差分轮小车,它能到达地面中任何一点,但是它的速度有限制,即它不是全向轮的。它不能沿车身的xy方向同时有速度。

它能实现3个自由度,出现在地面的某个xy位置并且以某个朝向。

但是它只有两个轮子,即只有俩电机,相当于两个关节,通过转速来控制前进和转向。因此它能实现3个自由度但是不能随心所欲的实现,因为有速度的约束。而这个速度约束不可积分,因此为非完整约束。

具体推导可以看书中的硬币示例,这里略过,我认为理解概念即可。

任务空间与工作空间

任务空间是任务本身,和机器人无关,例如用钢笔作画为

工作空间是末端执行器到达的位形,和任务无关。

【现代机器人学】学习笔记一:位形空间相关推荐

  1. 工业机器人——4 正运动学(台大机器人学学习笔记)

    前面几篇文章,我们对于如何描述刚体的运动状态进行了具体的讲解,今天开始我们学习机械手臂的正向运动学. 1)定义 运动学(kinematics):讨论运动状态的本身,不涉及产生运动的力. 具体描述就是位 ...

  2. 现代机器人学-学习笔记

    1.2位形空间 机器人中有一个关注的问题:机器人在哪里?如果我们知道或者求解出机器人身上所有点的位置,问题解决! 引入"位形空间"C-space这个概念-机器人身上所有点的位置构成 ...

  3. 宾夕法尼亚大学机器人学学习笔记(3)

    四轴飞行器运动学 针对机体可以表示为x,y,z三个方向的独立向量.用黑体小写字母表示向量,用上前置字母表示所在坐标系,用黑体大写字母表示矩阵. 如上图所示,g表示转换,则有以下性质. 1)刚体的任意两 ...

  4. 工业机器人——1如何描述刚体的运动状态?(台大机器人学学习笔记)

    基础知识: 刚体的自由度:物体能够对坐标系进行独立运动的数目称为自由度(DOF,degree of freedom):也就是说刚体沿任一个坐标轴移动或者绕任一个坐标系转动,我们称为一个自由度. 1)如 ...

  5. 宾夕法尼亚大学机器人学学习笔记(2)

    飞行机器人之能量学与系统设计 如图上图所示,机器人的受力分析,自己的重力和来自发动机的扭矩(蓝M)和推力(蓝F)以及推力对自身的转矩(F*r). 了解了基本的构造与力学分析,首先分析如何来控制机器人的 ...

  6. Modern Robotics现代机器人学学习笔记12.2

    12.1 接触动力学(Content Kinematics) 接触运动学是研究两个或两个以上刚体(在考虑不可穿透性约束时)是如何相对移动的.根据接触移动的不同分为滚动和滑动. 12.2 Content ...

  7. 【现代机器人学】学习笔记七:开链动力学(前向动力学Forward dynamics 与逆动力学Inverse dynamics)

    这节的内容主要讲述机器人动力学的内容.相对于本书其他部分运动学内容相比,把动力学一下子合成了一章.看完以后有三个感受: 1.本章难度相对其他章节较大,因此需要反复去看,以求对重要内容的眼熟,不求全部记 ...

  8. 【现代机器人学】学习笔记六:闭链运动学

    这一章的内容主要讲并联机器人的相关算法,内容在全书中属于比较少,仅仅介绍概念的章节. 恰好部门中有一位同事就是专门做并联机器人出身的博士,也请他帮忙看了一下内容,但他觉得写书的这个人可能也不是非常懂并 ...

  9. 【现代机器人学】学习笔记十二:轮式移动机器人

    目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...

  10. 【现代机器人学】学习笔记九:运动规划

    本节和前一节 [现代机器人学]学习笔记八:轨迹生成 不同,侧重于避障的内容. 有一些我认为的重要的基本的概念: 1.路径规划是一个纯几何问题,寻找一条无碰撞路径,不涉及动力学和时间相关内容.因此路径规 ...

最新文章

  1. java executor_Java 动态语言支持
  2. F2etest+UIRecorder(录制脚本)【2】
  3. [PAL编程规范]SAP HANA PAL多项式回归预测分析Polynomial Regression编程规范FORECASTWITHPOLYNOMIALR(预测)...
  4. 提升域用户运行特定软件的权限
  5. boost::contract模块实现简单queue的测试程序
  6. 几种不同的邮件发送解决方案
  7. Java 并发编程AQS--源码解读
  8. linux学习杂记_socket编程(含select)
  9. java 字符串优化_Java字符串优化
  10. kettle的hello world
  11. 001_02-python基础习题答案
  12. Linux学习笔记:REHL AS4的上网配置,Http服务安装及配置,ftp服务的安装及配置
  13. 《精通 ASP.NET MVC 5》----2.5 小结
  14. Atom: 几个常用的快捷键,恢复主菜单
  15. MySQL 5.5.20 中文乱码:我的抗争解决史
  16. 2021年软考时间合格标准证书领取等
  17. 解决pytorch当中RuntimeError: expected scalar type Double but found Float的问题
  18. 当MySQL想恋爱,java和navicate抢着做媒婆 ------ java连接MySQL数据库 navicat for MySQL 连接
  19. 欧盟CE公告号-外贸人不得不了解的通关证书
  20. 【2023电赛备赛】使用sysconfig对ccs进行图形化编程

热门文章

  1. 开源 物联网平台管理系统_我们如何创建物联网系统来管理太阳能使用
  2. 亏大了!一男子薅羊毛 13 万被判 3 年
  3. TinyXML的TiXmlElement::GetText()返回NULL
  4. 低成本:小米盒子输出到笔记本上看视频和调试
  5. KNN(K-最近邻分类)分类算法
  6. 单层感知器python_感知器及其在Python中的实现
  7. python+django+Vue社区医院管理服务系统
  8. basename从argv[0]中截取文件名
  9. 都在说DCEP,央行数字货币究竟跟你有什么关系?
  10. Authing 通过中国信通院「身份治理系统和工具能力」全面级评估