工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(四)——雅可比矩阵

news2024/12/27 12:33:24

文章目录

  • 建立DH模型
  • 机器人正运动学
  • 机器人逆运动学
  • 机器人雅可比矩阵
    • △ 机器人速度雅可比矩阵
      • ○ 雅可比矩阵相关概念
      • ○ 以二连杆平面机器人举例说明雅可比矩阵
    • △ 机器人雅克比矩阵与速度分析
    • △ 雅克比矩阵的奇异性
      • ○ 机器人的奇异位形(奇异形位、奇异点)
    • △ 雅可比矩阵的建立
      • ※ 相邻连杆间的速度关系
      • ○ 矢量积法
        • · 矢量积法概念
        • · 矢量积法求机器人雅可比矩阵示例
      • ○ 微分变换法
        • · 坐标系的微分运动
        • · 机器人的微分运动
        • · 微分变换法概念
          • ※ 关于相对于末端(工具)坐标系的雅可比矩阵
        • · 微分变换法求2连杆机械臂雅可比矩阵示例
      • ○ 矢量积法与微分变换法的转换关系
    • △ ZK-500六轴工业机器人的雅可比矩阵
      • ○ 矢量积法
      • ○ 微分变换法
      • ○ matlab机器人工具箱法
        • · jacob0()
        • · jacobn()
        • · 雅可比矩阵的变换
        • · matlab代码


CSDN提示我字数太多,一篇发不下,只好拆分开。。。


❤ 2023.8.2 ❤
在这里插入图片描述

建立DH模型

→→→【工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(一)——DH模型与正运动学】


机器人正运动学

→→→【工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(一)——DH模型与正运动学】


机器人逆运动学

→→→【工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(二)——逆运动学P1】

→→→【工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(三)——逆运动学P2】


机器人雅可比矩阵

△ 机器人速度雅可比矩阵

关于雅可比矩阵的内容,说实话教材看得我一头雾水,感觉自己可能有阅读障碍综合征。。。。然后我在B站找到了这个教程,感觉很简洁实用
→→→【4-1机器人速度雅可比矩阵】

以下是我的学习笔记

○ 雅可比矩阵相关概念

  • 雅可比矩阵概念

雅可比矩阵(Jacobian)是机器人操作空间速度与关节空间速度之间的线性映射关系,同时也可以表示两空间之间力的传递关系。

  • 机器人末端位姿的表示

齐次变换矩阵

在这里插入图片描述

  • 角度设定法

采用相对参考坐标系或相对运动坐标系作三次连续转动来规定姿态的方法

在这里插入图片描述

绕坐标系的转角正常来说就是欧拉角,是要考虑先后顺序的,但是这里的转角认为是与坐标轴的夹角

在这里插入图片描述

故用角度设定法表示机器人末端位姿时,机器人的运动学方程可写成

在这里插入图片描述


○ 以二连杆平面机器人举例说明雅可比矩阵

如图二连杆平面关节机器人

在这里插入图片描述

机器人末端位置可以表示为

在这里插入图片描述

在这里插入图片描述

对改式求微分得

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

根据前面的式子可得

在这里插入图片描述

于是

在这里插入图片描述


△ 机器人雅克比矩阵与速度分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 每一列表示其他关节不动而某一关节运动的端点速度
  2. 前三行代表手部线速度与关节速度传递比;后三行代表手部角速度与关节速度传递比
  3. 雅克比矩阵J(q)是函数的一阶偏导数以一定方式排列成的矩阵,不仅可以用来表示操作空间速度与关节空间速度之间的线性映射关系,同时也用来表示两空间之间力的传递关系。

△ 雅克比矩阵的奇异性

在求机器人关节速度时,需要求雅可比矩阵的逆矩阵
在这里插入图片描述

在一些位姿下,雅可比矩阵会出现行列式得0的情况,这是雅可比矩阵的逆矩阵就会趋近无穷

在这里插入图片描述

在计算机中由于数据存储方式,一般不会等于0,但是会出现一个很小的数,也认为其等于0.


○ 机器人的奇异位形(奇异形位、奇异点)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 腕部奇异性:机器人4、6轴共线(5轴角度为0),造成四轴和6周大幅运动
  2. 肘部(边界)奇异性:机器人到达最大工作范围,造成肘部无法活动,3轴振动剧烈
  3. 肩部奇异性:1轴与6轴共线,或者1轴与4、5、6杆的坐标系原点共线,造成肘部大幅快速运动,容易造成危险

