• No results found

The previous chapter has detailed GSPACC, a method for generic, smooth navigation for non-holonomic robots from one point in configuration space to another. However, GSPACC is unable to cope with obstacles that may be present in the configuration space (e.g. walls). This chapter tackles the problem of navigation from one (x,y) location to another around 2D obstacles for a robot that is non-holonomic in x,y due to a finite minimum turning circle (MTC). The algorithm will be generic to the extent that a wide range of robots may be controlled. However, only x,y goals will be attempted, and all travel is in x,y space. The algorithm created here will be known as NH-BUG as it can control some non-holonomic robots and is similar in operation to a BUG algorithm. In line with the proposal provided at the end of chapter 3, NH-BUG will be combined with the algorithm detailed in chapter 3 to form a hybrid method in chapter 5. This hybrid method will possess the abilities of the GSPACC, as well as the obstacle navigation abilities provided by NH-BUG.

The main challenge for NH-BUG is to cater for a finite minimum turning circle whilst retaining the (driftless case) completeness present in existing BUG algorithms. Completeness is defined in this chapter as being able to guarantee that the method will be able to navigate a robot from one (x,y) point to another providing that this is possible for the given environment. The definition of possible for this chapter includes certain safety constraints relating to the width of passage entered relative to the robot’s size and MTC. In addition, reversing will not be allowed, as forwards only motion produces smoother movement, and allows for continuous motion at speed.

NH-BUG uses a dynamically created chain of safe (collision free) and achievable (within the MTC constraint) (x,y) subgoals. In addition, forwards movement is maintained at all times. Three modes of operation are used, these are free-space, approach and engaged. In free-space mode the subgoal chain leads the robot towards the (x,y) goal location as long as this direction is not obstructed. When an obstructive obstacle is encountered, approach mode is entered and the subgoal chain leads the robot to the obstructive obstacle and aligns the direction of travel with the obstacle edge. Following this, engaged mode is entered during which the subgoal chain leads the robot around the obstacle until it is safe to leave, at which point free-space mode is resumed. Safe to leave is defined here as having made progress towards the goal since the obstacle was joined, having free-space in the direction of the goal, and the goal being in front of the robot. The latter of these is included to uphold the requirement of forwards only motion. The safe to leave condition ensures that permanent loops caused by leaving and rejoining c-shaped obstacles cannot form.

Safe to leave is always achievable because an obstacle may always be travelled around until the goal is in front of the robot as circumnavigation provides 360 degrees of orientation change. In addition, as an obstacle is only joined when it blocks the direction to the goal, a point must exist whereby the distance to the goal has been reduced as the obstacle can be travelled around until the robot is on the goal side. Finally, once on the goal side the goal can no longer be obstructed by this obstacle.

Subgoals are set on the limit of known free-space (as sensed by the robot) when the direction to the goal is not blocked, and a set distance from the obstructing obstacle when it is. Controls to move the robot towards each subgoal are produced using gradient descent over a forward kinematic (FK) model of the robot. This use of FK ensures that there is no need for knowledge of the robot’s inverse kinematics. As gradient descent is used for a sequence of subgoals, this method may be seen as a dynamic potential field method in which the sequence of subgoals represents a moving dip in potential, which pulls the robot around obstacles and towards the goal. During travel goal localisation is achieved by use of angle and distance to

goal sensors, in addition, a running average of the perceived goal locations is kept to minimise the effects of sensor error.

The contributions made by NH-BUG to the BUG community are, applicability to non- holonomic robots with a MTC constraint, improved resistance to sensor noise, and the removal of the need to solve the inverse kinematics problem. NH-BUG may be seen as an evolution of POTBUG, which uses a sequence of subgoals, a dynamic potential field, and the same safe to leave condition. However it is important to note that POTBUG only uses the dynamic field to set (x,y) subgoals, and not to provide controls to achieve them (for which an inverse kinematics model is presumed available). In addition, all other aspects of NH-BUG such as the method for goal localisation, the removal of sensor error, and the prevention of the entering of unsafe areas are enhancements on POTBUG (which ignored these real world factors). NH-BUG will also be used in the following chapter (5) to add the ability to navigate obstacles to GSPACC.

The chapter is organised as follows, first a review of relevant work in the area of obstacle navigation is given, and then the assumptions made by NH-BUG are stated. Next the algorithm is given in the form of a flow chart as well as an overview of its operation. This is followed by details of each of the 3 modes of operation, before the specific details that allow non-holonomic robots to be controlled are discussed. Once NH-BUG has been described, it is tested on simulated car-like and differential drive robots for a variety of environments and the results are documented. Finally conclusions are drawn, and a future extension to 3D environments is proposed.

4.2

Relevant Work

As has been mentioned previously, the long-term aim of NH-BUG is to add the ability to navigate obstacles to GSPACC. The reason that a separate method is developed here, which will later be hybridised with GSPACC, is that path planners that directly incorporate obstacle avoidance in a single homogeneous framework have certain disadvantages.

