一种完全覆盖算法-Backtracking Spiral Algorithm (BSA) 回溯螺旋算法

Posted zhangrelay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一种完全覆盖算法-Backtracking Spiral Algorithm (BSA) 回溯螺旋算法相关的知识,希望对你有一定的参考价值。

ROS1云课→32愉快大扫除


其实算法是如下论文提及的,如下为机器翻译,推荐看原文。

ieeexplore.ieee.org/document/1570413


Proceedings of the 2005 IEEE

2005年IEEE会议录

International Conference on Robotics and Automation Barcelona, Spain, April 2005

国际机器人和自动化会议,西班牙巴塞罗那,2005年4月

BSA: A Complete Coverage Algorithm

BSA:一种完全覆盖算法

Enrique González, Oscar Álvarez, Yul Díaz, Carlos Parra, Cesar Bustacara

Abstract – The Backtracking Spiral Algorithm (BSA) is a coverage strategy for mobile robots based on the use of spiral filling paths; in order to assure the completeness, unvisited regions are marked and covered by backtracking mechanism. The BSA basic algorithm is designed to work in an environment modeled by a coarse-grain grid. BSA has been extended to cover, not only the free cells, but also the partially occupied ones. In this paper, the concepts and algorithms used to extend BSA are introduced. The ideas used to extend BSA are generic, thus a similar approach can be used to extend most of the grid-based coverage algorithms. Finally, some simulation results that demonstrate that BSA performs a complete coverage are presented.

摘要–回溯螺旋算法(BSA)是一种基于使用螺旋填充路径的移动机器人覆盖策略;为了保证完整性,未访问区域被标记并被回溯机制覆盖。BSA基本算法被设计成在由粗粒度网格模拟的环境中工作。BSA已经扩展到不仅包括自由栅格,而且包括部分被占据的栅格。本文介绍了扩展BSA的概念和算法。用于扩展BSA的思想是通用的,因此类似的方法可以用于扩展大多数基于网格的覆盖算法。最后,给出了一些仿真结果,表明BSA能够实现完全覆盖。

Index Terms  Coverage Algorithm, Region Filling, Mobile Robots, Service Robots.

索引术语–覆盖算法、区域填充、移动机器人、服务机器人。

  1. INTRODUCTION
  2. 介绍

The goal of robotics for the near future is to develop machines that collaborate with the humans in everyday tasks, thus generating new products that will be used massively. There are many emergent areas where robots can be used; however, some of the more promising ones include the automation of specialized tasks, at home or at work. In this kind of applications, the development is focused in the design of well-specialized robotic low-cost platforms that could be operated in a simple way by a non- qualified user. In some of these everyday tasks, the service robot must be able to autonomously perform jobs involving the filling/sweeping of the surface that is accessible. For instance, automatic floor cleaners, lawn mowers, agricultural robots, humanitarian demining and other surface maintenance or inspection machines must use an algorithm that drives a robot to cover completely its working area [1]. Some autonomous vacuum cleaners have been developed; between the most important commercial platforms, it can be mentioned the Roomba robot and Trilobite robot [2][3]. In these cases, the algorithm used to control the robot trajectory is based in a brownian motion, which is inefficient, even if it incorporates some structured paths. In these kind of applications, the goal can be reached in an autonomous way if the robot covers the entire accessible surface: this is the general statement of the coverage problem.

机器人技术在不久的将来的目标是开发在日常工作中与人类合作的机器,从而产生将被大规模使用的新产品。有许多紧急领域可以使用机器人;然而,一些更有前景的技术包括家庭或工作中专门任务的自动化。在这种类型的应用中,开发集中于设计专门的机器人低成本平台,该平台可以由非合格用户以简单的方式操作。在其中一些日常任务中,服务机器人必须能够自主执行涉及填充/清扫可到达表面的工作。例如,自动地板清洁器、割草机、农业机器人、人道主义排雷和其他表面维护或检查机器必须使用一种算法来驱动机器人完全覆盖其工作区域[1]。已经开发了一些自动真空吸尘器;在最重要的商业平台之间,可以提到Roomba机器人和三叶虫机器人[2][3]。在这些情况下,用于控制机器人轨迹的算法基于布朗运动,这是低效的,即使它包含一些结构化的路径。在这些类型的应用中,如果机器人覆盖整个可达表面,目标可以以自主的方式达到:这是覆盖问题的一般陈述。

A path of complete coverage drives the robot to sweep all areas of free space in an environment in a systematic manner. The generated path is composed of multiple single paths that allow the robot to accomplish the global task. Other desired characteristics of a good coverage algorithm include that the trajectory length must be as short as possible and sweeping twice the same place must be

完全覆盖的路径驱动机器人以系统的方式扫过环境中自由空间的所有区域。生成的路径由多条单一路径组成,允许机器人完成全局任务。好的覆盖算法的其他期望特征包括轨迹长度必须尽可能短,并且必须扫描两次相同的位置

avoided when possible. In order to accomplish a surface covering procedure, several problems, such as localization, map building, trajectory planning and motion control must also be solved.

尽可能避免。为了完成曲面覆盖过程,还必须解决几个问题,如定位、地图构建、轨迹规划和运动控制。

