You are on page 1of 6

先进制造系统管理运作 现代制造工程( Modern Manufacturing Engineering) 2020 年第 10 期

基于 ROS 的多 AGV 在交叉路口下协同控制策略


牛秦玉,畅科剑,李珍惜
( 西安科技大学机械工程学院,西安 710000)

摘要: 针对多自动搬运车( Automated Guided Vehicle,AGV) 在物料运输车间内交叉路口下的协同控制问题,设计了一种


在机器人操作系统( Robot Operating System,ROS) 下的基于队列控制的多 AGV 协同控制算法。首先,利用 Cartographer
算法构建 AGV 工作区间的二维环境地图,规划出 AGV 可行驶的全部路径,并分析了交叉路口出现的冲突模型。其次,
设计了交叉路口队列的数据结构,在地图和路径的基础上根据 AGV 行走速度划分出交叉路口的队列控制区。最后,融
合 ROS 导航功能包编写多 AGV 协同控制算法,并结合数据库终端数据转存表设计了多种测试用例,对该算法进行了验
证,实验结果表明: 该算法能够有效地解决多 AGV 在各种冲突模型下的协同控制问题,降低了程序模块之间的耦合度,
提高了程序的适用性。
关键词: 自动搬运车; 协同控制算法; 队列控制; 机器人操作系统
中图分类号: TP242 文献标志码: A 文章编号: 1671-3133( 2020) 10-0033-06
DOI: 10.16731 / j.cnki.1671-3133.2020.10.006

Cooperative control strategy of multi-AGV based on ROS at intersection


Niu Qinyu,Chang Kejian,Li Zhenxi
( School of Mechanical Engineering,Xi’an University of Science and Technology,Xi’an 710000,China)
Abstract: A multi-AGV cooperative control algorithm based on queue control under ROS was designed for the coorperative control
of multi-AGV at intersection of material transportation workshop.Firstly,the Cartographer algorithm was used to construct the 2D
environment map of the AGV working area,all the paths that the AGV can travel were planned and the conflict model appearing
at intersection was analyzed.Secondly,the data structure of the intersection queue was designed.Based on the map and the path,
the queue control area of the intersection was divided according to the AGV walking speed.Finally,the ROS navigation function
package was used to compile the multi-AGV cooperative control algorithm,and a variety of test cases were designed in combina-
tion with the database data transfer table.The experimental results show that the algorithm can effectively solve the multi-AGV co-
operative control problems under various conflict models,reduce the coupling between program modules and improve the applica-
bility of the program.
Keywords: Automated Guided Vehicle ( AGV) ; cooperative control algorithm; queue control; Robot Operating System ( ROS)

以激光雷达为主要环境感知传感器,应用激光即时定
0 引言
位与地图构建( Simultaneous Localization And Mapping,
随着计算机技术和人工智能学科的发展,移动机 SLAM) 算法进行室内智能移动机器人即时定位的方
[1]
器人技术突飞猛进 。 现阶段,移动机器人正朝着自 式被广泛应用。文献[3]对单个室内移动机器人定位
组织、自学习和自适应的智能化方向发展。 自动搬运 方式进行了详细的介绍与分析。 在大型仓储物流运
车( Automated Guided Vehicle,AGV) 作为智能移动机 输车间中,通常需要多辆自动搬运车协作完成任务,
器人的应用代表,越来越多地应用于智能生产线及各 以提高物料运输效率,因此多 AGV 协同工作就显得极
[2]
种自动化生产车间中 。AGV 导航的核心问题是定 其重要。文献[4]在机器人操作系统 ( Robot Operating
位,传统的室内 AGV 常用的导航定位方式主要有磁导 System,ROS) 下以 激 光 雷 达 为 核 心 传 感 器 设 计 了 多
航和激光导航。 磁导航因需要破坏地面环境铺设磁 AGV 定位导航系统。 在多 AGV 协同工作过程中,交
条,且磁条容易被穿梭车辆损坏,以及磁条磁性逐渐 叉路口的避让和最优顺序控制是影响工作效率的关
消失等问题,逐渐被激光导航所替代。 在激光导航中 键因素。对于交叉路口的避让控制策略,文献[5]针
33
2020 年第 10 期 现代制造工程( Modern Manufacturing Engineering)

