0 前言
学习机器人学已经有一段时间了,但是自己本科学习理论力学时并不知道这个课对于自动化专业的用途,没认真学导致很多知识点理解的不到位,这不利于理解机器人学中的理论推导和相关概念。故而重新对机器人学相关的力学部分(重点是达朗贝尔体系)进行学习整理,来理解机器人学中的静力学与动力学相关推导。
1 完整约束与非完整约束
文1中讲述完整约束与非完整约束不够通俗,因此下面进行一个通俗的讲解。
约束其实就是对质点运动的一个限制,包括对位置的限制和对速度的限制。如下图地面上的圆柱形滚筒,半径为
R
R
R,以角速度
w
w
w转动,向右侧前行,其速度约束满足:
x
˙
=
w
R
\dot{x}=wR
x˙=wR
位置约束满足:
x
=
θ
R
+
x
0
x=\theta R+x_{0}
x=θR+x0
很容易得到速度约束通过积分就可以得到位置约束,因此我们认为只需要有一个速度约束就完整了,因为位置约束和速度约束是等价的,我们定义完整约束如下:
- 速度约束对时间积分后可以等价于位置约束的约束为完整约束
再来看一个非完整约束的例子如下图,还是光滑地面上,同样的滚动角速度,同样的半径,不过是在二维平面上沿着虚线进行滚动,其速度约束满足:
x
˙
2
+
y
˙
2
=
(
w
R
)
2
\dot{x} ^{2} + \dot{y} ^{2} = (wR)^2
x˙2+y˙2=(wR)2
其对时间积分结果应该是一条曲线,或者说滚筒运动轨迹,然而实际上平面内任意运动轨迹都满足这个速度约束,因此积分无法得到确定的位置约束,我们称这是非完整约束。
约束方程一般形式为
f
(
r
,
r
˙
,
t
)
=
0
f(r,\dot{r},t)=0
f(r,r˙,t)=0,完整约束就是不显含速度项的约束,因为其经过积分可以等价位置约束,因此不是独立的方程,可以舍弃,从而约束方程就不显含
r
˙
\dot{r}
r˙。
典型的非完整约束的例子就是生活中常见的汽车,在空旷平面上没有位置约束,但是其不能产生侧向的速度,侧方停车时不能直接向侧方平移进库,只能不断调节方向盘改变速度方向才能入库,显然这样的速度约束通过积分是无法直接得到位置约束的。
2 定常约束与非定常约束
有时候约束会随着时间变化,此时为非定常约束,不随时间变化的约束称为定常约束, f f f为约束方程, r r r为位置向量, r ˙ \dot{r} r˙为速度向量, t t t为时间:
- 非定常约束方程形式: f ( r , r ˙ , t ) = 0 f(r,\dot{r},t)=0 f(r,r˙,t)=0
- 定常约束方程形式: f ( r , r ˙ ) = 0 f(r,\dot{r})=0 f(r,r˙)=0
如下图所示,一个黑色小球在一个以速度
v
v
v上升的平面上,其在
z
z
z方向上的位置约束为:
z
=
z
0
+
v
t
z=z_0+vt
z=z0+vt,随时间变化。
了解非定常约束是为了后面讲解虚位移。
3 质点自由度的讨论
质点自由度由独立坐标决定,假设一个质点在一个半径为
R
R
R的球体表面运动,其坐标满足:
x
2
+
y
2
+
z
2
=
R
2
x^2 + y^2 +z^2 = R^2
x2+y2+z2=R2,其独立坐标只有两个,因此球体表面运动质点自由度为2,其运动的坐标可以只用两个量来表示如经纬度。
但我们并不经常用自由度数的坐标来表示质点运动,以经纬度为例当质点在球体南北极时,质点微小的运动会带来很大的经度变化,即速度变化过大,而使用三个坐标来表示就没有这种问题了。
下面为三维空间中
n
n
n个质点自由度公式:
D
O
F
=
3
n
−
n
c
−
n
n
c
DOF = 3n-n_c-n_{nc}
DOF=3n−nc−nnc
其中
n
c
n_c
nc为完整约束个数,
n
n
c
n_{nc}
nnc为非完整约束个数,实际在非轮式机器人的研究中,我们很少碰到非完整约束。
现代机器人学:机构、规划与控制[M].北京:机械工业出版社,2020. ↩︎