机器人控制系列教程之运动规划(2)

简介

在笛卡尔坐标空间中轨迹规划时,首先用位置矢量和旋转矩阵表示所有相应的机器人节点,其次在所有路径段插值计算相对的位置矢量和旋转矩阵,依次得出笛卡尔坐标空间中的轨迹序列通过求解运动学逆问题得到相应关节位置参数。

优点:

  1. 在笛卡尔坐标空间规划的轨迹比较直观,实际运动路径准确度高;
  2. 某些工作任务本身对在笛卡尔坐标空间中的轨迹有要求,必须首先在笛卡尔坐标空间规划。

缺点:

  1. 计算量远远大于关节空间法,控制时间间隔较长;
  2. 不能保证除预定的路径点外轨迹上其他的点都在机器人的运动空间,而关节空间轨迹规划可以;
  3. 轨迹路径有可能接近或通过操作空间的盲点。

规划方法

根据机器人的末端执行器的位置和姿态,该方法主要有以下几种:

MATLAB机器人工具箱ctraj函数解析

两个位姿之间的笛卡尔轨迹

  1. tc = ctraj(T0, T1, n)表示从位姿T0到T1的笛卡尔轨迹,其中n个点遵循沿路径的梯形速度分布。笛卡尔轨迹是一个齐次变换序列,最后一个下标是点索引,即T(:,:,i)是路径上的第i个点。

  2. tc = ctraj(T0, T1, s)如上所述,但S(Nx1)的元素指定了路径上的分数距离,这些值在[0 1]范围内。第i个点对应于S(I)沿路径的距离。

Note:
如果T0或T1等于[],则认为它是单位矩阵。在第二种情况下,S可以由标量轨迹生成器生成,如TPOLY(五次多项式)或LSPB(组合轨迹,默认)。

笛卡尔空间轨迹求解

相关代码:

% 导入机器人模型
% 这里输入你的机器人模型
clear,clc,close all;
%% 建立机器人DH参数,初始状态为竖直状态
L1=Link('d',162.50,'a',0,'alpha',0,'modified');
L2=Link('d',0,'a',0,'alpha',pi/2,'offset',pi/2,'modified');
L3=Link('d',0,'a',425,'alpha',0,'modified');
L4=Link('d',126.70+6.6,'a',392.25,'alpha',0,'offset',pi/2,'modified');
L5=Link('d',99.70,'a',0,'alpha',pi/2,'modified');
L6=Link('d',99.60-4.5,'a',0,'alpha',-pi/2,'modified');robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','UR5')% M = [1 1 1 1 1 0];
qz = [0 0 0 0 0 0];
t = 0:0.01:2;
T = fkine(robot,qz);
%T(1,4:)  %T(2,4:)  %T(3,4:)
T10 = transl(4, -0.5, 0) * troty(pi/6); % 末端初始位姿
T11 = transl(4, -0.5, -2) * troty(pi/6); % 末端终止位姿
Ts = ctraj(T10, T11, length(t));% 末端执行器从初始位姿到末端位姿坐标系的平移变化
figure(1); 
TP=transl(Ts);
x=plot(t, TP(:,1));hold on;
y=plot(t, TP(:,2));hold on;
z=plot(t, TP(:,3));
legend([x,y,z],'X轴','Y轴','Z轴')
ylim([-3 5])%末端执行器从初始位姿到末端位姿坐标系旋转的变化
figure(2); 
Tr=tr2rpy(Ts);
x=plot(t, Tr(:,1),'-*');hold on;
y=plot(t, Tr(:,2),'LineStyle','--');hold on;
z=plot(t, Tr(:,3));
legend([x,y,z],'X轴','Y轴','Z轴')
ylim([-0.002 0.01])% 末端执行器从初始位姿到末端位姿的空间轨迹的规划图形投影到xOy坐标轴内的变化
u = Ts(1,4,:);v = Ts(2,4,:);w = Ts(3,4,:);
x = squeeze(u);y = squeeze(v);z = squeeze(w);
figure(3); 
subplot(3,1,1);
plot(t,x) 
xlabel('Time')
ylabel('x')
subplot(3,1,2);
plot(t,y) 
xlabel('Time')
ylabel('y')
subplot(3,1,3);
plot(t,z) 
xlabel('Time')
ylabel('z')

末端执行器从初始位姿到末端位姿坐标系的平移变化。

末端执行器从初始位姿到末端位姿坐标系旋转的变化。

机器人末端执行器从初始位姿到末端位姿的空间轨迹的规划图形投影到xOy坐标轴内的变化

往期推荐

在这里插入图片描述

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

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

相关文章

评测|贪吃小猫疯狂长肉,让它停不下嘴的希喂、鲜朗、帕特真实调研

我发现很多铲屎官存在一个误区,认为“进口即是高贵”,过度信赖进口产品。一见到进口宠物粮就冲动购买,甚至对国产品牌持贬低态度,贴上“质量不佳”、“不符合标准”等标签。 为了更深入地了解这一现象,我深入研究了主食…

【Unity小技巧】记一个RenderTexture无法正确输出Camera视图下的Depth渲染的问题

问题 这个问题出现在使用URP管线时,我试图用Shader实现血条的制作,并用RenderTexture将视图渲染到RawImage上。 但是渲染结果出现了问题: 可以看到液体边缘的渲染出现了错误,原因不明 在StackFlow上查找后找到了类似的问题&…

Spring Cloud - 开发环境搭建

