【阅读随笔】Fast Decomposition of Temporal Logic Specifications for Heterogeneous Teams

文章提出了使用SMT进行CaTL(CapabilityTemporalLogic)公式分解的方法,以解决异构机器人编队控制的效率问题。通过将CaTL公式转化为语法树并应用特定的转换策略,文章展示了如何找到满足原公式要求的子问题解。实验表明,增加机器人数量可以减少找到解决方案的时间,证实了该方法的有效性和效率优势。
摘要由CSDN通过智能技术生成

这是Rewrite-based的前传,基于SMT完成STL公式的分解。

[1] K. Leahy, A. Jones, and C.-I. Vasile, “Fast Decomposition of Temporal Logic Specifications for Heterogeneous Teams,” IEEE Robot. Autom. Lett., vol. 7, no. 2, pp. 2297–2304, Apr. 2022, doi: 10.1109/LRA.2022.3143304.

Overview

  • 针对CaTL(Capability Temporal Logic),用于描述智能体的能力
  • 用SMT同时完成公式分解与智能体编队(队伍里机器人种类不同)
  • 探究效率与保守型之间的trade-off

1 Intro

  • 本文解决的是针对大型异构的机器人编队的控制计算效率过低的问题
  • 本文所针对的CaTL并不是首次提出,Jones et el. (2019)使用中心化方法解决了对机器人编队的规划问题,本文使用分布式方法
  • Banks et al. (2020)解决了同构机器人编队的任务分解和控制问题,本文解决异构

本文工作

  • 提出CaTL分解的条件
  • 提出基于SMT的分解算法

2 Models and Specification

首先定义以下几个名词

Environment

环境定义为一个转移系统,有限大小的状态空间为 Q Q Q,状态被标签函数 L : Q → 2 A P L:Q\to 2^{AP} L:Q2AP所标记
连接这些状态的边集合为 E \mathcal E E,边上的权重表示状态与状态之间发生转移所消耗的时间。

Agent

  • 单个智能体定义为一个元组 A j = ( q 0 , j , C a p j ) A_j=(q_{0,j},Cap_j) Aj=(q0,j,Capj) 记录下其初始状态和能力
  • s j : Z ≥ → Q ∪ E s_j: \mathbb Z_{\geq}\to Q\cup \mathcal E sj:ZQE 表示智能体 A j A_j Aj产生的状态轨迹
  • n q , c ( t ) n_{q,c}(t) nq,c(t)表示在 t t t时刻在 q q q状态下具有能力 c c c的智能体数量
  • { J l } l ∈ J \{J_\mathscr l\}_{\mathcal l\in\mathcal J} {Jl}lJ 表示对智能体编队的一种分组
  • 同步轨迹 s J ′ = ∪ j ∈ J ′ s j s_{J'}=\cup_{j\in J'}s_j sJ=jJsj表示的是一个分组内所有智能体的轨迹合并项

CaTL

  • 与传统的STL不同,CaTL的原子单元为task而不是命题
    在这里插入图片描述

  • task定义为一个元组 T = ( d , π , c p ) T=(d,\pi,cp) T=(d,π,cp), 这样一个元组定义了 d d d时间内,在被标记为 π \pi π的状态下需要有各种能力的机器人的数量,其布尔语义定义如下
    在这里插入图片描述
    在下面的例子中,右边的表格就是 c p cp cp函数
    在这里插入图片描述

  • CaTL的量化语义定义为:任意一个状态下的任何一种能力的智能体数量的最小裕量
    在这里插入图片描述

3 Problem Statement

接下来正式定义分解问题,即分开求解子问题的状态轨迹合起来需要满足分解前的原公式,下式中 S y n t h Synth Synth为一个已知的控制综合方法
在这里插入图片描述

求解思路

求解上述问题的大致思路用以下伪码表示
在这里插入图片描述
总共4行大致解释一下:

  1. EncodeSMT

在这里插入图片描述

4 Syntax Trees and Agent Assignments

首先将CaTL公式转化为语法树的形式,如下图在这里插入图片描述
编队就是给语法树的每个结点分配机器人,如上图 { } \{\} {}中标注所示
编队函数 α ( v ) \alpha(v) α(v)将结点映射到机器人集合上
按道理来说子结点用的机器人肯定是从父结点的机器人集合中选择的,但是细心的朋友应该发现了上图中 T 2 T_2 T2凭空蹦出了父节点没有的 A 4 , A 5 A_4,A_5 A4,A5,是打错了还是因为父节点是 ∨ \lor 吗?看看后文有没有给出解释。

这里又定义了一个名词capability access,表示在分配给结点 v v v的机器人集合中,所有能力的机器人数量裕度
在这里插入图片描述

  • 这里 α \alpha α是一种编队方式,用来获取当前结点所分配的机器人集合
  • c e ce ce以递归形式定义,到叶子结点终止
  • β \beta β是一个确定的选孩子函数


上图显示了一个例子, [   ] [ \ ] [ ]中的就是在该种编队方法下的capability acess

Eligible assignment