These disadvantages relate to the speed at which single framework planners are able to form complete plans connecting an initial state to a goal state. Essentially adding a level of difficulty, i.e. obstacle navigation, to the already difficult task of smooth path creation increases the amount of time required. In addition to this, reaction to obstacles should be as quick as is possible if collisions are to be avoided for fast robots with short-range sensors. Therefore the existing 1s re-plan time of the smooth path planner is already insufficient for the task of obstacle navigation when compared with ~10ms required by BUG algorithms. There are a variety of existing methods for navigating obstacles, some of these are full path planners, and others are single step planners. Full path planners calculate [32, 88, 107] or adapt [12, 23] a path connecting the robot’s current state to the goal, whilst avoiding known obstacles. Single step methods only plan the next step to be taken by the robot at any one time. As mentioned previously, the key advantage to single step methods, over full path planners is that full path planners are unable to function as quickly as single step methods. This is due to the simple fact that constructing a full path at any one time is more difficult, and therefore more computationally intensive and time consuming than only calculating the next step to be taken. In addition, all known existing full path planner methods rely on the a priori availability or building of a global map of the environment in order to prevent the formation of infinite loops and guarantee completeness. As fast reactions maximise the chances of avoiding a collision, and maintenance of an accurate global map imposes unnecessary memory constraints, a single step planner is used during this chapter. The two main varieties of single step planners are BUG and static potential field algorithms, and an introduction to both varieties is given below.

BUG algorithms [13, 18, 43, 48, 58, 71, 117, 118] proceed towards the goal along a direct line, until obstacles are encountered that obstruct this line, where the edge of the obstructing obstacle is followed until the algorithm deems the obstacle safe to leave. Early BUG methods [13, 18, 43, 48, 117, 118] defined safe to leave as a point whereby the distance to the goal has reduced since joining the obstacle, and a direction is clear in order to allow this distance to continue to be reduced. A later BUG method named µNav [71] has relaxed this definition to mean a point whereby leaving the obstacle allows the remaining distance to the goal to be reduced. This method contains an algorithm that allows the detection of loops by having turned through 360 degrees without leaving the obstacle. When a loop is detected special sub-routines are activated to break the loop. A common element of BUG algorithms is that they guarantee completeness (for the driftless case). As mentioned previously (4.1), this is defined here as a guarantee that the method will be able to navigate the robot from one (x,y) point to another providing that this is possible for the given environment.

Static potential field algorithms [7, 25, 38, 124] treat the robot as a charged particle. This particle is attracted towards the goal location, and repulsed by obstacles. The combined attraction and repulsion allows the robot to navigate obstacles and arrive at the goal. By correct setting of the field, potential field methods are able to adjust the distance kept from obstacles in order to accommodate robots of a finite width

Both BUG and static potential field algorithms contain limitations. Static potential field methods as described above, are subject to local minima, which form when a c-shaped obstacle (or variant) blocks the path to the goal. The repulsion produced by the obstacle prevents progress being made, and the direct line attraction to the goal does not allow the robot to move away from the goal in order to travel round the obstacle (see Figure 46 ).

Figure 46 Local minima in static potential fields.

Obstacle courses containing local minima cannot be traversed by a static potential field method, as static means that the field is fixed, therefore minima are permanent. The limitation of BUG algorithms is that they are applicable to holonomic robots only. This is because they provide geometric paths without consideration of the forward kinematics of the robot, and as a result, these paths may be unrealisable as the non-holonomic constraints of the robot are not catered for. An example of such a constraint is a minimum turning circle. In the last 5 years, methods have been developed which avoid the disadvantages of the early static potential field and BUG algorithms described above. Examples include POTBUG [118], TANBUG with splines [117], harmonic [69, 70] or vector field [102] algorithms, and FM2 [88]. The advantages and disadvantages of each method are given below:

POTBUG [118] was created by Weir, Buck, and Lewis, and later enhanced to form E- POTBUG by Buck [13]. The enhancements consisted of moving in arcs as opposed to straight lines, and updating subgoals based on when sensor information was available, as opposed to when a given distance had been travelled. Both algorithms use a dynamic potential field to create subgoals in x,y Cartesian space in a sequence that leads around obstacles and towards an x,y goal. This dynamic field is updated using local sensor

Robot Goal Obstacle Obstacle repulsion field Goal attraction field

information each time a subgoal is created. The sensor information available is local obstacles within line of sight, and the current direction to the goal. Both algorithms have shown resistance to direction to goal error of up to 40% however they make use of perfect control execution, and are not compatible with non-holonomic robots. In addition, both algorithms use knowledge of a robot’s inverse kinematics in creating controls.

TANBUG [117] is a form of BUG algorithm. This algorithm makes a series of straight-line movements around obstacles based on travelling at a tangent to the perceived obstacle edge. TANBUG with splines uses splines to move between states when not following an obstacle edge, which includes approaching the obstacle. These splines allow for smoother movement than seen with previous BUG algorithms, and a reduction in the total distance travelled. However TANBUG is only applicable to holonomic robots and makes use of a robot’s inverse kinematics.