The notion of completeness can be ambiguous; even if a complete coverage is guaranteed, different areas are effectively swept depending on the granularity of the model of the environment. When a coarse-grain model is used, the surface is seen as a grid, and the algorithm covers only the completely free cells; thus, some areas nearby the obstacles are not swept. Using a fine-grain surface model allows a better coverage; the surface is not partitioned, therefore the robot can cross closer to the obstacles. In practice, a more accurate approach to measure the quality of a coverage algorithm can be the effective coverage rate, the percentage of the accessible surface that is swept by the robot.

完整性的概念可能是模糊的;即使保证了完全的覆盖,也要根据环境模型的粒度来有效地扫描不同的区域。当使用粗粒度模型时,表面被视为网格,算法仅覆盖完全自由的单元;因此,障碍物附近的一些区域不会被扫掠。使用细粒度表面模型允许更好的覆盖;该表面没有被分割,因此机器人可以更靠近障碍物。在实践中,衡量覆盖算法质量的更准确的方法可以是有效覆盖率,即机器人扫过的可访问表面的百分比。

Some previous works have attempted to solve the region filling problem. Cao’s algorithm [8] introduces the idea of using a well structured pattern to fill a region. Lumesky’s spread seeder algorithm for terrain acquisition [6] can be adapted to fill a region, but it can generate very inefficient paths to get around obstacles. The indirect control algorithm [9] takes a potential field approach, it uses the concept of driving the robot near the unknown areas. The complementary regions algorithm [7], finds simple regions that can be filled by zig-zag like paths, while filling the region it looks for new adjacent regions that can be filled recursively. The algotithm proposed by Acar and Choset

一些先前的工作试图解决区域填充问题。曹的算法[8]介绍了使用结构良好的模式来填充区域的思想。Lumesky用于地形采集的spread seeder算法[6]可以适用于填充一个区域,但它可能会生成非常低效的路径来绕过障碍物。间接控制算法[9]采用势场法,它使用在未知区域附近驱动机器人的概念。互补区域算法[7]发现可以由之字形路径填充的简单区域,在填充该区域时,它寻找可以递归填充的新的相邻区域。Acar和Choset提出的算法

[10] is based in an exact cell decomposition, thus allowing to obtain a good effective coverage rate; however, the delimitation of the cells on-line is not an easy task. One of the most elegant solutions, based on spanning trees, was proposed by Gabrielly [11]; in the basic algorithm the coarse-grain cells are too big, thus generating low effective coverage rates, even if each one is visited only once; a modified version was proposed to reduce these problem, unfortunately, the modified on-line algorithm becomes too complex and makes the robot cover some cells twice. Other approaches include cooperative covering by a robot team [12] and the use of artificial markers in the environment [13].

[10]基于精确的小区分解,因此允许获得良好的有效覆盖率;然而,在线界定小区并不是一件容易的事情。Gabrielly [11]提出了基于生成树的最优雅的解决方案之一;在基本算法中,粗粒度单元太大,从而产生低的有效覆盖率,即使每个单元只被访问一次;提出了一个改进的版本来减少这些问题,不幸的是,改进的在线算法变得太复杂,并且使机器人两次覆盖一些小区。其他方法包括机器人团队的合作覆盖[12]和在环境中使用人工标记[13]。

The Backtracking Spiral Algorithm, BSA [4][5], is based on the execution of spiral filling paths, instead of “zig-zag” like paths used by most of the precedent algorithms [7][14][10]; in consequence, it is more robust to the robot´s initial orientation. BSA completeness is guaranteed by the backtracking mechanism included in the algorithm.

回溯螺旋算法BSA [4][5]是基于螺旋填充路径的执行,而不是大多数先前算法[7][14][10]所使用的“之字形”路径;因此,它对机器人的初始方位更加鲁棒。算法中的回溯机制保证了BSA的完整性。

The simplicity of BSA allows the robot to work properly with low sensorial and computational demands. The generated paths can be easily executed by a differential drive platform, making BSA suitable for building low cost robots. BSA is an on-line algorithm, it builds incrementally a very simple grid like map in order to control the spiral filling procedure and the backtracking mechanism.

BSA的简单性允许机器人以较低的感知和计算需求正常工作。生成的路径可以很容易地由差分驱动平台执行,使得BSA适合于构建低成本的机器人。BSA是一种在线算法,它逐步建立一个非常简单的网格状映射,以控制螺旋填充过程和回溯机制。

The basic BSA has been developed using a grid-like model. In this paper, an extension of BSA, that easily and naturally can cover surfaces nearby the obstacles, is introduced. BSA has been extended to fulfill fine granularity requirements, thus obtaining high effective coverage rates.

基本的BSA是使用网格状模型开发的。本文介绍了一种扩展的BSA算法,它可以简单自然地覆盖障碍物附近的表面。BSA已被扩展以满足精细粒度要求,从而获得高有效覆盖率。

  1. BASIC BSA ALGORITHM
  2. 基本BSA算法

The BSA coverage algorithm was introduced in [5]. The basic algorithm uses a grid-based model, and assures the complete coverage of non-occupied cells; partially occupied cells are not considered. In this section, the conceptual framework of the basic BSA is introduced and some validation results are presented.

