机器人控制系列教程之运动规划(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坐标轴内的变化

往期推荐

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙北向开发 ubuntu20.04 gn + ninja环境傻瓜式搭建闭坑指南

ninja跟gn都是比较时髦的东西,由歪果仁维护,如果走下载源码并编译这种流程的话需要走github跟google官网下载,国内的用网环境相信各位傻瓜都知道,github跟google这几年基本是属于连不上的状态,好在你看的鸿蒙项目跟国内的一些软件大厂已经帮你爬过梯子了,ninja工具跟gn工具已经…

PTP时间同步协议简介

注意,上图中 t1 t4 都是主机时间。 t2 t3 都是从机时间。 总延迟为 (t4 - t1) - (t3 - t2) 单边的平均延迟为 ((t4 - t1) - (t3 - t2) ) / 2,公式d1 两边的时钟偏差为 (((t3 t2) / 2)) - ((t4 t1) / 2) 也可以通过下面2个式子 t2 offset delay t1…

CAN报文的发送类型-OnChange、OnWrite、IfActive、Repetition

CAN报文的发送类型分为基本发送类型和混合发送类型两大类 CAN基本发送类型包括Cyclic周期发送、OnChange变化时发送、OnWrite写入时发送和IfActive有效时发送。基本发送类型中的Cyclic称为周期型,而其他3个类型称为事件型(Event)。发送次数是通过定义Repetition重复次数来实…

实用软件下载:ABBYY Finereader 15最新安装包及详细安装教程

数据表明FineReader PDF提供实用、简易的工具,将纸质文档和PDF结合起来,提高了数字工作场所的效率。我们都知道 即时背景识别:使不可搜索的PDF能够在工作中立即使用。值得一提的是文档转换更精准:OCR技术,它提高了PDF转换、布局保…

深入解析Elasticsearch 8.4.1:Mapping与字段类型实战指南

标题Elasticsearch8.4.1常见字段类型介绍 Mapping概述 在Elasticsearch中,Mapping定义了索引中每个字段的类型、属性以及设置。Mapping的作用是告诉Elasticsearch如何索引文档中的字段,包括如何分析字段值以及如何存储它们。 常见字段类型 字符串类型…

el-progress进度条,format效果实现

需要实现如下效果图: 实现的需求是,取数组对象里面,amount最大的值作为100%,其余按照这个标准进行计算得到显示的进度条百分比 <template><div class="app-container"> <div class="chart-container"><el-row :gutter="1…

睡眠剥夺对记忆巩固的神经生物学影响

近期&#xff0c;《自然》杂志刊载的研究揭示了睡眠不足对记忆相关神经信号的不利影响&#xff0c;强调了即使在后续恢复充分睡眠的情况下&#xff0c;这种损害亦难以完全逆转。 神经元作为大脑的基本功能单位&#xff0c;其活动并非孤立进行&#xff0c;而是通过复杂的网络连接…

Day45

Day45 jQuery动画 显示和隐藏 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script src"js/jquery-1.8.2.js" type"text/javascript" charset"utf-8"></script&…

Webpack: 借助 Babel+TS+ESLint 构建现代 JS 工程环境

概述 Webpack 场景下处理 JavaScript 的三种常用工具&#xff1a;Babel、TypeScript、ESLint 的历史背景、功能以及接入 Webpack 的步骤借助这些工具&#xff0c;我们能构建出更健壮、优雅的 JavaScript 应用 使用 Babel ECMAScript 6.0(简称 ES6) 版本补充了大量提升 JavaSc…

【Linux】进程 | 控制块pcb | task_struct | 创建子进程fork

目录 Ⅰ. 进程的概念&#xff08;Process&#xff09; 1. 什么是进程&#xff1f; 2. 多进程管理 3. 进程控制块&#xff08;PCB&#xff09; task_struct 的结构 Ⅱ. 进程查看与管理 1. 使用指令查看进程 2. /proc 查看进程信息 3. 获取进程 ID 4. 创建子进程 原因…

Vue2-表单与v-model

1.Vue表单使用 表单输入绑定&#xff1a;表单输入绑定 — Vue.js #v-model双向数据绑定new Vue({template: <div>/* 用户修改 , vue-data数据同步修改(内存) */<input v-model"message" placeholder"edit..."><p>message: {{message}}&…

2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVISP 2024&#xff09;将于2024年8月2-4日在中国厦门召开。ICVISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域&#xff0c; 为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提…

Python 参数类型

一 理解Python中的Parameters & Arguments Parameters&#xff1a;形参 Arguments&#xff1a;实参 二 Python的实参&#xff08;Arguments&#xff09;类型 实参类型总结 位置参数&#xff08;Positional Arguments&#xff09; &#xff1a;函数调用时通过入参的顺序来…

Younger 数据集:人工智能生成神经网络

设计和优化神经网络架构通常需要广泛的专业知识&#xff0c;从手工设计开始&#xff0c;然后进行手动或自动化的精细化改进。这种依赖性成为快速创新的重要障碍。认识到从头开始自动生成神经网络架构的复杂性&#xff0c;本文引入了Younger&#xff0c;这是一个开创性的数据集&…

【Unity】RPG2D龙城纷争(五)关卡编辑器之地图编辑

更新日期&#xff1a;2024年6月25日。 项目源码&#xff1a;本章发布 索引 简介关卡编辑器窗口类&#xff08;LevelEditor&#xff09;一、定义关卡编辑器窗口类二、两种编辑模式三、地块编辑模式1.关卡模板2.打开编辑窗口3.编辑器基本属性4.地块模板5.重新生成地图6.地图刷子7…

基于优化包络相关的Loran-C(罗兰C)信号天地波识别算法及MATLAB仿真代码和实测信号处理

引言 Loran-C接收信号处理中&#xff0c;完成信号的捕获后需要进行信号的跟踪&#xff0c;Loran-C信号的跟踪按照信号处理流程分为天地波识别、周期识别和正向过零点跟踪三个步骤。Loran-C信号通过天波和地波两种方式到达接收点&#xff0c;导致接收到信号为地波和天波的合成信…

YOLOv5改进(八)--引入Soft-NMS非极大值抑制

文章目录 1、前言2、各类NMS代码实现2.1、general.py 3、各类NMS实现3.1、Soft-NMS3.2、GIoU-NMS3.3、DIoU-NMS3.4、CIoU-NMS3.5、EIoU-NMS 4、目标检测系列文章 1、前言 目前yolov5使用的是NMS进行极大值抑制&#xff0c;本篇文章是要将各类NMS添加到yolov5中&#xff0c;同时…

性能优化-布局优化

性能优化-布局优化 屏幕的UI刷新机制 布局的选择 优化控件的使用 原生View的优化 1、屏幕的UI刷新机制 超过16ms会感觉卡顿&#xff0c; 刷新率&#xff08;Refresh Rate&#xff09;&#xff1a;指一秒内刷新屏幕的次数&#xff0c;例如60HZ&#xff1b; 帧率&#xff08;F…

菲律宾媒体PR发稿:谷歌SEO优化.关键词排名.谷歌收录

1. 引言 在菲律宾&#xff0c;媒体行业的发展日新月异&#xff0c;尤其是在线媒体。为了在这个竞争激烈的市场中脱颖而出&#xff0c;各家媒体纷纷寻求谷歌SEO优化、提升关键词排名和增加谷歌收录的方法。本文将围绕菲律宾的几大主要在线媒体&#xff0c;如菲律宾在线日志Jour…

优化系统小工具

一款利用VB6编写的系统优化小工具&#xff0c;系统优化、桌面优化、清理垃圾、查找文件等功能。 下载:https://download.csdn.net/download/ty5858/89432367