MATLAB Robotic Toolbox 机器人工具箱示例

程序是基于Matlab2016a,工具箱版本为Robotic Toolbox 10.2
参考博客:
MATLAB机器人工具箱使用
Matlab Robotic Toolbox V9.10工具箱(三):轨迹规划
六轴机器人建模方法、正逆解、轨迹规划实例与Matalb Robotic Toolbox 的实现
效果:
在这里插入图片描述
在这里插入图片描述
代码:

clear;
clc;
% 建立连杆系
L1=Link([0 12.4   0   pi/2  0  -pi/2 ]);
L2=Link([0 0      0  -pi/2           ]);
L3=Link([0 15.43  0   pi/2           ]);
L4=Link([0 0      0  -pi/2  0   0    ]);
L5=Link([0 15.925 0   pi/2           ]);
L6=Link([0 0      0  -pi/2           ]);
L7=Link([0 15.0   0   0     0   pi/2 ]);% 机器人模型对象建立
Rbt=SerialLink([L1 L2 L3 L4 L5 L6 L7]);% 6轨迹点的关节变量值
q0=[0 0 0 0 0 0 0];
qsq1=[0.46088 0.37699 0 1.31 0 1.4451 0];
qsq2=[.81681 0.56549 0 1.0681 0 1.2566 0 ];
qsq3=[2.36 0.69115 0 0.848 0 1.4451 0 ];
qsq4=[2.66 0.37699 0 1.31 0 1.4451 0];
qsq5=[pi/2 0.62831 0 1.5708 0 0.94249 0];
qsq6=[0 0.62831 0 1.5708 0 0.94249 0];% 轨迹点规划 五次多项式来规划轨迹
t=0:.04:1;
sqtraj1=jtraj(q0,qsq1,t); 
sqtraj2=jtraj(qsq1,qsq2,t); 
sqtraj3=jtraj(qsq2,qsq3,t); 
sqtraj4=jtraj(qsq3,qsq4,t);
sqtraj5=jtraj(qsq4,qsq1,t);
sqtraj6=jtraj(qsq1,q0,t);
sqtraj7=jtraj(q0,qsq6,t);
hold on%变量初始化
atj=zeros(4,4);
view(-35,40)
xlim([-40,40])
ylim([-40,40])
zlim([0,60])% 绘制第1段轨迹线
for i=1:1:length(t)atj=Rbt.fkine(sqtraj1(i,:));JTA(i,:)=transl(atj);  % 提取位姿矩阵的平移分量(3元素列向量)储存进JTA向量数组jta=JTA; plot2(jta(i,:),'r.')   % 绘制轨迹点(红色点)Rbt.plot(sqtraj1(i,:)) % 绘制轨迹动画plot2(JTA,'b')         % 绘制轨迹线(蓝色线)
end
% 绘制第2段轨迹线
for i=1:1:length(t)atj2=Rbt.fkine(sqtraj2(i,:));JTA2(i,:)=transl(atj2);jta2=JTA2;plot2(jta2(i,:),'r.')Rbt.plot(sqtraj2(i,:))plot2(JTA2,'b')
end
% 绘制第3段轨迹线
for i=1:1:length(t)atj3=Rbt.fkine(sqtraj3(i,:));JTA3(i,:)=transl(atj3);jta3=JTA3;plot2(jta3(i,:),'r.')Rbt.plot(sqtraj3(i,:))plot2(JTA3,'b')
end
% 绘制第4段轨迹线
for i=1:1:length(t)atj4=Rbt.fkine(sqtraj4(i,:));JTA4(i,:)=transl(atj4);jta4=JTA4;plot2(jta4(i,:),'r.')Rbt.plot(sqtraj4(i,:))plot2(JTA4,'b')
end
% 绘制第5段轨迹线
for i=1:1:length(t)atj5=Rbt.fkine(sqtraj5(i,:));JTA5(i,:)=transl(atj5);jta5=JTA5;plot2(jta5(i,:),'r.')Rbt.plot(sqtraj5(i,:))plot2(JTA5,'b')
end
% 绘制第6段轨迹线
for i=1:1:length(t)atj6=Rbt.fkine(sqtraj6(i,:));JTA6(i,:)=transl(atj6);jta6=JTA6;plot2(jta6(i,:),'r.')Rbt.plot(sqtraj6(i,:))plot2(JTA6,'b')
end
% 绘制第7段轨迹线for i=1:1:length(t)atj7=Rbt.fkine(sqtraj7(i,:));JTA7(i,:)=transl(atj7);jta7=JTA7;plot2(jta7(i,:),'r.')Rbt.plot(sqtraj7(i,:))plot2(JTA7,'b')
end

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

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