对多 AGV 协同调度问题,采用分散控制算法实现了多 激光 SLAM 算法,在较小的环境中能够实现较好的建


AGV 无碰撞稳定工作; 文献[6]针对自动化多 AGV 路 图效果; 但由于工作过程中采用粒子滤波来估计 AGV
径规划提出了一种基于锁机制的动态枷锁 / 解锁调度 的位姿,在粒子传播的过程中存在严重的粒子退化问
算法,可在路径规划层面防止出现路径冲突和死锁问 题,并且收敛速度过慢,导致在较大的车间环境中构
题,但没有考虑双车道多车协同控制问题; 文献[7]就 建的地图容易变形,与实际环境不符。 而谷歌开源的
双 AGV 的协调调度问题建立了以作业延误成本加权 SLAM 方法,即基于图优化的 Cartographer 算法有很好
最小为目标的 AGV 调度问题混合整数规划模型; 文献 的匹配和优化系统,能够很好地解决这个问题,即使
[8]通过动态避让和时间优化分析了双机器人协调轨 在大尺度环境下也能够构建出比较精确的地图。
迹规划问题; 文献[9]针对多 AGV 资源分配问题,提 本文采用 Cartographer 算法,利用二维激光雷达
出了任务组优先级与路况影响的静态时间窗口算法, 进行实验工作区间环境地图的构建,并且对地图进行
并设计了可监控在线冲突的动态路径调整策略,提升 合理的修改与标定,AGV 工作区间环境地图及路径规
了 AGV 作业过程中解决突发问题的能力; 文献[10] 划如图 1 所示。图 1 中,字母表示 AGV 行驶的工位点
提出了一种基于避让区划分的多 AGV 协同控制算法, 及转折点,箭头指示 AGV 在当前路段的行驶方向。基
该算法通过在交叉路口设置避让区的方式使得 AGV 于 ROS 分布式特点,通过多 AGV 共用一份构建的工
有序通过交叉路口,但是没有考虑多 AGV 是否能够同 作区间环境地图,可以在地图中实时规划任务 AGV 的
时或者部分同时通过交叉路口。 行驶路径,并获取 AGV 在整个工作区间环境的相对位
结合车间多 AGV 物料运输现状,针对上述问题, 置信息。
本文设计了一种基于双车道十字交叉路口的队列控
制算法,在 ROS 下利用二维激光雷达 SLAM 算法对工
作区间环境进行地图构建与即时定位,在地图的基础
上规划 AGV 可行驶的全部路径,在每个交叉路口设置
队列控制区,即 Qin 区和 Qout 区。通过设计合理的队
列数据结构,结合协同控制算法,能够保证多辆 AGV
在不同的冲突模型下高效通过交叉路口。

1 环境建模与地图标定
1.1 环境地图构建
SLAM 算法是现阶段发展比较成熟的算法,根据
不同传感器种类可以分为激光 SLAM、视觉 SLAM( VS-
LAM) 和多传感器融合 SLAM。SLAM 算法可以在室
图1 AGV 工作区间环境地图及路径规划
内、室外、空 中 和 水 下 等 多 种 场 景 应 用。 对 于 视 觉
SLAM 来说,其应用场景更广,并且可以提取语义信 1.2 路径规划
息,但是其工作时受光影响大,运算量较大,在暗处和 对于单个 AGV 的路径规划,可以利用已经存在的
无纹理区域无法工作,构建的地图难以直接应用于路 比较成熟的算法快速求出最优路径; 但是如果多 AGV
径规划和导航,不适合用来进行室内 AGV 的定位与导 协同作业时仅按照单 AGV 路径最优求解,则会出现路
航。激光 SLAM 可靠性和建图精度较高,能够有效地 径冲突。因为外界的环境是复杂的,故依靠算法规划
解决室内 AGV 的即时定位与环境地图构建问题,其生 路径,存在着很大的不确定性。 为了提高稳定性以及
成的二维栅格地图可直接用于路径规划和导航。 由 限制车辆的自由度,本文在构建好的工作区间环境地
于激光 SLAM 和视觉 SLAM 各有优缺点,因此多传感 图上为车辆规划合理行驶路线( 见图 1) 。每一条路径
器融合的 SLAM 方案将是未来发展的必然趋势。 的转折点都对应一个 X、Y 坐标信息,每个 AGV 接到
[11] *
目前激光 SLAM 算法根据所采用的数学思想 运输任务后,根据起始点和目标点,利用 A 算法处理
可以分为 2 类,即 基 于 滤 波 器 和 基 于 图 优 化 的 激 光 思想,以已经规划好的路线连接点为采样节点,规划
SLAM。其中 Gmapping 作为目前使用最为广泛的二维 出一条最优的车辆行驶路径。
34
牛秦玉,等: 基于 ROS 的多 AGV 在交叉路口下协同控制策略 2020 年第 10 期

