第一讲:流形是什么

流形 = 局部像欧氏空间、整体可以是弯曲的空间

你站在地球表面,脚下感觉是平的(局部 R2\approx \mathbb{R}^2),但地球整体是弯曲的球面(S2S^2)。机器人的关节角 (θ1,θ2,,θn)(\theta_1, \theta_2, \ldots, \theta_n) 构成一个 nn 维流形——这就是物理流形 Mphy\mathcal{M}_{phy} 的具体实例。


前言:理论发展沿革

1827年,高斯在哥廷根发表《关于曲面的一般研究》,证明了著名的”绝妙定理”(Theorema Egregium):曲面的高斯曲率是其固有几何量,与嵌入方式无关。这意味着,一个二维生物只要测量内部距离,就能感知自身居住空间的弯曲程度——不需要借助外部的三维视角。这是微分几何史上的第一声惊雷。

1854年,27岁的黎曼在哥廷根做了一次改变数学史的就职演讲《论几何学基础中的假设》。在高斯面前,他把”流形”概念推广到任意维数,提出了黎曼度量张量,彻底解放了几何学:空间不再必须是平坦的欧氏空间。60年后,爱因斯坦正是用黎曼几何描述了引力场,将时空本身理解为一个四维弯曲流形。黎曼当年面向的听众中有高斯——那是数学史上最著名的一次”父子相传”。

20世纪初,庞加莱建立了代数拓扑,开始研究流形的全局性质——连通性、洞的个数、基本群。1944年,惠特尼(Whitney)证明了嵌入定理:任意光滑 nn 维流形都可以嵌入 R2n\mathbb{R}^{2n} 中。这给了工程师一个保证:高维关节空间尽管弯曲,仍可用足够高维的欧氏坐标来近似表达,神经网络的向量运算因此不会”出界”。

进入21世纪,机器学习界发现了流形假设:高维数据(图像、语音、关节轨迹)实际上集中在低维非线性流形附近。Tenenbaum 的 Isomap(2000)、Roweis 的 LLE(2000)、Hinton 的 t-SNE(2008)相继涌现——流形学习成为深度学习的数学前奏。EICPS 的物理流形 Mphy\mathcal{M}_{phy} 正是这条历史脉络在具身智能中的直接延伸:关节空间是弯曲的,控制律必须”顺着流形走”,而非在平坦的欧氏空间中硬算。


1 最简单的流形:圆 S¹

圆是1维流形嵌入在2维平面中:

S1={(x,y)R2x2+y2=1}S^1 = \{ (x, y) \in \mathbb{R}^2 \mid x^2 + y^2 = 1 \}

用参数 θ[0,2π)\theta \in [0, 2\pi) 描述圆上的位置——这就是局部坐标(Local Chart),是1维的。

import numpy as np

theta = np.linspace(0, 2*np.pi, 500)
x, y  = np.cos(theta), np.sin(theta)
# theta 是1维坐标,(x, y) 是2维嵌入 → 1维流形
S¹ 圆流形三视图
图1:S¹ 的三视图——全局圆弧(左)、局部放大近似直线(中)、参数坐标 θ(右)

图注:

  • 左图:圆 S¹ 是1维流形——整体弯曲,但点 P 处的切向量 TₚS¹ 只有1个自由方向(1维)。
  • 中图:局部放大后弧段几乎与切线重合——这就是”局部像 ℝ¹(直线)“的直觉来源。
  • 右图:用单一参数 θ 即可描述圆上任意点——流形维数 = 描述它所需的独立参数个数,与嵌入空间维数无关。

关键结论: 流形的维数 = 描述它所需的独立参数个数,与嵌入空间维数无关。


2 约束方程定义流形

流形通常由约束方程定义:

dim(M)=dim(环境空间)独立约束数\dim(\mathcal{M}) = \dim(\text{环境空间}) - \text{独立约束数}
流形环境约束维数工程实例
S1S^1R2\mathbb{R}^211关节角 θ\theta
球面 S2S^2R3\mathbb{R}^312方向向量
SO(3)SO(3)R3×3\mathbb{R}^{3\times3}63旋转矩阵
SE(3)SE(3)R4×4\mathbb{R}^{4\times4}106刚体位姿
关节空间Rn\mathbb{R}^n0nn机器人 DOF
S² 球面流形与约束方程
图2:S² 球面及切平面(左)、约束方程使维数降1(中)、常见流形维数速查表(右)

