目录
1 平面2R机器人概述
如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标 θ 1 \theta _1 θ
1
为连杆1与 y y y轴负半轴的夹角,逆时针为正; θ 2 \theta _2 θ
2
为连杆2与连杆1延长线的夹角,逆时针为正;连杆1、2的关节力矩分别定义为 τ 1 \tau_1 τ
1
、 τ 2 \tau_2 τ
2
。设连杆质量均匀分布,长度都为 l l l,质量都为 M M M,末端执行器笛卡尔坐标为 P ( x , y ) P(x,y) P(x,y)。
2 运动学建模
2.1 正运动学模型
指数积方法的核心原理是基于运动旋量的指数积公式:
T A T ( θ ) = e [ V 1 ] θ 1 e [ V 2 ] θ 2 ⋯ e [ V n ] θ n T A T ( 0 ) _{\boldsymbol{T}}^{\boldsymbol{A}}\boldsymbol{T}\left( \boldsymbol{\theta } \right) =e^{\left[ \boldsymbol{V}_1 \right] \theta _1}e^{\left[ \boldsymbol{V}_2 \right] \theta _2}\cdots {e^{\left[ \boldsymbol{V}_n \right] \theta _n}}_{\boldsymbol{T}}^{\boldsymbol{A}}\boldsymbol{T}\left( 0 \right)
T
A
T(θ)=e
[V
1
]θ
1
e
[V
2
]θ
2
⋯e
[V
n
]θ
n
T
A
T(0)
可以证明,连杆变换之积(DH法)等价于指数积。对平面2R机器人,确定各个关节轴线的线矢量如图2所示,不必建立连杆坐标系。
图2
各轴线方向如下:
ω 1 = ω 2 = [ 0 0 1 ] , [ ω 1 ] = [ ω 2 ] = [ 0 − 1 0 1 0 0 0 0 0 ] \omega _1=\omega _2=\left[
001
001
\right] ,\mathrm{ }\left[ \omega _1 \right] =\left[ \omega _2 \right] =\left[
010−100000
0−10100000
\right]
ω
1
=ω
2
=
⎣
⎡
0
0
1
⎦
⎤
,[ω
1
]=[ω
2
]=
⎣
⎡
0
1
0
−1
0
0
0
0
0
⎦
⎤
取各个运动轴上的一点:
r 1 = [ 0 0 0 ] , r 2 = [ 0 − l 0 ] r_1=\left[
000
000
\right] ,\mathrm{ }r_2=\left[
0−l0
0−l0
\right]
r
1
=
⎣
⎡
0
0
0
⎦
⎤
,r
2
=
⎣
⎡
0
−l
0
⎦
⎤
可得各个运动旋量的指数形式
e [ V 1 ] θ 1 = [ cos θ 1 − sin θ 1 0 0 sin θ 1 cos θ 1 0 0 0 0 1 0 0 0 0 1 ] , e [ V 2 ] θ 2 = [ cos θ 2 − sin θ 2 0 − l sin θ 2 sin θ 2 cos θ 2 0 − l ( 1 − cos θ 2 ) 0 0 1 0 0 0 0 1 ] e^{\left[ \boldsymbol{V}_1 \right] \theta _1}=\left[
cosθ1sinθ100−sinθ1cosθ10000100001
cosθ1−sinθ100sinθ1cosθ10000100001
\right] , e^{\left[ \boldsymbol{V}_2 \right] \theta _2}=\left[
cosθ2sinθ200−sinθ2cosθ2000010−lsinθ2−l(1−cosθ2)01
cosθ2−sinθ20−lsinθ2sinθ2cosθ20−l(1−cosθ2)00100001
\right]
e
[V
1
]θ
1
=
⎣
⎢
⎢
⎡
cosθ
1
sinθ
1
0
0
−sinθ
1
cosθ
1
0
0
0
0
1
0
0
0
0
1
⎦
⎥
⎥
⎤
,e
[V
2
]θ
2
=
⎣
⎢
⎢
⎡
cosθ
2
sinθ
2
0
0
−sinθ
2
cosθ
2
0
0
0
0
1
0
−lsinθ
2
−l(1−cosθ
2
)
0
1
⎦
⎥
⎥
⎤
关节变量 θ = [ θ 1 θ 2 ] \boldsymbol{\theta }=\left[
θ1θ2
θ1θ2
\right] θ=[
θ
1
θ
2
]为0时即为初始位姿:
T B T ( 0 ) = [ 1 0 0 0 0 1 0 − 2 l 0 0 1 0 0 0 0 1 ] _{T}^{B}\boldsymbol{T}\left( 0 \right) =\left[
1000010000100−2l01
1000010−2l00100001
\right]
T
B
T(0)=
⎣
⎢
⎢
⎡
1
0
0
0
0
1
0
0
0
0
1
0
0
−2l
0
1
⎦
⎥
⎥
⎤
所以由 T B T ( θ ) = e [ V 1 ] θ 1 e [ V 2 ] θ 2 T S T ( 0 ) _{T}^{B}\boldsymbol{T}\left( \boldsymbol{\theta } \right) =e^{\left[ \boldsymbol{V}_1 \right] \theta _1}e^{\left[ \boldsymbol{V}_2 \right] \theta _2}\!\:_{T}^{S}\boldsymbol{T}\left( 0 \right)
T
B
T(θ)=e
[V
1
]θ
1
e
[V
2
]θ
2
T
S
T(0)即得
T B T ( θ ) = [ cos ( θ 1 + θ 2 ) − sin ( θ 1 + θ 2 ) 0 l sin ( θ 1 + θ 2 ) + l sin θ 1 sin ( θ 1 + θ 2 ) cos ( θ 1 + θ 2 ) 0 − l cos ( θ 1 + θ 2 ) − l cos θ 1 0 0 1 0 0 0 0 1 ] _{T}^{B}\boldsymbol{T}\left( \boldsymbol{\theta } \right) =\left[
cos(θ1+θ2)sin(θ1+θ2)00−sin(θ1+θ2)cos(θ1+θ2)000010lsin(θ1+θ2)+lsinθ1−lcos(θ1+θ2)−lcosθ101
cos(θ1+θ2)−sin(θ1+θ2)0lsin(θ1+θ2)+lsinθ1sin(θ1+θ2)cos(θ1+θ2)0−lcos(θ1+θ2)−lcosθ100100001
\right]
T
B
T(θ)=
⎣
⎢
⎢
⎡
cos(θ
1
+θ
2
)
sin(θ
1
+θ
2
)
0
0
−sin(θ
1
+θ
2
)
cos(θ
1
+θ
2
)
0
0
0
0
1
0
lsin(θ
1
+θ
2
)+lsinθ
1
−lcos(θ
1
+θ
2
)−lcosθ
1
0
1
⎦
⎥
⎥
⎤
可以验证,基于运动旋量法的机器人正运动学模型,与基于D-H法的正运动学模型相同,可交叉验证正运动学模型的理论正确性。
2.2 逆运动学模型
以图3所示的象限为例,以几何方法进行机器人运动学反解。
对于位形一,在 Δ O A B \varDelta OAB ΔOAB中运用余弦定理可得 2 l 2 cos ( π − θ 2 ) = l 2 + l 2 − L 2 2l^2\cos \left( \pi -\theta _2 \right) =l^2+l^2-L^2 2l
2
cos(π−θ
2
)=l
2
+l
2
−L
2
,其中 L 2 = x 2 + y 2 L^2=x^2+y^2 L
2
=x
2
+y
2
,显然末端执行器坐标需要满足 0 < x 2 + y 2 ⩽ 2 l 0<\sqrt{x^2+y^2}\leqslant 2l 0<
x
2
+y
2
⩽2l
解得:
θ 2 = a r c cos ( x 2 + y 2 2 l 2 − 1 ) \theta _2=\mathrm{arc}\cos \left( \frac{x^2+y^2}{2l^2}-1 \right)
θ
2
=arccos(
2l
2
x
2
+y
2
−1)
有两个解,位形一对应正解,位形二对应负解。
同样在 Δ O A B \varDelta OAB ΔOAB中运用余弦定理可得
ψ = a r c cos ( x 2 + y 2 2 l ) \psi =\mathrm{arc}\cos \left( \frac{\sqrt{x^2+y^2}}{2l} \right)
ψ=arccos(
2l
x
2
+y
2
)
为方便起见,这里总是取 ψ \psi ψ的正解。再根据
β = ∣ a r c tan ( y x ) ∣ \beta =\left| \mathrm{arc}\tan \left( \frac{y}{x} \right) \right|
β=
∣
∣
∣
arctan(
x
y
)
∣
∣
∣
可得位形一下的关节参数 θ 1 = π 2 − ( β + ψ ) \theta _1=\frac{\pi}{2}-\left( \beta +\psi \right) θ
1
=
2
π
−(β+ψ)。当机械臂运动到其他象限时同理,求得平面2R机器人运动学反解为:
{ θ 1 = π 2 − ( β ± ψ ) , θ 2 > 0 时取 + θ 1 = π 2 + ( β ± ψ ) , θ 2 > 0 时取 − θ 1 = 3 π 2 − ( β ± ψ ) , θ 2 > 0 时取 + θ 1 = 3 π 2 + ( β ± ψ ) , θ 2 > 0 时取 −
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪θ1=π2−(β±ψ),θ2>0时取+θ1=π2+(β±ψ),θ2>0时取−θ1=3π2−(β±ψ),θ2>0时取+θ1=3π2+(β±ψ),θ2>0时取−
{θ1=π2−(β±ψ),θ2>0时取+θ1=π2+(β±ψ),θ2>0时取−θ1=3π2−(β±ψ),θ2>0时取+θ1=3π2+(β±ψ),θ2>0时取−
⎩
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎧
θ
1
=
2
π
−(β±ψ),θ
2
>0时取+
θ
1
=
2
π
+(β±ψ),θ
2
>0时取−
θ
1
=
2
3π
−(β±ψ),θ
2
>0时取+
θ
1
=
2
3π
+(β±ψ),θ
2
>0时取−
2.3 机器人运动学仿真
基于Matlab Robotics工具箱进行平面2R机器人的运动学仿真验证。验证过程如下:分别选取位于四个象限的关节参数
[ θ 1 θ 2 ] = [ 35 ° 55 ° ] , [ θ 1 θ 2 ] = [ 95 ° 25 ° ] , [ θ 1 θ 2 ] = [ 230 ° 20 ° ] , [ θ 1 θ 2 ] = [ 300 ° 70 ° ] \left[
θ1θ2
θ1θ2
\right] =\left[
35\degree55\degree
35\degree55\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
95\degree25\degree
95\degree25\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
230\degree20\degree
230\degree20\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
300\degree70\degree
300\degree70\degree
\right]
[
θ
1
θ
2
]=[
35°
55°
],[
θ
1
θ
2
]=[
95°
25°
],[
θ
1
θ
2
]=[
230°
20°
],[
θ
1
θ
2
]=[
300°
70°
]
进行正运动的验证,而后基于四组末端执行器的坐标进行运动学反解,得到该坐标下的另一个位形对应的关节参数,将该参数代入Matlab机器人模型,验证此时末端执行器的坐标是否与位形一下的重合。将四组参数分别代入上式,得到
[ x y ] = [ 1.57 − 0.82 ] , [ x y ] = [ 1.86 0.59 ] , [ x y ] = [ − 1.71 0.99 ] , [ x y ] = [ − 0.69 − 1.48 ] \left[
xy
xy
\right] =\left[
1.57−0.82
1.57−0.82
\right] , \left[
xy
xy
\right] =\left[
1.860.59
1.860.59
\right] , \left[
xy
xy
\right] =\left[
−1.710.99
−1.710.99
\right] , \left[
xy
xy
\right] =\left[
−0.69−1.48
−0.69−1.48
\right]
[
x
y
]=[
1.57
−0.82
],[
x
y
]=[
1.86
0.59
],[
x
y
]=[
−1.71
0.99
],[
x
y
]=[
−0.69
−1.48
]
将这四组笛卡尔坐标值代入式,得到另一位形的关节参数值
[ θ 1 θ 2 ] = [ 90 ° − 55 ° ] , [ θ 1 θ 2 ] = [ 120 ° − 25 ° ] , [ θ 1 θ 2 ] = [ 249 ° − 20 ° ] , [ θ 1 θ 2 ] = [ 10 ° − 70 ° ] \left[
θ1θ2
θ1θ2
\right] =\left[
90\degree−55\degree
90\degree−55\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
120\degree−25\degree
120\degree−25\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
249\degree−20\degree
249\degree−20\degree
\right] , \left[
θ1θ2
θ1θ2
\right] =\left[
10\degree−70\degree
10\degree−70\degree
\right]
[
θ
1
θ
2
]=[
90°
−55°
],[
θ
1
θ
2
]=[
120°
−25°
],[
θ
1
θ
2
]=[
249°
−20°
],[
θ
1
θ
2
]=[
10°
−70°
]
3 动力学建模
3.1 计算动能
取定连杆上一质量微元 d m \mathrm{d}m dm,其位置坐标为 ( x , y ) (x,y) (x,y),采用极坐标表示即为
连杆I { x = r sin θ 1 y = − r cos θ 1 连杆II { x = l sin θ 1 + r sin ( θ 1 + θ 2 ) y = − l cos θ 1 − r cos ( θ 1 + θ 2 ) \text{连杆I}
{x=rsinθ1y=−rcosθ1
{x=rsinθ1y=−rcosθ1
\,\, \text{连杆II}
{x=lsinθ1+rsin(θ1+θ2)y=−lcosθ1−rcos(θ1+θ2)
{x=lsinθ1+rsin(θ1+θ2)y=−lcosθ1−rcos(θ1+θ2)
连杆I{
x=rsinθ
1
y=−rcosθ
1
连杆II{
x=lsinθ
1
+rsin(θ
1
+θ
2
)
y=−lcosθ
1
−rcos(θ
1
+θ
2
)
对时间求导,得到
连杆I { x ˙ = r θ ˙ 1 cos θ 1 y ˙ = r θ ˙ 1 sin θ 1 连杆II { x ˙ = l θ ˙ 1 cos θ 1 + r ( θ ˙ 1 + θ ˙ 2 ) cos ( θ 1 + θ 2 ) y ˙ = l θ ˙ 1 sin θ 1 + r ( θ ˙ 1 + θ ˙ 2 ) sin ( θ 1 + θ 2 ) \text{连杆I}
{x˙=rθ˙1cosθ1y˙=rθ˙1sinθ1
{x˙=rθ˙1cosθ1y˙=rθ˙1sinθ1
\,\, \text{连杆II}
⎧⎩⎨⎪⎪x˙=lθ˙1cosθ1+r(θ˙1+θ˙2)cos(θ1+θ2)y˙=lθ˙1sinθ1+r(θ˙1+θ˙2)sin(θ1+θ2)
{x˙=lθ˙1cosθ1+r(θ˙1+θ˙2)cos(θ1+θ2)y˙=lθ˙1sinθ1+r(θ˙1+θ˙2)sin(θ1+θ2)
连杆I{
x
˙
=r
θ
˙
1
cosθ
1
y
˙
=r
θ
˙
1
sinθ
1
连杆II
⎩
⎨
⎧
x
˙
=l
θ
˙
1
cosθ
1
+r(
θ
˙
1
+
θ
˙
2
)cos(θ
1
+θ
2
)
y
˙
=l
θ
˙
1
sinθ
1
+r(
θ
˙
1
+
θ
˙
2
)sin(θ
1
+θ
2
)
所以质量微元速度为
{ 连杆I: v 1 2 = x ˙ 2 + y ˙ 2 = r 2 θ ˙ 1 2 连杆II: v 2 2 = x ˙ 2 + y ˙ 2 = l 2 θ ˙ 1 2 + r 2 ( θ ˙ 1 + θ ˙ 2 ) 2 + 2 l r θ ˙ 1 ( θ ˙ 1 + θ ˙ 2 ) cos θ 2
⎧⎩⎨⎪⎪连杆I:v21=x˙2+y˙2=r2θ˙21连杆II:v22=x˙2+y˙2=l2θ˙21+r2(θ˙1+θ˙2)2+2lrθ˙1(θ˙1+θ˙2)cosθ2
{连杆I:v12=x˙2+y˙2=r2θ˙12连杆II:v22=x˙2+y˙2=l2θ˙12+r2(θ˙1+θ˙2)2+2lrθ˙1(θ˙1+θ˙2)cosθ2
⎩
⎨
⎧
连杆I:v
1
2
=
x
˙
2
+
y
˙
2
=r
2
θ
˙
1
2
连杆II:v
2
2
=
x
˙
2
+
y
˙
2
=l
2
θ
˙
1
2
+r
2
(
θ
˙
1
+
θ
˙
2
)
2
+2lr
θ
˙
1
(
θ
˙
1
+
θ
˙
2
)cosθ
2
因此机器人动能为
E k = 1 2 ∫ m d m ⋅ v 2 = 1 2 ρ [ ∫ 0 l r 2 θ ˙ 1 2 d r + ∫ 0 l l 2 θ ˙ 1 2 + r 2 ( θ ˙ 1 + θ ˙ 2 ) 2 + 2 l r θ ˙ 1 ( θ ˙ 1 + θ ˙ 2 ) cos θ 2 d r ] = 1 2 m l 2 [ ( 5 3 + cos θ 2 ) θ ˙ 1 2 + ( 2 3 + cos θ 2 ) θ ˙ 1 θ ˙ 2 + 1 3 θ ˙ 2 2 ] E_k=\frac{1}{2}\int_m{\mathrm{d}m\cdot v^2}\\=\frac{1}{2}\rho \left[ \int_0^l{r^2\dot{\theta}_{1}^{2}\mathrm{d}r}+\int_0^l{l^2\dot{\theta}_{1}^{2}+r^2\left( \dot{\theta}_1+\dot{\theta}_2 \right) ^2+2lr\dot{\theta}_1\left( \dot{\theta}_1+\dot{\theta}_2 \right) \cos \theta _2\mathrm{d}r} \right] \\=\frac{1}{2}ml^2\left[ \left( \frac{5}{3}+\cos \theta _2 \right) \dot{\theta}_{1}^{2}+\left( \frac{2}{3}+\cos \theta _2 \right) \dot{\theta}_1\dot{\theta}_2+\frac{1}{3}\dot{\theta}_{2}^{2} \right]
E
k
=
2
1
∫
m
dm⋅v
2
=
2
1
ρ[∫
0
l
r
2
θ
˙
1
2
dr+∫
0
l
l
2
θ
˙
1
2
+r
2
(
θ
˙
1
+
θ
˙
2
)
2
+2lr
θ
˙
1
(
θ
˙
1
+
θ
˙
2
)cosθ
2
dr]
=
2
1
ml
2
[(
3
5
+cosθ
2
)
θ
˙
1
2
+(
3
2
+cosθ
2
)
θ
˙
1
θ
˙
2
+
3
1
θ
˙
2
2
]
3.2 势能计算与动力学方程
以基坐标系 x x x轴为零势能面,则系统总势能为
E p = − m g l [ 3 2 cos θ 1 + 1 2 cos ( θ 1 + θ 2 ) ] E_p=-mgl\left[ \frac{3}{2}\cos \theta _1+\frac{1}{2}\cos \left( \theta _1+\theta _2 \right) \right]
E
p
=−mgl[
2
3
cosθ
1
+
2
1
cos(θ
1
+θ
2
)]
对于任何机械系统.拉格朗日函数定义为系统总动能和势能之差,即
L = E k − E p = 1 2 m l 2 [ ( 5 3 + cos θ 2 ) θ ˙ 1 2 + ( 2 3 + cos θ 2 ) θ ˙ 1 θ ˙ 2 + 1 3 θ ˙ 2 2 ] + m g l [ 3 2 cos θ 1 + 1 2 cos ( θ 1 + θ 2 ) ] L=E_k-E_p\\=\frac{1}{2}ml^2\left[ \left( \frac{5}{3}+\cos \theta _2 \right) \dot{\theta}_{1}^{2}+\left( \frac{2}{3}+\cos \theta _2 \right) \dot{\theta}_1\dot{\theta}_2+\frac{1}{3}\dot{\theta}_{2}^{2} \right] +mgl\left[ \frac{3}{2}\cos \theta _1+\frac{1}{2}\cos \left( \theta _1+\theta _2 \right) \right]
L=E
k
−E
p
=
2
1
ml
2
[(
3
5
+cosθ
2
)
θ
˙
1
2
+(
3
2
+cosθ
2
)
θ
˙
1
θ
˙
2
+
3
1
θ
˙
2
2
]+mgl[
2
3
cosθ
1
+
2
1
cos(θ
1
+θ
2
)]
基于拉格朗日函数可得
{ ∂ L ∂ θ 1 = − m g l [ 3 2 sin θ 1 + 1 2 sin ( θ 1 + θ 2 ) ] ∂ L ∂ θ ˙ 1 = 1 2 m l 2 [ ( 10 3 + 2 cos θ 2 ) θ ˙ 1 + ( 2 3 + cos θ 2 ) θ ˙ 2 ] d d t ( ∂ L ∂ θ ˙ 1 ) = 1 2 m l 2 [ ( 10 3 + 2 cos θ 2 ) θ ¨ 1 − 2 θ ˙ 1 θ ˙ 2 sin θ 2 + ( 2 3 + cos θ 2 ) θ ¨ 2 − θ ˙ 2 2 sin θ 2 ]
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪∂L∂θ1=−mgl[32sinθ1+12sin(θ1+θ2)]∂L∂θ˙1=12ml2[(103+2cosθ2)θ˙1+(23+cosθ2)θ˙2]ddt(∂L∂θ˙1)=12ml2[(103+2cosθ2)θ¨1−2θ˙1θ˙2sinθ2+(23+cosθ2)θ¨2−θ˙22sinθ2]
{∂L∂θ1=−mgl[32sinθ1+12sin(θ1+θ2)]∂L∂θ˙1=12ml2[(103+2cosθ2)θ˙1+(23+cosθ2)θ˙2]ddt(∂L∂θ˙1)=12ml2[(103+2cosθ2)θ¨1−2θ˙1θ˙2sinθ2+(23+cosθ2)θ¨2−θ˙22sinθ2]
⎩
⎪
⎪
⎨
⎪
⎪
⎧
∂θ
1
∂L
=−mgl[
2
3
sinθ
1
+
2
1
sin(θ
1
+θ
2
)]
∂
θ
˙
1
∂L
=
2
1
ml
2
[(
3
10
+2cosθ
2
)
θ
˙
1
+(
3
2
+cosθ
2
)
θ
˙
2
]
dt
d
(
∂
θ
˙
1
∂L
)=
2
1
ml
2
[(
3
10
+2cosθ
2
)
θ
¨
1
−2
θ
˙
1
θ
˙
2
sinθ
2
+(
3
2
+cosθ
2
)
θ
¨
2
−
θ
˙
2
2
sinθ
2
]
{ ∂ L ∂ θ 2 = − 1 2 m g l sin ( θ 1 + θ 2 ) − 1 2 m l 2 ( θ ˙ 1 2 + θ ˙ 1 θ ˙ 2 ) sin θ 2 ∂ L ∂ θ ˙ 2 = 1 2 m l 2 [ ( 2 3 + cos θ 2 ) θ ˙ 1 + 2 3 θ ˙ 2 ] d d t ( ∂ L ∂ θ ˙ 2 ) = 1 2 m l 2 [ ( 2 3 + cos θ 2 ) θ ¨ 1 − θ ˙ 1 θ ˙ 2 sin θ 2 + 2 3 θ ¨ 2 ]
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪∂L∂θ2=−12mglsin(θ1+θ2)−12ml2(θ˙21+θ˙1θ˙2)sinθ2∂L∂θ˙2=12ml2[(23+cosθ2)θ˙1+23θ˙2]ddt(∂L∂θ˙2)=12ml2[(23+cosθ2)θ¨1−θ˙1θ˙2sinθ2+23θ¨2]
{∂L∂θ2=−12mglsin(θ1+θ2)−12ml2(θ˙12+θ˙1θ˙2)sinθ2∂L∂θ˙2=12ml2[(23+cosθ2)θ˙1+23θ˙2]ddt(∂L∂θ˙2)=12ml2[(23+cosθ2)θ¨1−θ˙1θ˙2sinθ2+23θ¨2]
⎩
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎧
∂θ
2
∂L
=−
2
1
mglsin(θ
1
+θ
2
)−
2
1
ml
2
(
θ
˙
1
2
+
θ
˙
1
θ
˙
2
)sinθ
2
∂
θ
˙
2
∂L
=
2
1
ml
2
[(
3
2
+cosθ
2
)
θ
˙
1
+
3
2
θ
˙
2
]
dt
d
(
∂
θ
˙
2
∂L
)=
2
1
ml
2
[(
3
2
+cosθ
2
)
θ
¨
1
−
θ
˙
1
θ
˙
2
sinθ
2
+
3
2
θ
¨
2
]
根据拉格朗日方程
{ τ 1 = d d t ( ∂ L ∂ θ ˙ 1 ) − ∂ L ∂ θ 1 τ 2 = d d t ( ∂ L ∂ θ ˙ 2 ) − ∂ L ∂ θ 2
⎧⎩⎨⎪⎪τ1=ddt(∂L∂θ˙1)−∂L∂θ1τ2=ddt(∂L∂θ˙2)−∂L∂θ2
{τ1=ddt(∂L∂θ˙1)−∂L∂θ1τ2=ddt(∂L∂θ˙2)−∂L∂θ2
⎩
⎨
⎧
τ
1
=
dt
d
(
∂
θ
˙
1
∂L
)−
∂θ
1
∂L
τ
2
=
dt
d
(
∂
θ
˙
2
∂L
)−
∂θ
2
∂L
求得机器人动力学模型为
τ = D 1 ( θ ) θ ¨ ⏟ 惯性力项 + D 2 ( θ ) θ ˙ 2 ⏟ 向心力项 + D 3 ( θ ) θ ˙ i j ⏟ 科氏力项 + D 4 ( θ ) ⏟ 重力项 ⇔ [ τ 1 τ 2 ] = D 1 ( θ ) [ θ ¨ 1 θ ¨ 2 ] + D 2 ( θ ) [ θ ˙ 1 2 θ ˙ 2 2 ] + D 3 ( θ ) [ θ ˙ 1 θ ˙ 2 θ ˙ 1 θ ˙ 2 ] + D 4 ( θ ) \boldsymbol{\tau }=\underset{\text{惯性力项}}{\underbrace{\boldsymbol{D}_1\left( \boldsymbol{\theta } \right) \boldsymbol{\ddot{\theta}}}}+\underset{\text{向心力项}}{\underbrace{\boldsymbol{D}_2\left( \boldsymbol{\theta } \right) \boldsymbol{\dot{\theta}}^2}}+\underset{\text{科氏力项}}{\underbrace{\boldsymbol{D}_3\left( \boldsymbol{\theta } \right) \boldsymbol{\dot{\theta}}_{ij}}}+\underset{\text{重力项}}{\underbrace{\boldsymbol{D}_4\left( \boldsymbol{\theta } \right) }}\\\Leftrightarrow \left[
τ1τ2
τ1τ2
\right] =\boldsymbol{D}_1\left( \boldsymbol{\theta } \right) \left[
θ¨1θ¨2
θ¨1θ¨2
\right] +\boldsymbol{D}_2\left( \boldsymbol{\theta } \right) \left[
θ˙21θ˙22
θ˙12θ˙22
\right] +\boldsymbol{D}_3\left( \boldsymbol{\theta } \right) \left[
θ˙1θ˙2θ˙1θ˙2
θ˙1θ˙2θ˙1θ˙2
\right] +\boldsymbol{D}_4\left( \boldsymbol{\theta } \right)
τ=
惯性力项
D
1
(θ)
θ
¨
+
向心力项
D
2
(θ)
θ
˙
2
+
科氏力项
D
3
(θ)
θ
˙
ij
+
重力项
D
4
(θ)
⇔[
τ
1
τ
2
]=D
1
(θ)[
θ
¨
1
θ
¨
2
]+D
2
(θ)[
θ
˙
1
2
θ
˙
2
2
]+D
3
(θ)[
θ
˙
1
θ
˙
2
θ
˙
1
θ
˙
2
]+D
4
(θ)
其中
{ D 1 ( θ ) = m l 2 [ 5 3 + cos θ 2 1 3 + 1 2 cos θ 2 1 3 + 1 2 cos θ 2 1 3 ] D 2 ( θ ) = m l 2 [ 0 − 1 2 sin θ 2 1 2 sin θ 2 0 ] D 3 ( θ ) = m l 2 [ − sin θ 2 0 0 0 ] D 4 ( θ ) = m g l [ 3 2 sin θ 1 + 1 2 sin ( θ 1 + θ 2 ) 1 2 sin ( θ 1 + θ 2 ) ]
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪D1(θ)=ml2[53+cosθ213+12cosθ213+12cosθ213]D2(θ)=ml2[012sinθ2−12sinθ20]D3(θ)=ml2[−sinθ2000]D4(θ)=mgl[32sinθ1+12sin(θ1+θ2)12sin(θ1+θ2)]
{D1(θ)=ml2[53+cosθ213+12cosθ213+12cosθ213]D2(θ)=ml2[0−12sinθ212sinθ20]D3(θ)=ml2[−sinθ2000]D4(θ)=mgl[32sinθ1+12sin(θ1+θ2)12sin(θ1+θ2)]
⎩
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎧
D
1
(θ)=ml
2
[
3
5
+cosθ
2
3
1
+
2
1
cosθ
2
3
1
+
2
1
cosθ
2
3
1
]
D
2
(θ)=ml
2
[
0
2
1
sinθ
2
−
2
1
sinθ
2
0
]
D
3
(θ)=ml
2
[
−sinθ
2
0
0
0
]
D
4
(θ)=mgl[
2
3
sinθ
1
+
2
1
sin(θ
1
+θ
2
)
2
1
sin(θ
1
+θ
2
)
]
3.3 动力学仿真
初始状态为 [ θ 1 θ 2 ] = [ 180 ° 0 ° ] \left[
θ1θ2
θ1θ2
\right] =\left[
180\degree0\degree
180\degree0\degree
\right] [
θ
1
θ
2
]=[
180°
0°
]、 [ θ ˙ 1 θ ˙ 2 ] = [ 0 0 ] \left[
θ˙1θ˙2
θ˙1θ˙2
\right] =\left[
00
00
\right] [
θ
˙
1
θ
˙
2
]=[
0
0
],输入力矩为 [ τ 1 τ 2 ] = [ 2 0.5 ] \left[
τ1τ2
τ1τ2
\right] =\left[
20.5
20.5
\right] [
τ
1
τ
2
]=[
2
0.5
] 该初始条件下,平面2R机器人的角度、角速度、角加速度、能量、雅克比矩阵行列式数值波形图以及机器人末端执行器运动轨迹图如图所示
🔥 更多精彩专栏: