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

MAXIMUM TURN STRATEGY  155

              • M1: Move in the direction specified by Define Next Step, while executing
                Compute T i .If T i is visible, do the following: If C i = T , the procedure
                stops; else if T is unreachable, the procedure stops; else if C i = T i ,goto
                M2. Otherwise, use Find Lost Target to make T i visible. Iterate M1.
              • M2: Make a step along vector V i while executing Compute T i :If C i = T ,
                the procedure stops; else if the target is unreachable, the procedure stops;
                else if C i  = T i ,gotoM1.
            Define Next Step. This procedure covers all cases of generation of a single motion
            step. Its part D1 corresponds to motion along the M-line; D2 corresponds to a
            simple turn when the directions of vectors V i and (C i ,T i ) can be aligned in
            one step; D3 is invoked when the turn requires multiple steps and can be done
            with the maximum speed; D4 is invoked when turning must be accompanied by
            braking:
              • D1: If vector V i coincides with the direction toward T i , do the following:
                If T i = T , make a step toward T ; else make a step toward T i .
              • D2: If vector V i does not coincide with the direction toward T i ,dothe
                following: If the directions of V i+1 and (C i ,T i ) can be aligned within one
                step, choose this step. Else go to D3.
              • D3: If a step with the maximum turn toward T i and with maximum velocity
                is safe, choose it. Else go to D4.
              • D4: If a step with the maximum turn toward T i and some braking is pos-
                sible, choose it. Else, choose a step along V i , with maximum braking,
                p =−p max , q = 0.


            Find Lost Target. This procedure is executed when the intermediate target T i
            becomes invisible. The last position C i where T i was visible is kept in the
            memory until T i becomes visible again. A very simple fix would be this: Once
            T i becomes occluded by an obstacle, in order to immediately initiate a stopping
            path, move back to C i , and then move directly toward T i . This would be quite
            inefficient, however. Instead, the procedure operates as follows: Once the robot
            loses T i , it keeps moving ahead while defining temporary intermediate targets on
            the visible part of the line segment (C i ,T i ), and continuing looking for T i .If
            it finds T i , the procedure terminates, the control returns to the Main Body,and
            the robot moves directly toward T i (see Figure 4.6a). Otherwise, if the whole
            segment (C i ,T i ) becomes invisible, the robot brakes to a stop, returns to C i ,
            the procedure terminates, and so on (see Figure 4.6b). Together these two pieces
            ensure that the intermediate target T i will not be lost. The procedure is as follows:

              • F1: If segment (C i ,T i ) is visible, define on it a temporary intermediate
                       t
                target T and move toward it while looking for T i . If the current position is
                      i
                at T , exit; else if C i lies in the segment (C i ,T i ), exit. Else go to F2.
              • F2: If segment (C i ,T i ) is invisible, initiate a stopping path and move back
                to C i ; exit.
   175   176   177   178   179   180   181   182   183   184   185