【待插入视频:工业机器人奇异性1】

→→→【工业机器人3种奇异点详解,没想到是先天缺陷,无法克服】

【待插入视频:工业机器人奇异性2】

→→→【【涨知识】机器人的奇异性是什么?】


△ 雅可比矩阵的建立

在这里插入图片描述


※ 相邻连杆间的速度关系

在这里插入图片描述

  • 移动关节

在这里插入图片描述

在这里插入图片描述

  • 旋转关节
    在这里插入图片描述

这部分我木有听懂,原视频链接在这里。。。
→→→【4-5机器人雅克比矩阵的建立】


○ 矢量积法

· 矢量积法概念

在这里插入图片描述

在这里插入图片描述

大概听明白了是什么意思(我自己的总结)

  • 首先末端速度是各关节运动产生的速度的叠加
  • 先假设某一个关节动,其他关节都不动,求出来这个关节的雅克比矩阵,也就是完整雅克比矩阵中的一列。
  • 计算的重点就是求出这个旋转的半径,半径就是这个转动关节的原点到末端点的连线
  • 每个关节都如此求解,最后把结果写在一起就是整体的雅克比矩阵。

【!注意!】
矢量积法求得的雅可比矩阵,计算后得到的速度向量是相对于基坐标系(世界坐标系)的


· 矢量积法求机器人雅可比矩阵示例

关于矢量积法求雅可比矩阵,之前的教程里没给出示例,这里还有一个视频可以参考
→→→【机器人学 l 3.6 速度雅可比矩阵的矢量积法】

  • 首先视频讲了一下矢量积法的概念

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  • 矢量积法求平面2R机器人雅可比矩阵

在这里插入图片描述


  • 矢量积法求scara机器人的雅可比矩阵

在这里插入图片描述

在这里插入图片描述


○ 微分变换法

· 坐标系的微分运动

在这里插入图片描述

我的理解:
听的不是很明白,感觉视频里的坐标系画的有问题,越看越糊涂,但是大概意思是

  • 首先,坐标系的微分运动指的是一个坐标系相对于自己的参考坐标系做的运动的微分,包括微分移动和微分转动
  • 然后,运动包括旋转运动和平移运动
  • 其次,微分转动仅受旋转运动影响,其值为角速度与变换矩阵的n o a向量的点乘
    (【??】关于为什么noa对应xyz方向,我不是很理解,以后弄明白了我再来补充,现在就当是定义了吧。。。)
  • 再次,微分平移同时收到旋转运动和平移运动的影响,其值为对应方向旋转运动的线速度(也就是叉乘)加上对应方向平移运动的分量(也就是平移速度与n o a的点乘)

· 机器人的微分运动

在这里插入图片描述

我的理解:

  • 这个不用我再理解了,就是机器人的关节速度通过雅可比矩阵转换成末端的线速度与加速度的形式
  • 雅可比矩阵每一列都表示对应的关节对机器人末端线速度和角速度的影响

· 微分变换法概念

在这里插入图片描述

我的理解:

  • 关于为什么这里雅可比矩阵可以写成这样,视频里up说这个就是前面这个公式的矩阵形式
    在这里插入图片描述
  • 但是我觉得他说的 【不对】,如果说这个是6关节机器人的雅可比矩阵,那么后面就没有必要再继续求了,直接就能根据变换矩阵写出对应的雅可比矩阵。而且雅可比矩阵每一列都是对应关节的映射关系,这个矩阵显然不符合。
  • 结合接下来的讲解(也就是下面这个图),我大概明白了,这个矩阵是对单关节(或者说关节对应的连杆坐标系)相对上一个关节(或者说上一个连杆坐标系)的雅可比矩阵求解方法,后面乘的向量也不是各关节的速度,而是单关节在xyz三个方向的平移和旋转速度分量。
    【当然也有可能不是相邻的上一个关节,这要看所带入的其次变换矩阵的】
  • 因为一个关节往往只对应一个方向的平移或旋转,所以才有如下的结果:

在这里插入图片描述

在这里插入图片描述

