机器人学之动力学笔记【9】—— 牛顿-欧拉 递推动力学方程

  • 1. 定义线加速度
  • 2. 定义角加速度
  • 3. 推导线加速度
  • 4. 推导角加速度
  • 5. 质量分布(Mass Distribution)
  • 6. 牛顿-欧拉递推动力学方程
    • 6.1 外推法——计算速度和加速度
      • 6.1.1 角加速度传递(旋转关节)
      • 6.1.2 线加速度传递(旋转关节)
      • 6.1.3 角加速度、线加速度传递(移动关节)
      • 6.1.4 连杆质心的线加速度
    • 6.2 牛顿-欧拉方程
    • 6.3 内推法——计算力和力矩
  • 7. 补充说明

1. 定义线加速度

和之前一样,速度是位置的微分

把得到的速度表达在另一个坐标系下面

这里,加速度是速度的微分

把得到的加速度表达在另一个坐标系下面

{c} frame 的原点对地的加速度就简化表达成 ac

2. 定义角加速度

线速度线加速度有这样的关系之外,角速度角加速度也有这样的对应关系,角速度的微分就是角加速度

简化表达,针对某个 frame {C},它的旋转状态如果是对地的,就可以简化写为

3. 推导线加速度

由前面所学,知道A点对地的速度 = B点对地的速度 + 由B点看到A点的速度 + B所在坐标系在旋转过程中造成的向量 r(a对b) 的变化

对上边式子作微分

合并项之后,整理得

A点的加速度 = B点的加速度 + B相对于A看不到的部分,切向加速度(角加速度与r的叉积) + 法向加速度 + 人站在B坐标上看到的相对加速度 + 科式力

对应到机器人学中

4. 推导角加速度

{C} 对 {A} 的角速度 = {B} 对 {A} 的角速度 + {C} 对 {B} 的角速度(又因为在相加计算的过程中要转到同一个 frame 下,所以 {C} 对 {B} 的角速度前还要乘上一个旋转矩阵)

对这个式子作微分,这里 {C} 对 {B} 的部分有两个项,遵循前导乘后 + 前乘后导的原则,那对旋转矩阵求导是什么呢?

依照之前的想法,我们知道旋转矩阵是由三个单位向量所组成的,这三个单位向量互相正交,对旋转矩阵求导,相当于对三个单位向量求导,之前学过,对单位向量求导,它的长度不会变化,变化的只是它的方向。由于这里是旋转矩阵,所以单位向量的变化基本取决于整个坐标系旋转的状态,因此,{B} 对 {A} 的旋转矩阵的倒数 = {B} 对 {A} 的角速度与旋转矩阵本身的叉积。(如红框部分所示)

5. 质量分布(Mass Distribution)

相对于 frame {A} 的惯性张量

惯性张量本身的特性:

  • 是常实对称矩阵,在数学上是可正交对角化的

  • 对角线元素之和为定值

  • 如果刚体的本身存在某个对称面,这个对阵面上下的值就会是零

    在算惯性矩阵的时候,必须要有转轴
    平行轴定理:

6. 牛顿-欧拉递推动力学方程

【大学物理知识回顾】
转动惯量 J 由刚体的各个质元相对于固定转轴的分布决定,与物体的运动以及所受的外力无关,是用于描述刚体相对于确定转轴特征的物理量。
动量 P=mv ,动量的变化量是合外力;
角动量L=Jw ,角动量的变化量是定轴转动刚体所受的力矩

下图所示是机械手臂中杆件的一节

杆件有加速度,必须受到惯性力F,杆件要转动,必须要受到扭矩N;

  • 针对移动的部分,牛顿运动方程;
    线动量的变化量等于外力,牛顿第二运动定律;
  • 针对转动的部分,欧拉方程;
    角动量的变化量等于力矩;

这里要特别小心 I 定义的 frame,因为在不同的 frame 下面,I 的定义会不一样;和之前相反,我们不希望 I 定义在地坐标系下面,杆件在空间中是运动的,地坐标系不动,就等于说这个杆件以地坐标系来看的话,它和地坐标系之间的相对距离一直变动,所以它的 I 以地坐标来看的话就一直变动,这样取倒数的时候就需要考虑 I的倒数,会使欧拉方程的求解变的复杂。

通常情况下我们会在质心的位置定义坐标系,由于这个坐标系与这个杆件固连,所以 I 不变

推导后的力矩由两项组成,第一项就是杆件的角加速度造成的,注意这里的 I 是对于建立在质心处的坐标系而言的,还有一部分就是由于系统的角速度造成的。

在 frame {i} 中表达连杆 i 的线加速度和角加速度,并且找到相邻连杆之间的线加速度以及角加速度关系。

6.1 外推法——计算速度和加速度