BSA覆盖算法在[5]中介绍。基本算法采用基于网格的模型,保证未被占用的小区完全覆盖;不考虑部分被占用的单元。在本节中,将介绍基本BSA的概念框架,并展示一些验证结果。

  1. BSA Conceptual Framework
  2. BSA概念框架

The BSA algorithm is supported by two main concepts: covering of simple regions using a spiral-like path and linking of simple regions based on a backtracking mechanism. A model of the environment is constructed incrementally as the robot moves. The surface is modeled by a coarse-grain occupancy grid, each square cell is of the size of the robot. Initially, all cells are marked as unknown; as the robot covers a cell, it is denoted as a virtual obstacle; cells where obstacles are detected, even if they are partially covered, are marked as a real obstacle.

BSA算法由两个主要概念支持:使用螺旋状路径覆盖简单区域和基于回溯机制链接简单区域。随着机器人的移动,环境的模型被逐步构建。表面由一个粗粒度的占位网格建模,每个正方形单元的大小与机器人相同。最初,所有单元都被标记为未知;当机器人覆盖一个小区时,它被表示为虚拟障碍物;检测到障碍物的单元,即使它们被部分覆盖,也会被标记为真正的障碍物。

A simple region is defined as an area that can be filled using a spiral path. In BSA, spiral paths are composed of concentric rings that form a continuous path from the region’s boundary to a central ending point: Before starting a spiral path the robot is located nearby an obstacle, which is situated in the reference lateral side RLS. RLS indicates the relative direction where obstacles are to be referenced during the spiral filling procedure. RLS is fixed in advance and can’t be modified. OLS is the opposite lateral side, it identifies the antipode of RLS. The following set of four simple reactive rules allow the correct execution of the spiral coverage procedure:

简单区域定义为可以使用螺旋路径填充的区域。在BSA中,螺旋路径由同心环组成,形成从区域边界到中心终点的连续路径:在开始螺旋路径之前,机器人位于障碍物附近,该障碍物位于参考横向侧RLS中。RLS表示在螺旋填充过程中参考障碍物的相对方向。RLS是预先固定的,不能修改。OLS是相反的侧面,它确定RLS的对跖地。以下四组简单的反应规则允许正确执行螺旋覆盖程序:

RS1 IF (obstacles_all_around)

RS1 IF(周围有障碍物)

THEN ending_spiral_point_detected

然后检测到终点螺旋点

RS2 IF (NOT obstacle_in_RLS)

RS2 IF(非障碍物_in_RLS)

THEN turn_to(RLS) and move_forward

然后转向(RLS)并向前移动

RS3 IF (obstacle_in_front) THEN turn_to(OLS)

RS3如果(前方有障碍)就转向(OLS)

RS4 OTHERWISE move_forward

RS4否则向前移动

When these RS rules are evaluated, cells marked as virtual obstacles are considered as obstacles. Normally, the first external ring of a spiral path is performed nearby partially occupied cells, virtual obstacles are used as reference while covering internal rings.

当评估这些RS规则时,被标记为虚拟障碍的单元被认为是障碍。通常,螺旋路径的第一个外环在部分被占据的单元附近执行,虚拟障碍物在覆盖内环时被用作参考。

A single spiral path is capable of partially covering the accessible areas. A backtracking mechanism is employed to get back to unvisited areas, where a new spiral filling procedure can be performed. Backtracking points (BP) are detected and stored during the execution of a normal spiral path. Before moving the robot forward, BSA evaluates if there is more than one unknown cell in its neighborhood; in other words, if there is an alternative possible path to follow. If this is the case, the cells that could be the starting point of future alternative paths are denoted as potential backtracking points.

单个螺旋路径能够部分覆盖可到达的区域。采用回溯机制回到未访问的区域,在那里可以执行新的螺旋填充过程。回溯点(BP)在正常螺旋路径的执行过程中被检测和存储。在机器人向前移动之前,BSA评估其邻域中是否有一个以上的未知小区;换句话说,如果有另一条可能的路可走。如果是这种情况,可能是未来替代路径的起点的单元被表示为潜在的回溯点。

Once the robot has reached the central ending point of a spiral filling path, the backtracking mechanism is invoked. First, the stored potential BPs are validated; BPs that are no longer marked as unknown cells are discarded. Then, one candidate point is selected; this selection can be based in different criteria, for instance the Euclidean distance between the robot and the BP. Finally, the robot reaches the selected BP using a path crossing over already visited cells, the ones that have been marked as virtual obstacles. At this point, the robot is ready to start a new spiral path beginning at the selected BP.

一旦机器人到达螺旋填充路径的中心终点,回溯机制被调用。首先,验证存储的潜在BP;不再被标记为未知单元的BP被丢弃。然后,选择一个候选点;这种选择可以基于不同的标准,例如机器人和BP之间的欧几里德距离。最后,机器人使用穿过已经访问过的单元的路径到达选定的BP,这些单元已经被标记为虚拟障碍。此时,机器人准备好从选定的BP开始新的螺旋路径。

