机器人机械手的轨迹规划
注意:虽然这篇文章将专门讨论操纵者,许多讨论的概念适用于其他类型的系统,如自动驾驶汽车和无人机。
轨迹规划是整体问题的一个子集导航或运动规划。典型的运动规划的层次结构如下:
- 任务计划——设计一组高层的目标,如“去接对象在你面前”。
- 路径规划——生成一个可行的路径从起始点到目标点。一个路径通常由一组连接锚点。
- 轨迹规划——生成时间安排如何遵循路径的约束条件,如位置,速度,加速度。
- 轨迹后一旦整个轨迹规划,需要有一个控制系统,可以执行轨迹充分准确的方式。
最大的问题通常是“路径规划和轨迹规划的区别吗?”。如果你拿走一件事:如何遵循的轨迹是一个描述一个路径随着时间的推移,如以下图片所示
在这篇文章中,我们将假定一组路径点从我们的任务计划已经可用,我们想生成机械手的轨迹跟踪这些锚点。我们将看到不同的方式构建和执行轨迹和探索一些常见的设计缺陷。
任务空间和关节空间
第一个设计选择是否你想生成一个关节空间或工作空间轨迹。
- 任务空间意味着路径点,插值在笛卡儿的姿势(位置和姿态)的特定位置机械手——通常最终效应。
- 关节空间意味着路径点,插值是直接在关节位置(角度或位移,取决于类型的接头)
主要的区别在于,任务空间轨迹往往比关节空间轨迹看起来更“自然”,因为最终效应正在顺利的环境即使关节。最大的缺点是,在任务空间轨迹涉及求解逆运动学(反向)通常关节空间轨迹,这意味着很多更多的计算特别是如果你的动力学解算器是基于优化。
任务空间轨迹(左)(右)关节空间轨迹
你可以阅读更多关于机械手的运动学机器人操纵,第1部分:运动学博客。下面的表还列出了计划和执行的利弊在任务空间轨迹与关节空间。
任务空间 |
关节空间 |
|
优点 |
|
|
缺点 |
|
|
类型的轨迹
无论你选择一个工作空间或关节空间轨迹,有多种方法创建轨迹,插入的姿势(或联合配置)。现在我们将讨论一些最受欢迎的方法。
梯形速度
梯形速度轨迹分段恒定加速度轨迹,零加速度,和持续减速。这导致一个梯形速度剖面,“与抛物型混合线性段”(LSPB)或s曲线位置概要文件。
这种参数化使得他们相对容易实现,优化,和验证需求,如位置,速度和加速度的限制。
与机器人系统工具箱,您可以使用trapveltraj函数MATLAB或梯形速度剖面轨迹在仿真万博1manbetx软件。
多项式
您可以使用多项式插入两个锚点之间的各种命令。在实践中使用的最常见的命令是:
- 立方(3理查德·道金斯订单)——需要4边界条件:两端的位置和速度
- 五次(5th订单)——需要6边界条件:两端位置,速度,加速度
类似地,可以使用高阶轨迹匹配高阶衍生品头寸的锚点。
不断地缝合在一起的多项式轨迹是有用的部分为零或非零速度和加速度,因为加速度资料顺利与梯形速度轨迹。然而,验证他们更加困难因为而不是直接优化最大速度和加速度您现在设置边界条件可能打捞筒之间的轨迹段。
与机器人系统工具箱,您可以使用cubicpolytraj和quinticpolytraj在MATLAB函数,或多项式轨迹块在仿真万博1manbetx软件。
下面的动画比较梯形速度轨迹与零速度路径点(左)和一个五次多项式与非零速度轨迹路径点(右)。
样条
构建的另一种方法是通过样条函数插值轨迹。样条函数也分段多项式的组合;但与多项式的轨迹,这是多项式时间为每个段)(因此一个多项式,样条函数的多项式空间,可用于创建复杂的形状。时间方面有遵循以均匀的速度生成的样条曲线。
有许多类型的样条函数,但为运动规划是一个常用的类型b样(或基样条函数)。b样被定义中间控制点花键参数化不完全通过,而是保证呆在室内这些点的凸包。作为一个设计师,您可以调整这些控制点,以满足运动要求而不用担心外面的轨迹将这些点。
影响一个2 d b样条的修改控制点
在机器人系统工具箱,您可以使用bsplinepolytraj函数。
处理旋转
到目前为止,我们只显示你轨迹的位置,但你可能还想控制终端执行器的方向。不同位置,插值方向可以是一个更具有挑战性的角度不断以来包装。一些像欧拉角方向表示有多个表示相同的配置。
一个解决这个问题的办法是通过使用四元数插值方向,这是一种代表方向明确。一个这样的技术球形线性插值(Slerp),发现两个方向之间的最短路径恒定的角速度绕固定轴。
与机器人系统工具箱,您可以使用rottraj和transformtraj在MATLAB函数,或旋转轨迹和变换轨迹分别在仿真软件。万博1manbetx
使用Slerp在末端执行器上旋转轨迹的方法
虽然Slerp假设线性插值在一个恒定的速度,你可以把所谓的时间标度改变的行为轨迹。而不是采样轨迹间距统一的时候,你可以把一些在前一节中讨论的轨迹“扭曲”时间向量。
例如,梯形速度时间扩展将导致你的轨迹开始和结束每一段零速度和达到最大速度的中间部分。用下面的MATLAB命令,您可以创建和可视化变换与梯形速度时间扩展轨迹。
T0 = trvec2tform ([0 0 0]);Tf = trvec2tform ((1 2 3)) * eul2tform(π/ 2 0π/ 4,“ZYX股票”);tTimes = linspace (0, 1, 51);tInterval = [0 5];(年代,sd, sdd) = trapveltraj([0, 1],元素个数(tTimes));(T, dT, ddT) = transformtraj (T0, Tf, tInterval tTimes,“时间表”,[s; sd sdd]);plotTransforms (tform2trvec (T) tform2quat (T));
缩放变换轨迹与梯形速度时间
接下来是什么?
我们已经介绍了几种方法来生成机器人机械手的运动轨迹。由于轨迹参数,他们给我们解析表达式的位置,速度,加速度随时间在空间或关节空间的任务。
有可用的位置参考衍生品有助于验证轨迹对安全限制,但也是伟大的低级控制机械手。例如,速度轨迹可以作为直接输入微分PID控制器的分支;或者你可以使用位置、速度和加速度进行计算前进动力基于模型的控制器。如果你想知道更多关于底层控制机器人机械手,结账我们的机器人操纵,第2部分:动力学和控制的博客职位。
正如我们在这篇文章中,我们开始通过设计轨迹简单的运动学模型。下一步是使用动态模拟-从试试这个简单的闭环运动模型到一个完整的三维刚体模拟。
当然,最终目标是尝试这在你最喜欢的机械手硬件。
如果你想要更深入的知识在轨迹规划,我发现这个演讲是一个巨大的资源。更多地了解与MATLAB和Simulink轨迹规划,看我们万博1manbetx下面的视频和下载文件从文件交换。
为别的,让我们发表评论或电子邮件我们roboticsarena@mathworks.com。
- 类别:
- MATLAB,
- 机器人技术,
- 万博1manbetx
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。