2 Definition Local obstacle avoidance focues on changing the robot’s trajectory as informed by its sensors during robot motion The robot’s local sensor readings play an important role in the robot’s future trajectory The obstacle avoidance algorithms presented below depend to varying degrees on the existene of a global map and on the robot’s precise knowledge of its location relative to the map
3 Bug algorithm Bug algorithm is the simplest obstacle avoidance algorithm Bug algorithm: follow the contour of each obstacle in the robot’s way and thus circumnavigate it Bug1 algorithm
4 Bug algorithm Bug2 algorithm
5 Bug algorithm Practical application Bug2 algorithm State 1: moving toward the goal – GOAL SEEK State 2: moving around the contour of an obstacle –WALLFOLLOW Describe the motion of the robot as a function of its sensor values and the relative direction to the goal for each of these two states. Robot should switch between them
6 Bug algorithm To the goal One of two states
7 Bug algorithm When faced with range sensor data, a popular way of determining rotation direction and speed is to substract left and right range readings. The larger the difference, the faster the robot wil turn in the direction of the longer range readings
8 Vetor field histogram - VFH Vector field histogram: creats a polar histogram around robot The x-axis represents the angle at which the obstacle was found The y-axis represents the probability P that there is an obstacle in that direction based on the occupancy grid’s cell values
9 Vetor field histogram - VFH A steering direction is calculated as follows: Step 1: Identifying al openings large enough for the vehicle to pass through Step 2: Applying a cost function G to every such candidate opening Step 3: Choosing the passage with the lowest cost target_direction = alignment of the robot path with goal wheel_orientation = difference between the new direction and the current wheel orientation Previous_direction = difference between the previously selected direction and the new direction
10 Vetor field histogram - VFH Example of blocked direction and resulting polar histogram Robot and blocking obstacles, (b) Polar histogram (c) masked polar histogram
11 The bubble band technique A bubble: is defined as the maximum local subset of the free space around a given configuration of the robot that which can be traveled in any direction without collision The bubble is generated by a simplified model of the robot in conjunction with range information available in the robot’s map or simplified model of the robot’s geometry Shape of the bubbles around the vehicle
12 The bubble band technique Given bubbles, a band or string of bubbles can be used along the trajectory from the robot’s initial position to its goal position to show the robot’s expected free space throughout its path A typical bubble band
13 The bubble band technique Advantages: can account for actual dimemsion of the robot Disadvantages: applicable only for well known environment configuration, off-line path planning: requiring a glocal map and glocal path planner
14 Curvature velocity techniques The basic curvature velocity approach – CVM: enable the actual kinematic and dynamic constraints of the robot to be taken into account during obstacle avoidance CVM adds physical constrains from the robot and the environment to a velocity space (u, ): Circular object shape
15 Curvature velocity techniques The lane curvature method – LCM: an improvement of CVM LCM calculates a set of desired lanes, trading off lane length and lane width to the closest obstacle The lane with the best properties is chosen using objective function. The local heading is chosen in such way that robot will transition to the best lane
16 Dynamic window approaches The local dynamic window approach: searching a well-chosen velocity space Velocity space is all possible sets of tuples (u, ). Assume that the robots move only in circular arcs Algorithm: Given the current speed, selects a dynamic window of all tuples (u, ) that can be reached within the next sample period Reduce the dynamic window by keeping only those tuples that ensure that the vehicle can come to stop before hitting an obstacle. They are called admissible velocities
17 Dynamic window approaches A new motion direction is chosen by applying an objective function to all admissible velocity tuples in the dynamic window The objective function prefers fast forward motion, maintainance of large distances to obstacles, alignment to the goal heading:
18 Dynamic window approaches The global dynamic window approach: global thinking to the algorithm of local dynamic window approach Algorithm: Add a NF1 to the objective function O NF1 labels the cells in the occupancy grid with the total distance L to the goal This approach has without complete a prior knowledge. The occupancy grid is updated from range sensor and the robot moves