Bug1算法
如图2.1所示,起始点和目标点分别为qstart 和qgoal. 初始时刻 i = 0,令qL0 = qstart ,并称连接qLi 和 qgoal的线段为m-line. 没有遇到障碍时,机器人沿着m-line朝目标qgoal直线移动. 如果遇到障碍,则称点qH1为第一次遇到障碍时的撞击点(hit point). 接着,机器人环绕障碍物移动直至返回 qH1点。然后判断出障碍物周边上离目标最近的点,并移到这个点上,该点称为离开点(leave point),由 qL1表示。从qL1开始机器人再次沿直线驶向目标,如果这条线与当前障碍物相交,则不存在到达目标的路径(如图2.2所示)。 Bug1算法的效率很低,但可以保证机器人能到达任何可达的目标。
Bug2算法
机器人先跟踪障碍物的轮廓,与Bug1不同的是,当它能直接移动到目标点时,就立即离开。如图2.3所示,Bug2算法中的m-line连接qstart和qgoal,为一条固定不变的直线。遇到障碍物时机器人会进入轮廓跟踪模式,当其到达m-line上一个接近目标点的位置后(而非初次遇到障碍物的撞击点),继续沿m-line驶向目标。如果机器人再次在m-l