来源 | 睿慕课

机器人动力学研究最基础的是建立完整的动力学方程,这其中最关键的是建立多连杆机构的动力学方程。笔者以经典的PUMA560机器人构型为例,阐述四种不同的机器人动力学形式及函数文件。计算环境为matlab,方便研究者的使用。

1 拉格郎日形式

这是基于拉格朗日方程所建立的动力学表达式,其形式如下:

其中各项的求取过程如下:

基于如上推导过程,笔者写了如下的函数

LagrangeRobot(DH参数,杆件质量,杆件质心,杆件惯性张量)

2 牛顿-欧拉形式

基于牛顿-欧拉方程建立,出于第三种形式的考虑,这里要分别建立基于机器人标准DH模型与修改DH模型的动力学方程。以标准DH模型为例,它的主要推导过程如下:

基于如上推导过程,笔者写了如下的函数:

NewtonEulerSDHRobot(DH参数,杆件质量,杆件质心,杆件惯性张量)

小结:形式二的计算效率远高于形式一,经统计,形式一得进十分钟,形式二一分钟左右;但形式一的方程形式明确,具有很强的物理意义,对于控制推导来说意义重大。

3 参数(线性)分离形式

首先要基于修改DH模型与牛顿-欧拉方程求取机器人动力学方程;再通过如下的迭代递推方程:

最终获取如下参数分离的线性化动力学表达式:

这里的p是由各连杆的惯性参数组成的(每根杆件10个),它与关节的位置、速度、加速度等状态变量均无关。

基于如上推导过程,笔者写了如下的函数:

LinearizedRobot(DH参数,杆件质量,杆件质心,杆件惯性张量)

4 最小惯性参数形式

首先要基于修改DH模型与牛顿-欧拉方程求取机器人动力学方程;再通过如下的迭代递推方程:

形式四是由形式三进一步化简获得的。形式三有一个重大缺陷:Y矩阵列不满秩,它有些列为0,有些列间线性相关。这对于参数辨识及一些自适应控制是极为不利的,需做如下处理  ,其中  列满秩。具体推导过程可参考如下提问。

问:如何讲串联机器人动力学方程化成线性形式?

串联结构的动力学一般式是这样的吧,当然,我用matlab迭代过,6自由度的解析式是超过10万个字符,matlab 都显示不完,所以也没法写成t1=。。。。t2=。。。类似这种解析解。

然而,动力学参数很难确定,什么质量什么的,实测出的数据根本用不了,误差贼打,只能参考论文的线性化方法,但是这个看不懂:

请教是如何把一般式转化成线性式,把theta变成一个无关角度,速度,加速度的函数,到底是这么求出来的。。。。。这个转化方法是基于一种什么方法呢。。。。。谢答!

这是我在复现机器人经典运动学理论、动力学理论及控制理论中遇到最困难的一环,我也是最近才把这个问题解决掉,这里先简单分析下过程,以后会再整理下。

1.通过标准DH参数与变形的牛顿-欧拉迭代,可获得如下形式的动力学方程;注意这里的p是经典的杆件惯性参数

2.由于Q中有列为0或列与列间存在线性关系;借由最小惯性参数理论(minimum inertial parameters 或 base inertial parameters),将参数p化为 。

3.最终即可获得,这里的是列满秩的。

机器人动力学方程的四种形式相关推荐

  1. Node.js-提供了四种形式的定时器

    1 Node.js提供了四种形式的定时器 2 global.setTimeout(); //一次性定时器 3 global.setInterval(); //周期性定时器 4 global.nextT ...

  2. 模块的四种形式 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包...

    目录 模块的四种形式 什么是模块 模块的四种形式 自定义模块 第三方模块 内置模块 包 使用模块的好处 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包 什么是包 ...

  3. Python四种形式模块的形式与调用

    一.什么是模块? 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体.一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块.如果这个py文件的文件 ...

  4. Python模块的四种形式

    一.什么是模块? 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体.一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块.如果这个py文件的文件 ...

  5. 动词ing形式的5种用法_英语语法这样学就对了!动词-ing结构的特征和四种形式是?...

    想彻底学好英语一定要善于总结语法!动词-ing结构的特征和四种形式都是什么? 想彻底学好英语,语法这一关是一定要过的.我将通过这个平台定期更新实用.常用的英语语法知识解读,直至覆盖完全部的英语语法知识 ...

  6. git 提交代码命令_提交代码:git push 命令的四种形式

    Git是一种分布式版本控制系统,可以高效地处理项目的版本管理.若对Git的基本使用还不太了解,可以先看一下下面的文章. Git 常用命令 使用Git的工作流程:修改.暂存.提交.推送 Git操作:在多 ...

  7. C语言复数代数式转化成极坐标式,问题:正弦量的相量是复数。 复数有四种表示形式,四种形式可以相互转换。其中代数式和极坐标形式应用得最为广泛。...

    问题:正弦量的相量是复数. 复数有四种表示形式,四种形式可以相互转换.其中代数式和极坐标形式应用得最为广泛. 更多相关问题 有3个整数a.b.c,由键盘输入,利用条件表达式,输出其中最大的数. #in ...

  8. 软文发布实用技巧:软文发布常见的四种形式

    软文发布常见的四种形式 一.随处可见的轰炸形式 过年四月就是在各个地方各个时间段都投放广告,这种形式虽然显得有些杂乱无章,但是 由于媒体投放量比较大,所以人们接受信息也会相对较多,所以在一定程度上也达 ...

  9. 傅里叶变换的四种形式

    此文转自知乎的jinjin 傅里叶变换的四种形式 - 知乎 傅里叶变换是信号的一种描述方式,通过增加频域的视角,将时域复杂波形表示为简单的频率函数,获得时域不易发现的与信号有关的其他特征. 根据时间域 ...

最新文章

  1. Fastboot简介
  2. JAVA代码覆盖率工具JaCoCo-原理简单分析
  3. Django从理论到实战(part36)--QuerySet转换SQL
  4. Enlarge GCD CodeForces - 1034A(欧拉筛+最大公约数)
  5. WPF学习笔记-第二周【基本笔刷】
  6. PostgreSQL最常见问题
  7. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)
  8. Java变量的初始化问题探究
  9. 毕业设计一周一记06
  10. 用memoization优化递归算法[JS/PHP实现]
  11. Android Multimedia框架总结(十七)音频开发基础知识
  12. JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图
  13. 常用z反变换公式表_高中数学三角函数题型总结归纳,同角三角函数及诱导公式...
  14. allure的安装使用以及报告的生成
  15. 学习笔记1:线性回归和逻辑回归、AUC
  16. 关键词生成原创文章及句子的软件!开发原理分析
  17. USGS Landsat 8 Collection 2 Level 1数据正确姿势下载
  18. 游戏开发与设计中的“3C”是指什么?
  19. 在cmd中安装MySQL,MySQL(桌面图标版)
  20. 2021-2027全球与中国单晶圆加工设备市场现状及未来发展趋势

热门文章

  1. react 子组件componentDidMount只执行一遍
  2. windows端口映射
  3. 虹口区企业技术中心认定条件及奖励政策解读
  4. EGNet: Edge Guidance Network for Salient Object Detection 论文及代码解读
  5. Android开发者网站博客导航
  6. ForkJoinPool的理解与使用
  7. JAVA小实例(十五)
  8. Javascript属性:addEvent()用法浅析
  9. class和Class的区别
  10. 推荐几款机顶盒用的芯片