记作 α ⊨ e T ϕ \alpha\models_e\mathcal T_\phi αeTϕ,表示 [   ] [\ ] [ ]中所有的元素都非负,即每种能力的机器人都不缺,即 min ⁡ c ∈ C a p c e ( α , v 0 ) c ≥ 0 \min_{c\in Cap}ce(\alpha,v_0)_c \geq 0 cCapmince(α,v0)c0

  • 如果在t时刻将所需要能力的机器人在任务区域内均分,则鲁棒度 ρ a ( s 0 , J , t , T ) \rho_a(s_{0,J},t,T) ρa(s0,J,t,T)达到最大值
  • c e ce ce的定义可知, c e ce ce为鲁棒度的上线
  • 鲁棒度 ρ a \rho_a ρa的计算使用同样的递归规则计算得到
  • 文中证明了如果 ρ a ( s J , 0 , ϕ ) ≥ 0 \rho_a(s_J,0,\phi)\geq 0 ρa(sJ,0,ϕ)0 c e ( α [ s 0 , J ] , ϕ ) ≥ 0 ce(\alpha[s_{0,J}],\phi)\geq 0 ce(α[s0,J],ϕ)0

5 Syntax Tree Transformations

这一部分介绍了CaTL语法树可以进行的3中转换方式以及其使用条件

Graph operators for decomposition

首先定义对CaTL语法树的3种转换方法,转换后的CaTL能够保证原公式的满足性,即只会变得更加严格

  • 剪枝:存在 ∨ \lor 结点的时候只保留一个使得 α ′ ⊨ T ′ \alpha'\models\mathcal T' αT的孩子,其他的删掉
    在这里插入图片描述

  • 替换:由于 U \mathcal U U比较难拆分,所以将其改写为更加保守的形式 □ [ 0 , b ) ϕ 1 ∧ ⋄ [ a , b ) ϕ 2 \square_{[0,b)}\phi_1\land \diamond_{[a,b)}\phi_2 [0,b)ϕ1[a,b)ϕ2
    在这里插入图片描述

  • 并行化:对于 ∧ \land 的子结点,如果子结点所分配的机器人没有重叠部分,则能够并行处理这几个结点
    在这里插入图片描述

6 Agent Assignment as SMT

这一部分讨论了编队分配函数 α \alpha α的求解方法

CaTL Formula Encoding

这里又定义了一个 i n d e p e n d e n c e independence independence的概念,如果两个任务之间不存在资源的调配,则称 I n d ( α , v ) : = T r u e Ind(\alpha,v):=True Ind(α,v):=True,接下来依次介绍各种算子的结点编码方法

  • 对于 ∨ \lor ,具体用哪一个子结点计算eligiblity以及independence取决于 C h o o s e Choose Choose算法的选择
  • 对于时序算子 ⋄ [ t 1 , t 2 ) \diamond_{[t_1,t_2)} [t1,t2),其在语法树上只有一个子结点,比较简单
  • 对于 U \mathcal U U ∧ \land ,取子结点的计算结果的交集

Top level encoding

总公式的encoding组装如下,得到一个SMT问题
在这里插入图片描述

  • 其中 C o s t Cost Cost是一个缩放函数,用优化器求解以上SMT优化问题就能找到能够最大并行的机器人分配方法了

Decomposing Specification using Assignment and SMT

大概是这个步骤:

  • 得到编队分组方式 α \alpha α以及语法树 T ϕ \mathcal T_\phi Tϕ之后,
  • 先后对每个结点进行剪枝、替换以及并行化操作
  • 得到子树 { τ 1 , … , τ N } \{\tau_1,\dots,\tau_N\} {τ1,,τN}
  • 从每个子树的根节点处得到子公式 ϕ i \phi_i ϕi
  • α i \alpha_i αi处得到这个任务所分配的机器人编队 J i J_i Ji
    在这里插入图片描述

Simulation and Result

文章进行了scalability实验,探究了机器人数量对分解效率的影响。
实验场景为5x5的网格,每个格子随机赋予label,机器人随机赋予能力 { ( c 1 ) , ( c 2 ) , ( c 1 , c 2 ) } \{(c_1),(c_2),(c_1,c_2)\} {(c1),(c2),(c1,c2)}其中的一个

“In general, increasing the number of agents decreases the time to find a solution.” (Leahy et al., 2022, p. 7)

机器人越多,找到解的速度越快,因此具有标签的格子也需要响应增加,这一变量怎么控制的文中并没有交代清楚。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • Figure 4: 4条曲线分别对应在不同机器人编队大小下分解和不分解的第一个可行解的得到时间以及稳定解的得到时间
  • Table 1: 显示平均时间和最大时间
  • Table 2: 时间(分解时间和MILP求解控制律的时间之比,为了体现分解的时间可以忽略不计)及鲁棒度对比
  • Figure 5: 同样是分解和MILP求控制律的时间对比,使用初始解和稳定解的两种情况

上面的图和表实在是画得不太漂亮,比较数据太难看了,总之就是说明自己的分解能够加速,而且用于分解的时间与MILP求控制律的时间相比不值一提。
还有为啥使用稳定解求MILP的时间更久了啊?


心得体会

  • 咱也不知道这里SMT怎么用的,暂且当他是一个优化器吧
  • 文章结构很乱,实验和结论也不单独分出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值