在工厂环境中,巡检机器人和设备的位置和运动可能会发生快速变化,因此需要实时获取和处理传感器数据以进行准确的定位和建图。为了实现这一目标,我们选择了一种具有时间和尺度不变性的基于外观的定位和建图方法,如图2所示的结构图。
(1)点云分割:由于检测环境的复杂性和其他因素,激光点云数据中可能存在噪声。
为确保巡逻机器人能够在全局和局部上有效地避开障碍物,并考虑到实际道路场景的网格地图相对简单,因此采用A-star算法作为全局路径规划方法,通过实时规划为机器人提供准确的避障方向。A-star结合了启发式搜索和广度优先算法,通过代价函数选择搜索方向并在起始点周围展开。启发式函数计算每个周围节点的代价值,并选择最小代价值作为下一个扩展点。这个过程重复进行直到到达终点,生成从起点到终点的路径。在搜索过程中,由于路径上的每个节点都是代价最小的节点,获得的路径代价也是最小的。A-star算法的代价函数是
其中,是当前位置的代价函数,是搜索空间中从起始位置到当前位置的代价值,是从当前位置到目标位置的代价值。在A-star算法中,启发式函数的选择至关重要。由于建图环境是一个带有障碍物的网格地图,曼哈顿距离被用作启发式函数,其定义为:
其中,分别代表当前位置和目标位置的坐标。在A-star算法中的路径规划中,使用Closelist和Openlist来存储节点。已经被搜索且生成了代价值的节点被存储在Openlist中。具有最小估计代价的节点被存储在Closelist中,移动轨迹是通过处理Closelist中每个节点的轨迹来形成的。具体步骤如下:
步骤1:机器人的起始点是第一个计算出的点,将周围的节点添加到Openlist 中,并计算每个点的代价函数。
步骤2:搜索Openlist,选取代价值最小的节点作为当前处理节点,将其从 Openlist中移除并放入Closelist。
步骤3:如果从当前处理节点到起始点的相邻节点的实际代价值小于原始 值,则将相邻节点的父节点设置为当前处理节点;如果大于,则从Closelist 中移除当前处理节点,并选择代价值次小的节点作为当前处理节点。
步骤4:重复以上步骤,直到目标点被添加到Closelist中。遍历每个父节点,所得到的节点坐标即为路径。
(2)局部路径规划
巡检机器人的工作环境并非总是固定不变的。在沿着全局路径移动的过程中,可能会出现实时障碍物。为了避免碰撞,使用具有时间弹性的局部路径规划的技术——定时弹性带(TEB)算法,在全局路径规划的基础上实现实时障碍物避开。TEB算法是一种优化算法,它遵循全局路径规划器生成的路径。它生成的局部轨迹由一系列连续的时间和姿态序列组成,机器人的姿态被定义为:
(3)混合路径规划算法
4.2 性能评估
4.2.1 视觉SLAM算法性能评估