6.1.1 角加速度传递(旋转关节)

我们知道相邻两连杆间角速度关系如下,求导得:

坐标系转化

6.1.2 线加速度传递(旋转关节)

i+1 杆件的线加速度 = i 杆件的线加速度 + 切向加速度 + 法向加速度(还应该有两项科式力和相对的加速度,要是仔细看的话会发现,该式子是为了找到 {i+1}杆件 frame 的原点相对于 {i}杆件 frame 原点的加速度,而{i+1} 旋转时并不改变原点的位置,所以后边两项就没有了)

坐标系转化

6.1.3 角加速度、线加速度传递(移动关节)

6.1.4 连杆质心的线加速度

除了上述的坐标原点的状态,连杆质心(COM)的状态也会用到,因为算惯性力的时候,就必须要算这个link 的COM的加速度是多少,我们才有办法借由这个加速度乘上质量m得到这个杆件受到的外力是多少(COM点在连杆的中部)

6.2 牛顿-欧拉方程

在找到了杆件和杆件之间加速度的关系后,现在要怎么跟力矩做一个连接?前面通过外推法计算出每个连杆质心的线加速度和角加速度后,运用牛顿-欧拉公式便可计算出作用在连杆质心上的惯性力和力矩:

假设 link(i) 有一个运动,那么基本上杆件所受的合力就等于运动的加速度乘上它的质量;
假设这个杆件有一个角加速度和角速度,假设也知道这个惯性张量对COM来看是已知的话,所受的外力矩就等于上述式子。

6.3 内推法——计算力和力矩

上面计算出每个连杆上的力和力矩后,我们就要计算出产生这些力和力矩的需要施加在关节上的关节力矩。


有了这个想法之后就可以分别来看力和力矩的状态。
以力的状态来说,力是由末端点往回算的(手臂末端点受到力,后面有力就代表前面关节都要承受住这个力,这个是和速度相反,速度是地的 link 不动,随着 link 往前增加,后面的 link 都要承载前面 link 的运动,然后再产生一个新的相对继续往后算)

将作用在连杆i ii上所有的力相加,得到力平衡方程:
frame {i} 所需要的力 = {i+1} 这个 frame 的力 + 让 {i} 本身产生运动所需要的惯性力

将所有作用在质心上的力矩相加,得到力矩平衡方程:
力矩是建立在相似的概念上的,力矩这里会有点复杂,在于杆件原本受到的力也会产生力矩,所以力矩所包含的项就会比较多。
i 杆件所要承受的力矩 = i+1 所要承受的力矩(i+1之后的杆件传到 i+1 的力矩) + 让 i 产生转动所需的惯性力矩 + 惯性力 Fi 所产生的力矩 + i+1 杆件的外力所产生的力矩

那么怎么求得关节力矩呢?
在静力学中,可以通过计算一个连杆施加于相邻连杆的力矩在Z方向上分量求得:

关节类型不同,计算马达负载的方式也会不同。针对旋转关节,会用力矩对 Z 轴做投影;针对移动关节,用力对 Z 轴做投影。让我们真正算出来在真正在动力学考量下面,我们的系统在完成运动时所需要的各个 joint 的力矩是什么。

7. 补充说明

针对这个,有几个其他的想法要补:

  • 包含重力场(在考虑的时候加上与重力场加速度g等大反向的加速度就可以抵消重力那部分的作用了,就不会不小心忽略掉重力场的作用)
  • 假设手臂在空中晃来晃去,手臂末端没有夹持东西或者做一些操作,那最后一个 joint 本身的力和力矩就可以设定为零,再借由这个为零的条件往回算。

我们现在有了运动的状态,有了速度和加速度的公式,也有了力和力矩的公式,那也就是真正面对一个问题的时候,先把运动状态算完,运动状态是由地杆往上算,算到末端执行器之后,就可以获取整个手臂的速度和加速度状态。
有了这个之后再导入所谓的力,假设末端点会有某个力,再往回算,获取力和力矩。
上行是计算速度和加速度,下行是计算力和力矩,都计算完之后,我们才能由力和力矩去投影计算 每一个joint 所需要的出的力是多少。

注意:

  • 旋转关节和移动关节用的公式是不一样的,所以在推导的过程中要选对公式;
  • 这是一个通用的架构,可以应用于任意的手臂;
  • 适用于计算机迭代计算。

【资料分享】
中正平和的机器人学笔记——5. 机械臂动力学

