机械臂-轨迹规划-速度规划-学习笔记

  • 学习对象:知乎话题:多轴插补为什么普遍使用梯形速度曲线?
    • ICRA2014 Joonyoung PPT
    • 了解一下运动控制器
    • 从工业角度讲:算法与硬件平台的关系
    • 韩峰涛
    • S型规划优缺点
    • Github最受欢迎的CNC程序smoothieware
    • 作者:Marc Pony
    • Generating double s-curve velocity profiles with given time
  • 后续

学习对象:知乎话题:多轴插补为什么普遍使用梯形速度曲线?

链接:https://www.zhihu.com/people/yu-tian-qi-76/activities

ICRA2014 Joonyoung PPT

Trajectory Planning for Robots: The Challenges of Industrial Consideration
这个PPT可以让大家对机器人运动控制有整体的了解

了解一下运动控制器

SIEMENS 的SIMOTION运动控制器(以前花两个月时间学习过,但是速度曲线这块今天也是第一次翻阅)是西门子针对除CNC的控制器的一般运动控制平台:
其中关于路径速度曲线有两个选项:
Trapezoidal: constant acceleration, not accounting for jerk;
Smooth: constant acceleration, jerk is accounted for;
##2 速度曲线的选择依赖于具体的应用过程。
PTP指令中还是使用TVP或者S曲线的多。工业机器人这块涉及到动力学,正逆运动学,且在实际做运动控制中需要充分考虑执行机构即伺服电机的连续工作电流和峰值电流,以及规划中避免奇异位形和考虑其限位等。

从工业角度讲:算法与硬件平台的关系

包括:CNC系统架构;插补算法就是在FPGA端实现。
参考链接:同上-秦冕

韩峰涛

不存在耦合的多轴系统中,由于电机能力和负载已知,可以计算出一个可达的最大加速度,使用传统的T/S加速规划就可以获得非常好的效果。但是对于机器人这样一个多轴相互耦合的系统,在运动过程中,各个关节的负载惯量是在不断变化的,因此使用传统的T/S型规划无法很好的满足需求。下图是机器人在笛卡尔空间画几个圆弧时,使用在线规划方法规划完成的速度曲线(绿色)。

常见速度规划包括:梯形规划(trapezoidal Profile)、S型规划(S-Curve/Profile)、多项式规划(Polynomial Profile)。
T型规划只有加速、匀速、减速三个阶段:

S规划分为7个阶段:加加速、匀加速、减加速、匀速、加减速、匀减速、减减速。

相比T规划,S规划更加平稳,对电机和传动系统的冲击更小,在相同的期望速度下,运动同样的距离所需的时间更长。

多项式规划一般指的是可以用单个表达式表达的曲线,根据约束条件不同,常用的是3次和5次多项式。单纯的多项式规划有一个非常严重的问题:没有匀速段。

为什么机器人系统中很少使用T形和S型规划?
加速度限制(Acceleration Limiter)
必须要指定一个期望最大加速度,但是,机械臂在整个空间中处于不同构型时可以达到的最大加速度是不一样,无法确定一个广泛适用的最大加速度值用于离线的S/T规划,小了,无法充分发挥伺服系统的性能,大了,可能会损坏伺服系统或者严重影响跟踪精度。
其他方法:使用扭矩限制器(Torque Limiter)
缺点:破坏了S/T型规划的理论基础(加速度是随时变化的),不能用了。
若考虑电机最大转速、电机最大力矩、机器人奇异性等限制,得到沿着某路径是的最大允许速度如图:

显然,无法使用传统的T/S型规划,除非速度限制在蓝色最下端以下。虽不是全局最优,但已经是较大程度的利用伺服系统性能了。

S型规划优缺点

