机器人逆运动学 
机器人的逆解问题比较复杂,为了说明问题,下面先以2自由度的机器人为例。
如图所示,已知机器人末端的坐标值(x,y) ,试利用x,y  表示    
根据图中的几何关系可知: 
联立求解上述两方程,可分别求出           的表达式。
因此可进一步得到:
从机器人的手爪末端位置姿态出发,可以求出机器人对应的各关节的角度。该例的机器人是属于平面多关节机器人,对于一般的机械手来讲,其求解过程比较复杂,往往其解不是唯一的。
雅可比矩阵的定义 
前面讨论了机器人的指尖位置和方向与各关节的变化位置之间的关系。在本节将进一步讨论指尖的速度与各关节的速度(转动或平移)之间的关系。
考虑机械手的手爪位置    和关节变量     的关系用正运动学方程表示如下:
面以2自由度机械手为例,如前面图3-2所示的2自由度机械手的雅可比矩阵。前面已推导过,该机器人的指尖位置可以表示为
则与这个机器人的平移速度相关的雅可比矩阵,可以下列形式给出:
现在,我们来讨论一下     的各列向量的几何学意义,即在                 时,考虑       ,   的几何学意义。根据式(3-63),   是在时         ,也就是第2关节固定时,仅在第1关节转动的情况下,指尖平移速度在基准坐标系上表示出的向量。
同样,     是第1关节固定时,仅在第2关节转动的情况下,指尖平移速度在基准坐标系上表示出的向量。  
代码如下:

close all;
clear all;%机械臂末端规划沿z轴上升螺旋
R=2;%螺旋半径
V=4;%上升速度%初始位置x0 = 3;y0 =4;z0= 9;%二自由度机械臂 两臂长度
L1=8;
L2=13.5;
L3=16;%几何法求解初始角度
seta1=atan(y0/x0);
a=acos((L2*L2+L3*L3-(x0/cos(seta1))^2-(z0-L1)*(z0-L1))/(2*L2*L3));
seta3=pi-a;
seta2=atan((z0-L1)/(x0/cos(seta1)))-atan(L3*sin(seta3)/(L2+L3*cos(seta3)));%上一位置
x1=x0;
y1=y0;
z1=z0;
i=1;
for t=0.01:0.01:1%末端运动方程x =3+3*t;y =4+4*t;z =9+2*t;%坐标变换delta_x=x-x1;delta_y=y-y1;delta_z=z-z1;%更新数据x1=x;y1=y;z1=z;%jacobianJ=[ -sin(seta1)*(L3*cos(seta2 + seta3) + L2*cos(seta2)), -cos(seta1)*(L3*sin(seta2 + seta3) + L2*sin(seta2)), -L3*sin(seta2 + seta3)*cos(seta1);cos(seta1)*(L3*cos(seta2 + seta3) + L2*cos(seta2)), -sin(seta1)*(L3*sin(seta2 + seta3) + L2*sin(seta2)), -L3*sin(seta2 + seta3)*sin(seta1);0,               L3*cos(seta2 + seta3) + L2*cos(seta2),             L3*cos(seta2 + seta3)];q=(J^-1)*[delta_x;delta_y;delta_z];%角度变换delta_j1(i)=q(1,1);delta_j2(i)=q(2,1);delta_j3(i)=q(3,1);seta1=atan(y/x);a=acos((L2*L2+L3*L3-(x/cos(seta1))^2-(z-L1)*(z-L1))/(2*L2*L3));seta3=pi-a;seta2=atan((z-L1)/(x/cos(seta1)))-atan(L3*sin(seta3)/(L2+L3*cos(seta3)));%弧度检验seta_1(i)=seta1;seta_2(i)=seta2;seta_3(i)=seta3;i=i+1;
endiii = 0:0.01:1;
%seta1角度
figure(1);
plot(iii(1:100),delta_j1(1:100),'k');
hold on
set(gca,'ylim',[-1,1]);
xlabel('t / s'),ylabel('delta_seta1 / rad');%seta2角度
figure(2);
plot(iii(1:100),delta_j2(1:100),'k');
hold on
set(gca,'ylim',[-1,1]);
xlabel('t / s'),ylabel('delta_seta2 / rad');%seta3角度
figure(3);
plot(iii(1:100),delta_j3(1:100),'k');
hold on
set(gca,'ylim',[-1,1]);
xlabel('t / s'),ylabel('delta_seta3 / rad');%seta1角度
figure(4);
plot(iii(1:100),seta_1(1:100),'k');
hold on
set(gca,'ylim',[-2*pi,2*pi]);
xlabel('t / s'),ylabel('seta1 / rad');%seta2角度
figure(5);
plot(iii(1:100),seta_2(1:100),'k');
hold on
set(gca,'ylim',[-2*pi,2*pi]);
xlabel('t / s'),ylabel('seta2 / rad');%seta3角度
figure(6);
plot(iii(1:100),seta_3(1:100),'k');
hold on
set(gca,'ylim',[-2*pi,2*pi]);
xlabel('t / s'),ylabel('seta3 / rad');