【!注意!】
微分变换法求得的雅可比矩阵,计算后得到的速度向量是相对于末端(工具坐标系)的!


※ 关于相对于末端(工具)坐标系的雅可比矩阵

我想了半天没想明白是什么意思,然后我问了问ChatGPT

在这里插入图片描述
在这里插入图片描述

ChatGPT yyds!


· 微分变换法求2连杆机械臂雅可比矩阵示例

在这里插入图片描述

【?】这DH坐标系建的不对吧?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我的理解:

  • 变换矩阵的连乘,目的是构建末端与所求关节的位置关系。
  • 只需考虑当前关节和末端的位置关系即可,不需要考虑和前面的坐标系的关系,最后得到的是末端相对当前关节(或者说当前关节所在的连杆坐标系)的速度关系

○ 矢量积法与微分变换法的转换关系

这个问题我找了很多资料都没有提到。

  • 首先 矢量积法和微分变换法求得的雅可比矩阵是不相同的

微分变换法自不用说,求解过程很直观,理解起来也容易,他的结果是相对基坐标系(世界坐标系)的映射,也就是我们想要得到的结果

而微分变换法得到的雅可比矩阵是相对于机器人末端坐标系(工具坐标系)的映射,蔡自兴《机器人学》里面有对应的表示

在这里插入图片描述

也就是说微分变换法的结果不能直接拿来用,需要将其转换为在基坐标系下的结果。

  • 矢量积法与微分变换法的转换关系

我在一个讲雅可比的PPT中看到了他们之间的转换方法

在这里插入图片描述

其中 n 0 R T {_n^0}R^T n0RT表示基坐标到末端的齐次变换矩阵的旋转矩阵部分。

【!!!】至于为什么,我也不知道。。。。。希望有大佬来补充

  • 另外关于两种方法以及其他方法的对比

这里有一篇文章有更多的讲解,而且文章附上了对应的matlab代码可以参考

→→→【机器人学回炉重造(2-2):雅可比矩阵的求法——矢量积法、微分变换法、Manipulator Jacobian(Jacobian for short)】


△ ZK-500六轴工业机器人的雅可比矩阵

○ 矢量积法

(内容待补充。。。)


○ 微分变换法

(内容待补充。。。)


○ matlab机器人工具箱法

使用机器人工具箱求雅可比,就。。。挺简单的。。。

虽然没有前面的内容,也可以直接用机器人工具箱求雅可比,但是所谓“知其然,又要知其所以然”嘛~

方法可以参考

→→→【matlab机器人工具箱学习笔记——瞬态运动学】

或者我自己的

→→→【Matlab机器人工具箱(Robotics Toolbox)学习笔记】

· jacob0()

  • SerialLink.jacob0()
    求出对应某个位姿下世界坐标系中的雅克比矩阵

对应矢量积法的结果


· jacobn()

  • SerialLink.jacobn()
  • 求出对应某个位姿下工具坐标系中的雅克比矩阵

对应微分变换法的结果


· 雅可比矩阵的变换

在这里插入图片描述


· matlab代码

  • 代码
%ZK-500机器人雅可比矩阵计算——机器人工具箱

clc
clear all;

%% 输入关节角
%这里的输入为角度
theta1=10;
theta2=10;
theta3=10;
theta4=10;
theta5=10;
theta6=10;

%% ZK500机器人MDH参数(m)
% theta(z)  d(z)     a(x)     alpha(x)  
%[  0       d1       0        0       ]
%[  0+pi/2  0        a1       pi/2    ]
%[  0       0        a2       0       ]
%[  0       d4       a3       pi/2    ]
%[  0       0        0       -pi/2    ]
%[  0       0        0        pi/2    ]
d1=1.05;
a1=0.5;
a2=1.3;
a3=0.15;
d4=1.2;
dt=0.39;

%将角度转化为弧度
q(1)=theta1/180*pi;
q(2)=theta2/180*pi+pi/2;    % 关节2补偿90°
q(3)=theta3/180*pi;
q(4)=theta4/180*pi;
q(5)=theta5/180*pi;
q(6)=theta6/180*pi;

