《机器人学导论》第六章-轨迹规划

《机器人学导论》第六章-轨迹规划


{T}为工具坐标系,{G}目标坐标系

轨迹是机械手臂(末端点或操作点)的位置、速度、加速度对时间的历程

可进一步定义为{T}相对{G}的状态历程,{G}也可随时间变动

关节坐标系下的轨迹规划joint space

在各个关节空间做规划

必须要知道所有的相对关系 初始、过程、最后point T有16个参数包括移动和转动,将 T G T i ^G_TT_i TGTi以六个参数的 G X T ^GX_T GXT来表达,前三个表示位置(三个自由度的移动),后三个表示姿态(三个自由度的转动)

一开始定义好初始点要到达的最终点的姿态,做inverse 把joint space下的关节角度求出,然后对所有的joints进行smooth规划,然后利用forward K将joint的状态转换至末端执行的状态,检查末端执行器在笛卡尔空间下轨迹的可行性

在这里插入图片描述
第一列图和第四列图里的initial、via、final point 应该是对应的

笛卡尔空间下的轨迹规划

末端点有想要到达的位置

  • 对所有手臂末端点状态规划smooth轨迹,
  • 然后将规划好的手臂末端点的状态做IK转换到joint坐标系下, G X T → θ i ^GX_T\rarr\theta_i GXTθi
  • 检查joint状态在joint-space下轨迹的可行性
    在这里插入图片描述

优缺点:

  • 有较直观的轨迹
  • 较高的运算负载(joint轨迹规划不要这么多点做ik,只要initial一个final一个via几个,而笛卡尔轨迹规划需要一直跟随点做ik)

三次多项式轨迹规划

Cubic Polynomials说明
  1. 原则

在这里插入图片描述

  1. 求解cubic polynomial

在这里插入图片描述
在这里插入图片描述

  1. 以矩阵进行运算

θ \theta θ Δ t \Delta t Δt是已知量, a 0 , a 1 , a 2 , a 3 a_0,a_1,a_2,a_3 a0,a1,a2,a3是未知量

在这里插入图片描述

多段Cubic Polynomials规划
  1. 选择速度条件 θ ˙ i \dot{\theta}_i θ˙i θ ˙ i + 1 \dot{\theta}_{i+1} θ˙i+1

    1. 直接定义。但无论在关节空间还是笛卡尔空间下都建议,过于复杂,尤其当轨迹落在singular points附近时

    2. 自动生成

      在这里插入图片描述

  2. 规划速度使过程中加速度也连续,有效使用可调控的变数

    举例:有一个中间点的轨迹规划
    在这里插入图片描述
    在这里插入图片描述

    代数解法

    在这里插入图片描述

    矩阵解法

在这里插入图片描述

一般情况下的三次样条曲线

设置 N + 1 N+1 N+1个点,包括一个初始点, N − 1 N-1 N1个中间点,一个最终点。可以形成N段三次多项式,一共有 4 N 4N 4N个未知数

在这里插入图片描述

👉4N个未知数的求解

  • 每个 s j ( x ) s_j(x) sj(x)两端的位置条件共有 2 N 2N 2N个条件

  • N − 1 N-1 N1个中间点的速度和加速度连续条件共有 2 ( N − 1 ) 2(N-1) 2(N1)个条件

  • 还需要2个条件才能求解,需要通过以下方式定义

    在这里插入图片描述

例题-RRR Manipulator

在这里插入图片描述

在Cartesian-space下规划轨迹
  1. 对$X,Y,\theta $ 中的每一个来说,需要通过四个点,形成三段cubic polynomials,一个cubic polynomial有4个未知数,所以对 X , Y , θ X,Y,\theta X,Y,θ中的每一个来说一共有12个未知数需要求解。

    在这里插入图片描述

  2. X , Y , θ X,Y,\theta X,Y,θ 三个量规划smooth轨迹

    在这里插入图片描述

  3. I.K.,找出各个关节的对应轨迹

  4. 将求解的joints带入手臂模拟动作,确认手臂末端点轨迹如在笛卡尔坐标系下所规划的轨迹运作

    image-20231011142740601