BSA stops when there are no more candidates BPs; which means that there are no more unvisited alternative paths, thus all the free accessible cells have been covered. The backtracking mechanism performs an exhaustive deep-first search, in consequence it guarantees the completeness of BSA. Nevertheless, the basic BSA covers only the cells that are completely free, which may not be appropriated for many applications. In fact, most of the practical tasks require to cover the whole area, even the surface nearby the obstacles. As the basic BSA is based in a coarse-grain model of the surface, even if it is conceptually complete, it is not complete for practical purposes. An example of the basic BSA coverage is shown in Figure 1. A more detailed explanation and discussion of the basic BSA can be found in [4][5].

当不再有候选BP时,BSA停止;这意味着不再有未访问的替代路径,因此所有空闲的可访问单元都已被覆盖。回溯机制执行彻底的深度优先搜索,从而保证BSA的完整性。然而,基本BSA仅覆盖完全自由的细胞,这可能不适用于许多应用。事实上,大多数实际任务需要覆盖整个区域,甚至是障碍物附近的表面。因为基本的BSA是基于表面的粗粒度模型,所以即使它在概念上是完整的,但对于实际目的来说它是不完整的。基本BSA覆盖范围的示例如图1所示。在[4][5]中可以找到对基本BSA的更详细的解释和讨论。

Fig. 1 Example of the basic BSA algorithm.

图1基本BSA算法的例子。

Fig. 2 Typical coverage of the basic BSA in the fine-grain simulator.

图2细粒度模拟器中基本BSA的典型覆盖范围。

  1. Basic BSA Results
  2. 基本BSA结果

The basic BSA was validated in three different simulation environments.

基本BSA在三种不同的仿真环境中进行了验证。

  • In the coarse-grain simulator, the robot moves through the grid, thus allowing to perform debugging and performance evaluation in a well-controlled environment.
  • 在粗粒度模拟器中,机器人在网格中移动,从而允许在控制良好的环境中执行调试和性能评估。
  • In the fine-grain simulator, uncertainty is introduced in the detected state of cells; some simple reactive mechanisms were included in BSA to correct these problems. Figure 2 displays the results in this kind of environment; as can be observed, the free cells are covered, but the surface nearby the obstacles is not swept.
  • 在细粒度模拟器中,细胞的检测状态引入了不确定性;BSA中包含了一些简单的反应机制来纠正这些问题。图2显示了这种环境下的结果;正如可以观察到的,自由单元被覆盖,但是障碍物附近的表面没有被扫过。
  • Finally, the Saphira simulator was used [15], which also introduces real sonar models and motion uncertainty, demonstrating that BSA can be implemented efficiently as a set of parallel tasks, and that it could be implemented in a real robot.
  • 最后,使用了Saphira模拟器[15],该模拟器还引入了真实的声纳模型和运动不确定性,证明了BSA可以作为一组并行任务有效地实施,并且可以在真实的机器人中实施。

Some experiments were performed in order to compare BSA with other algorithms [4]. The most meaningful performance measure was the percentage of multi-swept cells (MS). BSA performs better, as obtains 23% in the average MS measure, while CRA [7] obtains 91% and ICA [9] 307%. The other performance indicators, path length and energy consumption, are related to MS and have a similar behavior. The results show that BSA is very competitive when covering a grid-like environment.

为了将BSA与其他算法进行比较,进行了一些实验[4]。最有意义的性能测量是多次扫描单元的百分比(MS)。BSA表现更好,在平均ms测量中获得23%,而CRA [7]获得91 %, ICA[9]获得307%。其他性能指标,路径长度和能量消耗,与MS相关并具有相似的行为。结果表明,BSA在覆盖网格状环境时具有很强的竞争力。

  1. EXTENSION OF BSA
  2. BSA的扩展

An extension of the basic BSA was designed in order to improve the effective coverage. The solution is based on the idea that the partially-occupied cells are part of the external ring of the spiral path. These cells are covered by a wall-following procedure, the BSA rules to mark virtual obstacles and to detect backtracking points are adapted and extended, taking care of maintaining the original semantics of the algorithm. The most difficult problem to solve is how to get back to a selected BP, taking into account that the robot may need to cross over partially-occupied cells during this procedure.

为了提高有效覆盖范围,设计了基本BSA的扩展。该解决方案基于这样的想法,即部分占据的细胞是螺旋路径外环的一部分。这些单元被沿墙过程覆盖,标记虚拟障碍和检测回溯点的BSA规则被修改和扩展,注意保持算法的原始语义。要解决的最困难的问题是如何回到选定的BP,考虑到机器人在这个过程中可能需要穿过部分被占据的单元。

  1. General Approach
  2. 通用方法

As a consequence of the coarse resolution in the representation of the surface, any algorithm that uses a grid-based approach to model the environment will produce an unsatisfactory effective coverage. A complementary strategy must be used to cover the surface nearby the obstacles. For instance, [16] performs a predictive wall-following procedure after all the free cells have been swept. This approach generates longer delays, a lot of cells are swept several times while the robot gets close to each of the obstacles. The main drawback of this approach is that the wall-following phase does not match in any way with the filling path used by the general coverage algorithm. It would be preferable that the coverage of the partially-occupied cells be integrated in a natural fashion into the filling path.