%----------
%机器人工具箱建立机器人模型
%        theta(z)   d(z)     a(x)     alpha(x)  
L1=Link([  0       d1       0        0       ],'modified');
L2=Link([  0       0        a1       pi/2    ],'modified');
L3=Link([  0       0        a2       0       ],'modified');
L4=Link([  0       d4       a3       pi/2    ],'modified');
L5=Link([  0       0        0       -pi/2    ],'modified');
L6=Link([  0       0        0        pi/2    ],'modified');
Robot_ZK500=SerialLink([L1,L2,L3,L4,L5,L6],'name','ZK-500');


%----------
%输出结果
disp('世界坐标系中的雅可比矩阵:');
J0=Robot_ZK500.jacob0(q)

disp('工具坐标系中的雅可比矩阵:');
Jn=Robot_ZK500.jacobn(q)

  • 结果
世界坐标系中的雅可比矩阵:

J0 =

   -0.2345   -1.8038   -0.5430         0         0         0
    1.3301   -0.3181   -0.0957         0         0         0
         0    0.8506    1.0763         0         0         0
    0.0000    0.1736    0.1736    0.9254    0.2295    0.8590
    0.0000   -0.9848   -0.9848    0.1632   -0.9595    0.1208
    1.0000    0.0000    0.0000    0.3420   -0.1632    0.4975

工具坐标系中的雅可比矩阵:
警告: Use jacobe instead of jacobn 
> 位置:SerialLink/jacobn (981)
位置: Jacob_RTB (56) 

Jn =

   -0.4584    1.5633    1.1356         0         0         0
   -1.2698   -0.5271   -0.4118         0         0         0
   -0.0407   -1.1647    0.0575         0         0         0
    0.8107    0.3394    0.3394   -0.1710    0.1736         0
   -0.3086    0.9402    0.9402    0.0302    0.9848         0
    0.4975    0.0302    0.0302    0.9848    0.0000    1.0000

这个“Use jacobe instead of jacobn ”是什么个情况?
大概是新的函数名吧,e可能是end什么的


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

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

相关文章

Docker中容器数据卷

容器数据卷 一.什么是容器数据卷二.使用数据卷方式一:直接使用命令来挂载 -v 三.具名和匿名挂载 一.什么是容器数据卷 docker理念 将应用和环境打包成一个镜像! 数据?如果数据都在容器中,那么我们的容器删除,数据就会…

一文吃透UML图(海贼版)

先来简单的说一说什么是UML? UML是统一建模语言,是用来设计软件的可视化建模语言,它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息,UML从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图…

spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul

一、背景 健康检测接口返回OUT_OF_SERVICE curl -X GET http://192.168.5.53:8085/mgm/health{"status":"OUT_OF_SERVICE"}从日志启动看,没有任何报错信息;而且jvm进程也启动成功。 关键的一点信息是,服务的swagger地…

docker 资源限制

目录 1、CPU使用率 2、CPU共享比例 3、CPU周期限制 4、CPU核心限制 5、CPU 配额控制参数的混合案例 6、内存限制 7、Block IO 的限制 8、限制bps 和iops docker资源限制 Docker容器技术底层是通过Cgroup(Control Group 控制组)实现容器对物理资…

iOS多线程——pthread、NSThread

pthread NSThread 多线程的常见方案pthreadpthread 简介pthread 使用方法pthread 其他相关方法 NSThread创建、启动线程线程相关用法线程状态控制方法线程之间的通信NSThread 线程安全和线程同步NSThread 非线程安全NSThread 线程安全 多线程的常见方案 技术方案特点使用语言线…

[企业权限管理项目](二)环境搭建

数据库与表结构 oracle Oracle 为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间 创建用户及密码 语法[创建用户]: create user 用户名 identified by 口令[即密码]; 例子: create user tes…

bigemap在草原行业的应用案例

一.为什么选择Bigemap 1.使用软件一般都用于套坐标以及空间规划图,方便于项目选址和居民建房报建 2.在卫星图上找到用地范围,然后打点,导出点位范围的2000坐标,用于汇报出图 3.CGCS2000坐标系通过矢量转换转成地方坐标系

Noah-MP陆面过程模型建模方法与站点、区域模拟教程

详情点击链接:Noah-MP陆面过程模型建模方法与站点、区域模拟教程 陆面过程的内容(陆表能量平衡、水循环、碳循环等),陆面过程研究的重要性。 图 1 陆面过程主要研究内容 陆面过程模型的发展、基本原理、常用陆面过程模型等。 图…

