六自由度机械手正逆运动学

  • 1 正运动学
    • 1.1 DH法参数表
    • 1.2 建立运动学方程
    • 1.3 Matlab建模
  • 2 逆运动学
  • 3 工作空间

1 正运动学

正向运动学已知条件为各个关节的角度,通过各个关节的角度来求解机械手末端的位姿。

1.1 DH法参数表


按如上步骤对六自由度机械手建立坐标系,得到如图:

根据所建立的坐标系采用Denavit-Hartenbery法进行运动学求解,其连杆参数如下表所示。

令l1=50cm,l2=l3=40cm,l4=20cm,l5=l6=0cm。

1.2 建立运动学方程

变换矩阵的运算可以利用matlab中的符号变量syms,以坐标系4对坐标系3的坐标变换为例:

%坐标系4对坐标系3的坐标变换
syms c4 s4 l4;
T1=[1 0 0 0;0 0 -1 0;0 1 0 0;0 0 0 1];
T2=[c4 -s4 0 0;s4 c4 0 0 ;0 0 1 0;0 0 0 1];
T3=[1 0 0 0;0 1 0 0;0 0 1 l4;0 0 0 1];
T34=T1*T2*T3%得到答案
T34 =[ c4, -s4,  0,   0]
[  0,   0, -1, -l4]
[ s4,  c4,  0,   0]
[  0,   0,  0,   1]

可以得出各个变换矩阵,也可通过手动计算的方式,得到变换矩阵:

由此可得:

计算可得:

1.3 Matlab建模

根据所得的DH参数表,再利用matlab机器人工具箱robotic toolbox,可以很简便的得到matlab模型,matlab程序如下:

clear all
clc
%The parameter of DH
l=[0.5 0.4 0.4 0.2 0.2 0.2 0.2]
a=pi/2
%MDH coordinate
%         θ    d       a    α       offset
L(1)=Link([0   0        0    0          0  ],'modified');
L(2)=Link([0   0        0    a          0  ],'modified');
L(3)=Link([0   0       l(2)    0          0  ],'modified');
L(4)=Link([0   l(3)+l(4)    0    a          0  ],'modified');
L(5)=Link([0   0        0   -a          0  ],'modified');
L(6)=Link([0   l(5)       0    a          0  ],'modified');
%L(7)=Link([0   l(6)       0    0          0  ],'modified');qr=[0 0 pi/2 0 0 0 ] ;  % ready
qu=[0 pi/3 -pi/6 0 pi/3 0 ];
%qu=[0 0 0 0 0 0 0];% standup robot=SerialLink(L,'name','robot6R','manufacturer','Unimation','comment','AK&B');
robot.display();  %display MDH tablerobot.fkine(qr) %zero
robot.plot(qr); %readyrobot.fkine(qu);
robot.plot(qu); %standupt=0:0.01:1;
[q,qd,qdd]=jtraj(qr,qu,t);
plot(t,qd,t,qdd);teach(robot)

得到结果:

l =0.5000    0.4000    0.4000    0.2000    0.2000    0.2000    0.2000a =1.5708robot = robot6R [Unimation]:: 6 axis, RRRRRR, modDH, slowRNE             - AK&B;
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|          0|          0|          0|          0|
|  2|         q2|          0|          0|     1.5708|          0|
|  3|         q3|          0|        0.4|          0|          0|
|  4|         q4|        0.6|          0|     1.5708|          0|
|  5|         q5|          0|          0|    -1.5708|          0|
|  6|         q6|        0.2|          0|     1.5708|          0|
+---+-----------+-----------+-----------+-----------+-----------+ans = 0         0         1       1.20        -1         0         01         0         0         00         0         0         1

以及:



再最后的teach——示教图中,可以通过改变关节角度来实现对机器人运动的控制。

2 逆运动学

逆运动学分析与正运动学分析计算过程完全相反,即给出驱动机器人末端位姿,求解各个连杆关节的变量值。

可以得到

可以算出各个关节的选择角度。

3 工作空间

机械手的工作空间,可通过一下matlab程序得出:

clc
clear all
%DH参数
l=[0.5 0.4 0.4 0.2 0.2 0.2 0.2]
a=pi/2
%       theta    d        a        alpha     offset
L1=Link([0   0        0    0          0  ],'modified');
L2=Link([0   0        0    a          0  ],'modified');
L3=Link([0   0       l(2)    0          0  ],'modified');
L4=Link([0   l(3)+l(4)    0    a          0  ],'modified');
L5=Link([0   0        0   -a          0  ],'modified');
L6=Link([0   l(5)       0    a          0  ],'modified');
robot=SerialLink([L1 L2 L3 L4 L5 L6 ],'name','manman');
A=unifrnd(-pi,pi/2,[1,30000]);
B=unifrnd(-pi/2,pi/2,[1,30000]);
C=unifrnd(-pi,pi,[1,30000]);
D=unifrnd(-pi,pi/2,[1,30000]);
E=unifrnd(-pi/2,pi/2,[1,30000]);
F=unifrnd(-pi,pi,[1,30000]);G= cell(30000, 3);        %建立元胞数组
for n = 1:30000G{n} =[A(n) B(n) C(n) D(n) E(n) F(n)];
end                         %产生3000组随机点
H1=cell2mat(G);              %将元胞数组转化为矩阵
T=double(robot.fkine(H1));      %机械臂正解
figure(1)
scatter3(squeeze(T(1,4,:)),squeeze(T(2,4,:)),squeeze(T(3,4,:)))
robot.plot([pi/2 pi/4 0],'workspace',[-5 5 -5 5 -5 5 ],'tilesize',2)        %机械臂图