由于表面表示中的粗糙分辨率,任何使用基于网格的方法来模拟环境的算法都将产生不令人满意的有效覆盖。必须使用补充策略来覆盖障碍物附近的表面。例如,[16]在扫描完所有空闲单元后,执行预测性的沿墙程序。这种方法会产生更长的延迟,当机器人接近每个障碍物时,许多单元会被扫描几次。这种方法的主要缺点是沿墙阶段与一般覆盖算法使用的填充路径不匹配。优选的是,部分占据的单元的覆盖以自然的方式整合到填充路径中。

Most of the coverage algorithms use one of two basic structured filling paths: spiral or zig-zag like paths. As these filling paths are composed of well-defined and structured sequence of simple paths, it is easy to extend them in order to include the partially-occupied cells located in the frontier of the region filled by the path.

大多数覆盖算法使用两种基本结构化填充路径中的一种:螺旋或之字形路径。由于这些填充路径由明确定义和结构化的简单路径序列组成,因此很容易扩展它们以包括位于由路径填充的区域的边界中的部分被占据的单元。

In some cases, the boundary of the region formed by the free cells covered by the basic spiral path is surrounded by partially occupied-cells. These cells can be covered by an initial wall-following procedure before sweeping the free cells. The original region is expanded; a new external ring is added to the spiral path; this ring is covered by a reactive wall-following procedure, then the original spiral rings are covered as in the basic path. However, notice (Fig. 1 and 2) that in some cases the regions generated while executing a spiral path can include “holes” in the middle of the region. Thus, when an obstacle is found while executing the spiral filling path, new internal boundaries appear, the region must be immediately expanded to include them and assure complete coverage. The expansion must be performed on-line; as soon as an obstacle is found, a wall-following procedure must be executed.

在某些情况下,由基本螺旋路径覆盖的自由单元形成的区域的边界被部分占据单元包围。在清扫自由细胞之前,这些细胞可以通过初始的沿壁程序来覆盖。扩展原始区域;新的外环被添加到螺旋路径;该环由反应性壁跟随过程覆盖,然后原始螺旋环如在基本路径中那样被覆盖。但是,请注意(图1和图2 ),在某些情况下,执行螺旋路径时生成的区域可能在区域中间包含“孔”。因此,当在执行螺旋填充路径时发现障碍时,会出现新的内部边界,该区域必须立即扩展以包含它们并确保完全覆盖。膨胀必须在线进行;一旦发现障碍物,就必须执行沿墙程序。

A similar approach can be applied for other structured filling paths. The BSA extension aims to partially validate this hypothesis.

类似的方法可以应用于其他结构化填充路径。BSA扩展旨在部分验证这一假设。

  1. Components of the Extended BSA
  2. 扩展BSA的组件

The extended version of BSA must respect the basic conceptual basis of the algorithm: spiral paths and backtracking mechanism. These requirements are achieved if, even when covering partially-occupied cells, virtual obstacles are correctly marked and all potential backtracking points are detected and stored. In practice, cells must be marked as a virtual obstacle while the robot is executing a wall-following procedure; this marking permits to identify if an obstacle has been previously visited. In the same way, the detection of alternative paths must be performed while circumnavigating an obstacle.

BSA的扩展版本必须尊重算法的基本概念基础:螺旋路径和回溯机制。如果即使在覆盖部分被占用的小区时,虚拟障碍物被正确标记,并且所有潜在的回溯点被检测和存储,则这些要求被实现。在实践中,当机器人执行沿墙程序时,细胞必须被标记为虚拟障碍;这种标记允许识别是否以前已经过障碍物。同样,在绕过障碍物时,必须检测替代路径。

As it was pointed out in the general approach, the idea is to expand the covered regions by performing a wall- following procedure when an obstacle is found during the execution of a normal spiral filling path. In consequence, the expanded BSA includes two components: a modified grid-based spiral path functionality and a special wall- following procedure. The algorithm switches from one component to the other as unvisited obstacles are detected and visited. While executing a spiral path, the algorithm continuously looks for obstacles that have not been visited; if an unvisited one is detected, the wall-following component is activated in order to circumnavigate the obstacle. While executing a wall-following procedure, the algorithm continuously verifies if the obstacle has been completely circumnavigated; if this is the case, the spiral path component is activated.

正如在一般方法中所指出的,该想法是当在正常螺旋填充路径的执行期间发现障碍时,通过执行沿壁程序来扩展覆盖区域。因此,扩展的BSA包括两个部分:修改的基于网格的螺旋路径功能和特殊的沿墙过程。当检测和访问未访问的障碍物时,算法从一个组件切换到另一个组件。在执行螺旋路径时,算法不断寻找未被访问的障碍;如果检测到未被访问的障碍物,则沿墙部件被激活以绕过障碍物。当执行沿墙程序时,该算法连续验证是否已经完全绕过了障碍物;如果是这种情况,将激活螺旋路径组件。

The only modification that must be included in the basic BSA is to add a call to the wall-following procedure when a real obstacle is detected. In order to avoid the circumnavigation of already visited obstacles, the cell where the obstacle is detected must be marked as unknown.

基本BSA中必须包括的唯一修改是在检测到真实障碍物时添加对沿墙程序的调用。为了避免绕过已经访问过的障碍物,检测到障碍物的单元必须被标记为未知。

  1. Wall-Following Procedure
  2. 沿墙程序