图注:

  • 左图:球面 S² 嵌在三维空间中,但每个点 P 的切平面 TₚS² 是2维的(一张平面),说明 S² 是2维流形。
  • 中图:加入约束方程 x²+y²=1 后,二维自由空间”坍缩”到一维圆弧——每增加1个独立约束,维数降1。
  • 右图:维数规律总结——dim(M) = 环境维数 − 独立约束数;从圆、球面到 SE(3)、机器人关节空间,均遵循此规律。

3 工程实例:2连杆机械臂

2连杆平面机械臂的配置空间是环面 T2T^2(两个圆的乘积):

Mphy={(θ1,θ2)θi[π,π)}=T2\mathcal{M}_{phy} = \{ (\theta_1, \theta_2) \mid \theta_i \in [-\pi, \pi) \} = T^2

正运动学将关节空间映射到任务空间(MphyR2\mathcal{M}_{phy} \to \mathbb{R}^2):

(xy)=(l1cosθ1+l2cos(θ1+θ2)l1sinθ1+l2sin(θ1+θ2))\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} l_1\cos\theta_1 + l_2\cos(\theta_1+\theta_2) \\ l_1\sin\theta_1 + l_2\sin(\theta_1+\theta_2) \end{pmatrix}
def forward_kinematics(theta1, theta2, l1=1.0, l2=0.8):
    """M_phy → R²:关节角 → 末端位置"""
    x = l1 * np.cos(theta1) + l2 * np.cos(theta1 + theta2)
    y = l1 * np.sin(theta1) + l2 * np.sin(theta1 + theta2)
    return x, y
2连杆机械臂关节空间与任务空间
图3:任务空间位形(左)、关节空间环面 T²(中,颜色=末端 y 坐标)、可达工作空间(右)

图注:

  • 左图:任务空间视角——三种不同关节角配置 (θ₁, θ₂) 映射到不同的末端位置,体现正运动学的多对一性质。
  • 中图:关节空间视角——2连杆的关节空间是环面 T²(两个圆的乘积);颜色表示末端 y 坐标,直观显示正运动学的非线性。橙色虚线框为关节限位,限位内的子区域就是 M_phy。
  • 右图:可达工作空间(散点云)——正运动学将环面 T² 映射成任务空间中的环形区域,内径 |l₁−l₂|=0.2,外径 l₁+l₂=1.8。

加上关节限位 θiθmax|\theta_i| \leq \theta_{max}T2T^2 被裁成一个子流形——这正是 Mphy\mathcal{M}_{phy} 的含义:物理约束定义的可行状态空间


4 流形上的距离:测地线

在流形上,两点之间的”真实距离”不是欧氏直线,而是测地距离(Geodesic Distance)——沿流形表面的最短路径。

球面上的 Slerp(球面线性插值)= 沿大圆弧走的测地线:

γ(t)=sin((1t)ω)A+sin(tω)Bsinω,ω=arccos(AB)\gamma(t) = \frac{\sin((1-t)\,\omega)\,A + \sin(t\,\omega)\,B}{\sin\omega}, \quad \omega = \arccos(A \cdot B)
def geodesic_slerp(A, B, t):
    """球面测地线插值:从 A 到 B,参数 t ∈ [0,1]"""
    omega = np.arccos(np.clip(np.dot(A, B), -1, 1))
    if omega < 1e-10:
        return A
    return (np.sin((1-t)*omega)*A + np.sin(t*omega)*B) / np.sin(omega)

A = np.array([1, 0, 0])
B = np.array([0, 1, 0])
d_geo  = np.arccos(np.dot(A, B))          # 测地距离 = π/2 ≈ 1.571
d_eucl = np.linalg.norm(B - A)            # 欧氏距离 = √2 ≈ 1.414
球面上测地线与欧氏直线的对比
图4:球面大圆弧(测地线)vs 球体内部直线(左);测地距离随角度差的误差(右)

图注:

  • 左图:球面上 A、B 两点之间,青色大圆弧是测地线(流形上的最短路径),红色虚线是穿过球体内部的欧氏直线——后者在物理空间中根本不可达。
  • 右图:随两点角度差增大,测地距离(弧长)与欧氏距离(弦长)之间的误差持续扩大(橙色区域)。对机器人规划而言,混用欧氏度量意味着”让机器人沿不可达路径穿越关节锁死区”——这正是 Sim-to-Real Gap 的几何根源之一,也是引入测地距离(或 GH 距离)的动机。

为什么这很重要? 如果用欧氏距离规划轨迹,路径会”穿越”流形内部——对机器人来说意味着穿过关节锁死区,这正是物理幻觉的几何根源。


5 具身空间 ε 的数学定义

把物理流形与逻辑模态空间结合,得到完整的具身空间

