Angle-based localization and rigidity maintenance control for multi-robot networks under sensing constraints. Establishes equivalence between angle rigidity and bearing rigidity.
本文研究了在感知约束下的多机器人网络的角度定位与刚性维持控制问题。首次建立了角度刚性与方位刚性之间的等价关系,为基于纯角度测量的机器人编队控制提供了理论基础。
在2D和3D空间中,当所有机器人的位置不在一条直线上时:
这意味着仅使用角度测量即可实现完整的刚性图控制。
class RigidityController:
def __init__(self, graph, desired_angles):
self.G = graph # 通信图
self.theta_d = desired_angles # 期望角度
def compute_control(self, measurements):
# 计算角度误差
angle_errors = []
for (i, j, k) in self.angle_triplets:
theta_ijk = measurements.get_angle(i, j, k)
error = theta_ijk - self.theta_d[(i, j, k)]
angle_errors.append(error)
# 刚性梯度控制律
control = -self.K_r @ self.rigidity_jacobian().T @ angle_errors
return control
def check_rigidity(self):
# 检查图的角度刚性
return rank(self.angle_rigidity_matrix()) == 2*n - 3
R_a(θ) ∈ ℝ^{|E_a| × 2n} 其中 E_a 是角度约束集合
系统稳定当且仅当:
rank(R_a(θ*)) = 2n - 3