VR虚拟仿真技术在道路桥梁中有哪些具体应用?

虚拟现实(VR)是一种新兴的技术,可以为桥梁工程提供许多应用场景。以下是一些可能的应用场景: 1.桥梁设计和模拟 VR元宇宙可以用于桥梁的设计和模拟。工程师可以使用VR技术来创建桥梁的三维模型,并对其进行测试和优化。这可以帮助工程师更好地…

C# Blazor 学习笔记(7):组件嵌套开发

文章目录 前言相关资料组件嵌套组件模板RenderFragment 意义传统前端样式组件化css 前言 我们在组件化一共有三个目的。 不用写CSS不用写html不用写交互逻辑 简单来说就是Java常说的约定大于配置。我们只需要必须的参数即可,其它的都按照默认配置。我们不需要关系…

intel advisor安装与使用

前言 没有搜到相关教程,所以自己写一篇,如有不足请指正 安装 建议直接安装完整工具包 Intel oneAPI Base Toolkit 注意先安这个 https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html linux指令 wget http…

让这些ai绘画神器为你打开创作灵感的大门

在一个小镇上,住着一位名为奥斯卡的艺术家。他的画作仿佛有生命般跃动,每一幅都散发着神秘的魔力。然而,奥斯卡却感到自己的创造力有些枯竭。他渴望找到一种新的灵感源泉,以挑战自己的创作瓶颈。这时,他听说了ai绘画生…

大数据与okcc呼叫中心融合的几种方式

在实际的生产实践中,为提高营销效率,避免骚扰大众,很多呼叫中心业务会与大数据平台进行合作,进行精准营销。 买卖数据是非法的,大数据平台方并不会提供直接的数据,一般情况下,提供的数据都是脱…

马上解锁 StarRocks 存算分离,降本增效无需等!

StarRocks 于 4 月底正式发布了 3.0 版本,该里程碑版本带来了大家期盼已久的新特性--存算分离。此新功能一推出,立即受到社区热情追捧,用户纷纷开始在自己的业务中评估和测试存算分离效果。从芒果TV、聚水潭、网易邮箱、浪潮、天道金科等数十…

【技巧】学术Poster的制作要点,详细!

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 内容零零散散均收集自网上,有点杂忘了引用。 内容技巧 https://posts.careerengine.us/p/5dac3e628c131b0541dd9171 展示内容包括(将信息分块) 可选择性删减,注意…

分享可以免费使用的5款好用小工具

​ 最近后台收到好多小伙伴的私信,今天继续推荐五款小工具,都是免费使用的,大家可以去试试看。 剪贴板管理器——ClipX ​ ClipX是一款微型剪贴板管理器,可以记录你复制的文本和图像,并让你随时通过快捷键或鼠标菜单…

git面试题

文章目录 git经常用哪些指令git出现代码冲突怎么解决你们团队是怎么管理git分支的如何实现Git的免密操作 git经常用哪些指令 产生代码库 新建一个git代码库 git init下载远程项目和它的整个代码历史 git clone 远程仓库地址配置 显示配置 git config --list [--global]编辑配置…

Python爬虫 从小白到高手 各种最新案例! request scrapy

Python爬虫 从小白到高手 各种最新案例! Urllib Xpath JsonPath BeautifulSoup requests 1.基本使用 1.官方文档: http://cn.python‐requests.org/zh_CN/latest/ 快速上手 http://cn.python‐requests.org/zh_CN/latest/user/quickstart.html 2.安装 pi…

数字运营、协同高效,为园区高质量发展插上“数字化”翅膀

园区,是产业集群的枢纽,是城市发展的基本要素。近年来,以大数据、人工智能、云计算等为代表的数字技术与城市的千行百业融合“发酵”,正在加速城市主体的智能升级。智慧园区作为数字化转型升级的一个缩影,上承智慧城市…

Rust dyn - 动态分发 trait 对象

dyn - 动态分发 trait 对象 dyn是关键字,用于指示一个类型是动态分发(dynamic dispatch),也就是说,它是通过trait object实现的。这意味着这个类型在编译期间不确定,只有在运行时才能确定。 practice tr…