The new component of the extended algorithm follows in a reactive fashion the obstacle’s boundary by keeping the robot at a predefined security distance from it. A closed control-loop generates motion commands that aim to align the robot with the boundary, while trying to maintain the robot at the desired distance. Before starting, the robot is moved nearby the obstacle and aligned, the obstacle must be in the reference lateral side (RLS), and the starting position of the robot is stored. The component must be stopped when the robot gets back in an area around the stored starting point. In order to comply with the BSA basic mechanism, virtual obstacles and backtracking points are detected and marked while executing this procedure.

扩展算法的新组件通过使机器人与障碍物保持预定的安全距离,以反应方式跟随障碍物的边界。一个闭合的控制回路产生运动命令,旨在将机器人与边界对准,同时试图将机器人保持在期望的距离。启动前,机器人移动到障碍物附近并对齐,障碍物必须在参考横向侧(RLS ),机器人的启动位置被存储。当机器人回到存储的起始点周围的区域时,必须停止该组件。为了符合BSA基本机制,在执行该过程时,检测并标记虚拟障碍和回溯点。

  1. Return Path by a Virtual Pipe
  2. 通过虚拟管道返回路径

When the ending point of a spiral filling path is found, BSA must validate and select a backtracking point (BP). A return path must be generated from the ending spiral point to the selected BP. In the basic BSA procedure, only already visited free cells are considered when looking for a return path in the grid map. A simple breadth first search algorithm is used to obtain the shortest path. As the robot has visited the candidate cells, it is always possible to find a return path.

当找到螺旋填充路径的终点时,BSA必须验证并选择一个回溯点(BP)。必须从终止缓与曲线点到所选BP生成返回路径。在基本BSA过程中,当在栅格地图中寻找返回路径时,仅考虑已经访问过的空闲小区。使用简单的广度优先搜索算法来获得最短路径。由于机器人已经访问了候选小区,所以总是有可能找到返回路径。

However, in the extended BSA, it can occur that it is not possible to find a return path composed exclusively of free cells. When this situation occurs, partially-occupied cells must be also considerer as candidates while finding the shortest path. An additional extension, included in the return path planning algorithm, is that a cost is associated to each candidate path that is found.

然而,在扩展的BSA中,可能出现不可能找到仅由空闲信元组成的返回路径的情况。当这种情况发生时,在寻找最短路径时,部分占用的单元也必须被视为候选。包括在返回路径规划算法中的附加扩展是成本与找到的每个候选路径相关联。

The cost not only takes into account the path’s length, but also it assigns a lower cost to paths that include fewer partially-occupied-cells. Thus, giving preference to the paths mainly composed of free cells.

该成本不仅考虑了路径的长度,而且将较低的成本分配给包括较少部分被占用单元的路径。因此,优先选择主要由空闲单元组成的路径。

In consequence, in the extended BSA, a return path is formed by a sequence of cells, where at least the first and last ones are free; the cells in the middle of the path can include partially-occupied cells. In fact, the obtained path can be seen as a sequence of free cells that can include gaps, which are subsequences of partially-occupied cells. When moving along the path, there isn’t any exceptional requirement while traversing free cells, however a specialized treatment must be applied in order to cross over gap sequences.

因此,在扩展的BSA中,返回路径由一系列信元形成,其中至少第一个和最后一个是空闲的;路径中间的单元可以包括部分被占用的单元。事实上,所获得的路径可以被视为可以包括间隙的自由单元的序列,间隙是部分被占据的单元的子序列。当沿着路径移动时,在穿过自由细胞时没有任何例外的要求,但是必须应用特殊的处理以跨越间隙序列。

A reference line is defined along the central points of the cells that compose the path; this line could be seen as the desired path that must be followed by the robot. When a gap is found, an obstacle will obstruct the desired path. In order to avoid the obstacle, a wall-following procedure is started, the robot circumnavigates the obstacle until it returns to the reference line; at this point, the normal procedure, moving along the reference line, can be executed.

沿着组成路径的像元的中心点定义参考线;这条线可以被视为机器人必须遵循的期望路径。当发现一个缺口时,一个障碍物将会阻挡期望的路径。为了避开障碍物,启动沿墙程序,机器人绕过障碍物,直到回到参考线;此时,可以执行沿参考线移动的正常程序。

The cells included in a gap sequence include a valid path to pass between two free cells. However, it is not possible to know in advance if the wall-following procedure must be performed with the reference obstacle to the left or to the right side of the robot. In order to solve this problem, a virtual pipe area is defined around the reference line. While performing the avoidance wall-following procedure, the algorithm verifies that the robot does not exit the virtual pipe; when this condition is detected, the robot must perform the wall-following procedure in the opposite direction.

间隙序列中包含的单元包括在两个空闲单元之间通过的有效路径。然而,不可能预先知道是否必须在参考障碍物位于机器人左侧或右侧的情况下执行沿墙程序。为了解决这个问题,在参考线周围定义了虚拟管道区域。在执行避障沿壁程序时,该算法验证机器人没有退出虚拟管道;当检测到这种情况时,机器人必须在相反的方向执行沿墙程序。

