当前位置: 首页 > news >正文

【机器人学】6-5.六自由度机器人运动学参数辨识-逆运动学迭代解【附MATLAB代码】

前言

        上一章我们计算了机器人的绝对定位精度和重复定位精度。

【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】

        我们在空间中走5个点,循环30次,激光测量仪一共采集150个数据,其中激光测量仪数据的计算公式如下图所示:

        其中T_{0}^{1}*T_{1}^{2}*T_{2}^{3}*T_{3}^{4}*T_{4}^{5}*T_{5}^{6}是指定机器人需要到达的点位,而机器人需要通过运动学逆解,计算6个关节的角度,然后通过伺服控制使得电机旋转到指定的位置。

        这里我们认为激光测量仪测量到的数据为机器人实际到达的位置,而T_{-1}^{0}*T_{0}^{6}*T_{6}^{7}为机器人理论到达的位置,在实际过程中,会产生误机器人的理论位置与实际位置不相同。因此引出了机器人的精度问题。

        随之而来的产生了另一个问题:标定后的DH参数如何用于机器人的运动学逆解?如果你看过我前面的博文:

【机器人学】2-1.六自由度机器人运动学逆解【附MATLAB机器人逆解代码】_6自由度机器人逆向运动学求解公式-CSDN博客

       你就会想到在推推导一遍机器人逆运动学的公式就OK了,当然,答案是否定的,否则这篇博客也就没有了意义。

        首先,6自由度机器人的DH参数为4*6=24个,这24个参数不为0的参数个数和位置不同,其逆解的表达式也是不同的。所有如果标定后的DH参数差距较大,为每个机器人用不同的逆解的表达式,显然是不太可行的。并且由辨识参数的耦合性分析可知,参数间存在等效关系,个别参数并不能表达真实的机器人DH参数。【机器人学】6-3.六自由度机器人运动学参数辨识- 机器人辨识参数耦合性分析-CSDN博客

        因此在实际的工业控制中,采用迭代解的形式进行机器人逆运动学求解。

逆运动学迭代解

        总体思路为用标准的DH参数求逆解(即博文第2-1的内容),用辨识后的DH参数进行优化。

        已知辨识前的DH参数

        辨识后的DH参数

MATLAB代码

        代码文件较多不适合直接放在博客,我上传到了CSDN需要的自行下载。

工业控制中使用的-六自由度机器人迭代解

        代码包含了,机器人正解,逆解以及雅可比矩阵的知识,详见我的博客:

【机器人学】1-1.六自由度机器人运动学正解 【附MATLAB代码】【机器人学】2-1.六自由度机器人运动学逆解【附MATLAB机器人逆解代码】

【机器人学】3-1.六自由度机器人速度域-雅克比矩阵【附MATLAB代码】_

结果验证

        第一列为迭代解求得的关节角度,第二列为给定的关节角度。

下一章 【机器人学】7-1.六自由度机器人自干涉检测-总体算法介绍

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 响应式Web设计的发展与特点
  • 【rz sz】Centos/Linux 如何快捷的上传下载文件到系统当中?
  • 白骑士的Matlab教学基础篇 1.4 函数与脚本
  • LeetCode Hot100 LRU缓存
  • Npm使用教程(详细讲解)
  • 算法打卡 Day19(二叉树)-平衡二叉树 + 二叉树的所有路径 + 左叶子之和 + 完全二叉树的节点个数
  • 【学习笔记】:Maven初级
  • 2024rk(案例三)
  • 【debian系统arm架构安装docker】且换源后依旧不行就离线导入镜像
  • c++修仙小游戏预告
  • 自动驾驶的一些大白话讲解
  • 分享一个学习数据结构的网站(美国就金山大学)
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • C++理解虚拟函数、多继承、虚基类和RTTI
  • CV党福音:YOLOv8实现语义分割
  • [译] React v16.8: 含有Hooks的版本
  • 【技术性】Search知识
  • CSS相对定位
  • golang 发送GET和POST示例
  • JavaScript的使用你知道几种?(上)
  • mongo索引构建
  • MySQL数据库运维之数据恢复
  • Python学习笔记 字符串拼接
  • Swift 中的尾递归和蹦床
  • vue:响应原理
  • 高性能JavaScript阅读简记(三)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 系统认识JavaScript正则表达式
  • 一个JAVA程序员成长之路分享
  • k8s使用glusterfs实现动态持久化存储
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 正则表达式-基础知识Review
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • ​字​节​一​面​
  • ![CDATA[ ]] 是什么东东
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (13):Silverlight 2 数据与通信之WebRequest
  • (Java入门)抽象类,接口,内部类
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Reactor简单使用教程
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET未来路在何方?
  • .Net中wcf服务生成及调用