test
Bug1
这一部分主要总结自 Principles of Motion Theory 的第二章。
(资料图片仅供参考)
Bug1 算法考虑采用碰撞传感器
从当前点向这目标直线运动,如果前方有障碍物则绕(沿)障碍物运动(直到可以向目标运动)。Bug1 算法可以分为向目标运动(motion-to-goal)与绕障碍物运动(边界跟随,boundary-following)两种行为。
将起点与终点分别标记为 与 。 是机器人第 次遇到障碍物的点,称为碰撞点()。 为机器人第 次离开障碍物的点(也是障碍物边缘上距目标最近的点),称为分离点(), 初始为 ,。 是连接点 与点 的线段。
在向目标运动的过程中,机器人沿 向 点运动直到到达或遇到障碍物。
在第 次遇到障碍物时,机器人沿障碍物运动直到回到碰撞点 。
此时,机器人判断障碍物边缘(绕障碍物运动的运动轨迹)距目标点最近的一点 。
机器人移动到 。
机器人从 再次向目标点 运动。
如果在执行这一动作的瞬间再次遇到了障碍物,即遇到了先前的障碍物,则判断没有通向目标点的路径。
程序反复运行,直到到达目标点或判断没有通向目标点的路径。
Bug1 算法应用了穷举法来找到最佳的离开点。
为第 次遇到障碍物的周长(绕障碍物运动轨迹的长度)。在最坏的情况下机器人在绕障碍物一圈后需要移动半圈以达到距 最近的点。
算法在逻辑上收敛(如果目标点是可以到达的 Bug1 就能够到达)
简单、直观
效率低、路径长
关键词: 直线运动