E=Mphy×Slogic\mathcal{E} = \mathcal{M}_{phy} \times \mathcal{S}_{logic}
具身空间 ε 的三种流形叠加关系 ε 具身空间 M_phy 物理流形 关节空间 / 位形空间 黎曼度量 M(q) n_dof 维 M_data 数据流形 高维传感器子流形 d ≪ D 视觉 / 触觉 / 本体 M_sem 语义流形 嵌入向量空间 32–512 维 任务意图 / 语言 物理仿真 产生训练数据 M_phy → M_data 数据驱动训练 训练语义模型 M_data → M_sem 语义意图 投影回物理执行 M_sem → M_phy
图5:三种流形叠加关系——物理仿真产生训练数据,数据训练语义模型,语义意图再投影回物理执行,循环构成具身空间 ε
分量数学结构含义
Mphy\mathcal{M}_{phy}黎曼流形关节角、速度、位姿
Slogic\mathcal{S}_{logic}有限状态图模态:{\{Idle, Cruise, Avoid, Grasp, Failsafe}\}
Flowx˙=f(x,u)\dot{x} = f(x,u)在某一模态层内连续演化
Jumpx+=g(x)x^+ = g(x)跨模态瞬时跳变
from dataclasses import dataclass
from enum import Enum

class Mode(Enum):
    IDLE = 'Idle'; CRUISE = 'Cruise'
    AVOID = 'Avoid'; GRASP = 'Grasp'; FAILSAFE = 'Failsafe'

@dataclass
class EmbodiedState:
    q:    np.ndarray   # 关节角(M_phy 坐标)
    dq:   np.ndarray   # 关节速度
    mode: Mode         # 逻辑模态(S_logic)

    def in_manifold(self, q_lim=2.5, dq_lim=3.0) -> bool:
        """判断是否满足 M_phy 的物理约束"""
        return bool(
            np.all(np.abs(self.q)  <= q_lim) and
            np.all(np.abs(self.dq) <= dq_lim)
        )
具身空间 ε = M_phy × S_logic 可视化
图6:关节空间 M_phy(左,颜色=逻辑模态)与任务空间末端位置(右)的对应关系

图注:

  • 左图(关节空间 M_phy 分量):蓝色虚线框内是满足关节限位的可行域;各彩色点代表不同逻辑模态下的关节角配置。
  • 右图(任务空间):正运动学将 M_phy 上的点映射到末端工作空间;浅蓝散点是全体可达位置,彩色点对应具体模态。
  • 两图合并说明了具身空间 ε 的核心:同一个状态同时携带”在哪里”(连续几何)和”处于何种模态”(离散逻辑),两者缺一不可。

配套 Notebook

本讲所有代码和图表均可在 Colab 中直接运行:

Open In Colab

包含:S¹ / S² 可视化、2连杆关节空间环面、测地线 vs 欧氏距离、具身空间 ε 状态建模,共 5 组交互图表。


参考文献

  1. Riemann, B. (1854). Über die Hypothesen, welche der Geometrie zu Grunde liegen. 哥廷根就职演讲。黎曼流形概念的诞生之作,爱因斯坦广义相对论的数学基础,也是 EST 物理流形 Mphy\mathcal{M}_{phy} 的思想源头。

  2. Whitney, H. (1944). The self-intersections of a smooth n-manifold in 2n-space. Annals of Mathematics, 45(2), 220–246. 嵌入定理:任意光滑 nn 维流形可嵌入 R2n\mathbb{R}^{2n},为神经网络在高维欧氏空间中近似流形提供了理论依据。

  3. Tenenbaum, J. B., de Silva, V., & Langford, J. C. (2000). A global geometric framework for nonlinear dimensionality reduction. Science, 290(5500), 2319–2323. Isomap 算法,用测地距离揭示数据流形的内在低维结构,流形学习的奠基论文之一。

  4. Roweis, S. T., & Saul, L. K. (2000). Nonlinear dimensionality reduction by locally linear embedding. Science, 290(5500), 2323–2326. LLE 算法,与 Tenenbaum 同期发表于同一期 Science,共同开启了流形假设在机器学习中的工程应用。

  5. Belkin, M., & Niyogi, P. (2003). Laplacian eigenmaps for dimensionality reduction and data representation. Neural Computation, 15(6), 1373–1396. 用图拉普拉斯特征映射保持流形局部几何结构,连接了本讲流形理论与第四讲谱分析。


延伸阅读

  • 三种流形Mphy\mathcal{M}_{phy}Msem\mathcal{M}_{sem}Mdata\mathcal{M}_{data} 的完整理论
  • Flow-Jump 机制E\mathcal{E} 上的混合动力学
  • Sim-to-Real Gap — 用 GH 距离量化流形偏差