优点是计算简单,效率高,方便实时计算。针对机器人或者数控系统,一般都是预读一小段路径点,然后在线计算参考位置点,因此采用梯形或S型规划比较有优势。但是,利用梯形速度或S型速度在耦合的轨迹规划时,则会存在问题。可能根据位置规划出来的轨迹是连续的,但经过运动学逆解到机床坐标系或者关节空间,轨迹会变得不连续。
针对关节空间在线轨迹规划,斯坦福的Kroger做了不少工作,他可以实现任意初始状态下(速度、加速度为任意值),规划得到光滑的运动轨迹到指定速度、加速度的目标位置。他这方面写了一本书,还有一个专门卖的库Reflexxes,据说可以实现在线规划,youtube上也有视频
知乎链接:https://www.zhihu.com/question/47474538/answer/116411735

Github最受欢迎的CNC程序smoothieware

An S-curve profile must begin when load/motor is not moving.英文引自Motion Programming with EasyMotion Studio而且,Github最受欢迎的CNC程序smoothieware,带有路径前瞻18段,也是Trapezoidal,如果S曲线能够用于轨迹跟踪,肯定会用的,这也说明不能。个人研究发现,S曲线规划的速度和路程约束是3次方程组,很难求解。网上很多论文想解决S曲线轨迹跟踪都是不了了之,引用率很低。
作者:王丹 ,知乎链接:https://www.zhihu.com/question/47474538/answer/282060086

作者:Marc Pony

个人认为是因为梯形速度规划是最快的,同时也是最简单的。但是梯形速度不够平滑,加速度跳变,实际插补运动中机器震动较大。更高阶、更多分段的速度规划可以保证加速度、加加速度平滑。自己实现了七种速度规划算法: 梯形、余弦、多项式、7段S形、7段修正S形、15段S形、31段S形。机器人速度规划-CSDN下载
知乎链接:https://www.zhihu.com/question/47474538/answer/435846663

Generating double s-curve velocity profiles with given time

