Introduction
This paper proposes a novel approach improving precision and reliability of odometry of skid-steer mobile robots by means inspired by robotic terrain classification (RTC).
Novelty
In contrary to standard RTC approaches, this paper do not provide human labeled discrete terrain categories, but we classify the terrain directly by the values of coefficients correcting the robot’s odometry.
不是应该用terrain type判断correction coefficients吗,这里的意思好像是用correction coefficients来判断terrain type.
Rather than labeling the terrain categories by human means, it is more important to find representation that can be directly exploited by the robot, i.e. find terrain type representation by means essential for the robot. Sometimes, the same terrain type behaves differently under various circumstances (such as pebbles on flat terrain and pebbles on steep or uneven terrain) as well as different terrains can influence robot’s odometry in a very similar way.
Enhanced Odometry Model with Correction Coefficients
首先定义两个parameter:
(1)
α
l
=
v
l
−
v
l
′
v
l
\alpha_{l} = \frac{v_{l} - v_{l}'}{v_{l}} \tag{1}
αl=vlvl−vl′(1)
(2)
α
r
=
v
r
−
v
r
′
v
r
\alpha_{r} = \frac{v_{r} - v_{r}'}{v_{r}} \tag{2}
αr=vrvr−vr′(2)
where
v
r
,
v
l
v_{r}, v_{l}
vr,vl——the left and right track velocities measured by internal sensors
v
r
′
,
v
l
′
v_{r}', v_{l}'
vr′,vl′——the true velocities of the track gears moving through the coordinate frame
在线求解
α
\alpha
α的两个公式:
(3)
θ
˙
=
v
r
(
1
−
α
r
)
−
v
l
(
1
−
α
l
)
2
d
\dot{\theta} = \frac{v_{r}(1 - \alpha_{r}) - v_{l}(1 - \alpha_{l})}{2d} \tag{3}
θ˙=2dvr(1−αr)−vl(1−αl)(3)
(4)
a
l
a
r
=
−
s
g
n
(
v
l
⋅
v
r
)
v
r
v
l
\frac{a_{l}}{a_{r}} = - \mathrm{sgn}(v_{l} \cdot v_{r}) \sqrt{\frac{v_{r}}{v_{l}}} \tag{4}
aral=−sgn(vl⋅vr)vlvr(4)
结合这两个方程就可以直接求得 α \alpha α, since θ ˙ \dot{\theta} θ˙ can be measured directly using the vertical axis angular rate sensor.
把上述
α
\alpha
α代入下面两个方程,就可以求得当时的
x
˙
,
y
˙
\dot{x}, \dot{y}
x˙,y˙:
x
˙
=
v
r
(
1
−
α
r
)
+
v
l
(
1
−
α
l
)
2
c
o
s
θ
\dot{x} = \frac{v_{r}(1 - \alpha_{r}) + v_{l} (1 -\alpha_{l})}{2} \mathrm{cos} \theta
x˙=2vr(1−αr)+vl(1−αl)cosθ
y
˙
=
v
r
(
1
−
α
r
)
+
v
l
(
1
−
α
l
)
2
s
i
n
θ
\dot{y} = \frac{v_{r}(1 - \alpha_{r}) + v_{l}(1 - \alpha_{l})}{2} \mathrm{sin} \theta
y˙=2vr(1−αr)+vl(1−αl)sinθ
求得 x ˙ , y ˙ \dot{x}, \dot{y} x˙,y˙之后代入下面两个方程就可以求出position increments,重点是这里引入了一个重要参数 C C C:
△ x k − 1 k = x ˙ k − 1 + x ˙ k 2 T s C \triangle x_{k-1}^{k} = \frac{\dot{x}_{k-1} + \dot{x}_{k}}{2} T_{s} C △xk−1k=2x˙k−1+x˙kTsC △ y k − 1 k = y ˙ k − 1 + y ˙ k 2 T s C \triangle y_{k-1}^{k} = \frac{\dot{y}_{k-1} + \dot{y}_{k}}{2} T_{s} C △yk−1k=2y˙k−1+y˙kTsC
These corrected position increments are then used to update the current position.
Regression Function Training
To estimate the correction coefficients as (3) (4),we have chosen a straightforward yet sufficient approach of training a linear regression function C ( x ; α ) C(x; \alpha) C(x;α), which processes features obtained from inertial data (three accelerations and three angular rates at 90 Hz) and outputs the correction coefficient directly.
C ( x ; α ) = ∑ i = 0 n α i x i C(x; \alpha) = \sum^{n}_{i=0} \alpha_{i}x_{i} C(x;α)=i=0∑nαixi
where
n
n
n——the number of features
x
i
x_{i}
xi——the feature value
α
i
\alpha_{i}
αi——the corresponding parameter of the regression function
Training of the regression function was performed using normal equations corresponding to minimization of the following cost function in a least squares sense:
J
(
α
)
=
1
2
m
∑
k
=
1
m
(
C
(
x
k
;
α
)
−
y
k
)
2
J(\alpha) = \frac{1}{2m} \sum_{k=1}^{m} (C(x^{k}; \alpha) - y^{k})^{2}
J(α)=2m1k=1∑m(C(xk;α)−yk)2
where
m
m
m——the number of training examples
y
k
y^{k}
yk——the correction coefficient obtained from the ground truth trajectory reference for the
k
t
h
k^{th}
kth training example. They were computed by off-line local optimization in such a way to ensure that the trajectory obtained using the proposed model parameterized by these
y
k
y^{k}
yk coefficients coincides with the reference.
Feature Extraction and Selection
This paper perform feature selection on the following features:
- features from the time domain defined as various statistical moments and indicators such as min, max, mean, median, norm, skewness, kurtosis, and number of sign changes over a threshold given by 0.25, 0.5, 0.75 multiples of mean and median
- features from the frequency domain computed using FFT and taking into account the magnitudes and frequencies of first three most significant harmonics
- features defined as correlation coefficient between the signal samples and more than a hundred of Haar wavelets generated with the corresponding length.
The feature selection was performed off-line as part of the regression function training.
Formally, we are given a training set { x 1 , y 1 , . . . , x K , y K } \left \{ x^{1}, y^{1}, ..., x^{K}, y^{K} \right \} {x1,y1,...,xK,yK} consisting of K K K training samples, where x k x^{k} xk are N-dimensional vectors containing values of features from the feature pool. We denote x j k x_{j}^{k} xjk as the j j j-th feature of the k k k-th sample.
Robotic Platform Description
Plant: skid-steer robot (tracked vehicle)
Inertial Sensor: Xsens MTi-G unit providing calibrated and temperature compensated inertial data at 90 Hz in range of
±
300
d
e
g
/
s
\pm 300 deg/s
±300deg/s and
±
50
m
/
s
2
\pm 50 m/s^{2}
±50m/s2 for angular rates and accelerations respectively.
Encoder: providing left and right track velocities at 10 Hz.
Data Collection: The robot was teleoperated during these experiments and tracked using overhead camera and video tracking system we have developed for this purpose.
Evaluation and Testing
- First, we had to determine the optimal number of inertial data samples to be used for computing features.
This way the optimal number of samples was determined to be 98.
For the real-time on-line implementation this means: each time a new odometry measurement comes (at 10 Hz), from that time-step the last 98 samples of the 6 inertial samples signals (sampled at 90 Hz) are processed to obtained the selected features that form the input to the trained regression. This way one correction coefficient is obtained for each odometry. - Another series of experiments was carried out to determine the optimal number of features to be selected during the proposed feature selection procedure.
This proved that using only the best 20 features is fully sufficient, most of which were from the group of statictical time domain features. These features proved to be the best for capturing information about changes in motion dynamics corresponding to disturbances to the proposed odometry model caused by the nature of terrain. - To field-test our algorithm and evaluated the desired improvement in precision of navigation, we compared the development of RMSE of position in time of our approach (with respect to the ground truth trajectory) ot the RMSE development of the trajectory obtained using the original uncorrected odometry model.