【现代机器人学】学习笔记十一:抓握与操作

news2024/11/25 14:55:21

本章是比较独特的一章,相对于前面的内容,内容较为独立,主要描述的是力学相关的一些理论。因此,读者也完全不必根据题目产生一些不必要的幻想,认为似乎看完这章我就可以学会机器人抓取。

不过,我仍然认为这章的内容是好的,且是必要的,因为实践的内容做的多了,往往就麻木了,纯粹变成一个工具人了,而不去思考背后深刻的原因。本章以可视化分析的形式,分析了接触运动学与接触力学的一些理论知识,非常有趣,建议阅读。

ps:年后的工作一下子忙了许多,每天就面向业务在做一些很繁琐的事情。静下心来想一想,每天忙忙碌碌,只有产出,却没有提升。回到家总是筋疲力尽,以至于根本没有精力去打开电脑,自己学习提升。

希望这种状态是短暂的吧。

接触运动学

为两个刚体之间的距离,q为两个刚体的位形,为距离关于位形的导数,

那么显而易见,时两刚体保持接触,并且是刚体接触的必要条件。

(dq>0时为分离,<0时为穿透)

不可穿透约束则可以写为:

可以看出如果物体A的接触点以及物体B的接触点的速度如果相同,或者虽然不同但是它俩和接触法线垂直,则保持接触,即,如果大于等于0则未接触。

当然,根据本书的惯例,一切都要表示成旋量的形式,参考最开始刚体运动这节课:

【现代机器人学】学习笔记二:刚体运动

我们知道旋量中的线速度v是沿轴的速度v与沿轴旋转引起的速度,即

移项推导,最后引入力旋量,得到新的不可穿透约束

另外对于接触状态,还定义了有效约束:(注意书中印刷错了)

满足有效约束的运动旋量VA和VB称为 一阶滚动-滑动运动。

这里区分滚动滑动

滚动约束:

即两个接触点的速度在某个坐标系下保持一致,那么这个接触叫做“滚动”rolling contact。

滑动:

满足有效约束,但是不满足滚动约束的,称为滑动约束。

用人话来说,就是两个物体的接触点是变化的,但是他们变化的方向和接触的法向量是垂直的,好比你穿上了时尚的滑板鞋,在这光滑的地上摩擦,鞋子并未脱离地面,所以鞋子和地面就是滑动。但是你的脚带着鞋一起动,脚底板和鞋垫之间就算是滚动摩擦。

多刚体接触

B表示脱离,S表示滑动,R表示滚动接触。

图a里,左上有一个手指。S那个面上属于滑动,因为可以顺着它滑。R的那一个点,算是滚动接触。而B整个区域则是脱离的接触。

图b中,也可以同样的分析,可以看到图中字母变成了两个,分别代表两个手指的接触状态。

图c中,假设右上方的手指在沿着V3方向移动,一共有七种可能的结果,我们可以看到,最后一个接触点不可能是R,因为如果是R的话,物块得沿着V3方向运动,那就得穿透第二个手指了,违反了不可穿透约束。

可行旋量多面体凸锥

如例题12.4,给了三个力旋量,然后给了限制即物体在平面上移动,即限制了vz,wx,wy,最后套入不可穿透约束的公式,运动约束表示为:

然后用锥体对它进行可视化:

则这个锥体内部的旋量,属于脱离类型的接触。

锥体的边缘和平面上的值对应的旋量,是有效约束。(即不可穿透约束刚好等于0的情况)

注意:

对于多个接触体,复合运动旋量空间,是以原点为顶点的。(上图就是一个例子)

m个物体构成的组合中,运动旋量的空间为6m维,每个接触就对这个维度产生一个约束。接触模式则像再上方的那个abc的图一样,是每个接触点接触方式的级联。

但是如果手指是机器人手指,是受到控制的,那么这样抓握的物体的可行的旋量锥体就不一定是以原点为顶点了。

其他类型接触

之前介绍的接触,都是至少有一个物体唯一的定义了接触的法线。(即12.6 a)

但是还有一些其他类型的接触,作者罗列了出来,意味着不再是手指的一个尖触点来接触物体的面。

作者提到e是退化场景不再考虑。

平面图形化方法

