
我会把“VLA 大脑 → 小脑 → 运动学/轨迹 → 伺服控制 → 电机/物理 → 反馈”拆成完整控制链,并用一组前后一致的 7 自由度单臂 + 平行夹爪示例数据贯穿“抓苹果放入篮子”。同时我会区分论文/开源实现里明确存在的接口,和工程上常见但并非 VLA 标准定义的“小脑”层。先给一个关键结论:论文里并没有统一定义一个名为“小脑(Cerebellum)”的模块。OpenVLA 这类系统常直接输出 7 维末端增量动作,再由机器人环境做坐标变换和 IK;而π0.5\pi_0.5π0.5这类层级模型已经明确区分“高层子任务”和“低层动作专家”,这与“VLA 大脑 + 小脑”的工程抽象非常接近。工程上最值得注意的是“动作空间”。同一个 VLA 可能输出笛卡尔末端动作(Cartesian End-Effector Action),也可能输出关节动作(Joint-Space Action)。OpenVLA 的 OXE 配置明确支持“末端Δxyz\Delta xyzΔxyz+Δ\DeltaΔRPY + 夹爪”,而 Physical Intelligence 的 DROID 部署则使用“7 个关节速度 + 1 个夹爪量、15 Hz”。所以 IK 是否出现,取决于小脑最后输出在哪个空间。可以。下面我把它按一个真正可落地的分层具身控制(Hierarchical Embodied Control)系统拆开。先明确一个重要事实:业界并没有统一规定一个模块必须叫“小脑(Cerebellum)”。为了和你前面的“大脑 + 小脑 + IK”讨论保持一致,我采用下面这个工程定义:VLA大脑→高层子任务→小脑→连续动作→IK/控制器→机器人\boxed{\text{VLA 大脑}\rightarrow\text{高层子任务}\rightarrow\text{小脑}\rightarrow\text{连续动作}\rightarrow\text{IK/控制器}\rightarrow\text{机器人}}VLA大脑→高层子任务→小脑→连续动作→IK/控制器→机器人这种划分与π0.5\pi_{0.5}π0.5的论文结构尤其接近:它把高层推理写成“根据观测和总任务预测下一子任务”,再由动作专家根据该子任务预测低层动作序列。OpenVLA、RT-2 则证明了另一种路线:VLA 可以直接输出机器人低层动作。turn195172view0下面以一台类似 Franka Panda 的7 自由度机械臂(7-DoF Manipulator)+平行双指夹爪(Parallel-Jaw Gripper)为例,实现:“把桌子上的红苹果放进桌子上的篮子。”一、先看整个系统到底分成哪些层我建议实际系统按照下面这些层划分:层级模块核心作用典型输出L6VLA 大脑(VLA Brain)看懂场景、理解指令、决定下一子任务approach appleL5小脑(Cerebellum / Action Policy)把子任务变成短时连续动作末端动作 chunkL4动作适配器(Action Adapter)反归一化、坐标系转换、安全限幅Δx,ΔR,g\Delta x,\Delta R,gΔx,ΔR,gL3逆运动学(Inverse Kinematics, IK)末端动作变关节目标qdesq_{\mathrm{des}}qdesL2关节伺服控制(Joint Servo Control)关节目标变力矩/速度/位置命令τ\tauτ或qcmdq_{\mathrm{cmd}}qcmdL1驱动器(Actuator / Motor Driver)执行控制命令电机转矩L0机械系统(Robot Dynamics)真正产生运动qt+1,q˙t+1q_{t+1},\dot q_{t+1}qt+1,q˙t+1Feedback传感器反馈(Sensor Feedback)RGB、关节、夹爪、力矩等新观测ot+1o_{t+1}ot+1其中 OpenVLA 的官方 OXE 配置明确支持这种末端动作:at=[Δx,Δy,Δz,Δroll,Δpitch,Δyaw,g]a_t=[\Delta x,\Delta y,\Delta z,\Delta roll,\Delta pitch,\Delta yaw,g]at=[Δx,Δy,Δz,Δroll,Δpitch,Δyaw,g]也就是 3 维平移 + 3 维旋转 + 1 维夹爪。二、先定义一个接近真实机械臂的场景为了下面所有数字能够串起来,先固定坐标系。这里定义机器人底座坐标系为:{ B}\{B\}{B}单位:位置:m角度:rad速度:m/s、rad/s力:N力矩:N·m场景如下。苹果苹果直径约:dapple=0.064md_{\mathrm{apple}}=0.064\text{ m}dapple=0.064m苹果中心:papple=[0.480,0.140,0.033]p_{\mathrm{apple}}=[0.480,\ 0.140,\ 0.033]papple=[0.480,0.140,0.033]也就是:机器人前方 48 cm左侧 14 cm苹果直径约 6.4 cm这个尺寸适合 8 cm 左右最大开口的双指夹爪。篮子篮子内部中心:pbasket=[0.530,−0.220,0.070]p_{\mathrm{basket}}=[0.530,\ -0.220,\ 0.070]pbasket=[0.530,−0.220,0.070]篮口高度:zrim=0.125mz_{\mathrm{rim}}=0.125\text{ m}zrim=0.125m内部有效尺寸约:240 mm × 180 mm因此苹果放入中心位置非常安全。机械臂初始状态7 个关节:q0=[0.100,−0.550,0.120,−2.050,0.050,1.630,0.780]q_0=[0.100,-0.550,0.120,-2.050,0.050,1.630,0.780]q0=[0.100,−0.550,0.120,−2.050,0.050,1.630,0.780]单位 rad。关节速度:q˙0=[0.030,−0.010,0.020,0,0.010,−0.020,0.010]\dot q_0=[0.030,-0.010,0.020,0,0.010,-0.020,0.010]q˙0=[0.030,−0.010,0.020,0,0.010,−0.020,0.010]夹爪当前开口:w0=0.078mw_0=0.078\text{ m}w0=0.078m当前末端大致位于:pee=[0.380,0.000,0.320]p_{ee}=[0.380,\ 0.000,\ 0.320]pee=[0.380,0.000,0.320]末端朝下。下面这些数字是一组工程上合理的示例数据,不代表某一台 Franka 的实际标定记录;真实系统中的q↔TCPq\leftrightarrow TCPq↔TCP精确对应关系由 URDF、工具坐标和标定参数决定。三、VLA 大脑的输入到底是什么?这是最容易混淆的地方。不同 VLA 不完全相同。OpenVLA 的典型接口非常简单:image+language instruction ↓ predict_action()↓7-DoF action其官方示例就是 RGB 图像 + prompt,然后predict_action()输出机器人动作。而π0/π0.5\pi_0/\pi_{0.5}π0/π0.5更进一步,会显式输入机器人自身的本体感觉(Proprioception)。Physical Intelligence 的 DROID 适配代码实际构造的是:外部相机 RGB 腕部相机 RGB 7 个关节位置 1 个夹爪位置 语言 prompt其中代码明确将:joint_position: 7 + gripper_position: 1 = state: 8 dimensions拼接后输入模型。VLA 大脑输入示例例如当前时刻:instruction: "把桌子上的红苹果放进篮子。" base_rgb: dtype = uint8 shape = [224, 224, 3] wrist_rgb: dtype = uint8 shape = [224, 224, 3] joint_position: [ 0.100, -0.550, 0.120, -2.050, 0.050, 1.630, 0.780 ] gripper_position_normalized: [0.025]于是本体状态:qtVLA=[0.100,−0.550,0.120,−2.050,0.050,1.630,0.780,0.025]q_t^{VLA}=[0.100,-0.550,0.120,-2.050,0.050,1.630,0.780,0.025]qtVLA=[0.100,−0.550,0.120,−2.050,0.050,1.630,0.780,0.025]OpenPI 的 DROID 实现同样使用外部相机和腕部相机,并将输入调整为224×224224\times224224×224。注意:VLA 实际收到的是图像,而不是:apple = [0.480, 0.140, 0.033] basket = [0.530, -0.220, 0.070]这些显式坐标通常不会直接提供给 VLA。VLA 是从图像里面“看出来”:红苹果在左前方,篮子在右前方。在仿真或者调试日志中,我们才可能同时知道物体的 ground truth 坐标。四、VLA 大脑的输出是什么?这里有两种业界主流方案。方案 A:VLA 直接输出动作RT-2 和 OpenVLA 更接近这种方式:It+l→atI_t+l\rightarrow a_tIt+l→at例如:输入: "把苹果放进篮子" + 当前 RGB 输出: [+0.008, +0.010, -0.012, 0, 0, 0, +1]这已经是低层机器人动作。RT-2 就是把机器人动作离散成 token,推理以后再反解成机器人动作,并执行闭环控制。五、更适合“大脑 + 小脑”的方案如果你明确想做:VLA 大脑 + 小脑那么更推荐π0.5\pi_{0.5}π0.5风格的层级。论文中的观测可以写成:ot=[It1,…,ItN,qt]o_t=[I_t^1,\dots,I_t^N,q_t]ot=[It1,…,ItN,qt]其中包括:多路摄像头机器人状态总任务为:lll例如:put the red apple into the basket大脑先产生高层子任务:l^t\hat l_tl^t然后动作专家产生动作:at:t+Ha_{t:t+H}at:t+H论文实际上把这个关系写成:πθ(at:t+H,l^∣ot,l)=πθ(at:t+H∣ot,l^)πθ(l^∣ot,l)\pi_\theta(a_{t:t+H},\hat l\mid o_t,l)=\pi_\theta(a_{t:t+H}\mid o_t,\hat l)\pi_\theta(\hat l\mid o_t,l)