相关文章

人工智能最受欢迎的十大TED演讲

来源:DataCastle数据城堡当我们过于关注机器学习的技术实现时,往往就会忽略技术在未来的应用及其政治后果。本文并没有讨论最适合解决某个问题可以用什么语言或算法,而是从最受欢迎的非营利组织TED中收集了一系列演讲。在这一系列的演讲中&am…

C++编程(一):匈牙利命名法

匈牙利命名法 许多 Windows 程序员都使用“匈牙利标记法”作为变量命名约定。这是为了纪念具有传奇色彩的微软程序员 Charles Simonyi。这种标记法非常简单,其基本原则为: 即变量名(标识符)以一个或者多个小写字母开始&#xff0…

jQuery基本过滤选择器

1 <% page language"java" import"java.util.*" pageEncoding"utf-8"%>2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">3 <html>4 <head>5 <!-- jQuery基本过滤选择器 -->6 …

IndexError: tensors used as indices must be long, byte or bool tensors

下面的程序会报错IndexError: tensors used as indices must be long, byte or bool tensors mask torch.Tensor([True,True,False]) a torch.Tensor([3,2,1]) a[mask]0 print(a) 原因是索引要为long, byte 或 bool类型&#xff0c;因此需要将mask转换为bool类型&#xff0…

工业机器人国内外的发展现状

工业机器人国内外的发展现状 工业机器人是集合了机械原理、系统动力学、机构运动学、计算机技术、控制理论、传感和人工智能等多种先进技术于一身的综合性装备[10]。1959年&#xff0c;由享有“机器人之父”美誉的恩格尔﹒伯格先生和德奥尔先生于美国共同发明了第一台工业机器…

知识图谱、深度学习、AutoML,推荐系统与新技术结合将碰撞出怎样的火花?

来源&#xff1a;CSDN App近日&#xff0c;来自意大利米兰理工大学 Maurizio 团队发表的一篇极具批判性的文章火了。这篇文章剑指推荐系统领域的其他数十篇论文&#xff0c;并通过多项试验证明这些论文中基于深度学习的推荐算法大部分都存在不同程度的数据集缺失和源码缺失的问…

团队博客 一 需求分析

团队名字&#xff1a;全都是土豆 团队成员&#xff1a;组长&#xff1a;张哲 成员&#xff1a;冯钰彤、魏利华 博客地址&#xff1a;张哲&#xff1a;http://www.cnblogs.com/zz0906/ 魏利华&#xff1a;http://www.cnblogs.com/a1397240667/ 冯钰彤&#xff1a;http://www.cnb…

RuntimeError: Subtraction, the `-` operator, with a bool tensor is not supported. If you are trying

下面的程序会报错&#xff1a;RuntimeError: Subtraction, the - operator, with a bool tensor is not supported. If you are trying to invert a mask, use the ~ or logical_not() operator instead. mask torch.Tensor([True,True,False]).type(torch.bool) a torch.Te…

VS2015无法打开包括文件corecrt.h 无法打开文件ucrtd.lib

VS2015无法打开包括文件"corecrt.h" 无法打开文件"ucrtd.lib" 在网上是VS2015的一个BUG&#xff0c;如果是选择"从父级或项目默认设置继承"时&#xff0c;在Windows Kits\10\include 和 Windows Kits\10\lib 目录下导入的是10.0.10240.0文件夹&…

面向对象的七大设计原则

总脉络图&#xff1a; 一&#xff1a;单一职责原则(全称&#xff1a;“Single-Responsibility Principle”)又称 单一功能原则 核心&#xff1a;解耦和增强内聚性&#xff08;高内聚&#xff0c;低耦合&#xff09; 说明&#xff1a; 就一个类而言&#xff0c;应该只专注于做一…