A typical example of a return path that includes gap is presented in figure 3. In the shown situation, the gap must be traversed; if the robot turns to the left and tries to circumnavigate the obstacle having it to its right side, the central point of the robot will exit the virtual pipe; on the other hand, if it turns to the right, the robot will be able to return to the desired reference path, the avoidance wall- following procedure will succeed.

包含间隙的返回路径的典型示例如图3所示。在所示的情况下,必须穿过间隙;如果机器人向左转并试图绕过右侧的障碍物,机器人的中心点将离开虚拟管道;另一方面,如果它向右转,机器人将能够返回到期望的参考路径,避障沿墙程序将成功。

Fig. 3 Example of a virtual pipe.

图3虚拟管道的例子。

  1. EXPERIMENTAL RESULTS
  2. 实验结果

In order to validate and to evaluate the extended BSA, an experimental protocol, including five challenging scenarios was designed. The effective coverage rate is the main performance criteria that is evaluated. The experimental results obtained, running the extended algorithm in the fine-grain simulator, are summarized in table I.. As can be observed, the improvement in the effective coverage rate is notorious in all the cases.

为了验证和评估扩展的BSA,设计了一个实验协议,包括五个具有挑战性的场景。有效覆盖率是评估的主要性能标准。在细粒度模拟器中运行扩展算法所获得的实验结果总结在表I中..可以看出,在所有情况下,有效覆盖率的提高是众所周知的。

In figure 4, the results of a typical coverage obtained by the extended BSA is shown. In this case, the same scenario of figure 2 is depicted, notice the improvement in the covered surface, the enhancement is about 30%.

在图4中,示出了由扩展BSA获得的典型覆盖的结果。在这种情况下,描绘了与图2相同的场景,请注意覆盖表面的改善,增强了约30%。

  1. DISCUSSION
  2. 讨论

The basic completeness notion is a necessary condition that must be fulfilled by a coverage algorithm. However, as has been shown, it is not a sufficient condition to obtain an adequate performance in practical situations. The performance can be evaluated in a non ambiguous way by using the effective coverage rate, as proposed in this paper.

基本完整性概念是覆盖算法必须满足的必要条件。然而,正如已经表明的,这不是在实际情况下获得足够性能的充分条件。如本文所提出的,可以通过使用有效覆盖率以明确的方式来评估性能。

The approach used to extend BSA is general and can be applied to improve the performance of other grid-based algorithms that use structured filling paths. The advantage of this approach is that it is naturally incorporated in the original algorithm; the basic conceptual ideas of the algorithm are respected. Normally, the extension will include the invocation of wall-following procedures when unvisited obstacles are detected.

用于扩展BSA的方法是通用的,并且可以应用于提高使用结构化填充路径的其他基于网格的算法的性能。这种方法的优点是,它自然地包含在原始算法中;尊重算法的基本概念思想。通常,扩展将包括当检测到未被访问的障碍物时调用沿墙程序。

TABLE I

表一

COMPARATIVE RESULTS OF EFFECTIVE COVERAGE RATE

有效覆盖率对比结果

Id

Basic BSA

Extended BSA

1

78.75 %

93.56 %

2

64.89 %

92.91 %

3

62.71 %

93.41 %

4

67.37 %

92.29 %

5

66.28 %

93.29 %

身份

基础BSA

扩展BSA

78.75 %

93.56 %

2

64.89 %

92.91 %

3

62.71 %

93.41 %

67.37 %

92.29 %

5

66.28 %

93.29 %

 

Fig. 4 Typical coverage of the extended BSA in the fine-grain simulator.

图4细粒度模拟器中扩展BSA的典型覆盖范围。

The results obtained demonstrate that BSA is an algorithm that can achieve a complete coverage of the accessible surface, not only taking into account a completeness notion, but also evaluating the effective coverage rate. Even if the extended BSA is more complex, it is still simple to implement, only some reactive rules must be added to invoke and to implement the wall-following procedure.

结果表明,BSA算法不仅考虑了完备性概念,而且评估了有效覆盖率,能够实现可达表面的完全覆盖。即使扩展的BSA更复杂,它仍然易于实现,只需添加一些反应性规则来调用和实现沿墙过程。

Actual work includes a more exhaustive comparative evaluation of BSA and other coverage algorithms. It is being implemented in a robot in order to validate that is feasible for real world tasks. This approach is based on simplicity, allowing to build low-cost robots, and looking forward to robot applications that collaborate with humans in everyday tasks, thus generating new products that will be used massively.

实际工作包括对BSA和其他覆盖算法进行更详尽的比较评估。它正在一个机器人上实现,以验证它对于现实世界的任务是可行的。这种方法基于简单性,允许建造低成本机器人,并期待机器人应用程序在日常任务中与人类合作,从而产生将被大规模使用的新产品。

ACKNOWLEDGMENT

承认

This project was funded by the Universidad Javeriana. The authors thank Camilo Otálora and Eduardo Gerlein for their contribution to this work.

该项目由哈韦里亚纳大学资助。作者感谢Camilo Otálora和Eduardo Gerlein对这项工作的贡献。

REFERENCES

