机器人轨迹控制

轨迹控制

Bahnsteuerung

Gesucht: Zwischenzustände(Stützpunkte), damit die Trajektorie glatt und stetig wird.

Zustände können dargestellt werden im

  • Konfigurationsraum: R n \mathbb R^n Rn joint空间 关节运动空间

    Bahnsteuerung im K ist näher an der Ansteuerung der Teilsysteme des Roboter(Gelenke, Sensorik)

  • Arbeitsraum: R 3 , S E ( 3 ) \mathbb R^3,SE(3) R3,SE(3) 笛卡尔空间

    Bahnsteuerung im A ist näher an der zu lösenden Aufgabe

    区别?:当我们关注机器人的子系统的时候我们在K空间研究(如Gelenke,Sensorik)

    当我们关注待处理的任务时,我们在欧式空间里研究,此时需要解 inversen Kinematik

1. Bahnsteuerung im Konfigurationsraum 关节空间

点到点插值

Bahnsteuerung als Funktion der Gelenkwinkel-zustände

概念:Verlauf der punktweise in Gelenkwinkeln spezifizierten Bahn

Punkt-zu-Punkt:

  • Jedes Gelenk wird sofort mit der maximalen Beschleunigung angesteuert. Die Gelenkbewegung endet unabhängig von den anderen.

Punkt-zu-Punkt mit Achsinterpolation:

  • Alle Gelenke beginnen und beenden ihre Bewegungen gleichzeitig.

??????? spezifizierten Trajektorien. Abfahren(停车) dieser punktweise

动作非同步停止、动作同步停止。

  • **Asynchron: ** Steuerung der Achsen unabhängig voneinander

    应用:点焊,手动任务

  • Synchron:achs-interpolierte Steuerung

    Bewegung aller Achsen beginnt und endet gleichzeitig

    应用: 缝焊,涂漆,装配 – 互相不是独立的

    • 优点:

      1. Ansteuerung der Gelenke ist einfacher
      2. Trajektorie ist eindeutug und berücksichtigt die Gelenkwinkel-grenzen
    • 缺点

      1. Interpolation für mehrere Gelenke
      2. schwer zu formulieren

2. Bahnsteuerung im Arbeitsraum笛卡尔坐标系

Bahnsteuerung als Funktion der Roboter-zustände

机器人状态指:Position、Geschwindigkeit、Beschleunigung

Bahntypen:

Lineare Bahnen、Polynom Bahnen、Splines (线性插值、多项式、样条)

  • 优点:

    1. einfach zu formulieren
    2. interpolation einfach 知道对启停位置坐标进行插值得到运动曲线即可
  • 缺点:

    1. Inverse Kinematik jeder Punkt der Trajektorie zu lösen 需要对无数个点的求逆运动学求关节的‘通道q的变化’
    2. Geplante Trajektorie nicht immer ausführbar

3. 点到点的轨迹控制(插值、joint空间)

Gelenkwinkel-vektoren:
q ( t j ) = [ q 1 ( t j ) , q 2 ( t j ) , … , q n ( t j ) ] T \bold q(t_j)=[q_1(t_j),q_2(t_j),\dots,q_n(t_j)]^T\\ q(tj)=[q1(tj),q2(tj),,qn(tj)]T

q i ( t j ) q_i(t_j) qi(tj)表示在 t j , j = 0 , … , k t_j,j=0,\dots,k tj,j=0,,k时刻,第 i i i个关节

