新能源战场已经进入“拼刺刀”阶段,而蔚小理在中高端市场的位次其实已经越来越微妙。但更值得关注的是,当特斯拉带着 Optimus、Figure 带着 Helix 把具身智能抬到台前时,国内的新势力们也在悄悄把“车”和“机器人”放在同一个战略框架里。于是有一种声音出现:既然能造智能电动车,为什么不能造具身智能机器人?
这个问题的答案,远比表面看起来复杂。电动车和机器人在感知、计算、控制上有大量重叠,但真正决定胜负的,却是汽车工业不擅长、甚至刻意回避的几个环节。如果以过去十年的造车思路去做具身智能,大概率不是降维打击,而是换了个维度被打击。
这篇文章不评价哪家车企会赢,也不做商业预言,而是从技术栈、数据闭环、硬件选型、软件工程和运维部署的视角,拆解“为什么输掉新能源的蔚小理,也赢不下具身智能”。同时,给正在转向具身智能的开发者一份可以直接参考的路线图,包括树莓派选 4G 还是 8G、机械臂怎么选、数据清洗怎么做、Rust 在机器人领域有没有价值、应用运维工程师到底负责什么。
1. 智能汽车与具身智能:重叠的是名词,不是底层逻辑
很多车企喜欢把具身智能描述成“四个轮子的机器人”,这套叙事确实容易让资本市场兴奋,也会让团队内部产生一种“我们早就会了”的错觉。但实际对比两个领域的技术栈,会发现重叠部分集中在传感器和基础计算,而决定产品上限的却是完全不同的能力。
智能汽车的工作环境是结构化道路,有车道线、红绿灯、交通法规,绝大多数场景可以用高精地图和规则约束兜底。自动驾驶的感知、预测、规划、控制,本质上是在一个受限环境中做决策。而具身智能的工作环境是开放世界,桌面、厨房、工厂、楼梯、野外,没有统一的交通规则,物体的状态随时变化,机械臂的抓取、移动、操作需要实时理解物理世界。
先看一张简化对比表:
| 维度 | 智能汽车 | 具身智能 |
|---|---|---|
| 工作环境 | 结构化道路,长尾有限 | 开放环境,长尾无限 |
| 核心传感器 | 摄像头、激光雷达、毫米波雷达、IMU | 摄像头、深度相机、力觉/触觉、IMU、关节编码器 |
| 执行器 | 方向盘、油门、刹车 | 多关节机械臂、灵巧手、双足/轮式底盘 |
| 算法重心 | 感知、预测、规划、控制 | 感知、操作、运动控制、具身多模态大模型 |
| 数据获取 | 路采车队、仿真、影子模式 | 遥操作、物理交互、仿真、真实任务采集 |
| 安全等级 | 功能安全(ISO 26262 思路) | 人机协作安全 + 功能安全 |
| 软件栈 | 车规级中间件、Autosar、ROS 在研发阶段 | ROS/ROS 2、实时控制、模型推理、云端训练 |
| 关键成本 | 传感器 + 算力平台 | 执行器 + 小批量硬件 + 数据成本 |
从这张表能看出什么?汽车的核心竞争力在过去十年被压缩成两个词:成本和规模。一套传感器方案能装几万台车,开发费用可以摊薄。而具身智能目前连“标准车型”都还没有,每家公司的机械臂自由度、关节模组、夹爪方案都不一样,软件栈无法通用,数据也无法转移。这意味着过往整车厂最擅长的“供应链杀价 + 规模量产”在机器人这里失灵了,因为市场规模还不够大,供应链还没有成熟到可以拼价格的阶段。
更关键的是,智能汽车的数据采集是可以靠路采车队、驾驶员众包和影子模式完成的,而具身智能需要的数据是“人与物理世界交互”的数据,比如如何把桌上的杯子拿起来、如何用螺丝刀拧紧一颗螺丝、如何在不伤到人的前提下递一把剪刀。这些数据必须通过遥操作、动捕手套、力觉反馈设备逐条采集,成本极高。一个车企想靠造车的经验快速复制具身智能数据闭环,几乎是不可能的。
所以,重叠的是名词,不重叠的是数据生态、硬件形态和系统验证方式。
2. 具身智能最大门槛:数据清洗与数据闭环
聊具身智能,很多人第一反应是模型多大、算力多强。但真正让项目卡住的,往往是最不性感的数据工程。
具身智能需要的数据形态和自动驾驶不太一样。自动驾驶的数据主要是视频流 + 标注框 + 轨迹,而具身智能的数据除了图像,还有机械臂的关节角度、力矩、末端位姿、灵巧手的触觉信息、以及成功/失败的标签。更麻烦的是,一次真实操作的数据是一维时间序列,和多模态传感器强对齐,任何一个传感器掉线,这段数据可能就废了。
2.1 具身智能数据清洗为什么比自动驾驶更复杂
从实际经验看,具身智能数据的脏数据来源大概有几类:
- 遥操作过程中人为抖动导致轨迹不平滑,直接影响模仿学习的质量;
- 传感器时间戳没对齐,图像和关节角度相差几百毫秒,模型学出来的动作会“漂”;
- 同一个任务,不同操作员执行的习惯差异太大,数据分布非常散;
- 机械臂与环境接触时存在滑移、碰撞,但力传感器没有记录到异常,导致数据标签错误;
- 仿真数据与真实物理参数不一致,比如摩擦力、质心位置不同,直接迁移会失败。
所以,数据清洗不是“去掉异常值”那么简单,而是要建立一个可回溯、可重放、可筛选的数据闭环。下面给出一个用 Python 做轨迹数据初步清洗的示例,假设数据来源是 ROS bag 导出的 CSV,包含时间戳、关节角度和力矩。
# 文件路径:scripts/clean_trajectory.py import pandas as pd import numpy as np def load_and_clean(csv_path, time_col='timestamp', joint_cols=None): """ 加载机械臂轨迹数据,做基础清洗: 1. 按时间戳排序 2. 去除时间戳重复或缺失的行 3. 去除关节角度突变超过阈值的行(代表传感器异常) 4. 去除力矩为零的异常段(代表传感器掉线) """ df = pd.read_csv(csv_path) df = df.sort_values(time_col).reset_index(drop=True) # 去除时间戳缺失或重复 df = df[df[time_col].notna()] df = df[df[time_col] != 0] if joint_cols: # 相邻两帧关节角差值 diff = df[joint_cols].diff().abs() # 如果某一行任一关节突变超过 30 度,视为异常 mask = (diff > 30).any(axis=1) df = df[~mask].reset_index(drop=True) return df if __name__ == "__main__": clean_data = load_and_clean( "data/teleop_pick_001.csv", joint_cols=["joint_1", "joint_2", "joint_3", "joint_4", "joint_5", "joint_6"] ) clean_data.to_csv("data/teleop_pick_001_clean.csv", index=False) print(f"清洗前 {len(clean_data)} 行,清洗后保留条数见输出")这段代码解决的是最基础的“时间戳 + 突变”问题。真正完整的清洗流程还需要做时间戳对齐、滤波平滑、人工抽帧审核。数据闭环的意义在于:清洗后的数据进入训练,训练后的模型在真实环境推理,失败的数据再回到数据集重新标注,这样模型才能持续变好。
很多车企的数据团队有自动驾驶数据处理经验,但具身智能需要的是“物理交互数据”的处理能力,这种能力在汽车领域几乎不存在。这才是我认为“赢不下”的第一个技术原因。
2.2 数据回流与自动标注
在具身智能项目中,数据回流通常需要两个服务:一个是数据采集端,一个是数据管理平台。数据管理平台负责把遥操作数据、仿真数据、试运行失败数据统一编目。自动标注则依赖大模型的能力,例如通过多模态模型给图像中的物体打标签,再结合时间戳同步到关节序列上。但自动标注无法覆盖力觉和触觉,只能靠人工审核。
对于开发者来说,如果只是在学习阶段,没有必要一开始就上完整平台。先用上面的 Python 脚本把采集数据清洗干净,再做简单的行为克隆,能跑通一个机械臂搬物体的 demo,就已经超过了大多数只会调 API 的人。
3. 具身智能硬件平台:树莓派小车选 4G 还是 8G?
热搜词里有个非常具象的问题:具身智能小车树莓派需要 4G 还是 8G。这个问题看起来简单,但背后反映的是很多人对边缘算力、模型部署和实时性缺乏概念。
树莓派是学习具身智能的常用入门硬件,但它毕竟不是工业级设备。树莓派 4B 和树莓派 5 的差异,不只是 CPU 频率,而是 PCIe 接口、USB 3.0、内存带宽这些直接影响外接加速卡和传感器数量的因素。
3.1 内存选型建议
如果只是跑 ROS 2、控制电机、读取 IMU、订阅图像话题,树莓派 4B 的 4G 内存足够。但如果要做轻量级末端检测、跑一些量化后的 YOLO 模型,或者开多个仿真节点,8G 会更稳妥,因为内存不够时系统会使用 swap,而 SD 卡上的 swap 会带来明显的延迟,实时控制很容易出问题。
从真实项目角度看,树莓派 5 的 8G 版本更推荐,因为它的 PCIe 接口可以接 NVMe SSD,把系统和数据放在 SSD 上,输入输出性能提升很多,这对数据采集尤其重要。但要注意,树莓派本身就适合学习原型验证,不适合作为正式产品的控制器。如果要做机械臂实时控制,首选是 x86 工控机或者 NVIDIA Jetson 系列。
下面是一个典型的具身智能小车环境配置命令,适用于 Ubuntu 22.04 + ROS 2 Humble:
# 在树莓派 5 上安装 ROS 2 Humble(假设系统是 Ubuntu Server 22.04) sudo apt update sudo apt install -y software-properties-common sudo add-apt-repository universe sudo add-apt-repository restricted sudo add-apt-repository multiverse sudo apt install -y curl curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null sudo apt update sudo apt install -y ros-humble-desktop python3-colcon-common-extensions如果只是学习,不需要装 full desktop 版,装 ros-humble-ros-base 即可,省空间。
3.2 机械臂怎么选
热搜词“具身智能机械臂”需要说明的是,市面上机械臂分协作机械臂(例如 uFactory xArm、Kinova)、桌面级教育机械臂(例如 Elephant Robotics 的 Panda 系列)、以及自制舵机机械臂。分布式控制、反馈频率和重复定位精度是关键。
- 学习阶段:选六自由度桌面机械臂,最好支持 ROS 2 驱动。
- 研究阶段:需要有力/力矩传感器或者至少电流反馈,否则无法做柔顺控制。
- 不要被“教育级”的噱头迷惑,重点看关节有没有编码器、能否提供实时位置反馈。
对于树莓派作为控制器,一般不建议直接控制机械臂,因为实时性不够。更常见的方案是树莓派作为上位机,机械臂通过串口或 EtherCAT 连接独立运动控制板。
4. 具身智能软件栈:从 ROS 2 到模型部署
具身智能的软件栈比传统机器人软件多了“大模型”这层,但底层实时控制依然依赖 ROS 2 或更底层的实时运动控制库。
4.1 ROS 2 在具身智能中的角色
ROS 2 是研究社区和很多初创公司的主力框架,它解决了节点间通信、驱动封装、工具链统一的问题。但 ROS 2 不等于具身智能,它只是传输管道。目前很多具身智能项目已经不再用传统 ROS 的“感知-规划-控制”管线,而是用端到端模型直接输出动作,ROS 2 只负责把模型输出的关节目标发给执行器。
从实际项目出发,更推荐用 ROS 2 的 action 接口来封装机器人的动作。下面是一个简单的 ROS 2 Python 节点示例,它订阅一个图像话题,调用端到端模型推理,把输出的关节角度发布到机械臂控制话题:
# 文件路径:src/embodied_bot/embodied_bot/act_node.py import rclpy from rclpy.node import Node from sensor_msgs.msg import Image from std_msgs.msg import Float64MultiArray import cv2 from cv_bridge import CvBridge import numpy as np class ActNode(Node): def __init__(self): super().__init__('act_node') self.sub = self.create_subscription(Image, '/camera/color/image_raw', self.image_cb, 10) self.pub = self.create_publisher(Float64MultiArray, '/arm/joint_targets', 10) self.bridge = CvBridge() # 这里仅作为演示,实际模型需要加载到 GPU/NPU self.joint_command = [0.0] * 6 def image_cb(self, msg): # 将 ROS 图像转为 OpenCV 图像 cv_img = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') # 推理部分伪代码:joint_command = model.infer(cv_img) # 本示例直接发一个固定的关节目标 joint_msg = Float64MultiArray() joint_msg.data = self.joint_command self.pub.publish(joint_msg) def main(args=None): rclpy.init(args=args) node = ActNode() rclpy.spin(node) node.destroy_node() rclpy.shutdown()这段代码说明的是“软件栈分层”:端到端模型拿到传感器数据,输出运动指令,ROS 2 负责传输。真正难的是模型训练,而不是节点写法。
4.2 仿真到现实迁移
具身智能里绕不开 sim-to-real,也就是仿真训练,现实部署。很多人问,为什么不在真实环境直接训练?因为真实采集成本高,而且一次失败可能导致机械臂损坏。仿真的问题在于物理引擎无法完全模拟真实世界,于是出现了域随机化、系统辨识、在线适配等方法。
常用的开源仿真环境有 MuJoCo、Isaac Sim、PyBullet。其中 MuJoCo 在关节控制和强化学习任务中更常用。下面是使用 MuJoCo 加载一个简单机器人模型并读取关节位置的 Python 示例:
# 文件路径:scripts/mujoco_test.py import mujoco # 这里用一个内置的 humanoid 模型做演示 xml = """ <mujoco> <worldbody> <light diffuse="0.8 0.8 0.8" pos="0 0 4"/> <geom type="plane" size="2 2 0.1" /> <body pos="0 0 1"> <joint type="free" /> <geom type="sphere" size="0.1" /> </body> </worldbody> </mujoco> """ model = mujoco.MjModel.from_xml_string(xml) data = mujoco.MjData(model) mujoco.mj_step(model, data) print("仿真时间:", data.time) print("球体位置:", data.qpos[:3])可以先在仿真里把模型跑通,再迁移到真实机械臂。迁移过程中的坑非常多,最典型的问题是仿真里的关节速度极限和力矩饱和设置与现实不一致。
5. 具身智能的应用运维:机器人和“运维工程师”的新含义
热搜词里有一个“具身智能应用运维工程师”,这看起来像新兴岗位,但实际上它更接近“机器人部署工程师 + 数据平台运维 + 模型服务运维”的混合体。
传统运维负责服务器、网络、数据库,而具身智能应用运维还要负责以下事情:
- 维护多台机器人/机械臂的边端环境和模型版本;
- 管理遥操作数据采集流程,保证数据不丢失、标注任务按时完成;
- 监控模型推理延迟、成功率、异常碰撞等指标;
- 管理云端训练环境和边端推理环境的同步;
- 支持现场部署和远程诊断。
在真实项目中,最常见的坑是“云端模型更新了,边端机器人还在用旧权重”,因此控制模型版本和回滚机制特别重要。一个简单的做法是:所有模型文件使用带版本号的目录,启动服务时通过环境变量指定模型路径,避免覆盖老模型。
下面的示例展示一个简单的模型服务启动脚本:
# 文件路径:scripts/start_inference.sh #!/bin/bash MODEL_VERSION=${MODEL_VERSION:-v1.0.0} MODEL_PATH="/data/models/act_${MODEL_VERSION}/policy.onnx" echo "启动模型服务,版本: ${MODEL_VERSION}" python3 deploy/inference_server.py --model-path "$MODEL_PATH" # 如果要回滚到上一个版本: # MODEL_VERSION=v0.9.0 ./scripts/start_inference.sh运维的核心是可控,能回滚、能观测、能定位。具身智能运维工程师不是高配版 IT 运维,而是机器人软件基础设施的构建者,要求懂传感器、懂实时系统,也懂模型部署。
6. Rust 在具身智能中有什么价值
热搜词“rust具身智能”说明越来越多人注意到 Rust 在机器人领域的潜力。Rust 的优势是内存安全和性能,适合写底层驱动、实时控制、协议解析和网络服务。但在具身智能的上层算法和模型训练中,Python 仍然是绝对主流。所以 Rust 的位置应该是“中间层”,例如机器人通信中间件、实时控制循环、传感器驱动等。
有一个知名的开源项目叫 ros2-rust,可以用 Rust 写 ROS 2 节点,支持发布订阅、客户端服务等基本功能。虽然生态不够成熟,但用于对延迟敏感的控制环节很合适。
下面是一个极简的 Rust ROS 2 发布节点,假设使用 ros2-rust crate:
// 文件路径:src/publisher.rs use rclrs::*; fn main() -> Result<(), RclrsError> { let context = Context::new(std::env::args())?; let node = Node::new(&context, "rust_publisher")?; let publisher = node.create_publisher::<std_msgs::msg::String>("topic", QosProfile::default())?; let mut count = 0u32; while context.ok() { let mut msg = std_msgs::msg::String::default(); msg.data = format!("hello from rust: {}", count); publisher.publish(&msg)?; count += 1; println!("published: {}", msg.data); std::thread::sleep(std::time::Duration::from_millis(500)); } Ok(()) }注意,这个代码只是示意,具体 API 版本可能有差异。实际项目中,Rust 的介入需要团队有足够能力,否则维护成本比 C++ 还高。
对于普通开发者,学习路线建议是:先学 Python 和 ROS 2,再根据项目需要决定是否引入 Rust。如果是做实时运动控制库、嵌入式固件,Rust 值得学;如果只是做模型训练和数据处理,可以暂时不碰。
7. 蔚小理在具身智能上可能输在哪里
回到标题。说“输掉新能源的蔚小理,也赢不下具身智能”,并不是否定它们的技术积累,而是指出组织惯性和技术基因上的错位。
第一,数据基因不同。造车新势力擅长的是“驾驶数据”的闭环,它们在车上装了海量传感器,通过影子模式获取真实道路数据。但具身智能需要的是“操作数据”,这种数据无法通过量产车自然获取。蔚小理没有家用机器人产品,也没有机械臂产线,它们没有天然的具身数据入口。
第二,硬件供应链思路不匹配。汽车行业追求的是百万级年产量,硬件高度标准化。具身智能目前的市场足够小,零部件采购量低,供应商不愿意专门开模,导致做机器人整机的公司必须自己掌握电机、减速器、丝杠等核心零部件的设计能力。新势力过去擅长的是整合供应链,而不是自己革命性研发关节模组,这是完全不同的能力树。
第三,软件架构的组织壁垒。智能汽车软件中心放在自动驾驶,团队长期优化感知、规划、控制。而具身智能需要融合语言模型、视觉模型、运动控制模型,和传统自动驾驶的关系是“部分重叠、部分升级”。如果车企只是把自动驾驶团队平移过去做机器人,会遇到一个明显的问题:自动驾驶的传感器套件和计算平台非常昂贵,机器人不能直接复用。
第四,销售与服务逻辑。汽车销售走 4S 店和试驾,机器人需要面对的却是千奇百怪的工业场景和家庭场景。具身智能产品不是标品,初期更像项目制交付。车企的渠道优势在 C 端,而在 B 端机器人市场,这种渠道价值需要打折扣。
当然,这不是说蔚小理完全没机会。它们有机会,但如果只是把具身智能当作“第二增长曲线”和融资故事,而没有投入足够长的周期去重练数据、重造硬件、重建组织能力,那么“赢不下”的概率很高。
这不只是在说蔚小理,也是在提醒所有想从智能汽车跨界到具身智能的团队。
8. 具身智能学习路线:从零到一怎么走
热搜词里还有一个高频问题:具身智能学习路线。这可能是目前 CSDN 读者最需要的部分。
具身智能覆盖范围广,如果把每个方向都学一遍,会非常耗时。建议分四个阶段。
阶段一:基础补全(1-2 个月)
- 掌握 Python 和 Linux 基本操作;
- 掌握线性代数、概率论基础;
- 了解深度学习基本概念,能够用 PyTorch 训练一个简单的分类或回归模型;
- 安装 ROS 2 Humble,理解节点、话题、服务、action 的基本概念。
阶段二:机器人基础(2-3 个月)
- 购买一套入门级树莓派小车或者桌面机械臂;
- 学会用 ROS 2 控制电机、读取传感器数据;
- 在 MuJoCo 或 Isaac Sim 中搭建一个简单的机器人模型;
- 尝试用视觉模型做目标检测,配合机械臂完成“看到并抓取”的流程。
阶段三:具身智能核心(3-4 个月)
- 学习模仿学习、行为克隆、扩散策略(Diffusion Policy)等主流方法;
- 自己采集一条遥操作数据,完成清洗、训练、部署的全流程;
- 了解 VLA(Vision-Language-Action Model)的基本架构,至少能跑通开源模型推理;
- 掌握 sim-to-real 的常用技巧:域随机化、系统辨识。
阶段四:工程化与实战(持续进行)
- 学习模型部署优化(ONNX、TensorRT)、数据管理平台设计;
- 接触实时控制系统,了解 RT 线程和通信延迟;
- 根据兴趣选择一个垂直方向:工业机械臂操作、家庭服务机器人、人形机器人运动控制等。
这条路线不需要一开始就学 Rust,也不用一上来就买昂贵的机械臂。先用仿真 + 树莓派小车跑通最小闭环,再逐步升级硬件,才是更稳健的路径。
9. 给开发者的最直接建议
从新能源到具身智能,行业叙事在变,但技术人的生存逻辑一直没变:别被概念带走,盯住你能跑通的最小闭环。
如果你想入行具身智能,先别纠结 4G 还是 8G,先确定你要解决的任务是什么。如果只是做图像分类和避障,4G 够用;如果你想在边缘端跑深度模型并做实时控制,8G 是底线,最好换成 Jetson。如果你要研究机械臂操作,不要买那种玩具机械臂,至少要有闭环的位置反馈。
数据清洗和仿真能力的重要性被严重低估。很多团队模型训练效果不好,根本不是模型结构问题,而是数据时间戳对不上、标签错乱、仿真参数和真实差距太大。在一个数据质量过关的 pipeline 里,即使你用最简单的行为克隆,也能跑出不错的效果。
另外,多关注具身智能运维和部署岗位。随着机器人从实验室走向场景,能解决“模型到了现场跑不动、数据回传混乱、故障无法远程定位”的人才,会变得比单纯调模型参数的人才更稀缺。
希望这篇文章能给正在观望的你一个清醒的视角:具身智能不是电动车的延伸,而是一场需要重新积累能力的技术长征。与其追风口,不如先把一个机械臂的动作拆明白。