参考

  1. IEEE Robotics & Automation, "Technical Committee on Service Robots", http://www.service-robots.org, 2004.
  2. IEEE机器人与自动化,“服务机器人技术委员会”,http://www.service-robots.org, 2004.
  3. iRobots, "Official Roomba Homepage", http://www.roombavac.com, 2004.
  4. iRobots,“Roomba官方主页”,http://www.roombavac.com,2004.
  5. Electrolux, “Tribolite 2.0 Vacuum Cleaner”, http://trilobite.electrolux.se/, 2004.
  6. 伊莱克斯,“Tribolite 2.0真空吸尘器”,http://trilobite.electrolux.se/, 2004.
  7. E. González, M. Alarcón, P. Aristizábal, and C. Parra, “BSA: A Coverage Algorithm” Proc. IEEE-IROS 2003, pp. 1679-1684, 2003.
  8. E.González、M. Alarcón、P. Aristizábal和C. Parra,“BSA:一种覆盖算法”。IEEE-IROS 2003,第1679-1684页,2003年。
  9. E. González, P. Aristizábal, and M. Alarcón, “Backtracking Spiral Algorithm: A Mobile Robot Region Filling Strategy” Proc. ISRA 2002, pp. 261-266, 2002.
  10. E.González、P. Aristizábal和M. Alarcón,“回溯螺旋算法:移动机器人区域填充策略”,Proc。ISRA 2002年,第261-266页,2002年。
  11. V.J. Lumelsky, et al, “Dynamic Path Planning in Sensor-Based Terrain Acquisition” IEEE Trans on Robotics and Automation, Vol. 6, No. 4, 1990, pp. 462-472.
  12. V.J. Lumelsky等,“基于传感器的地形获取中的动态路径规划”IEEE Trans on Robotics and Automation,Vol. 6,No. 4,1990,pp. 462-472。
  13. E. González, A. Suárez, C. Moreno, F. Artigue, “Complementary Regions: a Surface Filling Algorithm”, ICRA96, pp. 909-914.
  14. E.González,A. Suárez,C. Moreno,F. Artigue,“互补区域:表面填充算法”,ICRA96,第909-914页。
  15. Z.L. Cao, Y.Y. Huang, E.L. Hall, “Region Filling Operations with Random Obstacles Avoidance for Mobile Robots”, Journal of Robotics Systems, Vol. 5, No2, 1988, pp. 87-102.
  16. 曹志林,黄耀耀,霍尔,“移动机器人随机避障的区域填充操作”,机器人系统学报,第5卷,第2期,1988年,第87-102页。
  17. A. Pirzadeh, W. Zinder, “A Unified Solution to Coverage and Search in Explored and Unexplored Terrains Using Indirect Control”, IEEE, 1990, pp. 2113-2119.
  18. A.Pirzadeh,W. Zinder,“使用间接控制在已勘探和未勘探的地形中覆盖和搜索的统一解决方案”,IEEE,1990年,第2113-2119页。
  19. E. Acar, H. Choset, "Robust Sensor-based Coverage of Unstructured Environment", IROS’01, 2001, pp.61-68.
  20. E.“基于传感器的非结构化环境的鲁棒覆盖”,IROS 2001年01期,第61-68页。
  21. Y. Gabrielly, E. Rimon, "On-Line Coverage of Grid Environments by a Mobile Robot", Technical repport Israel Institute of Technology, 2000.
  22. Y.Gabrielly,E. Rimon,“移动机器人对网格环境的在线覆盖”,以色列理工学院技术报告,2000年。
  23. Z. Butler, A. Rizzi, R. Hollis, "Complete Distributed Coverage of Rectilinear Environments", 4th Int. Workshop on the Algorithmic Foundations of Robotics, 2000.
  24. Z.巴特勒,a .里齐,r .霍利斯,“直线环境的完全分布式覆盖”,第四国际。2000年机器人算法基础研讨会。
  25. M. Batalin, G. Sukhatme, "Efficient Exploration without Localization", ICRA’03, 2003.
  26. 米(meter的缩写))巴塔林,g .苏哈特米,“没有本地化的有效探索”,ICRA 2003年03期。
  27. S. Hert, S. Tiwari, V. Lumelsky, "A terrain-covering Algorithm for an AUV", Autonomous Robots, 3(2-3), 1996, pp. 91-119.
  28. 南Hert,S. Tiwari,V. Lumelsky,“AUV的地形覆盖算法”,自主机器人,3(2-3),1996年,第91-119页。
  29. Active Media Inc., “Shapira Software Manual, 6.1”, 1997.
  30. 积极媒体公司,“沙皮拉软件手册,6.1”,1997年。
  31. E. González, A. Suárez, C. Moreno, F. Artigue, "A Predictive Model for a Wall-Following Procedure of a Mobile Robot", SIRS96, pp. 57- 64.
  32. E.González,A. Suárez,C. Moreno,F. Artigue,“移动机器人沿墙程序的预测模型”,SIRS96,第57- 64页。

以上是关于一种完全覆盖算法-Backtracking Spiral Algorithm (BSA) 回溯螺旋算法的主要内容,如果未能解决你的问题,请参考以下文章

backtracking(回溯算法)

有趣的BackTracking回溯算法

回溯算法

优化覆盖基于matlab蚁群算法求解无线传感器覆盖优化问题含Matlab源码 1835期

apache_conf 在OSMC上启用SPI覆盖树莓

部分回溯搜索的通用算法