ELAI S.r.l.

机器人在检查过的位姿都无碰撞,途中还会撞上吗?

路径不只是位姿列表。可执行几何算例解释最小距离、采样与余量,不作物理安全保证。

机器人在检查过的位姿都无碰撞,途中还会撞上吗?

问题藏在两次成功检查之间

机器人要把工具移到夹具另一侧。程序检查一系列位姿,未发现碰撞,但运动途中工具穿过销钉所占空间。这并不矛盾:检查的是孤立点,机器人还走过点间路径。实际问题是:离散检查何时能证明中间路径也畅通?

摘要。把问题简化为平面圆形工具绕圆形障碍运动,计算六次检查漏掉的碰撞,推导连续最小距离,并用余量和采样间距构建充分条件。区分观察到碰撞、在模型内几何证明无碰撞、结论不足三种结果。教学模型不包含完整机械臂、传感不确定性或真实机器人行为,用于理解“所检查位姿均有效”仍缺什么信息。

从工具体积转到中心距离

坐标单位米。工具中心从a=(0,0)直线到b=(1,0),销钉中心c=(0.5,0)。工具半径0.02米、障碍半径0.04米。中心距不大于半径和R=0.06米时圆盘接触或重叠。因此可把工具当作点并将障碍扩张0.02米。这对两个圆盘精确,不适用于任意机器人几何。

定义间隙g(p)=||p−c||−R,范数是欧氏距离,二维用勾股定理。g正表示分离,零为接触,负为重叠。模型将接触也算碰撞。间隙单位长度,不是概率,也不描述冲击力、速度或接触后果。

六个畅通位姿,模型内仍有碰撞

将一米路径等分五段,在x=0、0.2、0.4、0.6、0.8、1检查。最近的0.4、0.6距障碍中心0.1米,间隙0.04米,全部通过。但x=0.5与障碍中心重合,间隙−0.06米。碰撞区间[0.44,0.56]完全在采样点之间。

四等分会包含x=0.5并检测碰撞。改变网格时从五次增加到六次检查,反而可能漏掉原先检测到的事件。这不是说细分无用,而是非嵌套网格的检测结果不保证单调。保留旧点再增新点的细化则会保留已观察碰撞。

求整条线段上的最近点

此简单几何无需采样。线段点p(u)=a+ud,d=b−a,无量纲u在0到1间表示进度。最小化距离平方||a+ud−c||²可免开方且不改变最小点。对u求导得2d·(a+ud−c),设零得到向无限直线的投影。

u₀ = [(c − a)·d] / (d·d) u* = min(1, max(0, u₀)) g_min = ||a + u*d − c|| − R

d·d为线段长度平方。将u₀限制到[0,1]很重要,投影落在端点外时最近点就是端点。a=b时分母0,应直接检查单点。本例u*=0.5、g_min=−0.06米。每对线段-障碍需常数次运算,直接查M个障碍为O(M)。

间隙何时让采样足够

线段与圆盘的精确计算方便,复杂几何未必可用。可让采样不仅给是非,还给周围余量。点移动一厘米,到障碍距离最多减少一厘米。这由三角不等式得出,称常数为1的Lipschitz连续性。

|g(p) − g(q)| ≤ ||p − q||

p、q在同一坐标系和单位,减去常数R不改变不等式。若最大沿线段间距为Δs,每个路径点到邻近某采样点至多Δs/2。设采样最小间隙m,则未检查点间隙不低于m−Δs/2。这把离散信息连接到连续结论。

g_min ≥ m − Δs/2 m > Δs/2 ⇒ g_min > 0

第二行是充分非必要条件。通过则在假设内证明无碰撞,未通过不等于碰撞,只代表样本不足以定论。仅布尔接口可能掩盖区别。应区分观察到碰撞、严格正下界、仍不确定区间。最后一种可保留原点并细分重查。

畅通路径也可能需要更多工作来证明

将线段移到y=0.08米,中心最小距离0.08米,连续间隙0.02米。五等分最近采样仍x=0.4、0.6,间隙约0.06806米,看似大,但Δs/2=0.1米,下界约−0.03194米。精确检查知道畅通,此网格证书却尚不能证明。

二十六等分包含中心,采样最小间隙0.02米,半间距约0.01923米,下界0.000769米为正。路径并未变得更空,而是获得足够信息证明本来存在的性质。因此检查成本本身不是物理风险度量。

高度y(米)分段数采样最小(米)精确最小(米)下界(米)
04−0.060000−0.060000−0.185000
050.040000−0.060000−0.060000
0.0850.0680620.020000−0.031938
0.08260.0200000.0200000.000769
实线为连续间隙,点为五等分的六次检查。中心路径的所有点都在零上方,曲线却在两点间降到零下;抬高路径连续最小值仍为正。合成几何计算。
实线为连续间隙,点为五等分的六次检查。中心路径的所有点都在零上方,曲线却在两点间降到零下;抬高路径连续最小值仍为正。合成几何计算。

从图形到机器人:不能跳过的假设

本例点代表直线平移工具。关节角插值一般不产生工具中心直线,工具畅通时其他连杆仍可能碰撞。迁移需检查全部刚体几何与规划器真实插值。关节空间Lipschitz界需把角变化联系到物理点位移,不能直接沿用常数1,更不能弧度减米。

几何也是估计。模型间隙0.02米,若相对位置误差有已验证上界0.005米,预留后稳健模型剩0.015米。这里0.005仅假设,无依据的界不是保证。形状误差、挠曲、延迟、动态障碍需其他项或模型。几何模拟不证明协作单元安全,也不替代真实系统验证与适用要求。

有用接口应能说“尚未证明”

OMPL区分状态有效性与状态间运动有效性,文档指出粗离散可能跳过无效状态、过细增加工作,若有连续检查可使用适合的运动验证器。这正是本文概念区别。未运行OMPL或比较规划器;附代码仅隔离几何,检查公式、网格与边界案例。

答案是可以:每个检查位姿有效,途中仍可穿过障碍。在模型内排除需连续运动检查,或以可靠间隙变化界联系采样间距。界不足时应答不确定,而非畅通。重点不是盲目增点,而是知道检查证明何种性质与假设。这与EL-AI明确的未来工业协作机器人兴趣相关,不表示已在其机器人上验证。

OMPL — State Validity Checking, StateValidityChecker, DiscreteMotionValidator and continuous motion checking; consulted 30 September 2026.

片段复现采样余量与充分准则。完整归档包含精确投影、零长线段、线段外投影、切触、39组高度-网格组合及曲线。全为确定性,无种子、客户数据或硬件测量。10^−12米数值容差防止舍入把接触判正,不是机器人物理安全余量。

import math
obstacle = (0.5, 0.0)
radius = 0.06
def clearance(x, y):
    return math.dist((x,y), obstacle)-radius
for n in (4,5,26):
    for y in (0.0,0.08):
        smallest = min(clearance(i/n,y) for i in range(n+1))
        lower_bound = smallest-1/(2*n)
        print(n, y, round(smallest,6), lower_bound>1e-12)

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 9 月 30 日。