机器人学之动力学笔记【9】—— 牛顿-欧拉 递推动力学方程相关推荐

  1. 5. 机器人动力学---串联机构牛顿欧拉方程

    1. 引言 这篇文章主要介绍了串联机构牛顿欧拉方程的基本原理,文章提到了惯性系平权性,速度叠加原理等对于理解机器人动力学十分关键的问题.具体内容请参考古月居

  2. 机械臂动力学建模(3)- Newton Euler牛顿欧拉算法

    Newton Euler算法 参考 思路(参考丁教授第二讲ppt) 矢量在不同坐标系下的转换关系 速度的递推 重心处的力和力矩 力的递推 完整公式 代码 参考 北航丁希仑教授的机器人动力学课件: 检出 ...

  3. 【机器人学】牛顿-欧拉动力学方程迭代形式

    1 牛顿方程和欧拉方程 作者推导了牛顿欧拉动力学方程的迭代形式和矩阵,本文重点描述动力学方程的迭代形式,动力学方程的矩阵形式见博文. 假定机械臂的连杆均为刚体,若连杆质心的位置和惯性张量已知,那么它的 ...

  4. 牛顿-欧拉迭代动力学算法

    牛顿-欧拉迭代动力学算法 (1)连杆之间角/线加速度变换方程(向外迭代法): (1)iω˙i→移动关节:式(6−33)式(6−32)i+1ω˙i+1{^i\dot{\omega}_i}\xrighta ...

  5. 递归牛顿欧拉(正/逆)动力学仿真

    递归牛顿-欧拉方法(Recursive Newton-Euler Method)是一种高效的动力学计算方法,尤其适用于串联多刚体系统,例如串联机械臂.递归牛顿-欧拉方法有正和逆两种形式,本文我们先来看 ...

  6. 机械臂的牛顿-欧拉动力学方程

    机械臂的牛顿-欧拉动力学方程 一般把机械臂的连杆看作刚体,如果知道了连杆质心的位置和惯性张量,那么它的质量分布特征就完全确定了.要使连杆运动,必须对连杆进行加速和减速.连杆运动所需的力是关于连杆期望加 ...

  7. 刚体质量分布与牛顿-欧拉方程

    惯性矩.惯性积.转动惯量.惯性张量 惯性矩是一个几何量,通常被用作描述截面抵抗弯曲的性质.惯性矩的国际单位为(m4).即面积二次矩,也称面积惯性矩,而这个概念与质量惯性矩(即转动惯量)是不同概念. 面 ...

  8. 机器人学之动力学笔记【10】—— 双旋转自由度机械臂

    机器人学之动力学笔记[10]-- 双旋转自由度机械臂 1. conditions 2. Velocity and acceleration propagations(上行运算) 2.1 计算第一杆件 ...

  9. 双盘转子动力学仿真c语言程序,递归牛顿欧拉(正)动力学仿真

    递归牛顿-欧拉动力学算法是一种高效的动力学计算方法,它有正和逆两种形式,我们先来看正动力学,也就是给定关节力矩求机器人的运动.下面的算法来自于论文<Lie Group Formulation o ...

最新文章

  1. oracle 登录rman,Oracle 学习之RMAN(二)由此开始
  2. 基于 tcp协议完成的上传下载
  3. JavaScript实现跳跃游戏的贪婪方法的算法(附完整源码)
  4. 提高篇 第五部分 动态规划 第6章 斜率优化动态规划
  5. MyEclipse中常用设置。
  6. 软件工程开发之道:了解能力和复杂度是前提
  7. Veritas面向OpenStack推出全新软件定义存储解决方案
  8. 深度学习backbone是什么意思_CNN是靠什么线索学习到深度信息的?——一个经验性探索...
  9. IPython系统相关内容及其配置信息
  10. php 5的手册,本手册中所涉及的 PHP 版本 - PHP 5 中文文档
  11. iOS 小项目--小费计算器
  12. ajax authorization,ajax跨域,_ajax Authorization 鉴权失败,ajax跨域 - phpStudy
  13. PHP正确的使用复数
  14. MySQL 修改frm文件_mysql 之 frm+ibd文件还原data
  15. 2021年中国农作物播种面积、农作物成灾面积及造成直接经济损失情况分析[图]
  16. matlab三大数组之构架数组
  17. start with connect by prior用法
  18. Go语言 判断key是否在map里 if _, ok := map[key]; ok
  19. Android 设置黑白主题
  20. 2017大学计算机考试题,【2017年最新】新生福利:大学计算机基础入学考试题库...

热门文章

  1. python与php8,后端php和python学哪个
  2. 苹果笔记本MBP 玩大型游戏秒退之解決方法
  3. 猴子选大王[加强版]
  4. IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)
  5. 解决Adobe Acrobat XI pro 开启十几秒自动闪退
  6. win10中用命令行打开画图
  7. 显卡掉驱动 不用重启
  8. Joel谈优秀软件开发-摘录
  9. adb shell 模拟器 关闭\打开WIFI
  10. 摄影师陈景河教你5个简单技巧 加强照片冲击力