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

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

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

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


自由度

刚体自由度

硬币有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公式:

dof=m(N-1-J)+\sum_{i=1}^{J}f_i

平面机构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。

一维空间的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个自由度但是不能随心所欲的实现,因为有速度的约束。而这个速度约束不可积分,因此为非完整约束。

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

任务空间与工作空间 

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

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


http://www.niftyadmin.cn/n/11405.html

相关文章

Eolink钉钉webhook使用教程(超详细)

目录 一、操作步骤 1、空间管理 2、添加服务调用 3、填写添加Webhook信息 4、获取DingDing通知URL 1、需要创建一个至少三个人的群 2、需要添加一个群机器人。 3、选择智能群助手 4、添加机器人 5、点击设置 6、选择【自定义】通过Webhook接入自定义服务 7、确认添…

【多线程 (二)】线程安全问题、同步代码块、同步方法、Lock锁、死锁

文章目录线程安全问题前言2.1多线程模拟卖票出现的问题2.2卖票案例中出现的问题分析2.3同步代码块解决数据安全问题2.4同步方法解决数据安全问题2.5Lock锁2.6死锁总结线程安全问题 前言 之前我们讲了多线程的基础知识,但是在我们解决实际问题中会遇到一些错误&…

这就是你了解的指针吗?

小叮当的任意门——指针1. 指针是什么?2. 指针和指针类型1. 指针-整数2. 指针的解引用3. 野指针1. 野指针的成因未初始指针越界访问指针指向的空间释放2. 如何规避野指针4. 指针运算指针减指针指针的关系运算5. 二级指针6. 指针数组1. 指针是什么? 在讲指…

走进常熟东南相互电子,看AI如何深入产业让工厂更智能

苏州常熟一家4万多平方米的生产车间内,一块块指甲盖大小的PCB电路板,在装有人工智能算法模型的的摄像头下,快速精准地完成外观检测,让头发丝大小的瑕疵无处可藏。 成立于2006年的东南相互电子,是一家集半导体与元器件…

Android入门第33天-Android里的弹出式对话框

简介 Android Studio里在4.0前有一种ProgressDialog,这个已经淘汰了。我们完全可以使用ProgressBar来取代。但是还有一种Dialog叫PopWindow,它是一种“可阻塞式Dialog”。即弹出后除非你给它一个“动作”否则就一直显示在那。 今天我们就来看看这种Dia…

[附源码]java毕业设计疫苗接种管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【JAVA高级】——封装JDBC中的DaoUtils工具类(Object类型方法)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

【配电网重构】负荷平衡的配电网重构【含Matlab源码 2180期】

⛄一、 负荷平衡的配电网重构 1 引言 配电网网络重构是指在正常或非正常运行条件下通过改变开关的开关状态来改变网络的拓扑结构。配电网故障恢复供电是指配电网发生故障后,在故障已被定位和隔离的基础上,研究如何恢复对无故障停电区域供电的问题,本文简称为故障恢复。故障恢复…