在joint-space下规划轨迹

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

高阶多项式

位置、速度、加速度都必须要规划时,必须使用五阶多项式求解六个未知数

在这里插入图片描述

带有抛物线过渡的线性函数

在原有的直线轨迹的基础上导入二次多项式,让直线和直线的轨迹之间通过二次抛物线进行连接,让轨迹更圆滑

θ ˙ 0 = θ ˙ f = 0 \dot{\theta}_0=\dot{\theta}_f=0 θ˙0=θ˙f=0的情况

在这里插入图片描述

将原来的 [ t 0 , t f ] [t_0,t_f] [t0,tf]时间段上的线性函数分为三段 [ t 0 , t b ] , [ t b , t f − t b ] , [ t f − t b , t f ] [t_0,t_b],[t_b,t_f-t_b],[t_f-t_b,t_f] [t0,tb],[tb,tftb],[tftb,tf],其中定义 t h t_h th为时间的中点。

  • [ t 0 , t b ] [t_0,t_b] [t0,tb]抛物线段1,有恒定加速度 θ ¨ 1 \ddot{\theta}_1 θ¨1
  • [ t b , t f − t b ] [t_b,t_f-t_b] [tb,tftb]线性函数段,有恒定速度 θ ˙ = θ ˙ t b = θ f − θ 0 t f − t 0 \dot{\theta}=\dot{\theta}_{t_b}=\frac{\theta_f-\theta_0}{t_f-t_0} θ˙=θ˙tb=tft0θfθ0,永远不变,与抛物线段无关
  • [ t f − t b , t f ] [t_f-t_b,t_f] [tftb,tf]抛物线段2,与抛物线段1关于时间中点 t h t_h th对称,有恒定加速度 θ ¨ 2 \ddot{\theta}_2 θ¨2,与 θ ¨ 1 \ddot{\theta}_1 θ¨1互为相反数

在这里插入图片描述

三者之间的关系为:抛物线段1末端的速度和抛物线段2初始的速度与线性函数段速度相同(交界处速度需要连续),当抛物线段的加速度的绝对值越小时,抛物线所需的时间越长,直线段时间越短,当加速度处于最小临界值时,即 θ ¨ m i n = 4 ( θ f − θ 0 ) t f 2 \ddot{\theta}_{min}=\frac{4(\theta_f-\theta_0)}{{t_f}^2} θ¨min=tf24(θfθ0),没有直线段,两个抛物线段相接。
在这里插入图片描述

多段带有抛物线过渡的线性函数

此时前后连接段的速度不为零,如 θ ˙ f ≠ 0 \dot{\theta}_f≠0 θ˙f=0

在这里插入图片描述

在这里插入图片描述