这一节的内容是用来分析单个物体的可行运动的。直接啃的话,说实话看起来是有些抽象的。不过我在这里直接用简单的方法描述它,让大家减少一些阅读的痛苦:

我们用旋转中心来描述物体的旋转,其中+为右手定则,逆时针旋转,0为不转,-为顺时针旋转。

然后这个图就只是一个对可行运动旋量的一个可视化,它分布在两个平面或者中间的球上:

(我们本节的运动是平面运动,因此只有wz,vx,vy有效,其他是0)

暂停一下:我觉得读者应该清楚的认识到作者是在讲些什么内容,不应该糊里糊涂的。我觉得对读者而言,可以不理解他的细节,但是应该知道他想表达什么内容。

现在在讲的CoR的分析是用来干嘛的?

是用来表示“与静止物体相接触的可移动物体的可行运动”。

对于一个静止手指,加上一个物体,可行的运动方式为:

这个图看似抽象,实际还是比较简单的。Sl表示物体向左滑动,Sr表示向右滑动。图里的+,Sl表示物体在接触点这里,关于接触点一瞬间是以逆时针在转,同时有向左的滑动。。其他以此类推,读者别被这些符号吓傻了。

为什么要分析单个物体的接触?

因为分析清楚了单个物体,多个物体的接触就是各自把这些东西画出来,舍去不合理的地方。例如:

我们可以看到,F1左边是+,那么F1右边是-,但是F2左边又是+,因此这里正负就抵消掉了。所以从b图可以看出,只有灰色的区域是能转动的。那么根据c图,也类似分析,Sl和Sr抵消的内容,就可以得到一系列候选的运动方案。

但这种只是一个简单的推理,并不是保证正确的,例如+SrBSr,这种用图的方式分析出来,似乎是合理的。但是这意味着,物体在左边+的区域逆时针转,同时对F1的接触往右滑动,对F2处的接触脱离,对F3处的接触向上滑动,即保持F1和F3的接触,脱离F2的接触。这怎么可能?直观上想象一下这个运动就不可能,根本就抬不起右下角的接触,因为它会穿透F3手指。

难道我们现在的分析不对吗?作者对这种原因给出了解释:

我们是采用一阶分析。

因此,结论是,n阶的滚动-滑动运动,可能被n+1阶的分析,分析为是穿透接触或者是脱离接触。但是一旦n阶已经分析称为穿透或脱离,更高阶的分析也不会再改变结论。

形封闭

如果一组静止约束可以阻止物体的所有运动(即抓牢了),可实现物体的形封闭

线性代数理论:
1.空间R^n最少由n个向量线性组合表示。即n个坐标表示n维欧几里德空间。
2.空间R^n最少由n+1个向量正线性组合表示。即取 作为多出的一个向量,然后就可用这个多出的向量和原本的向量的正线性组合来表示空间了。

一阶形封闭需要的接触数量:

对于空间物体,需要6+1=7个接触。因为空间物体时6维,而限制了正线性组合,因为

我之所以把线性代数的引用放到这里,而不是最开始就介绍,这是因为这里才用到。哪里用到在哪里提嘛!那么对于平面物体,则需要3+1=4个接触,也是同样的原因。

当然有个特例,就是圆。不管怎么接触,它理论上讲都能转。

参见12.14图,根据+-的分析方式,三角形也能绕中心旋转。但实际上不可能。

因此结论是:

一阶形封闭 ----> 高阶形封闭

一阶滚动滑动 ------> 高阶形封闭 或 不封闭。

一阶形封闭的线性规划测试

令F作为一个列向量由j个接触力旋量组成的矩阵。

矩阵F不满秩,则不处于形封闭。

矩阵F满秩,计算Fk=0是否有正系数k>0的解,有解则形封闭,无解则不封闭。

评:这种方式跳过了画图分析,直接通过数学的方式判断是否属于一阶形封闭。

形封闭质量的度量

同样是两个抓握,哪个质量更好?这是个好问题。

我们需要定义一个抓握度量,Qual(F),当它小于0的时候抓握不是形封闭,大于0时越大抓握质量越好。

首先,为了避免把物体抓坏,我们对每个抓握点i处,根据物体情况,设置一个最大抓握力。即最后总的力旋量的集合,为CF:

最后我们的度量Qual(F),就可以看能装到这个多面体内部的单位球的半径。