人机融合智能的思考

来源&#xff1a;人机与认知实验室【人机智能难于融合的主要原因就在于时空和认知的不一致性&#xff0c;人处理的信息与知识能够变异&#xff0c;其表征的一个事物、事实既是本身同时又是其他事物、事实&#xff0c;一直具有相对性&#xff0c;机器处理的数据标识缺乏这种相对…

工艺篇:常用表面处理

工艺篇&#xff1a;常用表面处理 表面处理定义 表面处理是在基体材料表面上人工形成一层与基体的机械、物理和化学性能不同的表层的工艺方法。表面处理的目的是满足产品的耐蚀性、耐磨性、装饰或其他特种功能要求&#xff0c;表面处理按照机理来分可以分为以下4部分&#xff…

NASA发现超级地球,真的适宜居住?

来源&#xff1a;中国新闻网中新网8月2日电 当地时间7月31日&#xff0c;NASA宣布&#xff0c;他们的凌日系外行星勘测卫星(TESS)&#xff0c;在距离地球约31光年的地方&#xff0c;发现了一颗可能有生命存在的“超级地球”。天文学家制作的GJ357d星球概念图。图片来源&#xf…

Excel制作随机抽取名单

首先建立名单&#xff0c;假设放在A列 然后选一个方格用来存抽取结果&#xff0c;并在该方格中输入INDEX(A:A,RANDBETWEEN(1,8))&#xff0c;1:8表示第1行到第8行 此时按下F9键就可以生成随机的名单了 增加抽取效果&#xff1a; 首先选取全部名单&#xff1a; 点击条件格式→…

SHELL编程(一)---------hello world

首先我们来了解一下什么是shell,无论什么操作系统都有shell,现代操作系统都可以简单的认为是内核(kernel)文件系统(filesystem)的方式存在的.操作系统主要是通过内核进行工作的,而用户并不能直接操作内核让其为自己工作(为了保护内核,内核不正确将直接导致系统的崩溃).shell中文…

工艺篇:硬度介绍

硬度介绍 硬度是衡量金属材料软硬程度的一种性能指标。硬度的试验方法很多&#xff0c;按硬度试验方法的不同&#xff0c;硬度的试验方法很多&#xff0c;基本上可以分为压入法(如布氏、洛氏、维氏硬度等)、刻划法(如莫氏法等)、回跳法(如肖氏法)等几种&#xff1a; 1、压入法…

RuntimeError: CUDA out of memory. Tried to allocate 132.00 MiB (GPU 2; 3.95 GiB total capacity; 3.41

pytorch报错&#xff1a;RuntimeError: CUDA out of memory. Tried to allocate 132.00 MiB (GPU 2; 3.95 GiB total capacity; 3.41 GiB already allocated; 37.88 MiB free; 98.29 MiB cached) 如果是训练时遇到该问题&#xff0c;说明模型的参数太多了&#xff0c;将模型的…

31个惊艳的数据可视化作品,让你感受“数据之美”!

来源&#xff1a;中国智慧城市导刊在一个信息大爆炸的时代&#xff0c;每天都有很多的新消息、新发现、新趋势向我们狂轰乱炸而来。在这个过程中&#xff0c;我们既是数据的生产者&#xff0c;也是数据的使用者&#xff0c;然而初次获取和存储的原始数据总是杂乱无章的。要想数…

PCB板一般缺陷检测法及其优缺点分析

PCB板一般缺陷检测法及其优缺点分析1 PCB( Printed Circuit Board 印刷电路板)是电子产品中众多电子元器件的承载体&#xff0c;它为各电子元器件的秩序连接提供了可能&#xff0c;PCB已成为现代电子产品的核心部分。随着现代电子工业迅猛发展&#xff0c;电子技术不断革新&am…

VS2013报错:错误:没有与这些操作匹配的《运算符

错误:没有与这些操作匹配的<<运算符 发现是因为程序中使用了string&#xff0c;但是头文件没有加上#include<string>