Harmonic or vector field algorithms create a field that does not suffer from the local minimum problem, they also do not require obstacle edges to be followed, which reduces the distance travelled. The local minimum problem is avoided by the use of a global map that is either available a priori or dynamically constructed as the robot moves. As the map is updated the field is reconstructed, these reconstruction times can result in sharp discontinuities in the direction taken by the robot as new data is added (see Figure 47 ).

Figure 47 Sharp changes in the robot’s direction of movement resulting from the addition of new information into the global map. The arrows depict the direction of the field at each point.

FM2 propagates a field from the goal location to the robot’s current location. This field is propagated quickly when far from obstacles, and slowly when next to obstacles. Once the field is propagated, gradient descent (using wave time as a cost) is applied in order to create subgoals, the achievement of which leads the robot to the goal. This results in safe robot movement in the middle of passages, which, as with the harmonic or vector field approaches above, can considerably reduce the distance travelled when compared with algorithms which require obstacle edges to be followed. In addition, if robot speed is assumed to vary in the same manner as wave speed (which is unlikely as speed will decrease with tight bends, not just obstacle proximity), then travel is time-optimal. However, FM2 also shares disadvantages with harmonic or vector field methods as a global map is required, and sharp discontinuities in travel direction can be introduced when the map is updated (see Figure 47 ). An alternative direction for research has been BUG navigation with as few sensors as possible, examples of this include I-BUG [58] and µNav [71]. These methods retain completeness but at the cost of introducing extra distance travelled in the paths taken. As NH-BUG is designed to be incorporated into GSPACC, sufficient sensors are already assumed available to allow the use of a more standard BUG algorithm. Due to the availability of sufficient sensors, I-BUG and µNav’s reliance on inverse kinematics, applicability to holonomic robots only, and the introduction of loops that disagree with the aims of GSPACC, these algorithms are not considered for use here.

Goal Robot Goal Robot Direction of field Wall added to algorithm’s map following robot movement

In summary, there does not currently exist a method which provides the (driftless case) completeness guarantees of a Bug algorithm, without the need for a global map, and that is compatible with non-holonomic robots, and does not rely on the use of an inverse kinematic model. NH-BUG’s contribution is the provision of these qualities. Other benefits of NH- BUG include its simplicity, resistance to sensor noise and execution error, and that it does not depend on an inverse kinematics model.

4.3

Assumptions

NH-BUG makes a number of assumptions, these assumptions are listed here for reader interest, and will be referenced as each one becomes relevant over the course of the chapter. Assumptions (1-6) relate to the sensory abilities of the robot, which are necessary for the algorithm to function as the algorithm must know what data it will have access to. The robot’s physical size (7) and minimum turning circle (8) are used in the definition of unsafe passages and safe proximity to obstacles. The way in which the robot may be expected to respond to controls (9-11) is used both in the creation of feasible subgoals, and the controls required to move towards them. Finally, assumptions regarding the robot’s speed (12) and the frequency of sensor updates (13) are required in order to define safe distances that the robot may move between subgoal updates.

The assumptions made regarding the knowledge available to the algorithm are listed below: 1. The robot’s sensor range is known

2. Robot is equipped with sensors, which give distance readings to obstacles.

3. Robot is equipped with a sensor, which gives the distance, and direction to the goal. 4. The range of the obstacle sensors is sufficiently large to allow the detection of unsafe

areas with enough space to allow the robot to turn before they are entered

[specifically->root(((2!max(2.5r,MTC))+2MTC)2 + (max(2.5r,MTC)+MTC)2) more detail later]

5. The goal may be sensed at all times. 6. Sensor error is random

7. The robots radius (r) is known

8. The robot’s minimum turning circle (MTC) is known

9. Execution error is unpredictable and randomly varying but contains trends 10. A model of the forward kinematics of the robot is available.

11. The robot travel approximates to arcs over short distances

12. The robot is speed limited so that it is unable to move beyond its robot radius whilst calculating a new move (50ms) (ensures that walls may not be collided with whilst planning)

13. Sensor updates are sufficiently frequent that new data may be assumed available after the robot has travelled its radius

4.4

NH-BUG algorithm

The top-level algorithm for NH-BUG is shown in the form of a flow chart below (Figure 48 ). The following page provides a more in depth view of the algorithm, components with sub- algorithms have these included, and colour coding has been used to identify the relevant sub- algorithms.

4.5

Methodology Overview

As has been mentioned previously (4.1), NH-BUG allows a non-holonomic robot to navigate from an initial (x,y) location to a goal (x,y) location. Any obstacles detected en-route as obstructing the direction to the goal will be navigated around. Navigation is achieved by the use of a series of subgoals. These subgoals are x, y locations which NH-BUG will set, and the robot will move towards using controls calculated from gradient descent over a forward kinematics model. Travel is C1 and undulatory smooth due to arc travel (known 4.3, 11) and

Related documents