另外由于力和力矩单位不同,因此选取被抓握物体的特征长度r,通过m/r把力矩m变为力。另外由于力矩的大小和原点选择有关,可以同意选在质心处进行衡量。

为形封闭选取接触

首先根据平面或空间物体,选取4个或7个候选抓握点,确认好初值以后,再进行优化。优化的目标函数就是形封闭质量的度量。

接触力和摩擦力

这个明天再写,太晚了。待续....

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

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

相关文章

新入职的项目经理,如何击破权力微薄的困境?

“从此找到了上班的意义”这个话题最近登上了热搜&#xff0c;在“铜三铁四”的招聘季&#xff0c;大家停止了内卷&#xff0c;给自己安排得明明白白&#xff0c;每天上班的动力就是&#xff1a;充电、蹭网、干饭、灌水、睡午觉、上厕所。但咱项目经理们却没办法Get这些动力&am…

【UEFI基础】HOB介绍

综述 HOB的全称是Hand-Off Block&#xff0c;从名字上也可以看出来&#xff0c;它表示的是一种用于交接的数据。按照HOB的使用情况&#xff0c;可以将BIOS的启动阶段分为两个部分&#xff1a; HOB生成阶段&#xff08;HOB producer phase&#xff09;&#xff0c;用来创建和修…

PMP项目管理项目质量管理

目录1 项目质量管理概述2 规划质量管理3 管理质量4 控制质量1 项目质量管理概述 项目质量管理包括把组织的质量政策应用于规则、管理、控制项目和产品质量要求&#xff0c;以满足相关方目标的各个过程。项目质量管理还将以组织的名义支持过程的持续改进活动。 核心概念 质量是…

Elasticsearch:集群管理

在今天的文章中&#xff0c;我们应该学习如何管理我们的集群。 备份和分片分配是我们应该能够执行的基本任务。 分片分配过滤 Elasticsearch 将索引配到一个或多个分片中&#xff0c;我们可以将这些分片保存在特定的集群节点中。 例如&#xff0c;假设你有多个数据集群节点&am…

感应电机数学模型(电机控制应用基础系列)

电机在工业控制中的地位不言而喻&#xff0c;所以对电机模型的了解是我们理解各种算法的基础。这篇博客帮大家整理总结。张力控制离不开电机控制&#xff0c;有关张力控制的详细内容请参看下面的文章链接&#xff1a; PLC张力控制&#xff08;开环闭环算法分析&#xff09;_张…

字符函数和字符串函数详解(1)

目录前言strlen函数strlensizeofstrcpy函数strcat函数strcmp函数总结前言 最近要调整状态&#xff0c;写的文章质量不佳让大家失望&#xff0c;我现在也在反思我在做什么&#xff0c;我会什么&#xff0c;我学了什么。等我想明白的那天&#xff0c;我一定能跟大家顶峰相见的&a…

身份推理桌游

目录 sha人游戏&#xff08;天黑请闭眼&#xff09; &#xff08;1&#xff09;入门版 &#xff08;2&#xff09;标准版 &#xff08;3&#xff09;延伸版——百度百科 待更新 &#xff08;4&#xff09;延伸版——推理学院 待更新 狼人杀 1&#xff0c;基本玩法 2&am…

Android 12.0 Launcher3 app图标长按去掉应用信息按钮

1.前言 在12.0的rom定制化开发中,在Launcher3定制化开发中,对Launcher3的定制化功能中,在Launcher3的app列表页会在长按时,弹出微件和应用信息两个按钮,点击对应的按钮跳转到相关的功能页面, 现在由于产品需求要求禁用应用信息,不让进入到应用信息页面所以要去掉应用信息…

QT入门基础(一)

文章目录零.Qt背景1.什么是Qt2.Qt的发展史3.Qt的优势4.Qt应用一.第一个Qt程序0.项目创建1.main函数文件2.类头文件3.pro文件4.qt命名规范二.Qt按钮1.按钮创建和父子关系2.按钮常用api3.Qt窗口坐标体系4.对象树模型零.Qt背景 1.什么是Qt Qt是一个跨平台的C图形用户界面应用程序…

快速排序/快速选择算法

