一种多机器人协作控制方法
第 卷第 期 年 月
文章编号 2 2 2
机器人 ×
∂
一种多机器人协作控制方法
孟伟 洪炳
韩学东
Ξ
哈尔滨工业大学计算机科学与技术学院 黑龙江哈尔滨
摘 要 提出了一种基于° 该方法主要包括两个模块 高层控制模 网模型的多个移动机器人协作控制方法 块 利用可达树≤ 和低层控制模块 ≤ ≤ 负责任务分配和再规划 ≤ 实现单个机器人的控制逻辑 对° 并给出了消除死锁的方法 仿真实验证明了该方法的有效性 网模型中的死锁进行检测
关键词 多机器人系统 协作 死锁° 网模型 中图分类号 ×° 文献标识码
ΑΧΟΟΡΔΙΝΑΤΙΟΝΧΟΝΤΡΟΛΜΕΤΗΟΔΦΟΡΜΥΛΤΙ2ΡΟΒΟΤ
∞ • 2 ÷∏ 2
(ΣχηοολοφΧομπυτερΣχιενχεανδΤεχηνολογψ,ΗαρβινΙνστιτυτεοφΤεχηνολογψ,Ηαρβιν , Χηινα)
τραχτ: ∏ 2 √ × √ √ Αβσ
√ ≤ ∏ ≤ ∏ ≤ × √ ≤ ∏ ° ∏ √ √ ∞¬ Κεψωορδσ: ∏ 2 °
1 引言(Ιντροδυχτιον)
随着机器人应用领域和范围的不断扩展 单机多器人在某些方面已经很难达到人们期望的要求 机器人协调与合作作为一种新的机器人应用形式日多机器人通过益引起国内外学术界的兴趣与关注
协调合作可以完成单机器人难以完成的复杂任务 而且可以提高工作效率 即使当机器人工作环境发多机器人之间仍可生变化或系统局部发生故障时
通过本身具有的协调与合作关系完成预定的任务 从研究的角度看 多机器人协调研究比单机器人增主要有≈ ∗ 加了许多新问题 复杂协调任务的描述 同一工作空间中多机器人协调和集中 多机器人协调系统的自适应控制 多机器人协调系统的负载分配 以多传感器为基础的数据检测和障碍描述 多机器人协调系统的建模和控制结构的模式 多机器人坐标间的标定 技术和为完成同一控制系统与多机器人协调系统的结合
多个机器人协作应具有鲁棒性! 灵活性! 低代任务
价和高性能的优点
这些系统可用于材料处理≈ ! 扫描工作≈ ! 卫星然而 由于随着机器人数探测≈ 和微空间的工作≈
机器人之间的交互的复杂度呈指数增长 量的增加
因而很难分析单个机器人的作用 也很难设计机器人的协作控制算法
本文提了一种多机器人协调控制的方法 通过该任务分解和协作使得多个机器人完成同一任务 受局部传感器信息驱动 主要方法基于° 网≈
高层控制模块和低层控制模块 高层包含两个模块
即控制模块完成多个移动机器人的全局控制规划 包括任务分配和任务更改规划 低机器人如何协作
包括层控制模块完成单个机器人的局部控制规划 仿真实验证明了该方作业规划和死锁检测及消除 法的有效性
Ξ基金项目 国家自然科学基金资助项目 国家 计划资助项目
收稿日期
第 卷第 期孟伟等 一种多机器人协作控制方法
2 多机器人协作控制模型(Μυλτι2ροβοτχο2
ορδινατιονχοντρολμοδελ)
多机器人的协作控制模型如图 所示 ≤ 负责任务的分配与再调整 ≤ 负责每个机器人的任它们之间通过通讯模块进行交互
务执行
低层控制模块负责完成单个机器人的控制规包括作业规划和死锁的检测及消除 机器人进行划
还需规划时除了要考虑高层控制模块分配的任务 要考虑与其它机器人的交互以及子任务的特点
为单个机器人设计控制逻辑的主要过程描述如下
如果传感器是打开的 相应的库所中就生≥ 成一个
利用° ≥ 网的 ⁄ 逻辑生成合成库所
根据机器人的分类状态决定左轮和右轮≥ 每个命令对应着一个库所 πι) 和一个变迁的速度
图 多机器人协调控制模型
ƒ ∏ 2
(Τι
根据机器人分类状态的重要程度来决定≥ 时间的优先级
根据事件的重要程度给每个变迁分配一≥ 个数字Τμ ,
将只有一个 的库所与所有的命令变≥ 防止一次选择两个以上命令 迁相连
在给变迁分配优先级时 级别越高分配的数字越先被触发的变迁分配的数字越小 因此 Τμ越小
即使发生冲突 通常也能产生一个唯一的控制命令 该过程根据子任务的数量从≥ 到≥ 反复
执行 构成了低层控制模块
2 1 高层控制模块
需要多个机器人协调合作 为了完成同一目标
高层控制模块主要完成任务分配和突发情况下机器
人的任务再规划 高层控制模块不仅考虑总体任务还要考虑每个机器人的状态 在该模块中利的完成 用° 网建立一个由多个子任务构成的总任务描述模型 ≤ 的设计过程可以描述如下
≥ :将总任务分解为ν个子任务, 即Ωοβϕ
ΕΩσυβι.
ιν
≥ :为子任务Ωσυβι分配库所πι, ι , , , , ν. ≥ :根据子任务的时序和优先级, 决定各个库
3 死锁检测及消除(Χηεχκινγανδελιμινατιν2
γοφδεαδλοχκ)
机器人在执行实际任务过程中 外界环境因素陷和机器人本身因素都可能导致机器人发生错误 死锁可以理解为机器人在一点反复执入死锁状态
如果不对机器人的某些参数进行调整 行同一动作
就可能导致子任务无法完成 为了便于对机器人的
状态进行监控 采用了基于可达树的死锁检测及消除的方法
3 1 死锁检测
所间的优先权关系, Β Β , Βν.
≥ :利用连接算子 ,将库所连结成代数式Ζ进行描述.
≥ :利用代数式Ζ与° 网间的映射关系 建立特定任务目标的高层控制模块的° 网模型 ≥ :确定初始状态υ . 将每个机器人作为一机器人的标号赋给 个 放入到° 网模型初始库所中
≥ :为了控制子任务的更改或完成, 可以增加
突发库所πκ. 如果需要改变或完成子任务, 分配一个 给库所πκ, 即可完成某个对应的子任务或者跳到相应的处理库所, 控制命令传给相关的机器人.
≥ :根据子任务的序列给库所和变迁加上标号.
表示° 可达树是° 网分析的方法之一 网
的可达标识集 对° 每 网的性能分析十分重要 但由于° 个° 网对应一棵可达树 网的可达集
因而可能会产生无限的可达树 为可能是无限的
可以利用下面三类节点来限制可达树的规模 端此
点! 重复节点! 覆盖节点
设υ为可达树的根, 即待处理节点, 构造可达树的算法可以描述如下:
≥ :设ξ为待处理的边界点, 其标识为υξ.
通过上述步骤建立高层控制模块的模型 其中
如果与子任务对应的库所中有 则子任务分配 通过带标号的 给带有相应标号的机器人 和它所在的库所来监视机器人的状态
2 2 低层控制模块
机 器 人 年 月
≥ :若在可达树中已经存在另一个节点ψ,且υξ υψ, 则ξ为重复节点.
≥ :若在节点ξ的标识υξ下, 没有任何一个
3 2 消除死锁的方法
由于死锁产生的原因通常是逻辑冲突或事件优动态的改变控制命令可以校正该错误 先级不正确
校正死锁错误的过程如下所示
≥ :在控制模型中的库所集Π中寻找只有一
变迁是使能的, 即对ΠτΙΤ, Δ(υξ, τ)无定义, 则ξ为一个端点.
≥ :如果在标识υξ下, ϖτΙΤ, 使得Δ(υξ, τ)有定义, 则产生一个新的节点ζ, 其标识υ可以通过以下步骤来确定:
( ) 如果υζ(π) Ξ, 其中πΙΠ,υζ(π) Ξ. ( ) 如果从初始标识υ 到υξ的有向路径上存在节点ψ,其标识υψ满足υψ Δ(υξ, τ), 并且ϖπΙΠ,υζ(π) Δ(υξ, τ)(π), 则υζ(π) Ξ.
(υξ, τ)(π), πΙΠ.( ) 否则, υζ(π) Δ
≥ :把节点ζ作为节点ξ的叶节点, 并设为边界点, 节点ξ设为内部节点.
如果所有的节点都已归入端点! 重复节点≥ 或内部节点 则过程结束 否则 转向≥
在° 网Χ Π,Τ, Ι, Ο, υ 中, 若存在可达标识υ和依次使能的变迁序列ΡΙΤ3, 则状态函
数定义为:Δ(υ, Ρ) υχ, 其中υ可按如下方式递推:
Δ(υ, τΚ) Δ(Δ(υ, τ), Κ) , ΚΙΤ3. 设ξ为° 网
个 的库所πι.
如果记忆的库所只有一个 转≥ ≥ 否
则 转≥
≥ :检查命令变迁, 即检查与库所相连的命
令, 其中不包括优先级最高的库所. 关于命令, 利用表 中所给的权值根据( ) 式计算死锁系数Β.
Β=当前运动状态+(与前一状态方向变化)
( )
≥ :将具有最高优先权的命令变迁Τϕ与具有
最大Β的命令变迁Τκ相交换. 如果新的事件优先级与前面的相同, 从记忆的合成库所中删掉具有最大
到≥ Β的命令变迁的输入库所. 重复≥
随机改变事件优先权 直到优先权与先前≥ 不同
根据新的事件优先权修改控制模型 通过≥ 选择控制命令 触发已经激活的变迁
执行所选择的控制命令 一旦机器人移≥ 返回修改前的控制模型 动
该过程解决了死锁问题 这样就保证了机器人如果出现死锁现象 也可以通过动态方式进行解决 使得机器人的行为更为流畅 如表 所示
表1 所选下个命令的权值
Ταβλε1 运动状态权值
与前一状态方向变化
权值
可达树中的叶节点(包含端点和重复节点) , 它所关
联的标识为υξ, 则基于可达树的死锁检测方法可以分两个情况进行讨论:
情况 :如果ξ是端点, 则° 网有死锁, 死锁标识为υξ, 导致死锁的运行过程为Ρ, Ρ是根节点到ξ的有向路径.
情况 :如果ξ为重复节点, 则:
( ) 消除中υξ对死锁特性无影响的Ξ分量; ( ) 如果υξ中不含Ξ分量, 则可按如下方法验证υ是否为死锁标识:ΠτΙΤ, 检查Δ(υξ, τ)是否有定义, 若对于ΠτΙΤ, Δ(υξ, τ)都没有定义, 则° 网有死锁, υξ为死锁标识. 导致死锁的运行过程是根节点到ξ的有向路径.
( ) 如果υξ中有Ξ分量, 则按如下步骤进一步分析:
#计算υχ, υδ, ∃υ;
#如果ΠπΙΠ,都使得∃υ(π)∴ , 则广义标识υξ中不含有可达的死锁标识, 也就是说° 网无死
Ωειγητοφνεξτχομμανδ向前
避障
停止并寻找目标
停止
相同
相反
4 实验及分析(Εξπεριμεντανδαναλψσισ)
实验中 两个机器人跟踪同一运动目标 任务目即跟踪运动目标任务和跟踪其标包括两个子任务
它机器人任务 为了有效地搜索对象 当机器人无法可以通过其它机器人的信息来判跟踪运动目标时
若未丢失 可以通过跟踪其它机器定目标是否丢失
人的方式跟踪目标 移动机器人不能准确地知道它和另一个机器人的位置! 速度和移动方目前的位置
因此机器人必须通过局部传感器信息来推断另向
锁;
#如果ϖπΙΠ,满足∃υ(π) , 记υδδ为死锁标
识, 则° 否则° 网有死锁 网无死锁
通过上述方法可以检测出° 网中是否存在可以避免机器人在实际执行中发生死锁 死锁现象
第 卷第 期孟伟等 一种多机器人协作控制方法
一个机器人的状态和运动目标的状态 为了解决逻事件的优先权由高到低依次为 有障碍! 避辑冲突
障! 目标在某个方向! 前进 左转 右转! 寻找目标! 传事件优先权的次序越小 变迁的标号就感器无数据 越小
两个机器人跟踪同一运动目标的高层控制模块
低层控制模块模型如 所模型如图 所示
示
当两个机器人被障碍物阻挡 无法发现运动目根据控制模型 机器人会在原地进行运动目标标时
但由于障碍的遮挡 它们总是无法看到目的搜索
最终机器人无法前进 陷入死锁状态 利用上面标
就可以解决该问题 表 给提出的消除死锁的方法
出了消除死锁时动态调整优先权的过程
图 双机器人跟踪目标任务的高层控制模块和低层控制模块
ƒ ≤ ≤ √
表2 事件优先权的调整
Ταβλε2 Αδϕυστμεντοφπριοριτψοφεϖεντσ事件优先权初始状态第一次第二次第三次
图 和图 分别给出了 号和 号机器
可以看出整体跟踪效人与运动目标的轨迹差值图
只是在运动目标绕过障碍物时 机器人丢失果较好
导致轨迹差别较大 在这两处由于后面的机器目标
因而两个机器人的跟踪顺人首先找到了运动目标
图 序发生了变化 给出了两个机器人的轨迹差可以看出 从丢失目标到重新跟踪的过程中两值图
个机器人的距离差值最大
其中 实线为 号机器人 实验结果如图 所示
虚线为 号机器人的行走路线 出发时的行走路线
运动目标的行走路线为起点ψ 号在 号的前面
ψ ψ≤ψ⁄ψ终点
5 结论(Χονχλυσιον)
本文提出了一种利用局部感知信息的多移动机给出了多机器人的协调控制模器人协作控制方法
该方法利用° 型以及死锁检测及消除的方法 网
清楚地表示了命令冲突和机器将控制模型可视化
通过改变控制命令模式和使用命令变迁人的状态
动态地生成控制命令 很容易检查控制命令的标号
另外 与命令变迁关联的数字很容易表重复或删除
通过控制命令模式和变迁标号的示事件的优先权
可以动态地改变控制命令 从而有助于开发再分配
图 实验结果
ƒ ∞¬ ∏
通用的错误校正方法
机 器 人 年 月
图 轨迹误差
ƒ ×
参考文献 (Ρεφερενχεσ)
≈ ≠ ∏ ⁄ ∏ ¬ ≈
∏ ∏ ≥ 29
≈ √ ∏
∏ ≈ ∏ 14
≈ ≤ ∏ ∏ ∏ 2
≈ ° ∞∞∞ ≤ ∏ ≈≤ ° √ ≈ × ∏ ⁄ εταλ √
≈ ° ∞∞∞ 2 ≤ ≥ ≤ ≈≤ √
≈ ⁄ ° ≤ ≤ εταλ
≈ ° ∞∞∞ ≥ ∏ ≤ 2 ∏ ∏ ≈≤ √
≈ ∏ ≤ × ∏ ∏ ∏ ∏ 2 ¬2
∏ ≈ ° ∞∞∞ ≤ ∏ ≈≤ √ ≈ ⁄° ∏ √ 2 2 ∏ 2
≈ ° ∞∞∞ ≤ ≥ ≤ ≈≤
电子工业出版社 ≈ 袁崇义 ° 网原理≈ 北京
作者简介
女 博士生 研究领域 智能机器人 智 孟 伟 2
能控制
男 教授 博士生导师 研究领域 空间 洪炳熔 2
机器人 虚拟现实! 机器人足球
男 博士生 研究领域 多智能体系统 智 韩学东 2
能控制 机器人足球
上接第 页
参考文献 (Ρεφερενχεσ)
≈ 西上雅郎 水岛敏文 −≤
≤ . ≈ ∏ ≥ 10
≈ ° ≥ 2 ∏ 2
∏ ≈ ≤ ∏ 2 ∏ ∏ 11
≈ ∏ ≤ ∏ 2
≈ ° ∞∞∞ ≤
∏ ≈≤
≈ √ √ ≈
2
王炎 爬壁机器人技术的应用≈ ≈ 刘淑霞 机器人 21
宗光华 一种新型机器人的机构稳定性分析≈ ≈ 王巍 机器人
21
作者简介
男 博士生 研究领域 自主移动机器人技 张厚祥 2
术 气动控制技术