1.3 路口冲突模型 2 号 AGV 通过 G 车道右转进入 D 车道,3 号 AGV 通


在实际的大型智能化车间中,多 AGV 同时工作 过 E 车道右转进入 B 车道, 4 号 AGV 通过 C 车道右转
时,单行道的路径布局会产生严重的路径冲突以及死 进入 H 车道,
4 辆 AGV 相互约束。第 3 类: 部分约束,
锁问题,从而导致运输效率较低; 因此,通常使用单行 部分同时行进,如图 2c ~ 图 2f 所示。 当 4 辆 AGV 同
道和双行道并存的混合路径布局,以解决运输效率低 时到达十字交叉路口时,其中有部分 AGV 的行走路径
的问题,但是仍然存在着多 AGV 同时到达交叉路口的 不冲突,可以同时通过该路口,剩余车辆处于等待状
避让问题。十字交叉路口冲突模型如图 2 所示。 态。对于第 3 类冲突模型有多种路径冲 突 类 型,图
2 中只列举 4 种。

2 协同控制策略及算法流程
2.1 队列控制区的定义
基于十字交叉路口冲突模型,本文提出了一种交
叉路口队列控制区划分的协同控制思想。 队列控制
区划分示意图如图 3 所示。队列控制区主要是依据队
列先入先出这种特殊的数据结构,通过在每一个交叉
路口设置 Qin 区和 Qout 区,即入队区和出队区,来标
识每一辆 AGV 在到达和通过交叉路口时的状态。 其
中 Qin 区的长度 d in 标明了特定车体尺寸以及车载传
感器设定的安全刹车距离。 根据 AGV 的行驶速度选
择合理的 d 值,能够保证在 AGV 进入 Qin 区刹车后与
交叉路口有合适的距离,这样既避免了当 AGV 进入
Qin 区后因过早停车而导致继续通过交叉路口时花费
的时间过长、效率低的问题,也避免了因停车较迟而
造成其冲出 Qin 区影响其他 AGV 的行驶。Qout 区则
标定了 AGV 是否安全通过交叉路口,其长度 d out 表示
AGV 的长度,即车尾完全进入该区之后则代表该 AGV
通过交叉路口。L 1 表示十字交叉路口长度。

图3 队列控制区划分示意图

在确定 Qin 区长度 d in 值时,假设 AGV 的长度为


L,最高车速为 v max ,AGV 进入 Qin 区之后以加速度 a
进行减速刹车,则 d in 为:
图2 十字交叉路口冲突模型
v2max
d in = 0.5L + ( 1)
本文将双车道十字交叉路口避让问题分为 3 类。 2a
第 1 类: 4 辆 AGV 同时通过交叉路口且路径互不约 此时,Qout 区长度 d out = L。
束,如图 2a 所示。 当 4 辆 AGV 同时到达十字交叉路 2.2 队列控制区与 AGV 位置关系
口时,1 号 AGV 左转,2 号 AGV 左转,3 号 AGV 左转, 队列控制区用 Qin 和 Qout 表示,其数量为 m。队
4 号 AGV 左转,此时 4 辆 AGV 互不冲突,可同时通过 列控制区的端点用 t 表示,tin ks 、tin ke 分别为第 k 个入队
交叉路口。第 2 类: 4 辆 AGV 同时通过交叉路口时相 区的起始端点和终止端点,tout ks 、tout ke 分别为第 k 个
互约束,如图 2b 所示。 当 4 辆 AGV 同时到达十字交 出队区的起始端点和终止端点。 端点坐标分别表示
叉路口时,1 号 AGV 通 过 A 车 道 右 转 进 入 F 车 道, 为 ( tin ksx ,tin ksy ) 、( tin kex ,tin key ) 和 ( tout ksx ,tout ksy ) 、
35
2020 年第 10 期 现代制造工程( Modern Manufacturing Engineering)