一.快速排序 1.基本介绍 快速排序&#xff08;Quicksort〉是对冒泡排序的一种改进,都属于交换排序。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分(每次选择中轴值)&#xff0c;中轴值左边的元素小于中轴值,中轴值右边的元素全部大于中轴值(但不要求有序)&#x…

Canvas详细使用方法(一)

Canvas Canvas的注意事项 < canvas > 和 < img > 元素很相像&#xff0c;唯一的不同就是它并没有 src 和 alt 属性。 -< canvas > 标签只有两个属性——width和height( 单位默认为px )。当没有设置宽度和高度时&#xff0c;canvas 会初始化宽为 300px 和高…

C#基础之面向对象编程(二)

总目录 文章目录总目录前言一、概述1. 定义2. 面向对象的三大特性二、封装1. 定义2. 属性三、继承1. 定义2. 继承的使用3. base 和this四、多态1. 定义2. 重写和重载3. 多态性的实现1、静态多态性2、动态多态性4. 向上转型和向下转型1、定义2、语法格式3、案例结语前言 本文主…

Docker常用项目实战演练

docker镜像源的修改 linux环境下编辑 /etc/docker/daemon.json vi /etc/docker/daemon.json #如添加如下网易镜像源 { "registry-mirrors": ["http://hub-mirror.c.163.com"] }docker run命令详细解释 日常工作中用的比较多的是docker run命令&#xff…

[ROC-RK3399-PC Pro] 手把手教你移植主线Buildroot(基于2023.02-rc3版本)

&#x1f347; 博主主页&#xff1a;Systemcall小酒屋&#x1f347; 博主简介&#xff1a;Neutionwei&#xff0c;C站嵌入式领域新星创作者之一&#xff0c;一枚热爱开源技术、喜欢分享技术心得的极客&#xff0c;注重简约风格&#xff0c;热衷于用简单的案例讲述复杂的技术&am…

机械学习 - 基础概念 - scikit-learn - 数据预处理 - 1

目录安装 scikit-learn术语理解1. 特征&#xff08;feature &#xff09;和样本&#xff08; sample / demo&#xff09;的区别&#xff1f;2. 关于模型的概念一、机械学习概念1. 监督学习总结&#xff1a;2. 非监督学习总结&#xff1a;3. 强化学习总结&#xff1a;三种学习的…

硬件基础常识【1】--如何让BJT工作在深度饱和区

引言BJT饱和的概念差不多的比喻特性曲线说明记忆NPN和PNP的小技巧- -保证一辈子不忘简单估算总结引言 学过模电或者做过一些电子作品的人都知道三极管这个器件&#xff0c;虽然是个小玩意&#xff0c;但在电路设计过程中承担了巨大的作用。BJT叫做双极结型三极管&#xff0c;可…

浏览器并发行为记录

使用nodejs koa起一个服务&#xff0c;使请求延时返回。 服务端代码 /** 延时 */ exports.timeoutTestData async function (ctx) {console.log(get query:, ctx.request.query);const query ctx.request.query;let timeout query.timeout || 2000;await new Promise(res…

vue专项练习

一、循环实现一个列表的展示及删除功能 1.1 列表展示 1、背景&#xff1a; 完成一个这样的列表展示。使用v-for 循环功能 id接口名称测试人员项目名项目ID描述信息创建时间用例数1首页喵酱发财项目a1case的描述信息2019/11/6 14:50:30102个人中心张三发财项目a1case的描述信…

Redis学习(13)之Lua脚本【环境准备】

文章目录一 Lua入门环境准备1.1 Lua简介1.2 Linux 系统安装Lua1.2.1 Lua 下载1.2.2 Lua 安装1.3 Hello World1.3.1 命令行模式1.3.2 脚本文件模式1.3.3 两种脚本运行方式1.4 Win安装Lua1.4.1 LuaForWindows的安装1.4.2 SciTE修改字体大小1.4.3 SciTE中文乱码1.4.4 SciTE快捷键工…

aws ecs 使用copilot快速创建ecs集群环境并部署服务

参考资料 https://github.com/aws/copilot-cli https://aws.github.io/copilot-cli/ https://github.com/aws-samples/amazon-ecs-cli-sample-app https://ecsworkshop.com/microservices/frontend/#deploy-frontend-0 ecs的服务部署从头开始需要进行以下操作 创建vpc等网…