边界条件

  • 起始点和终点的状态已知
    q ( t s t a r t ) = q S t a r t q ( t Z i e l ) = q Z i l e \bold q(t_{start})=\bold q_{Start}\\ \\ \bold q(t_{Ziel})=\bold q_{Zile} q(tstart)=qStartq(tZiel)=qZile
    例如已知起点和终点的速度为零:
    q ˙ ( t S t a r t ) = 0 q ˙ ( t Z i e l ) = 0 \dot{\bold q}(t_{Start})=0\\ \dot{\bold q}(t_{Ziel})=0 q˙(tStart)=0q˙(tZiel)=0

  • 转角的范围、转动速度、加速度受到机构本身的制约:
    q m i n &lt; q ( t j ) &lt; q m a x ∣ q ˙ ( t j ) ∣ &lt; q ˙ m a x ∣ q ¨ ( t j ) ∣ &lt; q ¨ ( m a x ) \bold q_{min}&lt;\bold q(t_j)&lt;\bold q_{max}\\ |\dot{\bold q}(t_j)|&lt;\dot{\bold q}_{max}\\ |\ddot{\bold q}(t_j)|&lt;\ddot{\bold q}(_{max}) qmin<q(tj)<qmaxq˙(tj)<q˙maxq¨(tj)<q¨(max)

插值

Bei einer einfachen PTP-Steuerung werden die Sollwerte der Achskoordinaten einfach an die Regelungen ubergeben, so dass die Servomotoren die gewünschten Sollwerte anfahren konnen. Dabei ergeben sich folgende Probleme:

  • Die Bahn des Effektors zum Zielpunkt ist unkontrolliert und nicht vorhersehbar,
  • die auftretenden Geschwindigkeiten und Beschleunigungen hangen von der Einstellung der Servokreise ab und sind nicht vorhersehbar.
点到点插值

定义点到点插值参数概念

点到点插值–Rampenprofil 梯形

优点:

  • 计算Bahnparameter s ( t ) s(t) s(t) 容易 (als Winkel oder Weg)

缺点:

  • 阶跃式突然的加速度启动(ruckartige Aufschaltung der Beschleunigung) 导致机械结构的震荡(Eigenschwigungen von mechanischen Teilen)

阶段:

  1. Beschleunigung
  2. Gleichmäßigen Fahrt
  3. Bremsvorgang
  • 总耗时:
    t e = s e v m + v m a m t_e=\frac{s_e}{v_m}+\frac{v_m}{a_m} te=vmse+amvm

点到点的插值–Sinoidenprofil 正弦

在这种情况下,加速度以sin2曲线轻微增加到最大值,然后轻柔地回落到零。(柔性weich)

优点:

  • 运动连续,没有突变(stetig、ruckfrei)

缺点:

  • 需要更长的时间加速减速

阶段:

  1. 加速阶段:
    s ¨ ( t ) = a m sin ⁡ 2 ( π t a t ) , 0 ≤ t ≤ t a \ddot{s}(t)=a_m\sin^2\left(\frac{\pi}{t_a}t\right),0\leq t\leq t_a s¨(t)=amsin2(taπt),0tta

  2. 匀速阶段

  3. 减速阶段

  • 总耗时:
    t e = s e v m + 2 v m a m t_e=\frac{s_e}{v_m}+\frac{2v_m}{a_m} te=vmse+am2vm

对比

在这里插入图片描述

Asynchrone und synchrone PTP-Steuerung

在这里插入图片描述

简介:

Bei der asynchronen PTP-Steuerung werden alle Achsen gleichzeitig gestartet um den neuen Sollwert zu erreichen und alle laufen mit maximaler Geschwindigkeit. Das hat zur Folge, dass die Achsen nacheinander das Ziel erreichen. Bei diesem Verfahren weicht die Bahn des Effektors u.U. relativ stark von der direkten Verbindungslinie zwischen Start- und Zielpunkt ab.

注:Jede Gelenkbewegung endet unabhängig von den anderen

非对称PTP控制中所有轴同时启动并以最大速度接近目标值,会导致轴依次(非同时)到达目标位置。在这种情况下,执行器可能严重偏离初始位置和目标之间的连线轨迹。

die synchrone PTP-Steuerung

alle Gelenke beginnen und beenden ihren Bewegung gleichzeitig