1、JDK环境安装 1、下载jdk17:下载地址,在下图中红色框部分进行下载 2、双击安装,基本都是下一步直到完成。 3、设置系统环境变量:参考 4、设置JAVA_HOME环境变量 5、在PATH中添加%JAVA_HOME%/bin 6、在命令行中执行:j…

第三十篇——等价性:如何从等价信息里找答案?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 知道了等价性的逻辑,通过等价性去衡量事物,像是给…

Linux配置网卡详细教程

这个网卡配置然后头痛了两天,看了很多篇关于这方面的文章,但是都没让我成功,可惜工亏不负有心人,然后终于学会了下面此方法 实现完成的效果: 永久修改网卡IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEther…

node带参数命令

不带参数命令示例: node /www/wwwroot/server 带参数命令示例: node /www/wwwroot/server arg1 arg2 arg3 在启动页进行参数处理: // 获取启动参数(除去前2个默认参数,示例:node /www/wwwroot/server arg1 arg2 …

西门子840dsl机床仿真软件配置opcua说明

需要的安装包如下,可在百度网盘中下载 主软件包:sinutrain-v4.7-ed4(也可在官网中下载最新版本) 用户文件:UserDataBase 授权sinutrain:Sim_EKB_Install_2021_06_22 链接:https://pan.baidu.c…

小阿轩yx-用户管理与高级SQL语句

小阿轩yx-用户管理与高级SQL语句 MySQL 进阶查询 运维工作中可以提供不小的帮助,运维身兼数职,可能会有不少数据库的相关工作 常用查询介绍 对查询的结果集进行处理 按关键字排序 使用 SELECT 语句可以将需要的数据从 MySQL 数据库中查询出来 对结…

第一百二十六节 Java面向对象设计 - Java枚举类

Java面向对象设计 - Java枚举类 枚举类型的超类 编译枚举类型时,编译器会创建一个类。 枚举类型可以具有构造函数,字段和方法。枚举类型仅在编译器生成的代码中实例化。 每个枚举类型都隐式地扩展java.lang.Enum类。 Enum类中定义的所有方法都可以与…

从一到无穷大 #29 ByteGraph的计算,内存,存储三级分离方案是否可以通用化为多模数据库

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言ByteGraph现有架构阿里云Lindorm腾讯YottaDB多模型化修改点ByteGraph论文中的优化…

PD虚拟机支持M3吗 PD虚拟机怎样配置图形卡

最近有很多人在问M3芯片的苹果电脑和M2相比,有哪些提升的功能。实际上,M3芯片的苹果电脑拥有与M2相同的CPU与GPU数量,但比M2多50亿个晶体管,并引入了动态缓存、增强型神经网络引擎等技术,性能、功能均进一步加强。面对…

Ubuntu22 更新内核后终端输入卡顿,最简单的解决方案

在系统升级后相信很多人都遇到了这个问题,系统终端输入卡顿,但是ssh远程进来不卡,使用第三方终端也不卡,…,今天终于忍不了,解决了 现象: 更新Nvidia驱动后,内核进行了自动编译升级。 之后的一段时间使用…

从零开始做题:修猫

修猫 1 题目 2 解题 2.1 使用Stegslove分析图片 (base) ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc] └─$ java -jar Stegsolve.jar 2.2 analyse -frame browser 2.3 得到flag DASCTF{818ca3a840e768da7d5fcdeaedd5012f}

ROS2中的CMakeLists(一)——基础知识

在使用ROS2框架开发机器人应用时,对各个功能包Cmakelist.txt文件的更改尤为重要。本系列旨在总头开始介绍Cmakelist.txt各条语句的意义和内涵。 Cmake已经是高度集成的构建工具,其作用是在不同开发环境下生成makefile文件,以此来执行make指令…

【分布式文件系统HDFS】API 编程基础

目录 一、使用 HDFS API 完成以下程序设计并运行 1. 将 HDFS 文件系统目录/user/账户名下的文件 test1.txt 下载至本地文件系统目录/home/账户名/Desktop 下。 1.1 程序代码 1.2 运行截图 1.3 查看本地的test1.txt文件 2. 在 HDFS 文件系统上创建目录/test1 2.1 程序代码…

【PyQt5】一文向您详细介绍 setSpacing() 的作用

【PyQt5】一文向您详细介绍 setSpacing() 的作用 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕&am…

MT6989(天玑9300)芯片性能参数_MTK联发科5G处理器

MT6989是联发科Dimensity旗舰系列的成员,旨在为旗舰5G智能手机供应商提供最先进的技术和性能。MT6989也是联发科目前最具创新和强大的5G智能手机芯片,具有领先的功耗效率,无与伦比的计算架构,有史以来最快和最稳定的5G调制解调器&…

思科交换机基本配置命令

01进入特权模式enable switch>enable switch# 02进入全局配置模式configure terminal switch>enable switch#configure terminal switch(conf)# 03交换机命名hostname aptech2950以aptech2950为例 switch>enable switch#configure terminal switch(conf)#hostname apt…

反序列化底层学习

反序列化底层学习 前言 以前也是懒得学,觉得没有必要,学到现在发现好多东西都需要学习java的底层,而且很多漏洞都是通过反序列化底层挖出来的,比如weblogic的一些绕过,我这里也主要是为了学习weblogic来学习的&#…

Linux CentOS 环境 MySQL 主从复制集群搭建

环境说明 MySQL版本8.4.0 操作系统 Linux CentOS 7.9 官网文档 https://dev.mysql.com/doc/refman/8.4/en/replication-configuration.html 以下代码片段中带分号都是在MySQL命令行( mysql -uroot -p)中执行 1. 首先在两个节点上安装数据库 参考 Linux CentOS安装MySQL8.0 …