5 OBSTACLE AVOIDANCE 5.1 introduction 5.2 virtual force field The Virtual Force Field (VFF) method is our earlier real-time obstacle avoidance method for fast-running vehicles . Unlike the methods reviewed above, the VFF method allows for fast, continuous, and smooth motion of the controlled vehicle among unexpected obstacles, and does not require the vehicle to stop in front of obstacles. The VFF Concept The individual components of the VFF method are presented below. a. The VFF method uses a two-dimensional Cartesian histogram grid C for obstacle representation. Like in CMU's certainty grid concept, each cell (i,j) in the histogram grid holds a certainty value, c(i,j), that represents the confidence of the algorithm in the existence of an obstacle at that location. The histogram grid differs from the certainty grid in the way it is built and updated. CMU's method projects a probability profile onto those cells that are affected by a range reading; this procedure is computationally intensive and would impose a heavy time penalty if real-time execution on an on-board computer was attempted. Our method, on the other hand, increments only one cell in the histogram grid for each range reading, creating a "probability" distribution1 with only small computational overhead. For ultrasonic sensors, this cell corresponds to the measured distance d (see Figure 5.2.1) and lies on the acoustic axis of the sensor. While this approach may seem to be an oversimplification, Internet based smart home robot Page 41 CH 5 OBSTECALE AVOIDANCE a probabilistic distribution is actually obtained by continuously and rapidly sampling each sensor while the vehicle is moving. Thus, the same cell and its neighboring cells are repeatedly incremented, as shown in Figure 5.2.2. This results in a histogramic probability distribution, in which high certainty values are obtained in cells close to the actual location of the obstacle. Next, we apply the potential field idea to the histogram grid, so the probabilistic sensor information can be used efficiently to control the vehicle. Fig. 3 shows how this algorithm works: As the vehicle moves, a window of wsxws cells accompanies it, overlying a square region of C. We call this region the "active region" (denoted as C*), and cells that momentarily belong to the active region are called "active cells" (denoted as c*i,j). FIGURE 5.1 INITIALLY Internet based smart home robot Page 42 CH 5 OBSTECALE AVOIDANCE FIGURE 5.2 AFTER SOME ITERATIONS The size of the window is 33x33 cells (with a cell size of 10cmx10cm), and the window is always centered about the robot's position. Note that a circular window would be geometrically more appropriate, but is computationally more expensive to handle than a square one. Each active cell exerts a virtual repulsive forceFi,j toward the robot. The magnitude of this force is proportional to the certainty value c*i,j and inversely proportional to d , where d is x the distance between the cell and the center of the vehicle, and x is a positive real number (we assume x=2 in the following discussion). At each iteration, all virtual repulsive forces are added up to yield the resultant repulsive force Fr. Simultaneously, a virtual attractive force Ft of constant magnitude is applied to the vehicle, "pulling" it toward the target. The summation of Fr and Ft yields the resulting force vector R. In order to compute R, up to 33x33=1089 individual repulsive force vectors Fi,j must be computed and accumulated. The computational heart of the VFF algorithm is therefore a specially developed algorithm for the fast computation and summation of the repulsive force vectors. Figure 5.2.3 shows this procedure. Internet based smart home robot Page 43 CH 5 OBSTECALE AVOIDANCE FIGURE 5.3 THE FORCE FIELD 5.3 Kinect based Obstacle Avoidance algorithm The algorithm is so simple, Pseudo code: - initially the robot is moving forward - update the kinect depth image - if inside the depth image there is an object with distance less than 60 c.m then it stops - it looks for the farthest object found in image - if the farthest object is in the left half then the rotation direction is anticlockwise (to go in the farthest object direction) - else if the farthest object is in the right half then the rotation direction is clockwise (to go in the farthest object direction) - it continue rotation until no object is in distance less than 60 c.m - then it moves forward - go to step 2 Internet based smart home robot Page 44 CH 5 OBSTECALE AVOIDANCE This Algorithm intuition is from the small mouse toy that can run and find it's way through obstacles (this mouse is sold in Attaba ) Internet based smart home robot Page 45