将原来的 [ t θ j , t θ k ] [t_{\theta_j},t_{\theta_k}] [tθj,tθk]时间段上的线性函数分为三段 [ t θ j , t θ j + 1 2 t j ] , [ t θ j + 1 2 t j , t θ k − 1 2 t k ] , [ t θ k − 1 2 t k , t θ k ] [t_{\theta_j},t_{\theta_j}+\frac{1}{2}t_j],[t_{\theta_j}+\frac{1}{2}t_j,t_{\theta_k}-\frac{1}{2}t_k],[t_{\theta_k}-\frac{1}{2}t_k,t_{\theta_k}] [tθj,tθj+21tj],[tθj+21tj,tθk21tk],[tθk21tk,tθk]
将原来的 [ t θ k , t θ l ] [t_{\theta_k},t_{\theta_l}] [tθk,tθl]时间段上的线性函数分为三段 [ t θ k , t θ k + 1 2 t k ] , [ t θ k + 1 2 t k , t θ l − 1 2 t l ] , [ t θ l − 1 2 t l , t θ l ] [t_{\theta_k},t_{\theta_k}+\frac{1}{2}t_k],[t_{\theta_k}+\frac{1}{2}t_k,t_{\theta_l}-\frac{1}{2}t_l],[t_{\theta_l}-\frac{1}{2}t_l,t_{\theta_l}] [tθk,tθk+21tk],[tθk+21tk,tθl21tl],[tθl21tl,tθl]

  • 对于 t d j k t_{djk} tdjk时间段上第一段抛物线有恒定加速度 θ j ¨ \ddot{\theta_j} θj¨,与 t d j k t_{djk} tdjk时间段上第二段抛物线有恒定加速度 θ k ¨ \ddot{\theta_k} θk¨无关;

  • t d j k t_{djk} tdjk时间段上第二段抛物线有恒定加速度与 t d k l t_{dkl} tdkl时间段上第一段抛物线加速度相同,都为 θ k ¨ \ddot{\theta_k} θk¨

  • 任何时间段上的直线段的速度仅与这一段的初始和最终 θ \theta θ和时间t有关

第jk段的末端抛物线和第kl段的初始抛物线,加速度是不变的,等加速运动,即 θ k ¨ \ddot{\theta_k} θk¨是一个常数

头尾段有特殊性

  1. 第一段(假设起始点t0处的速度为0,在t1时间内速度匀加速到 θ ˙ 12 \dot{\theta}_{12} θ˙12 θ 1 \theta_1 θ1相当于 θ 0 \theta_0 θ0的时间往后延迟 1 2 t 1 \frac{1}{2}t_1 21t1
    在这里插入图片描述

  2. 最后一段(假设最后一段最后到达的点速度为0,与第一段是一个逆过程, θ n \theta_n θn相当于 θ f \theta_f θf的时间往前提前 1 2 t n \frac{1}{2}t_n 21tn)

在这里插入图片描述

注释
  1. 真实系统中的 θ ¨ \ddot{\theta} θ¨取决于许多因素

τ = I θ ¨ \tau=I\ddot{\theta} τ=Iθ¨

  • τ \tau τ是力矩,它是施加在物体上的力对旋转运动产生的影响,单位是 N ⋅ m N·m Nm;
  • I I I是物体的转动惯量,它是物体对于旋转运动的惯性特性的度量。转动惯量的单位是千克·米平方( k g ⋅ m 2 kg·m^2 kgm2);
  • θ ¨ \ddot{\theta} θ¨是角加速度,它是物体旋转速度变化的率。角加速度的单位是弧度每秒平方( r a d / s 2 rad/s^2 rad/s2);

加速度取决于力矩,力矩来自于控制马达,马达生出来的 τ \tau τ要应付M,V,G

在这里插入图片描述

  1. 使用二次抛物线规划后的轨迹并没有通过via points

只有当抛物线段的加速度趋向于无穷大时,时间会趋向于无穷小,此时无限逼近via points,可以理解为仅有加速度趋向于无穷大时,轨迹会通过via points

比如在笛卡尔坐标系下,在一些轨迹上面要求必须是直线,须在笛卡尔坐标系下完成轨迹规划。如果必须通过via points👉在直线段延长线上建立虚拟的via points(伪中间点),让原本的via points落在linear段上,就可以通过via points,但不会通过虚拟的viapoint。因为即使圆滑化后,直线段不会受影响,该通过的点还是会通过

在这里插入图片描述

  1. programming力,仔细定义时间t所属的线段或曲线
    在这里插入图片描述
例题-RRR Manipulator

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为现在的求解是在笛卡尔坐标系下,所以需要在求解出的笛卡尔坐标系上的轨迹按一定时间长度抽样,通过IK计算出三个轴角 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1,θ2,θ3,然后进行拟合求解 θ \theta θ对时间的轨迹,才有办法带入手臂里,让手臂做一个操作

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值