链接:https://robotics.stackexchange.com/questions/13947/generating-double-s-curve-velocity-profiles-with-given-time?newreg=34073b96d7004a4cb80763303e8b5d3e
By Long Smith: (https://robotics.stackexchange.com/users/15392/long-smith) :
I have found a solution. Quiet simple actually. To generate minimum time double s-curve profile I used algorithm presented in this wonderful book. After computing trajectory for the first DOF I perform the same algorithm for the other DOFs but if trajectory is infeasible with given time, it is appeared to be a good idea to make maximum possible acceleration smaller and smaller with some factor(I use 0.95) which leads to longer trajectory execution. Moreover we can do the same with maximum velocity and jerk constraints which will make more trajectories to be feasible. However this will take significantly more time and since all my tests passed with only decreasing acceleration I am satisfied.

后续

接下来将会抽时间更新工业机械臂基于示教数据的运动控制系统框架:路径规划-轨迹规划-速度规划-实时插补的源码分析笔记。实现过程:读取示教数据点(路径点),指定轨迹规划模式(关节角、直线、圆弧、B样条)进行轨迹规划,指定拐角模式(多项式、圆弧、贝塞尔)进行光顺处理,在满足运动学约束(位置速度等)和动力学约束(加速度、加加速度)等条件下,实现7段S加减速速度规划,实时调用逆解将关节指令保存到循环顺序队列,供电机驱动。
本人也正在学习,欢迎交流探讨

1学习笔记之知乎话题:多轴插补为什么普遍使用梯形速度曲线?相关推荐

  1. 算法【二叉树】学习笔记 - 已知结点数计算可构建出多少种二叉树

    算法[二叉树]学习笔记 - 已知结点数计算可构建出多少种二叉树 卡特兰数 相关知识点 排列组合公式 排列 Arrangement 组合 Combination 分步计算 简化 参考资料 题目:已知3个 ...

  2. ROS学习笔记-创建订阅cmd_vel话题节点

    创建工作空间 cd ~ mkdir catkin_ws cd catkin_ws mkdir src cd src catkin_init_workspace #初始化工作空间 cd ~/catkin ...

  3. 递归调用层数太多_VBA学习笔记46:组合之递归算法(没写后补)

    学习资源:<Excel VBA从入门到进阶>第46集 by兰色幻想 1 什么是递归? 递归算法是一种直接或者间接调用自身函数或者方法的算法. 2,用递归有什么好处? 简化代码,让程序更简捷 ...

  4. DirectX11 学习笔记3 - 创建一个立方体 和 轴

    该方案将在进一步的程序 面向对象. 独立的模型类.更像是一个框架. 其中以超过遇到了一个非常有趣的问题,.获得一晚.我读了好几遍,以找到其他的列子.必须放在某些功能Render里面实时更新,而不是仅仅 ...

  5. 【STM32Cube】学习笔记(三):六轴传感器

    文章目录 摘要 一.简介 1.I2C原理 2.MPU6050介绍 3.MPU6050寄存器介绍 4.DMP使用 二.硬件电路设计 三.软件设计 1.CubeMX配置 2.CubeIDE代码 3.结果显 ...

  6. 【机器视觉学习笔记】python安装OpenCV并设置自动补全及代码提示

    目录 安装 测试 设置自动补全及代码提示 平台:Windows 10 20H2 Python 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 6 ...

  7. 贝加莱学习笔记第七节用 mapp 多轴运动控制

    1. MC_GearIn 是最常用的电子齿轮关联工具 MC_GearOut 是解除跟随的功能块 2.使用电子齿轮时,从轴会至少有 2 倍的 POWERLINK 通讯周期时间的滞后. Powerlink ...

  8. JavaFX+Jfoenix 学习笔记(序)--引言And软件截图

    文章目录(更新中): JavaFX+Jfoenix 学习笔记(序)--引言And软件截图 JavaFX+Jfoenix 学习笔记(一)--环境搭建及多款Hello Word演示 JavaFX+Jfoe ...

  9. 【PMAC学习笔记——第0篇】初识PMAC运动控制卡以及 Microsoft Visual C++ 2019,PeWin32 PRO2环境搭建

    一.PMAC概述 PMAC ( Programmable Multi-Axis Controller) 可编程多轴运动控制器,是美国Delta Tau Data System 公司推出的PC 机平台上 ...

最新文章

  1. py3提取json指定内容_python3 取页面指定数据(json)
  2. java程序初始化顺序
  3. Java多线程 ——线程基础和锁锁锁
  4. Java设计模式笔记(2)工厂方法模式
  5. 百度打造AIR智能道路系统,可降低90%交通事故
  6. Leaflef笔记-使用leaflet-tilelayer-wmts插件获取地图及坐标(含错误分析思路)
  7. 收藏 | 有没有什么可以节省大量时间的 Deep Learning 效率神器?
  8. 网络流专题(完结撒花)
  9. pytorch tensor 梯度
  10. Lua脚本语言——Lua脚本基础语法
  11. 大数据与数据挖掘的相对绝对关系
  12. SVN中clean up的含义
  13. 域名备案、公安网备案
  14. 前沿计算技术于推动设计技术发展
  15. 网格计算, 云计算, 集群计算, 分布式计算, 超级计算
  16. 怎样找到优质的APP推广渠道
  17. 第二篇:读曹德旺《心若菩提》
  18. snort实验(一)
  19. 公寓上网新认证方式破解研究
  20. 一台win10pc无法连接win7共享打印机

热门文章

  1. “九”答不可 | 量子物理学为什么这么诡异?
  2. 微信小程序(页面获取组件实例对象来操做组件)
  3. solor快速_Solr快速入门
  4. 图像形状特征(三)--链码及形状数
  5. 网站无法复制图片到word中解决办法
  6. 打包chrome浏览器扩展程序
  7. 2017 年一定不要错过的五本编程书籍 | Phodal 书单
  8. opencv光流例程_openCV:光流
  9. 全国各高校历年GIS考研试题收集整理
  10. 一维码和二维码的生成与解析