A curvature-based path tracking method for autonomous mobile robot

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
of 6
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
  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 inflection 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 inflection 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 defined 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 defined 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 inflection points wheredirection changes are performed are also feasible, but they are slow and, since the robot follows straightsegments between inflection 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 efficiently 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, whereinflection 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, finally, conclusions and future workare presented in section 5. ⋆ Email:  2 Inflection 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 modified 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, inflection points,averaged curvatures, etc.The most efficient 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 inflection point. Thus, curvature changes are only performed when theseinflection points are detected over the curvature function.Between inflection points the robot could move along straight lines, but this strategy is clearly inefficientbecause 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 inflecion points (Fig. 1.b and d). Furthermore, this strategy havesome benefits: i) it is very fast and easy to calculate curvatures and arcs from the curvature function; ii) thefinal 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 inflection points to the srcinal path are also feasible, like B-splines,but they have some important drawbacks: i) they are very slow and difficult to compute, and therefore thecomputational cost of the process is quite high; ii) it is very difficult 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 inflection 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 inflection 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 differentsign. Fig. 2 presents two different paths and their associated curvature functions, where it can be observedhow the inflection points of the paths are easily identified. When all inflection 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 inflection points; b) and d) curvaturefunctions presenting inflection points. 3 Path tracking algorithm As mentioned so far, the best trajectory between inflection 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 inflection points have been calculated as described in the previous section, the curvature¯ Curv of path segments between inflection points is averaged.¯ Curv is also equal to the curvature of a circumferencecontaining both inflection 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 inflection 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 final inflection 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 inflection point, because at those points the robot must follow a trajectory  tangent to the first arc and to the second one as well (Fig. 3.a). A posible solution is to stop the robot eachtime it arrives to an inflection point and to turn it towards the new direction, but this process is slow andclearly inefficient.Fig.3.: Discontinuity problem: a) discontinuity at inflection 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 theinflection 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 find 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 inflection 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 inflection 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 inflection points of each path (each inflection 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 first 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 inflection 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 inflectionpoints 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 inflection 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.
Related Search
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