Page 327 - Sensing, Intelligence, Motion : How Robots and Humans Move in an Unstructured World
P. 327

302    MOTION PLANNING FOR THREE-DIMENSIONAL ARM MANIPULATORS

           algorithm’s convergence. This kind of extension will not, however, necessar-
           ily produce efficient paths, since it may or may not utilize all the information
           available in the arm (3D) workspace. For example, the obstacle monotonicity
           property suggests that some directions for passing around an obstacle are more
           promising than others. Following the analysis in Section 6.2.4, a more efficient
           algorithm, which preserves the convergence properties discussed in Section 6.2.4
           and also takes into account the said additional information, is presented below.
           The algorithm is based on a variation of the Bug2 procedure (see Section 3.3.2).
              The following notation is used in the algorithm’s procedure:


              • Flag F is used to check whether or not both local directions have been tried
                for a given curve.
              • Variables curr dir and curr loc, respectively, store the current local direction
                and current robot position.
              • Function dist(x, y) gives the Cartesian distance between points x and y.
              • Rules 1 and 2 are as defined in Section 6.2.3.
              • When the C-point encounters a curve on the surface of an obstacle that it
                has to follow, the directions right and left are defined similar to those for
                the M-plane above.
              • In order to choose the local direction upward or downward, function
                AboveMLine(curr loc) is used to determine if the current location is above
                or below the M-line.
              • Variable local dir1 refers to the local directions forward, backward, left
                and right.
              • Variable local dir2 refers to the local directions upward and downward.

              The algorithm proceeds as follows.

              Step 0 Initialization.Set j = 0. Start at S.GotoStep 1.
              Step 1 Motion Along the M-Line. Move along the M-line toward T until one
                of the following occurs:
                (a) T is reached. The procedure terminates.
                (b) A wall or a Type I obstacle is encountered. T cannot be reached—the
                    procedure terminates.
                (c) A Type II + obstacle is encountered. Set j = j + 1 and define H j =
                    curr loc;set F = 1andset local dir1 according toRule 1.Goto
                    Step 2.
                (d) A Type II + obstacle is encountered. Set j = j + 1 and define H j =
                    curr loc;set F = 1andset local dir1 according toRule 2.Goto
                    Step 2.
                (e) A Type III obstacle is encountered. If l 3 S = l 3 T , T cannot be
                    reached—the procedure terminates. Otherwise, set local dir2 = down-
                    ward or upward if the obstacle is of Type III + (or III − ); go to Step 3.
   322   323   324   325   326   327   328   329   330   331   332