【机器人算法】机器人动力学、运动学和基于动力学模型的仿真与控制
文章目录
- 运动学
- 机器人运动学参数标定(DH参数标定)
- 运动学逆解
- 解析解
- 数值解
- 工作空间分析
- 可操纵性
- 轨迹规划
- 路径规划
- 静力学
- 动力学
- 动力学模型
- 动力学仿真
- 自由下落
- 遇到跳床
- 重力补偿
- 动力学参数辨识
- 控制
- 位置控制
- 力控制
- 力位置混合控制
- 阻抗控制
本篇博客主要是从机器人学入门出发,以二连杆机构为例,对机器人运动学,动力学和控制进行说明。既是复习也算是科普。
因此都只给出结果,有问题欢迎评论私信。
运动学
运动学部分比较简单,本篇博文是基于DH参数进行建模的,二连杆的机械模型如下。关于DH建模的更多细节可以参考我的另一篇博文->【机器人学】机器人运动学基础。
除此之外,为了计算的简便,越来越多的人开始使用PoE进行建模,关于PoE建模的方法可以参考我的这篇文章->【机器人学】基于PoE模型的串联机械臂UR5的正运动学、微分运动学和逆运动学,其中基于PoE模型对UR5进行了运动学分析。
说到DH参数就涉及到了机器人DH参数标定的问题。
机器人运动学参数标定(DH参数标定)
同时给出辨识后的结果:
可以清晰的看出,辨识后的机器人精度更高了。高自由度的机械臂,例如,六自由度且相邻转轴出现平行的情况,可以参考我的另一篇博文->【【机器人算法】机器人运动学参数辨识/DH参数校准/DH参数辨识
运动学逆解
由于是2自由度,因此只考虑位置。
解析解
一般都是用几何法求解。其中需要注意的是构型的选择,elbow up和elbow down两种,同时需要注意三角函数对解的范围的限制。高自由度的机械臂,例如,七自由度的可以参考我的另一篇博文->【机器人学】冗余七自由度机械臂的解析解逆解算法
数值解
一般都是用雅可比矩阵(广义逆)进行迭代。这里也不举例了。
具体算法可以参见我的另一篇博文->【机器人学】机械臂数值解逆解
工作空间分析
这里设关节限位为(-pi/2,pi/2)
关节限位为(-pi,pi)的情况:
可操纵性
可操纵性度量:
轨迹规划
这里给出一种在笛卡尔空间的轨迹规划,用的是数值解来迭代。
路径规划
这里直接给出一种,RRT算法在关节空间的路径规划(效率更高),其中包括了碰撞检测。其中关于RRT算法可以参考我的另一篇博文->【路径规划】RRT(Rapidly-exploring Random Trees)算法、关于碰撞检测算法可以参考我的另一篇博文->【算法】基于包围盒的机器人碰撞检测
RRT算法的展示如下:
实际运行效果如下:
关节轨迹:
静力学
静力学其实就是“虚功原理”,更多的体现在动力学中,这里没什么可展示的。
动力学
首先是动力学模型的建立,建立动力学方程推荐使用牛顿欧拉法,计算量更小,更方便计算机迭代运算。
动力学模型
拉格朗日法和牛顿欧拉法的结果是相同的,动力学方程如下:
但是在常见的控制及参数辨识过程中,方程通常写为如下形式:
这里我们暂且不考虑摩擦力。
C虽然是可以随便选择的,但是应当符合动力学模型的典型性质。
求得的离心力和科氏力相关的C及动力学模型的典型性质如下:
这个性质称之为动力学模型的反对称性。
得到动力学方程后,我们就可以利用动力学方程进行控制和优化了。
动力学仿真
根据机器人的动力学方程可以做动力学仿真如下:
这里主要给出2连杆在只受重力的作用下自由下落、遇到“跳床”和重力配平。
自由下落
可以看出在重力的作用下2连杆的自由下落过程。
遇到跳床
可以看出在重力的作用下2连杆的自由下落时遇到弹簧的运动过程。
重力补偿
可以看出在有重力的作用下,进行了重力配平,2连杆并没有落下。
说到动力学其中的一个难点就是动力学参数辨识。
动力学参数辨识
动力学参数辨识是一个比较复杂的难点,这里另开一章进行讲解->【机器人算法】机器人动力学参数辨识
控制
这里的控制都是基于机器人动力学。
位置控制
这里的位置控制是PD控制。
对比实际轨迹和期望轨迹可以看出,实际轨迹出现交大偏差,简单来说这主要是由于PD参数调的不好(这里的PD参数是根据经验调出的)。
至于“调PID的东西”,属于机械臂的运动控制的范畴,大致可以分为:
- 多关节分散控制:不考虑连杆的动力学(只考虑重力),然后调节PID参数。这里可以参考->【运动控制】机械臂的分散控制(Decentralized Control)
- 多关节集中控制:考虑连杆动力学,基于状态方程“调节PID”。-> 【运动控制】机械臂的集中控制(Centralized Control)
其中电机建模的基础可以参见:-> 【运动控制】直流电机的建模与位置控制和力控制
力控制
机器人里力控主要可以归类为三个:
- 力控制:给出目标力去跟踪;
- 力位混合控制:力和位置相互正交,相互独立,控制律简单。
- 阻抗控制:属于一种“没有目标”的控制,适用于人机交互。
力位置混合控制
根据仿真结果可以看出,机械臂末端在接触墙壁时,同时进行了力的控制(约200N)
控制力为:
阻抗控制
首先看结果,其中黄色虚线为指令轨迹,可以看出机械臂在撞击墙壁时,机械臂并没有出现不稳定的现象,这是由于阻抗控制的关系。
可以看出实际轨迹和指令轨迹误差较大,这是由于:
- 阻抗刚度系数太小,但是太多在发生撞击时会不稳定。
- 没有重力配平
再看整个运动过程:
【机器人算法】机器人动力学、运动学和基于动力学模型的仿真与控制相关推荐
- SolidWorks+thonny esp32 电磁控制,程序算法搞起来了,我的结构-仿真-电磁-控制-算法的学习之路
来个自我介绍,本科是微电子制造专业,隶属于机电工程学院,所以机械,电子,控制,流体,材料,结构这些基础都有,而且水平不低.工作了13年,主要干机械,代码写得少,吃了软件亏.干过飞行器,无人机,机器人, ...
- 感应电机转速自适应观测器基于simulink模型仿真
感应电机转速自适应观测器基于simulink模型仿真 矢量控制,电机建模等资料 ID:69160657503527528
- 【路径规划】基于matlab DWA算法机器人局部避障路径规划【含Matlab源码 890期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[路径规划]基于matlab DWA算法机器人局部避障路径规划[含Matlab源码 890期] 获取代码方式2: 通过订阅紫极神光博客付费 ...
- 【路径规划】基于matlab灰狼算法机器人栅格地图最短路径规划【含Matlab源码 2334期】
⛄一.灰狼算法的厂房巡检机器人路径规划简介 0 引言 近年来,我国各行各业的不断发展使相关工作流程得到了完善,其中巡检岗位是一个不可或缺的职位,尤其是在电厂.燃气厂房和煤矿等危险领域中的工作,更不能缺 ...
- 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真
基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...
- 【路径规划】基于matlab灰狼算法机器人栅格地图最短路径规划【含Matlab源码 1761期】
⛄一.灰狼算法的厂房巡检机器人路径规划简介 0 引言 近年来,我国各行各业的不断发展使相关工作流程得到了完善,其中巡检岗位是一个不可或缺的职位,尤其是在电厂.燃气厂房和煤矿等危险领域中的工作,更不能缺 ...
- 六自由度机器人牛顿-欧拉法动力学建模(自己学习用)
目录 一.理论知识 1.机器人正向运动学与逆向运动学 2.机器人动力学建模方法 3.推牛顿-欧拉法 (1)一些物理概念 (2)牛顿-欧拉法推导 二.算法实现 都是自己在建立模型过程中发现需要掌握的知识 ...
- 《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程
本节书摘来自华章社区<机器人与数字人:基于MATLAB的建模与控制>一书中的第2章,第2.3节指数映射和k过程,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区 ...
- 领航机器人广告段子_一种基于领航跟随的移动机器人编队控制方法
一种基于领航跟随的移动机器人编队控制方法 [技术领域] [0001] 本发明设及移动机器人运动控制领域,尤其设及一种基于领航跟随的移动机器人 编队运动控制方法. [背景技术] [0002] 随着机器人 ...
最新文章
- vim的文件中字符串的查找与替换
- 祝贺!又一批清华大学长聘教授,来了!
- MySQL单表数据量过千万,采坑优化记录,完美解决方案
- linux cpu拓扑查看工具 hwloc 简介
- java信息管理系统总结_java实现科研信息管理系统
- 注册中心ZooKeeper、Eureka、Consul 、Nacos
- Windows MDL原理总结
- asp.net core系列 59 Ocelot 构建基础项目示例
- android控件使用大全,Android常见控件使用详解
- java xmpp_Java XMPP负载测试工具
- junit runner_了解JUnit的Runner架构
- matlab编译dll vb调用,用matlab的deploytool生成DLL,VB无法调用的问题
- 最接近WeChat的全屏自定义相机(Custom Camera)
- 三级网络-不单单是学知识
- tnsnames.ora配置未生效_一文了解网络交换机的6种命令配置模式
- 最短路计数(松弛操作处理)
- 工时分析软件哪个好用?ECRS工时分析软件-精益人都在用的IE分析软件
- 网易云会员歌曲下载记录(.ncm-.mp3)
- 最小二乘支持向量机(LSSVM)推导
- 人体神经网络分布图高清,周围神经组成及分布
热门文章
- NodeMCU开发板详解(ESP8266开发篇)
- 在SQLServer处理中的一些问题及解决方法 NEWSEQUENTIALID()
- python制作软件界面_python界面设计工具Qtdesigner
- Outlook邮件客户端邮件如何备份?
- 抖音直播带货选品怎么做?怎么排品组货才能提升商品转化?
- 临危受命 MDOP企业桌面管理的价值
- linux替换jar包目录,Linux下用jar命令替换war包中的文件【转】
- 牛客SQL练习题笔记 -- 连接两次子查询返回表获取员工薪资涨幅
- 处理前端开发浏览器字体小于12px方法
- 卷积神经网络(CNN)系列介绍之一 (LeNet-5 / AlexNet / GoogLeNet / VGGNet / BNInception / Inceptionv3)