关于机械臂逆运动学 jacobian矩阵相关推荐

  1. 数值法求六轴机械臂逆运动学解

    问题描述:已知工具坐标系相对于固定坐标系的期望位置和姿态,如何求解满足期望位姿的关节角? 本篇将通过基于雅克比矩阵的牛顿-拉夫森迭代法求运动学逆解. 牛顿 - 拉夫森法(Newton - Raphso ...

  2. UR机械臂逆运动学解析解

    UR机械臂逆运动学解析解 ur10机械臂的DH(修正)参数为 d1=0.1273;a2=-0.612;a3=-0.5723;d4=0.163941;d5=0.1157;d6=0.6922; 首先,推导 ...

  3. PUAM560机械臂逆运动学实例-梳理

    经过努力,对课本中PUAM560机械臂的运动学逆解算的实例进行了梳理,啥事都得动手试试才能学的深刻,整理一下我的理解和思路.由于首次接触逆解对于许多概念理解很不到位,不过随着学习的深入我相信我会越来越 ...

  4. 【现代机器人学】基于指数积的机械臂逆运动学

    0 引言    基于指数积的正运动学    现代机器人学名词概念   有了以上的基础,我们现在利用指数积来对机器人的逆运动学进行求解,有一点需要注意,需要先对机器人进行指数积的正运动学建模,然后才能利 ...

  5. 柔性matlab机械臂运动空间代码,中正平和的机器人学笔记——2. 机械臂逆运动学(附MATAB代码)...

    0. 预备知识(别跳过呀) 上一篇我们讲了正运动学,也就是通过齐次变换矩阵,知晓关节角后求得机械臂末端的位姿,并表示在基座标系下.这一篇我们就来讲一讲逆运动学问题--已知工具坐标系{T}相对于固定坐标 ...

  6. 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真

    基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...

  7. 几种冗余机械臂逆向运动学方法(带公式推导)

    此篇博客转自本作者在古月居的博客:几种冗余机械臂逆向运动学方法(带公式推导) - 古月居 前言: 之前展哥(导师)喊我在入学前做一个具有冗余腿的四足机器人用于部署XXX算法,验证XXX的ideal.最 ...

  8. 六自由度机器人(机械臂)运动学建模及运动规划系列(二)——运动学分析

    本篇主要介绍六轴机械臂的运动学分析. 运动学分析是工业机器人研究和应用的重要内容,是运动控制的基础,主要研究机器人末端坐标系与基坐标系的转换关系,分为正运动学和逆运动学分析两部分. 另外,对于刚刚学习 ...

  9. 机械臂——六轴机械臂逆解

    环境:MATLAB 2017B+Robotics Toolbox 9.10.0 前期准备:完成机械臂数学模型的建立+计算机械臂工作空间 https://blog.csdn.net/Kalenee/ar ...

最新文章

  1. android 拖动的view,Android实现随意拖动View效果
  2. 闲鱼靠什么支撑起万亿的交易规模?| 云原生Talk
  3. 迭代器和生成器的区别
  4. 结构体在内存中的对齐规则
  5. java中ra怎么解释_JAVA个人相关知识总结
  6. oracle建共享dblink,oracle建多个dblink
  7. 【Gson】2.2.4 StackOverflowError 异常
  8. 怎么捡自己空投_绝地求生:如何用纸皮自制空投?只需2个道具即可完成,附带教程...
  9. python image 转成字节_Python 办公自动化之 Excel(下)
  10. 图像预处理的一般步骤
  11. RFB-Net论文代码映射
  12. PyQt5 组合键
  13. python爬虫(五):博客spider
  14. openssl 交叉编译
  15. Android Studio | 页面布局
  16. 吟游诗人——在线调戏谷歌新出的AI机器人Bard
  17. 坏小子军团Stary造了一块电动滑板,想帮你用最低的代价去耍(zhuang)酷(bi)
  18. 管理学中常用的激励理论
  19. 避坑指南:Zotero的文件管理与同步zotfile、webdav
  20. tryhackme圣诞挑战2021-Advent of Cyber 3-day2-越权漏洞,修改cookie

热门文章

  1. C语言小游戏系列—恶搞关机软件,亲测QAQ
  2. 基于ruby的供应链分销系统的设计与实现
  3. 京东账户集中被盗 拷问电商网站安全
  4. 荣耀8.0系统设备(亲测有效)激活Xposed框架的经验
  5. Visual Studio C++ 远程调试 附加到进程 MSVSMON.EXE
  6. jq实现背景图片动态切换
  7. 设计模式--简化解释(二)——结构型设计模式
  8. 达内java2019项目_Java学员作品-达内图书馆管理系统
  9. 数据结构_顺序表SeqList(C++
  10. OpenCV人脸识别(二) 初步实现人脸签到