1.原理
五段s曲线相较于三段s曲线而言加速度也是连续变化的,能适用于平稳性要求更高的场合。分为加加速、加减速、匀速、减加速、减减速这五段。
设除匀速段以为,其余四段的时间相等都为TaTaT_a,总时间为TTT,匀速段速度为vs" role="presentation" style="position: relative;">vsvsv_s,四个变速段斜率大小都为AAA,整段轨迹的总位移L" role="presentation" style="position: relative;">LLL、加加速段位移L1L1L_1、加减速段位移L2L2L_2

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪Ta=vsA−−√L1=16AT3aL2=56AT3aT=4Ta+L−2L1−2L2vs{Ta=vsAL1=16ATa3L2=56ATa3T=4Ta+L−2L1−2L2vs

\begin{eqnarray*} \left\{ \begin{array}{l} T_a=\sqrt{\frac{v_s}{A}}\\ L_1=\frac{1}{6}AT_a^3\\ L_2=\frac{5}{6}AT_a^3\\ T=4T_a+\frac{L-2L_1-2L_2}{v_s} \end{array}\right. \end{eqnarray*}
则加速度分段函数为

a=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪At,(0≤t≤Ta)−A(t−2Ta),(Ta≤t≤2Ta)0,(2Ta≤t≤T−2Ta)−A[t−(T−2Ta)],(T−2Ta≤t≤T−Ta)A(t−T),(T−Ta≤t≤T)a={At,(0≤t≤Ta)−A(t−2Ta),(Ta≤t≤2Ta)0,(2Ta≤t≤T−2Ta)−A[t−(T−2Ta)],(T−2Ta≤t≤T−Ta)A(t−T),(T−Ta≤t≤T)

\begin{eqnarray*}a= \left\{ \begin{array}{l} At,(0\leq{t}\leq{T_a})\\ -A(t-2T_a),({T_a}\leq{t}\leq2{T_a})\\ 0,({2T_a}\leq{t}\leq{T-2{T_a}})\\ -A[t-(T-2T_a)],(T-2{T_a}\leq{t}\leq{T-{T_a}})\\ A(t-T),(T-{T_a}\leq{t}\leq{T}) \end{array}\right. \end{eqnarray*}
对加速度积分可得

v=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪12At2,(0≤t≤Ta)−12A(t−2Ta)2+AT2a,(Ta≤t≤2Ta)vs,(2Ta≤t≤T−2Ta)−12A(t−T+2Ta)2+AT2a,(T−2Ta≤t≤T−Ta)12A(t−T)2,(T−Ta≤t≤T)v={12At2,(0≤t≤Ta)−12A(t−2Ta)2+ATa2,(Ta≤t≤2Ta)vs,(2Ta≤t≤T−2Ta)−12A(t−T+2Ta)2+ATa2,(T−2Ta≤t≤T−Ta)12A(t−T)2,(T−Ta≤t≤T)

\begin{eqnarray*} v=\left\{ \begin{array}{l} \frac{1}{2}At^2,(0\leq{t}\leq{T_a})\\ -\frac{1}{2}A(t-2T_a)^2+AT_a^2,({T_a}\leq{t}\leq2{T_a})\\ v_s,({2T_a}\leq{t}\leq{T-2{T_a}})\\ -\frac{1}{2}A(t-T+2T_a)^2+AT_a^2,(T-2{T_a}\leq{t}\leq{T-{T_a}})\\ \frac{1}{2}A(t-T)^2,(T-{T_a}\leq{t}\leq{T}) \end{array}\right. \end{eqnarray*}
对速度积分可得到位移s的分段函数

s=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪16At3,(0≤t≤Ta)−16A(t−2Ta)3+AT2at−AT3a,(Ta≤t≤2Ta)AT2at−AT3a,(2Ta≤t≤T−2Ta)−16A(t−T+2Ta)3+AT2at−AT2a,(T−2Ta≤t≤T−Ta)16A(t−T)3−2AT3a+AT2bT,(T−Ta≤t≤T)s={16At3,(0≤t≤Ta)−16A(t−2Ta)3+ATa2t−ATa3,(Ta≤t≤2Ta)ATa2t−ATa3,(2Ta≤t≤T−2Ta)−16A(t−T+2Ta)3+ATa2t−ATa2,(T−2Ta≤t≤T−Ta)16A(t−T)3−2ATa3+ATb2T,(T−Ta≤t≤T)

\begin{eqnarray*}s= \left\{ \begin{array}{l} \frac{1}{6}At^3,(0\leq{t}\leq{T_a})\\ -\frac{1}{6}A(t-2T_a)^3+AT_a^2t-AT_a^3,({T_a}\leq{t}\leq2{T_a})\\ AT_a^2t-AT_a^3,({2T_a}\leq{t}\leq{T-2{T_a}})\\ -\frac{1}{6}A(t-T+2T_a)^3+AT_a^2t-AT_a^2,(T-2{T_a}\leq{t}\leq{T-{T_a}})\\ \frac{1}{6}A(t-T)^3-2AT_a^3+AT_b^2T,(T-{T_a}\leq{t}\leq{T}) \end{array}\right. \end{eqnarray*}
3.matlab代码实现
指定位置、速度、斜率

clc;
clear;
%初始条件
x_arry=[0,10,20,30];
v_arry=[2,2,2];
A_arry=[3,3,3];
weiyi=[x_arry(1)];sudu=[0];shijian=[0];timeall=0;jiasudu=[0]
for i=1:1:length(x_arry)-1;
%清空a=[];v=[];s=[];
%计算加减速段的时间和位移L=x_arry(i+1)-x_arry(i);A=A_arry(i);vs=v_arry(i);Ta=sqrt(vs/A);L1=A*(Ta^3)/6;L2=A*(Ta^3)*(5/6);
%计算整段轨迹的总位移T=4*Ta+(L-2*L1-2*L2)/vs;for t=0:0.001:Tif t<=Ta;%加加速度阶段ad=A*t;vd=0.5*A*t^2;sd=(1/6)*A*t^3;a=[a,ad];v=[v,vd];s=[s,sd];elseif t>Ta && t<=2*Ta;%加减速阶段ad=-A*(t-2*Ta);vd=-0.5*A*(t-2*Ta)^2+A*Ta^2;sd=-(1/6)*A*(t-2*Ta)^3+A*Ta^2*t-A*Ta^3;a=[a,ad];v=[v,vd];s=[s,sd];elseif t>2*Ta && t<=T-2*Ta;%匀速阶段ad=0;vd=vs;sd=A*Ta^2*t-A*Ta^3;  a=[a,ad];v=[v,vd];s=[s,sd];elseif t>T-2*Ta && t<=T-Ta;%减加度阶段ad=-A*(t-(T-2*Ta));vd=-0.5*A*(t-T+2*Ta)^2+A*Ta^2;sd=-(1/6)*A*(t-T+2*Ta)^3+A*Ta^2*t-A*Ta^3;a=[a,ad];v=[v,vd];s=[s,sd];elseif t>T-Ta && t<=T;%减减阶段ad=A*(t-T);vd=0.5*A*(t-T)^2;sd=(1/6)*A*(t-T)^3-2*A*Ta^3+A*Ta^2*T;a=[a,ad];v=[v,vd];s=[s,sd];endend
%时间time=[timeall:0.001:timeall+T];timeall=timeall+T;
%连接每一段轨迹weiyi=[weiyi,s(2:end)+x_arry(i)];sudu=[sudu,v(2:end)];jiasudu=[jiasudu,a(2:end)];shijian=[shijian,time(2:end)];
end
subplot(3,1,1),plot(shijian,weiyi,'r');xlabel('t'),ylabel('position');grid on;
subplot(3,1,2),plot(shijian,sudu,'b');xlabel('t'),ylabel('velocity');grid on;
subplot(3,1,3),plot(shijian,jiasudu,'g');xlabel('t'),ylabel('accelerate');grid on;

结果如下

六轴机器人轨迹规划之五段位置s曲线插补相关推荐

  1. 六轴机器人轨迹规划之五次多项式插值

    1.轨迹规划的定义 轨迹规划(trajectory planning)是运动规划(motion planning)研究的主要内容.运动规划指的是运动插补,在起始点和终止点之间插入中间点序列,实现沿着轨 ...

  2. 六轴机器人轨迹规划(直线轨迹规划,弧线轨迹规划)——C#实现+ABB为例(规划直接下发离线程序运动)

    机器人直线插补算法,弧线插补算法+离线编程转换(空间直线插补规划.空间弧线插补规划.离线编程.ABB二次开发.六轴机器人控制.C#) 一,通过对空间点的插补,形成空间点轨迹 1.插补算法原理简述: ( ...

  3. 六轴机器人轨迹规划之空间直线插补

    1.原理简述 直线插补时,指定起止坐标与速度. 确定要插直线的周期增量,分解到xyz轴. 2.matlab代码 clear; clc; p0=[1,2,3]; pf=[2,4,5]; %指定起止位置 ...

  4. matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...

    基于MATLAB的六自由度机器人轨迹规划与仿真 学兔兔 l 訇 似 基于MATLAB的六自由度机器人轨迹规划与仿真 Trajectory planning and simulation of six- ...

  5. 03论文阅读与分享————2020年中国知网六自由度机器人轨迹规划相关论文统计

    一.2020年知网论文统计 1.刘劲松. 基于时间最优的六轴关节机械手轨迹规划研究[D].湖北工业大学,2020. 创新点:遗传算法+粒子群处理时间最优 基本方法:样条插值/笛卡尔空间规划/matla ...

  6. 6轴机器人运动学逆解matlab,六轴机器人建模方法、正逆解、轨迹规划实例与Matalb Robotic Toolbox 的实现...

    摘要 本文主要是给大家一个系统的概念,如何用Matlab实现六轴机器人的建模和实现轨迹规划.以后将会给大家讲解如何手写正逆解以及轨迹插补的程序.程序是基于Matlab2016a,工具箱版本为Robot ...

  7. matlab最优轨迹规划,matlab机器人轨迹规划

    运动仿真 $@ %" 运动仿真( ')在对上述规划轨迹进行仿真前, 先输入机器 人的参数, 并命名 -$.$/&&)" 命令如下: " @ A 连杆的前四 ...

  8. 机器人轨迹规划(熊友伦)

    机器人轨迹规划(熊友伦) http://blog.csdn.net/jyc1228/article/details/3991881 http://blog.csdn.net/wx545644217/a ...

  9. 纤巧精干:爱普生六轴机器人

    精工爱普生(以下简称爱普生)是世界领先的6轴机器人厂商之一,其六轴机器人兼具高速度.高精度(低振动)以及出色的耐用性等多重优点,大量应用在电子元器件.汽车和食品等多个制造行业中.继2012年底爱普生推 ...

最新文章

  1. mysql单表多timestamp的current_timestamp设置问题
  2. 常见面试题 - URL 解析
  3. vim与Python推荐之插件Autopep8
  4. 如何平衡存储系统的一致性和可用性?
  5. 11 | 互联网产品的测试策略应该如何设计?
  6. [转载] python中pprint模块详解——print()和pprint()两者的区别
  7. 【OCP-052】052认证考试新题库整理-第9题
  8. 主成分分析spss_主成分分析
  9. LED显示屏智能化监控运维管理解决方案
  10. Myeclipse 10破解图解
  11. 论大学学霸是怎样炼成的……
  12. mac os 系统word文档批量更改图片尺寸问题汇总
  13. 【已解决】Win 10 切换程序时,默认输入法始终为英文,抓狂,解决办法
  14. 解决Invalid bound statement (not found): com.hengjun.mapper.UserMapper.selectByExample,
  15. 报表设计器是什么?报表自动生成器有那些?
  16. “恐怖”的阿里一面,我究竟想问什么
  17. Python基础语法——if选择
  18. 老铁们来来来,实战STM32
  19. 23.5 jumpserver介绍
  20. 圆钢材质名称和成分范围

热门文章

  1. 项目风险应对策略总结
  2. cmd查看python库命令_怎么用命令查看python的库
  3. dockerexec 的使用-it操作
  4. 手把手教你使用stata导出高清的meta分析tif图片
  5. 史上最全《计算机网络 自顶向下方法》答案合集
  6. python配置cgi_Python+Apache+CGI完全配置
  7. Esp8266 进阶之路36【外设篇】乐鑫esp8266芯片SDK编程驱动时间芯片 ds1302,同步网络时间到本地,再也不怕掉电断网也可以同步时间了!(附带Demo)
  8. 使用python-control库实现MATLAB自动控制原理常用函数:Bode图 Nyquist图 根轨迹
  9. 为什么要使用虚拟机?
  10. 如何用计算机产生随机数,如何在计算器产生随机数