前面说到,无论是三次还是五次多项式进行规划存在以下缺点:
- 位移往返
- 没有匀速段
这一节中,我们的研究对象是初速度和末速度都为0关节运动。
一、无过渡线性函数假设时刻 t t t和角度 θ \theta θ是线性关系,其系数为 v v v,有: θ ( t ) = v ∗ t \theta(t)=v*t θ(t)=v∗t 在整一段运动中,其速度恒定为 v v v,假设在这段运动前的速度为 v p r e v_{pre} vpre,如果速度差 Δ v = v − 0 = v ≠ 0 \Delta v=v-0=v\not=0 Δv=v−0=v=0,根据加速度计算公式,在一个极短的时间 Δ t \Delta t Δt有: a = Δ v / Δ t = ∞ a=\Delta v/\Delta t=\infty a=Δv/Δt=∞
为了避免端点处加速度的"冲击",在运动的起末两点采用用两段抛物线进行平滑地改变速度大小。记两端待求抛物线的时间为
t
b
t_b
tb,总持续时间为
t
t
t,加速度为
a
a
a,速度从零变化到匀速
v
v
v,起末角为
θ
0
\theta_0
θ0和
θ
f
\theta_f
θf,作出关节的角速度曲线: 红色面积代表运动的角度变化量即
θ
f
−
θ
0
\theta_f-\theta_0
θf−θ0,有梯形面积公式有:
S
r
e
d
=
(
t
−
2
t
b
+
t
)
⋅
a
⋅
t
b
/
2
S_{red}=(t-2t_b+t)\cdot a\cdot t_b/2
Sred=(t−2tb+t)⋅a⋅tb/2,整理得:
a
⋅
t
b
2
−
a
⋅
t
⋅
t
b
+
θ
f
−
θ
0
=
0
a\cdot t_b^2-a\cdot t\cdot tb+\theta_f-\theta_0=0
a⋅tb2−a⋅t⋅tb+θf−θ0=0 二次方程有解的条件是:
Δ
=
a
2
t
2
−
4
a
(
θ
f
−
θ
0
)
≥
0
\Delta=a^2t^2-4a(\theta_f-\theta_0)\ge0
Δ=a2t2−4a(θf−θ0)≥0,即加速度需要满足
a
≥
4
(
θ
f
−
θ
0
)
/
t
2
a\ge4(\theta_f-\theta_0)/t^2
a≥4(θf−θ0)/t2,对应的解
t
b
=
t
/
2
−
(
a
2
t
2
−
4
a
(
θ
f
−
θ
0
)
)
/
2
a
t_b=t/2-\sqrt{(a^2t^2-4a(\theta_f-\theta_0))}/2a
tb=t/2−(a2t2−4a(θf−θ0))
/2a
% Velocity plan according accelerate
% duration: total time of the motion
function [real_a,line_v,line_duration]=plan(set_a,delta_x,duration)
while(1)
min_acc=4*delta_x/(duration^2); %minimun acc
if set_a=0&&ttacc_duration&&tt
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?