所有轴同时启停

  1. 对每一个轴从行程距离,最大速度和插值规则计算出移动的持续时间
  2. 移动的持续时间那个轴作为引导轴(Leitachse)
  3. 其他轴将慢(速度)一点以和Leitachse的移动持续时间一样
  4. (进一步完全同步形式: 其他轴加速度也将进行匹配,以达到相同的运动时间)
  5. 计算所有轴的插值表
  6. Eintragung der Gelenkkoordinaten in die Sollwerttabelle 输入关节的目标坐标

用数学符号表示

  1. 确定所有轴(Gelenk i)的PTP参数

    • s e , i s_{e,i} se,i 终点距离

    • v m , 1 v_{m,1} vm,1 最大运动速度

    • a m , i a_{m,i} am,i 最大运动加速度

    • t e , i \bold t_{e,i} te,i 到达终点的运动时间

      定义最大运动时间 t e = t e , m a x = m a x ( t e , i ) \rm t_e=t_{e,max}=max(t_{e,i}) te=te,max=max(te,i)

      Gelenk i 称做 Leitachse

    • 把这个最大运动时间用到所有轴上去

    • 计算每个轴的新的最大运动速度

      Rampenprofil 梯形

      Sinodenprofil 正弦形

      用上面耗时公式求

    • (完全同步形式,确定引导轴的最大运动时间以及加速时间并且应用到其他轴上去)

    但是同步点到点的控制也有问题:

    • Es kann zu regelrechten ‘Überschwingern’ und Schleifen kommen, dabei bewegt sich der TCP zunächst über das Ziel hinaus und dann wieder zurück.
    • 对有些任务是不合适的:Schweißen(焊缝), Montage(装配), Kleben(黏贴), Falzen(槽咬合) usw.

4. Steuerung im Arbeitsraum(在工作空间/笛卡尔(Descartes)坐标系下的控制)

Bei der kartesischen Bahnsteuerung wird ein Roboter so angesteuert, dass der TCP sich im kartesischen Raum exakt auf einer Geraden oder einem Kreisbogen bewegt.

在笛卡尔坐标系下的控制是,控制TCP在三维正交坐标系下精确沿着直线或者圆弧运动。

Dabei wird eine Anzahl von Interpolationspunkten im kartesischen Raum (Weltkoordinaten) auf der gewünschten Bahnkurve berechnet und vom Effektor durchfahren.

因此需要在世界坐标系(笛卡尔空间)下计算一系列从让执行器起始点到终点沿轨迹运动的插值点。

Die Steuerung muss also für alle diese Punkte die richtigen Gelenkwinkel bestimmen

运动曲线上所有的点都需要由对应的正确的关节的角度(通道)确定。

Der Algorithmus zur Durchführung einer kartesischen Interpolation ist:

在笛卡尔空间下的插值算法步骤为:
  • 计算平移距离和转动角度变化(Translationsstrecke、Orientierungs¨anderung)

  • 计算上面两种运动的耗时最大的,作为最大动作时间

  • 计算速度和加速度

  • 计算插值点

    插值方法?

  • 通过反向变换(逆运动学)确定所有插值点中的关节坐标

    若要更sanft柔顺 则插值点的密度要更大

  • Eintragung der Gelenkkoordinaten in die Sollwerttabelle 输入关节的目标坐标-关节开始运动

插值方法
  • 线性插值-Linearinterpolation

    使用在上面提到的【梯形或者正弦插值】求出两种类型的运动的总消耗时间 t e p t_{ep} tep-position终点耗时; t e w t_{ew} tew- Orientierung旋转耗时,取最大的作为总消耗时间:
    t e = max ⁡ ( t e p , t e w ) t_e=\max(t_{ep},t_{ew}) te=max(tep,tew)
    计算终端的最大运动速度。

  • 圆弧插补-Zirkularinterpolation

  • 三次(多项式)样条插值=Kubische Splines

    • 已知多项式
      (1) f ( t ) = a 0 + a 1 t + a 2 t 2 + a 3 t 3 f(t)=a_0+a_1t+a_2t^2+a_3t^3\tag{1} f(t)=a0+a1t+a2t2+a3t3(1)
      起点位置、终点位置
      (2) S S t a r t 、 S Z i e l S_{Start}、S_{Ziel} \tag{2} SStartSZiel(2)

    • 方法
      (3) f ˙ ( t ) = a 1 + 2 a 2 t + 3 a 3 t 2 \dot{f}(t)=a_1+2a_2t+3a_3t^2\tag{3} f˙(t)=a1+2a2t+3a3t2(3)

      (4) f ¨ ( t ) = 2 a 2 + 6 a 3 t \ddot{f}(t)=2a_2+6a_3t \tag{4} f¨(t)=2a2+6a3t(4)

      求出系数。

