无姿态规划,小伙伴可以自己开发

本教程只是提供框架,工程慎用。

S速度规划代码OpenRobotSL/TrajectoryPlanningS速度规划代码

https://github.com/OpenRobotSL/TrajectoryPlanning​github.com基于S型曲线的连续多段曲线插补平滑过渡的规划算法(Matlab)_xuuyann-CSDN博客​blog.csdn.net

写在前面

前面的博客已经写了关于空间直线与空间圆弧的常用插补算法,而这些都是单一路径,实际中并不实用。对于连续多段路径,传统方法是将多段路径细分,然后对每段路径采用首尾速度为0的加减速算法(S型曲线或梯形曲线),这就带来了频繁启停的问题,容易对机械臂造成冲击,同时运行时间较长。

下面我把前面博客中提到的非对称S型加减速算法与空间中多段路径相结合,实现多段路径平滑过渡,减少运行时间。简单画一个轮廓状的“S”字符:

本文方法:

速度与加速度曲线:

采用分段路径首尾速度为0的加减速控制方法:

速度与加速度曲线:

对比结果还是很明显滴~本文的方法运行时间更短了,没有频繁启停,轮廓曲线更圆滑。如果在加上动力学方面的约束,就更好了。这个以后再讨论。

预处理

“预处理”,顾名思义就是拿到了一个轮廓轨迹,先想想这个轨迹如何分段,分段后如何衔接。

一般工业机器人任务空间的运动轨迹都是由圆弧段和直线段组成的,对于多段连续直线路径而言,任意两段相连直线段的连接处需要平滑处理,这里选择建立圆弧模型进行路径拐角过渡。下面给出圆弧模型的建立过程:

Matlab函数如下:

% 拾取放置操作分段路径转接模型

基于非对称S曲线的轨迹规划

核心方法:机器人学回炉重造(6):关节空间规划方法——梯形加减速(与抛物线拟合的线性函数)、S型曲线规划

一些文献中给S型曲线加了很多修饰词,比如非对称、带约束啥的,其实就是我上面那篇博客的S曲线,首尾速度可以不一样,带有位移、速度以及加速度约束。

% 获取转接运动参数(速度)

插补

这里先只讲位置插补

预处理过后,轨迹就分段成为了一大堆直线段和一大堆圆弧段,这里要做的就是对这些空间直线和空间圆弧进行插补,于是又回到老话题了……

这里直线段插补不多说,和前面博客中提到的一样,空间单一直线位置插补+ S型加减速曲线归一化处理,具体方法见基于带约束S型加减速曲线的空间直线插补与空间圆弧插补算法(Matlab)

圆弧段插补也大同小异,方法有所不同,但基本是采用局部坐标系的空间圆弧插补方法和齐次坐标变换原理。新建立的局部坐标系UVW如下图所示,下面图中点的下标和我上面写的有些不一样,忽略所有$P_{bi}$并将$P_{ei}$看成$P_{Ti}$就行了,我就没有重新画图了。以第一段轨迹为例,新坐标系建立过程如下:

然后就是老生常谈的话题,把局部新坐标系中的圆弧通过左乘该坐标系相对基座标系的齐次变换矩阵从而变换回原来的XYZ值。

Matlab函数如下,我在函数中留了姿态插补四元数参数的位置,留着以后加姿态插补用:

% 过渡圆弧的插补算法,搭配ContinueSpaceLine使用

字符轮廓提取

CAD中画50mm*50mm的栅格图,在栅格图内绘制字体轮廓,然后提取关键点坐标。

以栅格左下角的点作为坐标原点,以水平方向为X轴,以垂直方向为Y轴建立平面直角坐标系,字符“S”的关键点坐标如图所示

提取坐标原点O的坐标值,然后用其他关键点的坐标值减去原点的,就能得到这些关键点在当前栅格坐标系下的坐标值,如下表

| 关键点 | A | B | C | D | E | F | G | H | I | J | K | L | | :----: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | | X | 5 | 45 | 45 | 12 | 12 | 46 | 46 | 5 | 5 | 38 | 38 | 5 | | Y | 0 | 0 | 22 | 28 | 39 | 39 | 45 | 46 | 22 | 16 | 7 | 7 |

ok完事儿~

拼起来

是的,最后总的程序就是把上面分段规划得到的一堆直线插补点和一堆圆弧插补点,按照时间顺序拼起来。总程序我就不放了,仁者见仁智者见智。

