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
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
应用: 缝焊,涂漆,装配 – 互相不是独立的
优点:
缺点
Bahnsteuerung als Funktion der Roboter-zustände
机器人状态指:Position、Geschwindigkeit、Beschleunigung
Bahntypen:
Lineare Bahnen、Polynom Bahnen、Splines (线性插值、多项式、样条)
优点:
缺点:
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 < q ( t j ) < q m a x ∣ q ˙ ( t j ) ∣ < q ˙ m a x ∣ q ¨ ( t j ) ∣ < q ¨ ( m a x ) \bold q_{min}<\bold q(t_j)<\bold q_{max}\\ |\dot{\bold q}(t_j)|<\dot{\bold q}_{max}\\ |\ddot{\bold q}(t_j)|<\ddot{\bold q}(_{max}) qmin<q(tj)<qmax∣q˙(tj)∣<q˙max∣q¨(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 梯形
优点:
缺点:
阶段:
点到点的插值–Sinoidenprofil 正弦
在这种情况下,加速度以sin2曲线轻微增加到最大值,然后轻柔地回落到零。(柔性weich)
优点:
缺点:
阶段:
加速阶段:
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),0≤t≤ta
匀速阶段
减速阶段
对比:
简介:
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控制中所有轴同时启动并以最大速度接近目标值,会导致轴依次(非同时)到达目标位置。在这种情况下,执行器可能严重偏离初始位置和目标之间的连线轨迹。
alle Gelenke beginnen und beenden ihren Bewegung gleichzeitig
所有轴同时启停
- 对每一个轴从行程距离,最大速度和插值规则计算出移动的持续时间。
- 移动的持续时间那个轴作为引导轴(Leitachse)
- 其他轴将慢(速度)一点以和Leitachse的移动持续时间一样
- (进一步完全同步形式: 其他轴加速度也将进行匹配,以达到相同的运动时间)
- 计算所有轴的插值表
- Eintragung der Gelenkkoordinaten in die Sollwerttabelle 输入关节的目标坐标
用数学符号表示
确定所有轴(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 正弦形
用上面耗时公式求
(完全同步形式,确定引导轴的最大运动时间以及加速时间并且应用到其他轴上去)
但是同步点到点的控制也有问题:
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} SStart、SZiel(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)
求出系数。
下图是不同的控制方法的定性展示:
大部分的零件由直线和圆弧组成所以上述方法是足够的。
轨迹插值和轨迹拟合的区别:
轨迹插值:
轨迹拟合:
在中间点停止。例:等待另一个信号,转换到另一个加工任务,刀具更换等
中间点不停车。例如,过中间点以避免障碍物?
在这种情况下不希望停车,额外的启动和刹车消耗能量。
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为半径设定的球状空间。
在此区域外精确沿着轨迹。
优点:良好的控制性
拟合方法:
伯恩施坦基本多项式 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(1−t)n−i
例子:计算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(1−t)3−i
贝塞尔曲线 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=0∑nBi,n(t)Pi 0≤t≤1
例子接上三次贝塞尔曲线:
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)=(1−t)3P0+3(1−t)2P1+3(1−t)2P2+t3P3
德卡斯特里奥算法 De Casteljau’s algorithm