Bug算法(Bug Algorithms)简介(Bug1 & Bug2 & Tangent Bug)

本文所有图片均来自以下这本书:

Principles of Robot Motion: Theory, Algorithms, and Implementations[M]. MIT Press, 2005.

在上一篇博客我也给出了下载链接。

本篇博客主要介绍一下BUG算法:

BUG算法(Bug Algorithms)是一种最简单的避障算法。其算法原理类似昆虫爬行的运动决策策略。在未遇到障碍物时,沿直线向目标运动;在遇到障碍物后,沿着障碍物边界绕行,并利用一定的判断准则离开障碍物继续直行。这种应激式的算法计算简便,不需要获知全局地图和障碍物形状,具备完备性。但是其生成的路径平滑性不够好,对机器人的各种微分约束适应性比较差。

Bug1算法

该算法的基本思想是在没有障碍物时,沿着直线向目标运动可以得到最短的路线。当传感器检测到障碍物时,机器人绕行障碍物直到能够继续沿直线项目标运动。BUG1算法只有两个行为:向目标直行和绕着障碍物的边界走。
在这里插入图片描述

如图2.1所示,假设机器人能够计算两点之间的距离,并且不考虑机器人的定位误差。起始点和目标点分别为 q s t a r t q_{start} qstart q g o a l q_{goal} qgoal表示. 初始时刻 i = 0 i = 0 i=0,令 q 0 L = q s t a r t q^L_0 = q_{start} q0L=qstart,并称连接 q i L q^L_i qiL q g o a l q_{goal} qgoal的线段为 m − l i n e m-line mline. 在没有遇到障碍时,机器人沿着 m − l i n e m-line mline朝目标 q g o a l q_{goal} qgoal直线移动. 如果遇到障碍,则称点 q 1 H q^H_1 q1H为第一次遇到障碍时的撞击点(hit point). 接着,机器人环绕障碍物移动直至返回 q 1 H q^H_1 q1H点。然后判断出障碍物周边上离目标最近的点,并移到这个点上,该点称为离开点(leave point),由 q 1 L q^L_1 q1L表示。从 q 1 L q^L_1 q1

  • 14
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值