matlab 平滑曲线连接_基于S型曲线的连续多段曲线插补平滑过渡的规划算法(Matlab)...相关推荐

  1. 基于S型曲线的连续多段曲线插补平滑过渡的规划算法(Matlab)

    写在前面 学习代码都记录在个人github上,欢迎关注~ 前面的博客已经写了关于空间直线与空间圆弧的常用插补算法,而这些都是单一路径,实际中并不实用.对于连续多段路径,传统方法是将多段路径细分,然后对 ...

  2. matlab 平滑曲线连接_平滑轨迹插值方法之多项式插值(附代码)

    前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法.今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值. 说明:本文 ...

  3. matlab 平滑曲线连接_【仪光学习】技能分享 | 前方高能:如何用Matlab轻松实现数学建模...

    作为前阵子被禁用的Matlab到底有怎样的魔力呢?Matlab毫无疑问是理工生的科研神器,在各大建模比赛中也被高频使用,下面就来聊聊Matlab的一些"奇技淫巧". 一 基础用法 ...

  4. Matlab/Cplex代码:基于合作型Stackelberg博弈的考虑差别定价和风险管理的微网运行策略

    Matlab/Cplex代码:基于合作型Stackelberg博弈的考虑差别定价和风险管理的微网运行策略 参考International Journal of Electrical Power and ...

  5. Mothur6进阶_Mothur扩增子基因序列分析_基于系统型phylogeny的多样性指数分析

    本文主要讲解了使用Mothur软件对扩增子基因序列进行基于系统型phylogeny的多样性指数分析,并提供了所有过程输出文件. OTU和基于Phylotype的分析是分类方法,取决于binning过程 ...

  6. fama matlab源码_基于优化算法改造的Fama-French三因子模型

    基于光大证券金融工程研报<站在巨人的肩膀上,从牛基组合到牛股发现 --FOF 专题研究系列之十六 >中提及的Carhart四因子Alpha优化模型,本文在Fama-French三因子模型上 ...

  7. 基于c#的相关性分析_基于数字高程模型的城市地貌与地名相关性分析——以兰州市为例...

    江西地名研究 基于数字高程模型的城市地貌与地名 相关性分析--以兰州市为例 文/张鹏丽,李育 提要:以兰州市为例,使用 ASTER 30米分辨率的数字高程模型DEM并提取了兰州市周边所有地名信息:通过 ...

  8. 基于op07的k型热电偶测量电路_基于K型热电偶的测温装置设计

    基于 K 型热电偶的测温装置设计 * 王安敏 孔令布 孟海彦 [摘 要] 摘 要 工业现场的温度检测大多以 K 型热电偶为传感器测量高温,针 对热电偶测量温度存在线性度差,测量误差大等问题.现采用 K ...

  9. qam映射c程序_基于星型24QAM映射的光概率成型编码方法与流程

    本发明涉及一种光概率成型编码方法,特别是一种基于星型24QAM映射的光概率成型编码方法. 背景技术: 接入网是指用户终端与主干网络之间的所有设备,长度从几百米到几公里不等,因而常常被称为"最 ...

  10. python 线性回归回归 缺失值 忽略_机器学习 第3篇:数据预处理(使用插补法处理缺失值)...

    插补法可以在一定程度上减少偏差,常用的插补法是热卡插补.拟合插补和多重插补.拟合插补,要求变量间存在强的相关性:多重插补(MCMC法),是在高缺失率下的首选插补方法,优点是考虑了缺失值的不确定性. 一 ...

最新文章

  1. jQuery - 获取并设置 CSS 类
  2. Android Studio或者Eclipse中的最常用的快捷键,最简单的,部分不适用eclipse
  3. linux命令头部,Linux命令学习手册-objcopy命令
  4. python编程内置函数使用方法_python编程(4)--内置函数
  5. wait(),notify(),notifyAll()进行了详细的分析介绍
  6. 人工智能泰斗迈克尔·乔丹分享机器学习要义:创新视角,直面挑战
  7. 推荐10篇jQuery技术的文章
  8. 转帖 一个很有用但不常用到的传值方法! http://topic.csdn.net/u/20070124/22/09d43606-4119-4407-bfa6-8b2890ffbac7.html...
  9. 西电版《离散数学》勘误
  10. 从零实现一个3D建模软件
  11. 英文论文查重规则是什么?
  12. C# XmlHelper
  13. Python QT5文件对话框总是错误代码-1073740791 (0xC0000409)
  14. 关于readyState
  15. TP_link家庭无线路由
  16. 国科大-高性能计算考试
  17. 1025 反转链表 (25 分)
  18. VB.net入门(6):类~构造函数,事件
  19. 31各省首字母排序、国外国家名排序(中文首字母)
  20. OllyDbg操作——TraceMe.exe调试

热门文章

  1. idea设置控制台字体大小
  2. 动态规划(DP算法)详解
  3. Unbuntu卸载anaconda(最新最全亲测)
  4. IT十八掌徐培成第一天笔记
  5. Spring事务和事务传播机制
  6. Charles抓包工具的破解以及使用
  7. pdf关键字搜索盖章,长关键字定位
  8. 使用Graghics2D实现证书签字盖章功能总结
  9. 浅谈前端开发过程中使用的代理方法
  10. 虚拟机桥接模式网络配置