爲了減小機器人加速過程的衝擊,這裏梳理一下S形加減速相關知識。
1. S加減速曲線
計算公式:
加加速度
j(t)=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧J−J0−JJ0≤t≤t1t1≤t≤t2t2≤t≤t3t3≤t≤t4t4≤t≤t5
加速度:
a(t)=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧J∗tJ∗T1−J∗(t−t1)0−J∗(t−t3)−J∗T4+J∗(t−t4)0≤t≤t1t1≤t≤t2t2≤t≤t3t3≤t≤t4t4≤t≤t5
速度:
v(t)=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧vs+J∗t2/2v1+J∗T1∗(t−t1)−J∗(t−t1)2/2v2v3−J∗(t−t3)2/2v4−J∗T4∗(t−t4)+J∗(t−t4)2/20≤t≤t1t1≤t≤t2t2≤t≤t3t3≤t≤t4t4≤t≤t5
位移:
s(t)=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧vs∗t+J∗t3/6s1+v1∗(t−t1)+J∗T1∗(t−t1)2/2−J∗(t−t1)3/6s2+v2∗(t−t2)s3+v3∗(t−t3)−J∗(t−t3)3/6s4+v4∗(t−t4)−J∗T4∗(t−t4)2/2+J∗(t−t4)3/60≤t≤t1t1≤t≤t2t2≤t≤t3t3≤t≤t4t4≤t≤t5
2. 算法流程(vs=0, ve=0)
已知 位移S,最大速度V 加加速度J,按照如下流程進行速度規劃:
第一步,計算加速減速距離:
Sa=Sd=V∗JV
第二步,比較位移關係
如果Sa+Sd<=S則:t1=t2=t4=t5=JVt3=VS−Sa−Sd
如果Sa+Sd>S則:V,=(2S∗J)31t1=t2=t4=t5=JV,t3=0
第三步,即得到每階段對應的插補時間,即可進行速度插補
3. 算法流程(vs>0或 ve>0)
已知 位移S,起始速度Vs,終止速度Ve,最大速度V 加加速度J,按照如下流程進行速度規劃:
第一步,計算加速減速距離:
Sa=(V+Vs)∗JV−VsSd=(V+Ve)∗JV−Ve
第二步,比較位移關係
如果Sa+Sd<=S則:t1=t2=JV−Vst4=t5=JV−Vet3=VS−Sa−Sd
如果 S_a + S_d > S
重新計算最大速度V,因爲解析解計算複雜,這裏通過二分法逼近,方法如下:
(1)設置v1 = V,v2設置爲Vs,Ve中較大的數值
(2)二分法計算最大速度
V=2v1+v2
(3)計算加減速距離
Sa=(V+Vs)∗JV−VsSd=(V+Ve)∗JV−Ve
(3)比較位移
如果S>Sa+Sd則:v2=V如果S<Sa+Sd則:v1=V
(4) 重複步驟(1)(2)(3),直到
∣S−Sa−Sd∣<ϵ
閾值ε根據實際需求進行設置,通常設置爲0.000001,迭代次數不超過10次.