这是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:Q→2AP所标记
连接这些状态的边集合为
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:Z≥→Q∪E 表示智能体 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}l∈J 表示对智能体编队的一种分组
- 同步轨迹 s J ′ = ∪ j ∈ J ′ s j s_{J'}=\cup_{j\in J'}s_j sJ′=∪j∈J′sj表示的是一个分组内所有智能体的轨迹合并项
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行大致解释一下:
- 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 c∈Capmince(α,v0)c≥0
- 如果在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怎么用的,暂且当他是一个优化器吧
- 文章结构很乱,实验和结论也不单独分出来