( tout kex ,tout key ) 。AGV 用 v 表 示,其 数 量 为 n。 每 辆 结合任务路径和当前路段考虑该 AGV 是继续行驶还是


AGV 的实时坐标为 ( a ux ,a uy ) ,队列控制区与 AGV 的 停在 Qin 区避让。交叉路口行走示意图如图 5 所示。
位置关系分为 AGV 在队列控制区内和 AGV 在队列控
制区外。AGV 入队和出队分别用 i 和 o 表示,i ∈ { 0,
1} ,o∈{ 0,
1} ,则第 k 个队列控制区是否有 AGV 进入
可以用式( 2) 和式( 3) 表示:

ik = { 0
1
第 k 个入队区无 AGV 进入
第 k 个入队区有 AGV 进入
( 2)

ok = { 1
0 第 k 个出队区无 AGV 进入
第 k 个出队区有 AGV 进入
( 3)

对于任何一辆 AGV v u 与任一队列控制区 Qin 区


和 Qout 区,二者的位置关系可通过式 ( 4) 或式 ( 5) 进
行判断,如果该式成立,则表示 v u 在 Qin 区或 Qout 区
内,否则 v u 在 Qin 区或 Qout 区外。 图5 交叉路口行走示意图

{
tin ksx <a ux <tin kex
( 4) 当有 AGV 到达交叉路口时,将该 AGV 信息存入
tin ksy <a uy <tin key

{
相应的队列内部结构体数组,队列控制算法流程如图
tout ksx <a ux <tout kex
( 5) 6 所示。
tout ksy <a uy <tout key
2.3 队列设计
队列是一 种 特 殊 的 线 性 表,由 队 首 指 针 控 制 入
队,由队尾指针控制出队,因最先进入队列的节点将
最先出队,所以队列具有先入先出的特征。 本文依靠
这个特征设计队列控制区,即一个队列控制区监管一
个交叉路口。 队列内部的每一个单元都是一个结构
体数组,其数据结构设计如图 4 所示,其中 Agvtask 结
构体中包含 7 个属性,即 agvId、x、y、path、currentPath、
qoutId 和 status,分别表示当前 AGV 的编号、X 坐标、Y
坐标、行走 路 径、当 前 所 在 路 段、Qout 区 编 号 和 行 车
状态。

图4 队列内部结构体数组数据结构设计

2.4
算法流程
AGV 在执行任务过程中每到达一个交叉路口都
会携带该 AGV 当前行驶的动态车辆信息以及此次任
务行驶路径信息,并且将其带入该交叉路口所对应的
图6 队列控制算法流程
队列里。每辆 AGV 到达交叉路口是否继续行驶由监
管该交叉路口的队列决定。 当 AGV 进入 Qin 区后会 第一辆 AGV 进入交叉路口 Qin 区时,不改变其行
36
牛秦玉,等: 基于 ROS 的多 AGV 在交叉路口下协同控制策略 2020 年第 10 期

车状态,后面的 AGV 会根据执行任务路径信息判断是 动规划出一条路径 u-r-v-x,并将其路径信息存入数据


否与前车路径在交叉路口冲突,如果不冲突,则不改 库中,同时在数据库中设置 agv_id = 1,2,3 的 AGV 参
变行车状态,否则停车避让。AGV 行车或停车判断算 数信息,使得其执行任务路径不冲突且同时通过该交
法流程如图 7 所示。 叉路口 ,第 1 类互不约束模 型 数 据 库 参 数 配 置 如 表
2 所示 。 在设 置 AGV 参 数 时 ,只 需 设 置 p _ x、p _ y、
t_path 信息 ,status 信 息 会 自 动 根 据 程 序 将 行 走 状 态
更新到数据库 。 当该实验 AGV 行走到 Qin 区时 ,根
据该 AGV status 信息可判断是否继续行驶通过该交
叉路口 。

表2 第 1 类互不约束模型数据库参数配置
agv_id p_x p_y t_path status
1 6.274 4.105 f-d-g-o-t-y 1
2 7.198 3.645 q-w-p-k-l 1
3 6.831 2.910 c-n-m-e-z 1
4 5.832 3.167 u-r-v-x 1

其次,对第 2 类相互约束模型进行验证。 设置数


据库中 agv_id = 1,
2,3 的 AGV 的 p_x、p_y 和 t_path 信
息,使得其同时通过交叉路口并且行驶路径在交叉路
口相互约束。在上位机中给定 4 号实验 AGV 目标点,
图7 AGV 行车或停车判断算法流程
规划出路径为 u-e-w-p-k-l,当 AGV 行走到 Qin 区时,
其 status 值变为 0,此时停车避让。第 2 类相互约束模
3 实验验证及结果分析 型数据库参数配置如表 3 所示。
本文以分布式 ROS 为开发平台,以 SQL Server 数 表3 第 2 类相互约束模型数据库参数配置
据库为数组转存终端, 利用 C ++编写的协同控制算法结 agv_id p_x p_y t_path status
合 ROS 中 Navigation 源码导航功能包算法对 3 类避让 1 6.376 4.228 f-d-g-o-t-r-e-z 1
问题进行实验验证。采用实验 AGV 结合数据库终端进 2 7.779 3.188 q-w-t-r-v-x 0
3 6.732 2.679 c-n-m-e-w-t-y 0
行参数调节测试,从而实现多 AGV 同时到达交叉路口
4 5.917 3.167 u-e-w-p-k-l 0
的目的。该 AGV 配有二维激光雷达并搭载装有 ROS
系统的工控机。实验环境地图及其路径规划见图 1。 最后,对第 3 类部分约束模型进行验证,在数据库
数据库终 端 数 据 转 存 表 设 计 如 表 1 所 示,其 中 中设置参数满足第 3 类部分约束模型的条件后,4 号
agv_id 为 AGV 的编号并且设置为主键,p_x 为该 AGV AGV 获得任务路径为 u-r-e-z,当其进入 Qin 区后,由
当前的 X 坐标,p_y 为该 AGV 当前的 Y 坐标,t _path 于和 2 号 AGV 路径不冲突,所以 status 值为 1,并且无
为该 AGV 当前执行任务的路径,status 为该 AGV 当前 需停车避让。第 3 类部分约束模型数据库参数配置如
的通行状态, 0 和 1 分别代表停车和行车。 表 4 所示。
表1 数据库终端数据转存表设计 表4 第 3 类部分约束模型数据库参数配置
列名 数据类型
agv_id p_x p_y t_path status
agv_id int
1 6.376 4.228 f-d-g-o-t-r-u 0
p_x float
2 7.198 3.645 q-w-t-y 1
p_y float
t_path ntext 3 6.732 2.679 b-m-e-w-q 0
status int 4 5.832 3.167 u-r-e-z 1

首先,对第 1 类互不约束模型进行验证。 在上位 为了验证该协同控制算法在任何冲突模型下都


机中给 agv_id = 4 的实验 AGV 指定一个目标点后,自 能高效地解决避让问题,并且直观地显示出算法设计
37
2020 年第 10 期 现代制造工程( Modern Manufacturing Engineering)

的优越性,本文设计了 38 种 AGV 验证实例,依据上文 结合本文所设计的算法将是下一步研究方向。


的验证思路对 AGV 到达交叉路口后从进入 Qin 区到
进入 Qout 区的总时间进行统计分析。 在实验验证之 参 考 文 献:
前设置小车最大速度为 0.8 m / s,最大加速度和最大减 [1] 高冲.智能移动机器人技术现状以及开发研究[J]. 信息
2
速度均为 1 m / s ,设置 d in = 0.52 m,d = 0.2 m,L 1 = 1 m, 与电脑( 理论版) ,
2019( 6) : 130-131.
[2] 王震,范学慧. AGV 小车系统在自动化物流系统中的应
d out = 0.4 m。
用[J].南方农机,
2019,
50( 18) : 56.
对第 1 类互不约束模型设计了 9 种验证实例,第
[3] 赵宇琛.室内移动机器人的定位技术研究[J]. 制造业自
1 种是 AGV 直接通过交叉路口,不运行算法,用于与
2019,
动化, 41( 7) : 130-134.
另外 8 种进行比较,另外 8 种分别让实验 AGV 依次按 [4] 吴敬阳.基于激光雷达定位导航的多自主移动机器人系
第一、第二、第三、第四的顺序进入 Qin 区,并且重复 统研制[D].哈尔滨: 哈尔滨工业大学,
2017.
2 次实验。对第 2 类相互约束模型也设计了 9 种验证 [5] DRAGANJAC I,MIKLIC D,KOVACIC Z,et al.Decentralized
实例,验证方法和第 1 类相同。 对第 3 类部分约束模 Control of Multi-AGV Systems in Autonomous Warehousing
型,设计了 20 种验证实例,分别考虑到实验 AGV 出现 Applications[J]. IEEE Transactions on Automation Science

部分约束的全部可能。实验统计出该 38 种 AGV 验证 and Engineering,


2016( 9) : 1-15.
[6] 黄怀崧.仓储自动化多 AGV 控制系统与调度算法的研究
实例通过交叉路口的时间,如图 8 所示。
[D].厦门: 厦门大学,
2018.
[7] 丁一,兰雨雁,林国龙.自动化码头双小车岸桥-AGV 协同
调度研究[J].现代制造工程,
2018( 12) : 55-61.
[8] 李平,张贤明,陈彬. 双机器人系统的协调轨迹规划问题
研究[J].现代制造工程,
2013( 11) : 25-29.
[9] 王子意. 多 AGV 系 统 的 路 径 规 划 与 调 度 算 法 的 研 究
[D].北京: 北京邮电大学,
2019.
图8 通过交叉路口时间 [10] 李珍惜.基于激光导航 AGV 路径规划与避障算法的研
究[D].西安: 西安科技大学,
2019.
基于图 8 实验数据分析,第 1 类和第 2 类冲突模 [11] 危双丰,庞帆,刘振彬,等. 基于激光雷达的同时定位与
型各实验 8 次通过交叉路口平均时间分别为 2.531 s 地图构建方法综述[J / OL]. 计算机应用研究[2018-12-
和 3.924 s。第 3 类冲突模型实验 20 次通过交叉路口 21]. http: / / kns. cnki. net / kcms / detail /51. 1196. TP.

平均时间为 4.986 s。 第 1 类和第 2 类冲突模型对比 20181219.1936.001.html.

实验时间分别为 2.530 s 和 3.921 s,与 8 次实验平均


时间较为接近,体现了算法的优越性。

4 结语
本文提 出 的 基 于 队 列 控 制 的 交 叉 路 口 下 的 多
AGV 协同控制策略经过实验验证具有较强的实用性。
其采用激光 SLAM 的定位方式,避免了因铺设磁条而
导致车间地面 环 境 被 破 坏; 以 数 据 库 为 数 据 转 存 终
端,降低了程序模块之间的耦合度以及车辆调试的难
度; 应用队列控制思想,提高了多 AGV 运输的工作效
率,较好地解决了双车道十字交叉路口的避让问题, 作者简介: 牛秦玉,博士,教授,硕士生导师,主要研究方向为汽车电控

并且该队列控制思想可以应用于单车道路口避让以 和机电一体化控制。
畅科剑,通信作者,硕士研究生,主要研究方向为智能移动机
及其他路口避让问题; 为解决大型车间内多 AGV 协同
器人导航系统以及多车协同控制。
控制问题提供了研究基础。 李珍惜,硕士研究生,主要研究方向为汽车智能驾驶。
定位问题是多 AGV 协作的关键,本文仅以激光雷 E-mail: 1315129111@ qq.com
达作为主要定位传感器,多传感器融合的 SLAM 方法 收稿日期: 2020-01-09

38

You might also like