三次多项式轨迹规划:

三次多项式轨迹规划就是s(t)相对于时间t的变化满足三次多项式变化,其表达式如下:

如前文所述:t的取值范围是[0,T],s(t)的取值范围是[0,1], 又因为初始速度和末速度都为0,所以:

S(t)的一阶导数表达式为:

从而可以计算出对应的系数:

将系数带入到上面的三次多项式,可得到

再将上式代入到路径表达式,即可得到完整的轨迹规划表达式,如下所示:

其中,最大的关节速度在 时刻到达,其数值为:

最大的关节加速度和关节减速度在 ,其中:

关节空间三次多项式轨迹规划:

TH1=[30,60,2,5,50,70,80]; %定义关节空间中的两个点TH1,TH2.
TH2=[90,54,3,60,80,40,60];
T=1;%定以一个时间,即从TH1到TH2的总时间。
TH=[];
TH_yijie=[];
TH_erjie=[];
TT=[];%定以四个变量TH、TH_yijie、TH_erjie、TT,用来储存数据
for t=0:0.001:T  th=TH1+(TH2-TH1)*(3*t^2/T^2-2*t^3/T^3);%角度和时间变化关系th_yijie=(TH2-TH1)*(6*t/T^2-6*t^2/T^3);%角速度和时间变化关系th_erjie=(TH2-TH1)*(6/T^2-12*t/T^3);%角加速度和时间变化关系TH=[TH,th'];TH_yijie=[TH_yijie,th_yijie'];TH_erjie=[TH_erjie,th_erjie'];TT=[TT,t];
end
TH=TH';%矩阵转置
TH_yijie=TH_yijie';
TH_erjie=TH_erjie';
TT=TT';
fig1=figure;
plot(TT,TH(:,1));%三维绘图此处绘制一轴关节角度变化示意。
grid on;
fig2=figure;
plot(TT,TH_yijie(:,1));%三维绘图此处绘制一轴关节角速度变化示意。
grid on;
fig3=figure;
plot(TT,TH_erjie(:,1));%三维绘图此处绘制一轴关节角加速度变化示意。
grid on;

笛卡尔空间三次多项式轨迹规划:

A=[30,60,2]; %定义笛卡尔空间中的两个点A,B.
B=[90,54,3];
T=1;%定义一个时间,即从A到B的总时间。
X=[];
X_yijie=[];
X_erjie=[];
TT=[];%定以四个变量X、X_yijie、X_erjie、TT,用来储存数据
for t=0:0.001:T  x=A+(B-A)*(3*t^2/T^2-2*t^3/T^3);%角度和时间变化关系x_yijie=(B-A)*(6*t/T^2-6*t^2/T^3);%角速度和时间变化关系x_erjie=(B-A)*(6/T^2-12*t/T^3);%角加速度和时间变化关系X=[X,x'];X_yijie=[X_yijie,x_yijie'];X_erjie=[X_erjie,x_erjie'];TT=[TT,t];
end
X=X';%矩阵转置
X_yijie=X_yijie';
X_erjie=X_erjie';
TT=TT';
fig1=figure;
plot(TT,X(:,1));%三维绘图此处绘制x方向位移变化示意。
grid on;
fig2=figure;
plot(TT,X_yijie(:,1));%三维绘图此处绘制x方向速度变化示意。
grid on;
fig3=figure;
plot(TT,X_erjie(:,1));%三维绘图此处绘制x方向加速度变化示意。
grid on;

五次多项式轨迹规划:

五次多项式轨迹规划就是s(t)相对于时间t的变化满足五次多项式变化,其表达式如下:

其中:

求出系数如下:

所以其运动方程如下:

各个变量的最值如下:

关节空间五次多项式轨迹规划:

TH1=[30,60,2,5,50,70,80]; %定义关节空间中的两个点TH1,TH2.
TH2=[90,54,3,60,80,40,60];
T=1;%定以一个时间,即从TH1到TH2的总时间。
TH=[];
TH_yijie=[];
TH_erjie=[];
TT=[];%定以四个变量TH、TH_yijie、TH_erjie、TT,用来储存数据
for t=0:0.001:T  th=TH1+(TH2-TH1)*(10*(t/T)^3-15*(t/T)^4+6*(t/T)^5);%角度和时间变化关系th_yijie=(TH2-TH1)*(30*(t/T)^2-60*(t/T)^3+30*(t/T)^4);%角速度和时间变化关系th_erjie=(TH2-TH1)*(60*(t/T)-180*(t/T)^2+120*(t/T)^3);%角加速度和时间变化关系TH=[TH,th'];TH_yijie=[TH_yijie,th_yijie'];TH_erjie=[TH_erjie,th_erjie'];TT=[TT,t];
end
TH=TH';%矩阵转置
TH_yijie=TH_yijie';
TH_erjie=TH_erjie';
TT=TT';
fig1=figure;
plot(TT,TH(:,1));%三维绘图此处绘制一轴关节角度变化示意。
grid on;
fig2=figure;
plot(TT,TH_yijie(:,1));%三维绘图此处绘制一轴关节角速度变化示意。
grid on;
fig3=figure;
plot(TT,TH_erjie(:,1));%三维绘图此处绘制一轴关节角加速度变化示意。
grid on;

笛卡尔空间五次多项式轨迹规划:

A=[30,60,2]; %定义笛卡尔空间中的两个点A,B.
B=[90,54,3];
T=1;%定义一个时间,即从A到B的总时间。
X=[];
X_yijie=[];
X_erjie=[];
TT=[];%定以四个变量X、X_yijie、X_erjie、TT,用来储存数据
for t=0:0.001:T  x=A+(B-A)*(10*(t/T)^3-15*(t/T)^4+6*(t/T)^5);%角度和时间变化关系x_yijie=(B-A)*(30*(t/T)^2-60*(t/T)^3+30*(t/T)^4);%角速度和时间变化关系x_erjie=(B-A)*(60*(t/T)-180*(t/T)^2+120*(t/T)^3);%角加速度和时间变化关系X=[X,x'];X_yijie=[X_yijie,x_yijie'];X_erjie=[X_erjie,x_erjie'];TT=[TT,t];
end
X=X';%矩阵转置
X_yijie=X_yijie';
X_erjie=X_erjie';
TT=TT';
fig1=figure;
plot(TT,X(:,1));%三维绘图此处绘制x方向位移变化示意。
grid on;
fig2=figure;
plot(TT,X_yijie(:,1));%三维绘图此处绘制x方向速度变化示意。
grid on;
fig3=figure;
plot(TT,X_erjie(:,1));%三维绘图此处绘制x方向加速度变化示意。
grid on;

七次多项式轨迹规划:

五次多项式轨迹规划就是s(t)相对于时间t的变化满足五次多项式变化,其表达式如下:

其中:

求出系数如下:

所以其运动方程如下:

各个变量的最值如下:

关节空间七次多项式轨迹规划:

TH1=[30,60,2,5,50,70,80]; %定义关节空间中的两个点TH1,TH2.
TH2=[90,54,3,60,80,40,60];
T=1;%定以一个时间,即从TH1到TH2的总时间。
TH=[];
TH_yijie=[];
TH_erjie=[];
TT=[];%定以四个变量TH、TH_yijie、TH_erjie、TT,用来储存数据
for t=0:0.001:T  th=TH1+(TH2-TH1)*(35*(t/T)^4-84*(t/T)^5+70*(t/T)^6-20*(t/T)^7);%角度和时间变化关系th_yijie=(TH2-TH1)*(140*(t/T)^3-420*(t/T)^4+420*(t/T)^5-140*(t/T)^6);%角速度和时间变化关系th_erjie=(TH2-TH1)*(420*(t/T)^2-1680*(t/T)^3+2100*(t/T)^4-840*(t/T)^5);%角加速度和时间变化关系TH=[TH,th'];TH_yijie=[TH_yijie,th_yijie'];TH_erjie=[TH_erjie,th_erjie'];TT=[TT,t];
end
TH=TH';%矩阵转置
TH_yijie=TH_yijie';
TH_erjie=TH_erjie';
TT=TT';
fig1=figure;
plot(TT,TH(:,1));%三维绘图此处绘制一轴关节角度变化示意。
grid on;
fig2=figure;
plot(TT,TH_yijie(:,1));%三维绘图此处绘制一轴关节角速度变化示意。
grid on;
fig3=figure;
plot(TT,TH_erjie(:,1));%三维绘图此处绘制一轴关节角加速度变化示意。
grid on;

笛卡尔空间七次多项式轨迹规划:

A=[30,60,2]; %定义笛卡尔空间中的两个点A,B.
B=[90,54,3];
T=1;%定义一个时间,即从A到B的总时间。
X=[];
X_yijie=[];
X_erjie=[];
TT=[];%定以四个变量X、X_yijie、X_erjie、TT,用来储存数据
for t=0:0.001:T  x=A+(B-A)*(35*(t/T)^4-84*(t/T)^5+70*(t/T)^6-20*(t/T)^7);%角度和时间变化关系x_yijie=(B-A)*(140*(t/T)^3-420*(t/T)^4+420*(t/T)^5-140*(t/T)^6);%角速度和时间变化关系x_erjie=(B-A)*(420*(t/T)^2-1680*(t/T)^3+2100*(t/T)^4-840*(t/T)^5);%角加速度和时间变化关系X=[X,x'];X_yijie=[X_yijie,x_yijie'];X_erjie=[X_erjie,x_erjie'];TT=[TT,t];
end
X=X';%矩阵转置
X_yijie=X_yijie';
X_erjie=X_erjie';
TT=TT';
fig1=figure;
plot(TT,X(:,1));%三维绘图此处绘制x方向位移变化示意。
grid on;
fig2=figure;
plot(TT,X_yijie(:,1));%三维绘图此处绘制x方向速度变化示意。
grid on;
fig3=figure;
plot(TT,X_erjie(:,1));%三维绘图此处绘制x方向加速度变化示意。
grid on;

机器人在笛卡尔空间和关节空间的多项式轨迹规划以及matlab代码(三次、五次、七次)相关推荐

  1. 机器人笛卡尔空间与关节空间轨迹规划算法

    本实例为如何生成和模拟插值关节轨迹,从一个初始运动到一个理想的末端执行器姿态. 轨迹的定时是基于手臂工具(EOAT)的一个近似的期望末端速度. 加载KINOVA Gen3刚体树(RBT)机器人模型 r ...

  2. 驱动器空间、关节空间与笛卡尔空间

    驱动器空间.关节空间与笛卡尔空间 一般来说,操作臂的位置和姿态描述有三种表示方法,分别为驱动器空间描述.关节空间描述和笛卡尔空间描述.三者之间有如下的映射关系: 在进行机械臂运动学分析时,我们必须弄清 ...

  3. 多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试

    多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试 ) DH建模法可以参考这个博客: 还有<机器人>这本书,一定要理论实践相结合,理解后可以用几何法建模也可以用 ...

  4. 空间机械臂Matlab/Simulink仿真程序自由漂浮空间机械臂(双臂)轨迹跟踪控制matlab仿真程序

    空间机械臂Matlab/Simulink仿真程序自由漂浮空间机械臂(双臂)轨迹跟踪控制matlab仿真程序,含空间机器人动力学模型,PD控制程序,带仿真结果,可供二次开发学习 ID:672006146 ...

  5. 四维空间的二维线框投影可视化(附matlab代码)

    四维空间的二维线框投影可视化(附matlab代码) 1 三维空间在2维屏幕上的投影 1.1平行投影 1.2透视投影 2 四维空间在2维屏幕上的投影 2.1 四维空间与三维空间的一些区别 2.2 四维空 ...

  6. 笛卡尔心形线——一个凄美的爱情故事(附MATLAB三维心形线和HTML二维心形线代码)

    1650年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀. 那时,落魄.一文不名的笛卡尔过着乞讨的生活,全部的财产只有身上穿的破破烂烂的衣服和随身所带的几本数学书籍.生性清高的笛卡尔 ...

  7. 基于粒子群优化算法的最优机器人路径规划(Matlab代码实现)

    目录 1 概述 2 运行结果 3 Matlab代码实现 1 概述 近年来,智能机器人逐渐应用于医疗.服务.航空等众多领域.路径规划作为机器人实现智能自主规划的关键技术,受到众多学者的广泛关注2'.其具 ...

  8. 【路径规划】基于A星算法结合floyd和动态窗口法实现机器人栅格地图路径规划附matlab代码

    1 简介 针对移动机器人在静态环境中的特点,为了提高路径规划效率和精度,设计了A~*算法与Floyd算法结合的路径规划.我们根据实际环境,在栅格地图的基础上,利用A~*算法进行初步路径规划,找到了一条 ...

  9. 2021-11-05 构型空间(关节空间)路径规划-1

    参考 构型空间概念 C-space 如何理解 用一组向量来完全描述机器人的空间状态,这组向量的集合是构型空间 集合+特定运算=空间

最新文章

  1. Swift2.x编写NavigationController动态缩放titleView
  2. ASP.NET中 分析器错误:发现不明确的匹配
  3. 重拾python Day 2
  4. 微软一站式示例代码库(中文版)2011-05-13版本, 新添加Windows Azure, WinForms等16个Sample...
  5. 经典算法面试题目-翻转一个C风格的字符串(1.2)
  6. 创建SpringBoot项目的两种姿势
  7. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
  8. 西瓜书boosting learning 集成的错误率推导
  9. JavaScript:网络请求工具库AjaxTool.js
  10. deb 中标麒麟_注意:银河麒麟和中标麒麟不是同一个操作系统
  11. favicon.ico在线制作,在线Favicon.ico制作转换工具
  12. —— GPS测量原理及应用复习-5 ——
  13. 《信息系统布线技术》实验报告之交叉线制作
  14. 锁定计算机后怎么解锁,电脑锁住了怎么解锁
  15. (论文笔记)An Attention Enhanced Graph Convolutional LSTM Network for Skeleton-Based Action Recognition
  16. 快捷指令|支付宝合集|安卓支付宝shell快捷指令大全
  17. HDU 1517 A Multiplication Game 巴什博弈
  18. ITS_Android_S 重构的梳理
  19. long(Long)与int(Integer)四种类型之间互相转换的方法分享
  20. metasploit port 详细使用方法

热门文章

  1. 以太坊黄皮书翻译连载-1-20170828
  2. 软件及互联网高端灵活用工与技术服务提供商
  3. 程序员普遍薪水都在3万以上?35岁码农用亲身经历和你聊聊
  4. Linux发行版aarch64,ubuntu 18.04.3版本信息及aarch64-linux-gnu信息
  5. 使用CSS连接数据库
  6. git学习笔记兼教程
  7. 金字塔决策交易系统里实现股票交易策略实盘自动下单方法
  8. 适合编程初学者的开源博客系统(Go语言版)
  9. Solidity学习记录——第二章
  10. 知乎精选:如何提高团队凝聚力和执行力 (转)