Description

Abstract. This paper presents a path tracking algorithm which relies on decomposing the path into a continuous set of simple curves joining the inflection points of the path. These points are extracted from the path curvature function, whose

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.

Related Documents

Share

Transcript

A curvature-based path tracking method for Autonomous MobileRobots
E. J. P´erez
⋆
, A. Poncela, A. Bandera, C. Urdiales and F. Sandoval
Dpto. Tecnolog´ıa Electr´onica, E.T.S.I. Telecomunicaci´on, Universidad de M´alagaCampus de Teatinos, 29071 M´alaga, Spain
Abstract.
This paper presents a path tracking algorithm which relies on decomposing the path into a continuousset of simple curves joining the inﬂection points of the path. These points are extracted from the path curvaturefunction, whose resistance against noise is increased by calculating it in an adaptive way. The curvature functionprovides information on curvature and centres of curvature at every point. Using such an information, the steeringcommands can be computed by tracing circumferences yielding the appropiate curvature between relevant points. Ageometrical method to remove possible discontinuities at inﬂection points is also proposed. This technique is simpleand easy to implement and yields a low computational cost. The method has been succesfully implemented in aNomad 200 mobile robot.
1 Introduction
Path tracking is one of the main behaviors a control system of an autonomous robot must perform. Trackingclearly depends on path planning, which provides a path that the autonomous system must follow. Besides,path planning depends on the environment model, which is typically built by means of probabilistic gridsthat integrate sonar information in time and space [1].The main problem of paths calculated over probabilistic grids regarding tracking is that they yield aquantisation noise that depends on the decomposition degree of the grid. Besides, these paths returned byheuristic algorithms may be shaky, specially if calculated over poorly deﬁned environments. If the robottracks such a path, it must perform sharp direction changes very often. These changes are slow and theyincrease odometric errors induced by slippage. Therefore, it would be desirable to keep direction changes assmooth as possible.Any path deﬁned over a grid can be represented either by means of its 2D coordinates or by its chaincode. Methods relying on 2D representation usually try to keep a minimum distance to the desired path[5], but they are computationally expensive and must recursively work until the robot reachs the end of thepath. Optimal polygonal approximation techniques [4] calculating an optimal set of inﬂection points wheredirection changes are performed are also feasible, but they are slow and, since the robot follows straightsegments between inﬂection points, direction changes are too sharp to avoid slippage. Chain codes implicitlyprovide a chain of movements to follow the path, but, since they are very sensitive to quantisation noise, itis preferable to work with curvature functions, which can be extracted from the chain code in a straight andeasy way [3].We propose a new tracking algorithm that works with these curvature functions and yields the followingadvantages: i) paths are eﬃciently represented by a minimum number of simple curves; ii) steering commandscan be computed in a fast way; iii) paths present no discontinuities.This paper is organized as follows. Section 2 presents the curvature function calculation algorithm, whereinﬂection points are detected and stored to split the path into a minimum number of curves. Section 3presents the tracking method. Section 4 shows several experiments and, ﬁnally, conclusions and future workare presented in section 5.
⋆
Email: edu@dte.uma.es
2 Inﬂection point detection over a curvature function
As mentioned in section 1, a digitised path can be represented by its curvature function, which is a descriptionof how much a curve bends at each point. In order to achieve a function very resistant to quantisation noise,but also a good characterisation of the path, we propose to use an adaptively built curvature function [2]which has been modiﬁed to work over open contours instead of over closed ones. The path could be trackedby changing the curvature of the robot at each point, but such a procedure would be clearly suboptimal.From such a curvature function it is very esay to obtain features of the path like corners, inﬂection points,averaged curvatures, etc.The most eﬃcient strategy for path tracking is to perform as few speed changes as possible, because thosechanges are slow due to the kinematics of the robot and induce slippage errors in the odometric system.Other important features are speed and low load when computing the steering commands to the robot. Withthis in mind, it can be appreciated that the minimum number of speed changes in the path is accomplishedif changing the curvature of the robot each time the path changes from concave to convex or vice versa, thatis, each time the robot reaches an inﬂection point. Thus, curvature changes are only performed when theseinﬂection points are detected over the curvature function.Between inﬂection points the robot could move along straight lines, but this strategy is clearly ineﬃcientbecause the approximation of the path is very poor at curves (Fig. 1.a and c). Thus, it is more suitable tomove the robot along circular arcs between inﬂecion points (Fig. 1.b and d). Furthermore, this strategy havesome beneﬁts: i) it is very fast and easy to calculate curvatures and arcs from the curvature function; ii) theﬁnal steering commands given to the robot are obtained for a circular arc in a straight way; iii) there arenot speed changes during the arc following (there is a constant translational speed and a constant rotationalspeed). Thus, the total computational cost is low and the system can concentrate on other important taskslike avoiding mobile obstacles.Fig.1.: Approximation of real paths: a) and c) with straight lines; b) and d) with circular arcs.More exact approximations between inﬂection points to the srcinal path are also feasible, like B-splines,but they have some important drawbacks: i) they are very slow and diﬃcult to compute, and therefore thecomputational cost of the process is quite high; ii) it is very diﬃcult to obtain the correct steering commandsat every point to follow the path, so the resources of the system are mainly focused on path tracking; iii)to follow such curves the robot have to work with continuous speed changes, so the errors of the odometric
system due to the slippage are higher.Working with circular arcs between inﬂection points instead of with more exact approximations havethe disadvantage of a worst approximation to the srcinal path, but the very important advantages of lowcomputational costs, immediate calculation of steering commands and reduced slippage errors.Computing the inﬂection points from the curvature function is a very fast and easy process: they canbe detected looking for the zero crosses of the curvature function between consecutive peaks with diﬀerentsign. Fig. 2 presents two diﬀerent paths and their associated curvature functions, where it can be observedhow the inﬂection points of the paths are easily identiﬁed. When all inﬂection points of a path are available,their position are stored and the path can be tracked by using the algorithm proposed in section 3.Fig.2.: Curvature functions of real paths: a) and c) contours presenting inﬂection points; b) and d) curvaturefunctions presenting inﬂection points.
3 Path tracking algorithm
As mentioned so far, the best trajectory between inﬂection points is the circular one, which can be trackedat a lineal speed
v
which is equal to the product of the angular speed
w
and the constant curvature radius
R
.After all inﬂection points have been calculated as described in the previous section, the curvature¯
Curv
of path segments between inﬂection points is averaged.¯
Curv
is also equal to the curvature of a circumferencecontaining both inﬂection points an yielding a radius equal to:
R
= (¯
Curv
·
K
rad
)
−
1
, being
K
rad
a constantrelated to the decomposition degree of the grid (to easily compute
K
rad
this equation can be applied to acircumference with a known radius
R
).Thus, the robot can move between inﬂection points following simple arcs of circumference whose lengthis equal to¯
Curv
·
K
rad
·
(
j
−
i
), being
i
and
j
the positions of the initial and ﬁnal inﬂection points containedin the arc. Although this strategy provides an easy trajectory yielding a minimum number of speed changes,the direction of the robot tracking an arc is always tangent to the arc. Thus, there is a continuity problemwhen the robot arrives to an inﬂection point, because at those points the robot must follow a trajectory
tangent to the ﬁrst arc and to the second one as well (Fig. 3.a). A posible solution is to stop the robot eachtime it arrives to an inﬂection point and to turn it towards the new direction, but this process is slow andclearly ineﬃcient.Fig.3.: Discontinuity problem: a) discontinuity at inﬂection point B; b) proposed solution.We propose a better solution that removes discontinuities so that the robot does not need to stop duringtracking. Our goal is to gradually adapt the direction of the robot to the new tangent before it reaches theinﬂection point (Fig. 3.b). The analytic solution of this problem requires computation of the points wherethe robot must start to change its direction (point P1) and where it has adopted the new direction (pointP2). Geometrically, the solution is to ﬁnd an auxiliar circumference which must be tangent to both arcs T1and T2 (Fig 4.a). The required points are the contact points between the trajectory arcs and the auxiliarcircumference. Thus, the tangent of every circumference and the tangent of the auxiliar circumference atthese points share the same direction and discontinuities are removed. In order to compute the circumferencescontact points, the following steps are required (Fig. 4.b):1. Selection of the desired radius of the auxiliar circumference (
R
aux
). The smaller the radius, the closerto the transition point B the robot moves.2. Computation of the center of the auxiliar circumference. This point is the intersection point of twocircumferences concentric to the departure (R1) and arrival (R2) ones and yielding radii
R
a
=
R
1
±
R
aux
and
R
b
=
R
2
∓
R
aux
, respectively. Since there are four possible auxiliar circumferences, the correct sign,that depends on the relative position between the path and the transition point B, must be chosen toselect only two solutions, where the correct one is the closest to transition point B.3. Computation of the tangent point P1 as the intersection of the departure circumference and the auxiliarcircumference.4. Computation of the tangent point P2, as the intersection of the circumference that represent the segmentT2 and the auxiliar circumference.Fig.4.: Discontinuity solution: a) geometrical solution; b) calculation of the auxiliar circumference.The only mathematical procedure required in such an algorithm is computation of the intersection pointsof two circumferences. This can be directly obtained from the analytic geometry.
When this step is accomplished for all pairs of inﬂection points, a continuous path which can be trackedby means of pure circular movements is achieved. This path provides a quite good approximation of thesrcinal one, but is is clearly easier to track.
4 Experiments and results
To test the proposed algorithm,it has been implemented on a Nomad 200 mobile robot. Paths were calculatedusing heuristic algorithms into an envorinment modelled with probabilistic maps. Figs. 5.a and c show tworeal shaky paths were all control points (where the robot have to change its curvature) are marked withcircles. It can be observed that the robot tracks much simpler paths yielding few inﬂection points and that nodiscontinuity appears in the paths. Figs. 5.b and d show the paths that the robot followed after decomposingthe path into 2
N
commands, where
N
is the number of inﬂection points of each path (each inﬂection pointhas two control points).Fig.5.: Results tracking real paths: a) and c) real paths and their circular arc approximation; b) and d)paths tracked by the robot.Time measurements have also been made over a Pentium 133 with 32 Mb of memory. For the ﬁrst path(Fig. 5.a), which is 96 pixels long, the algorithm spends about 30 ms. computing the curvature function,about 15 ms. obtaining the 4 inﬂection points of this path (changes from concave to convex or vice versa) andabout 0.3 ms. computing the control points (intersection of the circumferences to remove discontinuities), sothe algorithm takes a total time of about 45 ms. For the second path (Fig. 5.c), which is 148 pixels long, thealgorithm spends about 40 ms. computing the curvature function, about 20 ms. obtaining the 5 inﬂectionpoints of this path and about 0.3 ms. computing the control points of this path, so the algorithm takes atotal time of about 60 ms.These time measurements must be carefully read. First, the total time spent by the algorithm depends onthe length of the path and its number of inﬂection points. Second, the accuracy of these measures is not veryhigh and they slightly change from one measure to other (these values are averaged over some measures).Nevertheless, they show how fast the algorithm is, its low computational cost and which stage is the mosttime consuming.

Search

Similar documents

Related Search

A simple rapid GC-FID method for the determinA map matching method for GPS based real timeA Novel Computing Method for 3D Doubal DensitSociometry as a method for investigating peerA Practical Method for the Analysis of GenetiA calculation method for diurnal temperature A novel comprehensive method for real time ViLattice Boltzmann method for fluid dynamicsAnalitical Method for ODEs and PDEsMPPT method for photovoltaic

We Need Your Support

Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks