introduction
This paper propose an navigation method for tracked vehicles based on a contact force model that enables the robot to compensate for collisions with obstacles.
这篇文章的意思是collision是不能避免的due to slips and sensing limits。因此,the driving force should be controlled counting on collision force when the tracked vehicle’s side surfaces collide with walls while the vehicle is autonomously navigating its path.
The proposed method has three features:
- passive wheels are attached to the side surfaces of the tracked vehicle
- the tracked vehicle is controlled based on a dynamic model that uses driving force and collision force
- this method can be applied to robots that do not have accurate force sensors attached to the active flippers, as the method only requires the simple information of whether the robot is colliding or not
Construction of dynamic model
像上图中这种情况,有一点特殊: 碰撞点A和旋转中心O点的连线与墙面垂直。这是因为A点一直在墙上,所以A点的速度是沿着墙面的。
整体的Dynamic Model:
M
x
¨
=
F
1
+
F
2
+
F
5
s
i
n
θ
+
F
6
c
o
s
θ
M \ddot{x} = F_{1} + F_{2} + F_{5}sin\theta + F_{6}cos\theta
Mx¨=F1+F2+F5sinθ+F6cosθ
M
y
¨
=
−
F
3
−
F
4
+
F
5
c
o
s
θ
−
F
6
s
i
n
θ
M \ddot{y} = - F_{3} - F_{4} + F_{5}cos\theta - F_{6}sin\theta
My¨=−F3−F4+F5cosθ−F6sinθ
J
θ
¨
=
F
1
(
L
y
+
d
)
+
F
2
(
L
y
−
d
)
−
(
F
3
+
F
4
)
L
x
+
F
6
(
L
y
+
l
1
)
2
+
(
L
x
+
l
2
)
2
J \ddot{\theta} = F_{1}(L_{y} + d) + F_{2}(L_{y} - d) - (F_{3} + F_{4})L_{x} + F_{6} \sqrt{(L_{y} + l_{1})^{2} + (L_{x} + l_{2})^{2}}
Jθ¨=F1(Ly+d)+F2(Ly−d)−(F3+F4)Lx+F6(Ly+l1)2+(Lx+l2)2
同时还有一个Geometrical Constraint:
l
2
+
L
x
l
1
+
L
y
=
t
a
n
θ
\frac{l_{2} + L_{x}}{l_{1} + L_{y}} = tan \theta
l1+Lyl2+Lx=tanθ
Analysis of collision on side surface of the vehicle body
上面分析的这种情况只是tracked vehicle的一个点与墙面collision。下面我们再分析一下side surface of the vehicle和墙碰撞时候的Dynamic Model, 其实就是往上面的model继续添加约束:
- 这里的情况是a caster wheel on a flipper is colliding with a wall, 所以和wall的摩擦力可以忽略
F 6 = 0 F_{6} = 0 F6=0 - 在加速过程中,两条履带的加速度假定是一样并且是不变的,
L
y
L_{y}
Ly也是不变的。Considering
t
t
t as the acceleration time:
v r v r ˙ = v l v l ˙ = t \frac{v_{r}}{\dot{v_{r}}} = \frac{v_{l}}{\dot{v_{l}}} = t vr˙vr=vl˙vl=t - Based on the kinematics of a differential-drive wheeled robot:
L y = ( v r + v l ) d v r − v l L_{y} = \frac{(v_{r} + v_{l})d}{v_{r} - v_{l}} Ly=vr−vl(vr+vl)d x ˙ = v r + v l 2 \dot{x} = \frac{v_{r} + v_{l}}{2} x˙=2vr+vl 把上式对时间求导,并在两边乘以 M M M,可以得到式子:
M x ¨ = 1 2 M v r ˙ + 1 2 M v l ˙ M \ddot{x} = \frac{1}{2}M \dot{v_{r}} + \frac{1}{2}M \dot{v_{l}} Mx¨=21Mvr˙+21Mvl˙ 把上式和动力学模型中的式子进行比较,因为 F 6 = 0 F_{6} = 0 F6=0并且 θ \theta θ特别小,所以可以得到式子:
F 1 = 1 2 M v r ˙ F_{1} = \frac{1}{2}M \dot{v_{r}} F1=21Mvr˙ F 2 = 1 2 M v l ˙ F_{2} = \frac{1}{2} M \dot{v_{l}} F2=21Mvl˙ - The friction force can’t be measured directly. 因此,这里假设the friction force is equivalent to the maximum static friction force just before the beginning of motion:
F 3 + F 4 = μ g M g F_{3} + F_{4} = \mu_{g}Mg F3+F4=μgMg
综上,我们可以得到:
J
θ
¨
=
M
d
t
(
v
r
2
+
v
l
2
v
r
−
v
l
)
+
μ
g
M
g
[
(
L
y
+
l
1
)
t
a
n
θ
−
l
2
]
J \ddot{\theta} = \frac{Md}{t}(\frac{v_{r}^{2} + v_{l}^{2}}{v_{r} - v_{l}}) + \mu_{g}Mg \left [ (L_{y} + l_{1})tan \theta - l_{2}\right ]
Jθ¨=tMd(vr−vlvr2+vl2)+μgMg[(Ly+l1)tanθ−l2]
仔细分析上式,上式包含两个部分,一项driving force,一项friction force。在这个式子中,只有driving force是可控的。
Therefore, the tracked vehicle moves in the commanded direction when the term of friction becomes smaller than that of driving force. 也就是:
找到使得 J ( θ ¨ ) > 0 J(\ddot{\theta}) > 0 J(θ¨)>0的command velocity,这个区域就是controllable.
Path Following Control Based on Contact Force Model
-
control method for collision on side surface of sub-tracks
In this method, velocity v v v is constant; angular velocity w w w is decided based on distance to the path, angle toward the path direction and current angular velocity. 表达式如下:
w = w c − ( K 1 △ θ + K 2 w c + K 3 △ d ) △ t w = w_{c} - (K_{1} \triangle \theta + K_{2}w_{c} + K_{3} \triangle d) \triangle t w=wc−(K1△θ+K2wc+K3△d)△t v = c o n s t v = const v=const
在没有collision的情况下,上式可以很好的follow path。如果发生collision的话,就不适用了。下面分析一下:
Basic idea is to select combination of left and right track speeds that located in the 上面图中的controllable area.
就用下面的表达式:
w r e f = { w ( i f n o c o l l i s i o n ) w ( e l s e i f ∣ w ∣ < w m a x ) s i g ( w ) w m a x ( e l s e ) w_{ref} = \left\{\begin{matrix} w&(if \ no\ collision) \\ w&(else\ if\ \left | w\right | < w_{max}) \\ sig(w)w_{max}&(else) \end{matrix}\right. wref=⎩⎨⎧wwsig(w)wmax(if no collision)(else if ∣w∣<wmax)(else)
w r e f = { v ( i f n o c o l l i s i o n ) v + K p ( v − v c ) + K i ∫ ( v − v c ) d t w_{ref} = \left\{\begin{matrix} v&(if \ no\ collision) \\ v + K_{p}(v - v_{c}) + K_{i} \int(v - v_{c})dt&\\ \end{matrix}\right. wref={vv+Kp(v−vc)+Ki∫(v−vc)dt(if no collision)
角标带c的就是current的 v v v和 w w w。
The collision is detected by using differenced of the angular velocity ( w r e f − w c ) (w_{ref} - w_{c}) (wref−wc) -
control method for collision on tracked surface of sub-tracks
这种情况指的就是履带的前面和wall发生collision的情况。碰撞是通过measuring torque applied on flipper’s driving motor来检测的.
左边track撞到的话就原地顺时针旋转,右边track撞到的话就原地逆时针旋转。