得到下图:

六自由度机械手正逆运动学相关推荐

  1. 六自由度机器人正逆运动学

    简介 本文主要是对传统六自由度机器人进行正逆运动学求解,选取大族机器人Elfin05 为分析的对象,开发语言是C++.(完善中) 机器人正运动学 机器人正运动学推导过程 各关节坐标系确定的通用方法: ...

  2. 三自由度求解正逆运动学

    (空间机器人运动学刚结课,最后的大作业是根据一个3r机械臂求解正.逆运动学:雅可比矩阵:利用拉格朗日方程建立动力学方程:设置控制器:matlab仿真运动.搞了好久,在这就简单地记录一下吧,以及一些知识 ...

  3. 五自由度机械臂正逆运动学算法(C语言+Matlab)

    五自由度机械臂建模 学习代码都记录在个人github上,欢迎关注~ Matlab机器人工具箱版本9.10 机械臂还是原来的机械臂,之前用ROS做底层驱动,不需要写正逆运动学和相关算法就能得到一些简单的 ...

  4. 修正逆解文章——六轴UR机械臂正逆运动学求解_MATLAB代码(标准DH参数表)

    如下参考链接1的作者大大实现了UR5机械臂的正运动学和逆运动学的Matlab代码.但逆解部分在不同版本的Matlab中运行有错误. 本篇文章是MatlabR2016a下完成的,并说明一下原代码错误的原 ...

  5. 三轴机械臂/三自由度四足单腿DH正逆运动学及matlab验证

    实物模型 DH建立坐标系以及正逆运动学推导 Matlab验证 clear; clc; a1=-9.57*0.001;alpha1=pi/2; a2=-59.2*0.001; a3=-77*0.001; ...

  6. MATLAB机器人工具箱【1】——建模+正逆运动学+雅克比矩阵

    MATLAB机器人工具箱[1]-- 机械臂建模+正逆运动学+雅克比矩阵 1. 二维空间位姿描述 2. 三维空间位姿描述 3. 建立机器人模型 3.1 Link 类 3.2 SerialLink 类 3 ...

  7. Matlab机器人工具箱(1)——机器人的建立、绘制与正逆运动学

    Matlab机器人工具箱(1)--机器人的建立.绘制与正逆运动学 前言 rtbdemo 机器人的建立 代码解析 单个Link的解释 建立机器人整体的解释 绘制 正运动学 逆运动学 微分运动学(求雅克比 ...

  8. MATLAB仿真Gough-Stewart并联机器人斯图尔特6自由度并联机器人逆运动学仿真 动力学控制pid控制

    MATLAB仿真Gough-Stewart并联机器人斯图尔特6自由度并联机器人逆运动学仿真 动力学控制pid控制 1.搭建了六自由度Stewart并联机器人simulink simscape仿真模型 ...

  9. 10000多套机械手毕业设计 课程设计 毕业论文 图纸 分享/上下料机械手、搬运机械手、苹果采摘机械手、液压机械手、三自由度机械手、水果采摘机械手、六自由度机械手、焊接机械手、码垛机械手、四自由……

    10000多套机械手毕业设计 课程设计 毕业论文 图纸 分享/部分清单如下: 车床上下料机械手毕业设计全套(设计说明书(论文)+CAD图纸+PLC接线图+液压系统图+外文翻译) 搬运机械手及其控制系统 ...

  10. UR机械臂正逆运动学求解

    最近有个任务:求解UR机械臂正逆运动学,在网上参考了一下大家的求解办法,众说纷纭,其中有些朋友求解过程非常常规,但是最后求解的8组解,只有4组可用.在这里我介绍一个可以求解8组解析解的方法,供大家参考 ...

最新文章

  1. RDKit | 基于不同描述符和指纹的机器学习模型预测logP
  2. Nginx —— 检查配置文件nginx.conf的正确性命令(-t)
  3. 【正一专栏】轮回-从坚信去年骑士会逆转到今年坚定看好勇士横扫
  4. 2.3.1 进程的同步与互斥
  5. 基于Boost::beast模块的协程WebSocket 服务器
  6. 微型计算机中abcd是指,一级笔试模拟试题二(答案)
  7. Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题
  8. C++ 实现 STL 标准库和算法(二)template 编程和迭代器粗解 实验楼笔记
  9. POJ 3436 -- ACM Computer Factory(最大流,建图)
  10. (1) nginx的安装
  11. Kubernetes初探[1]:部署你的第一个ASP.NET Core应用到k8s集群
  12. Liferay –简单主题开发
  13. 为一路通(16tone)开博
  14. python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行
  15. 蓝牙MESH学习笔记
  16. Turbo码相关学习
  17. Hello hello world♥
  18. 解决本地请求跨域问题,替换代理,Whistle + chrome扩展工具SwitchyOmega
  19. 【实验室集训大作业】JDBC实现宠物商店
  20. http://nian.so/#网站的拓展工具编写

热门文章

  1. armbian编译安装mentohust 认证锐捷客户端
  2. Google退出中国
  3. 当前网络上迅雷各版本实际效果研究报告
  4. 开发文档chm文件打不开
  5. 用WIN PE通过修改系统注册表修复因盘符错乱而导致系统无法启动问题
  6. linetv_linetv台湾版官方下载|line tv安卓版下载_v1.0.10_9ht安卓下载
  7. logo字体设计心法
  8. 机器学习教程 之 Boosting 与 bagging:集成学习框架
  9. 基于单片机的简单温控风扇
  10. 统计学专业词汇英文翻译中英对照总结汇总(贾俊平 统计学 第七版 )