小结

下图是不同的控制方法的定性展示:

在这里插入图片描述

大部分的零件由直线和圆弧组成所以上述方法是足够的。

轨迹拟合方法

轨迹插值和轨迹拟合的区别:

轨迹插值:

  • 待执行轨迹通过所有的中间点

轨迹拟合:

  • 那些点不被通过,只是影响轨迹。
通过轨迹中间点时的2种情况
  • 在中间点停止。例:等待另一个信号,转换到另一个加工任务,刀具更换等

  • 中间点不停车。例如,过中间点以避免障碍物?

    在这种情况下不希望停车,额外的启动和刹车消耗能量。

在这里插入图片描述

Überschleifen–对应第二种情况的控制方法

Vor dem Erreichen der Zwischenstellung wird die Bewegung vorzeitig abgebrochen und stattdessen wird die nächste anzufahrende Stellung an die Steuerung übergeben, d.h. das nächste Bahn-segment begonnen. Beim Überschleifen wird die Zwischenstellung nur näherungsweise erreicht.

在到达中间点之前,这个运动已经被取消了,取而代之的是下一个要被完成的控制。即,下一个轨迹(部分)开始执行。在Überschleifen中,中间点是被近似到达的,本质上是一种拟合方法。

两种类型:

  • 速度-Überschleifen

    执行,当速度即将低于(unterschreitet)最小设定速度

    缺点:与速度曲线相关

  • 位置-Überschleifen

    执行,当TCP到达Überschleifkugel。

    Überschleifkugel:以中间点为圆心,R为半径设定的球状空间。

    在此区域外精确沿着轨迹。

    优点:良好的控制性

拟合方法:

  1. 伯恩施坦基本多项式 Bernsteinpolynomen
    B i , n ( t ) = ( n i ) t i ( 1 − t ) n − i B_{i,n}(t)=\left( \begin{matrix} n \\ i \end{matrix} \right)t^i(1-t)^{n-i} Bi,n(t)=(ni)ti(1t)ni
    例子:计算Bernsteinpolynomen 三次形式(Grad =3)
    B i , 3 ( t ) = ( 3 i ) t i ( 1 − t ) 3 − i B_{i,3}(t)=\left( \begin{matrix} 3\\ i \end{matrix} \right)t^i(1-t)^{3-i} Bi,3(t)=(3i)ti(1t)3i

  2. 贝塞尔曲线 Bézier curve

    不经过所有点。
    P ( t ) = ∑ i = 0 n B i , n ( t ) P i     0 ≤ t ≤ 1 P(t)=\sum_{i=0}^nB_{i,n}(t)\bold P_i  0\le t\le 1 P(t)=i=0nBi,n(t)Pi  0t1
    例子接上三次贝塞尔曲线:
    i = 0 , 1 , 2 , 3 P ( t ) = ( 1 − t ) 3 P 0 + 3 ( 1 − t ) 2 P 1 + 3 ( 1 − t ) 2 P 2 + t 3 P 3 i=0,1,2,3\\ P(t)=(1-t)^3\bold P_0+3(1-t)^2\bold P_1+3(1-t)^2\bold P_2+t^3\bold P_3 i=0,1,2,3P(t)=(1t)3P0+3(1t)2P1+3(1t)2P2+t3P3
    在这里插入图片描述

  3. 德卡斯特里奥算法 De Casteljau’s algorithm

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值