Part 9: Industry Reality · The truth behind shiny demos
Chapter 26
给 AI 开发者的入行建议
你花了三个月把一个 7B 模型从 perplexity 12 调到 9,兴奋地发了条推。然后你看到隔壁组的同事花了三个月让一台机器人在真实仓库里稳定地搬了一万箱货 - 没有一次撞到货架。
这两件事的难度量级完全不同,但后者能让你被一位投资人邀请去聊天。
我不是在贬低 AI 研究。我自己就是从 AI/ML 背景过来的 - CMU 读的 CS-AI 方向,入行前写过不少模型训练的代码,对 transformer、RL、diffusion model 这些东西有基本的手感。但当我真正进入机器人行业之后,最大的感受是:AI 开发者在机器人领域是被严重低估的稀缺资源,但前提是你愿意走出舒适区,去补上那些你之前从来不需要关心的东西。
这一章是我入行一年多以来的真实体会。不是什么职业规划方法论,就是一个先你半步的人回头告诉你:哪些地方你可以直接冲,哪些地方你得慢下来补课,以及最快走通全流程的路径长什么样。
你的 AI/ML 背景在机器人领域最值钱的地方
先说好消息:你已有的技能比你以为的值钱得多。机器人行业正在经历一次范式转移 - 从“手动编规则”到“用数据学行为” - 而你恰好站在这次转移的正确一侧。
感知模型部署优化
机器人上最吃算力的环节就是感知。一个典型的移动机器人可能同时跑着 YOLO 做物体检测、Depth Anything 做深度估计、SAM 做分割 - 全部跑在一块 Jetson Orin NX 上,功耗预算 25W,推理延迟要求 100ms 以内。
如果你做过模型压缩、量化(INT8/FP16)、TensorRT 优化、ONNX 导出这些事,恭喜,这在机器人公司里是硬通货。大量的机器人团队由机械和控制背景的人组成,他们能训出一个不错的感知模型,但到了“怎么在边缘设备上跑到实时”这一步就卡住了。你能帮他们把一个 500ms 的推理压到 80ms,这是直接影响产品能不能用的差距。
具体来说,NVIDIA 的 Isaac ROS 生态里有大量的 GPU 加速感知节点(isaac_ros_dnn_inference、isaac_ros_visual_slam 等),但要把它们调到最优性能需要对 TensorRT 的 profiling 工具、CUDA kernel 的内存模型有基本理解 - 这些对你来说不陌生,但对传统机器人开发者来说是另一个世界。
RL Policy 训练与 Sim-to-Real
宇树的 Go2 和 G1 的步态控制是怎么做的?不是手工调 PID,是在 Isaac Lab 里用 PPO 训出来的。几千个并行仿真实例跑几十亿步 - 这就是你熟悉的大规模 RL 训练,只不过 environment 从 Atari 换成了物理仿真器。
如果你有 RL 训练经验,你在机器人公司可以做的事情包括:设计 reward function(这比你想象的更需要创造力 - “走得好”怎么定义?走得快但摔倒 vs 走得慢但稳,怎么平衡?)、调训练超参、处理 sim-to-real gap(domain randomization 的策略选择)、以及跑大规模的 sweep 实验。
这个方向的人才缺口尤其大。传统控制背景的人对 RL 有本能的不信任(“一个黑箱凭什么控制我的机器人?”),而纯 ML 背景的人又不理解物理仿真器的约束。如果你两边都能聊,你就站在了一个非常好的交叉点上。
VLA / Foundation Model 集成
这是 2024-2025 年最热的方向。Google 的 RT-2、NVIDIA 的 GR00T N1.5、各家创业公司的 VLA 模型 - 它们的核心思路是把 vision-language model 的能力延伸到 action 输出,让机器人能“看懂场景 + 理解指令 + 生成动作”。
如果你训过大模型、做过 fine-tuning、搭过 inference pipeline,你对 VLA 的技术栈不会陌生。但机器人上的 VLA 有一些独特挑战:推理延迟要求比聊天机器人严格得多(你不能让机器人“思考”两秒再抬手)、action space 是连续的物理空间而不是 token vocabulary、以及安全约束 - VLA 输出的动作如果超出关节极限或者会导致碰撞,你需要一层 safety filter 来兜底。
另一个越来越实际的方向是用 LLM 做高层任务规划,再通过 MCP(Model Context Protocol)或者直接的 ROS 2 service call 来调用底层技能。宇树已经发布了 Go2 的 MCP Server,你可以用自然语言让 LLM 调用机器狗的运动 API。这个“LLM-as-orchestrator”的范式需要的恰好就是 AI 工程师的技能集 - prompt engineering、tool use、agent framework 设计。
数据管线与 MLOps
机器人每天产生的数据量巨大 - 一台配了 3 个相机和 1 个 LiDAR 的机器人,一小时的 rosbag 录制可以轻松超过 100GB。这些数据需要存储、索引、清洗、标注、版本管理。然后用这些数据训练模型,跟踪实验,部署新版本到车队的每一台机器上。
这就是 MLOps,只不过数据格式从图片和文本变成了 rosbag/MCAP、点云、TF 变换。如果你搭过训练 pipeline、用过 Weights & Biases、写过数据预处理脚本,这些经验可以直接迁移。很多机器人团队的数据管理还停留在“把 rosbag 往硬盘上一丢”的阶段,你来了可以帮他们建立正经的数据基础设施。
你需要补的知识
现在说坏消息。或者说,不是坏消息 - 是你必须投入时间去学的东西。好在这些东西都不需要你学到博士水平,但你需要有基本的直觉。
基础控制理论 - PID 至少要懂
你大概率听过 PID 控制器,可能还知道 P 是比例、I 是积分、D 是微分。但“听过”和“能调”是两回事。
在机器人上,PID 几乎无处不在。电机转速控制是 PID,关节位置跟踪是 PID,导航时的角速度控制也是 PID。当你的机器人走直线却一直往右偏的时候,你需要知道这可能是 I 项没配好导致稳态误差没消除;当手臂抓取时末端抖动,你需要知道这可能是 D 项太大或者控制频率太低。
你不需要去推导 Lyapunov 稳定性证明,但你需要能看懂一个 PID 调参面板,知道三个 gain 各自在做什么,以及当系统表现不好时该往哪个方向调。这些知识花一周时间就能建立基本直觉 - YouTube 上 Brian Douglas 的 Control Systems 系列是我见过最好的入门资源。
控制理论的另一块是状态估计 - Kalman Filter 及其各种变体。机器人的传感器数据永远带噪声,你需要某种方式把多个不完美的测量融合成一个更靠谱的估计。EKF(Extended Kalman Filter)在机器人定位里用得极多。你不需要从头推导矩阵公式,但需要理解它在做什么:本质上就是“我有一个预测,我有一个观测,根据各自的不确定性做加权平均”。
Linux 系统运维
你的机器人跑的是 Ubuntu。不是 macOS,不是 Windows,不是云上的容器。是一台装着 Ubuntu 22.04 的 Jetson 板子,通过 SSH 连上去操作。
这意味着你需要会基本的 Linux 运维:systemd 怎么管理服务、网络怎么配(机器人上经常同时有以太网连传感器、WiFi 连互联网)、磁盘空间怎么监控(rosbag 录制很容易把硬盘写满)、进程管理(怎么优雅地启停十几个 ROS 2 节点)。
如果你之前的开发环境都是 macOS + Docker + 云服务器,这些东西可能让你觉得很“原始”。但机器人是嵌入式场景,你没有 Kubernetes 来帮你编排,很多时候就是 SSH 上去用 tmux 开五个终端窗口手动起节点。习惯它。
一个具体的例子:机器人在凌晨 3 点自动巡逻时挂了。你第二天早上 SSH 上去排查。journalctl 看系统日志、ros2 topic list 看哪些 topic 还活着、dmesg 看有没有硬件级错误、top/htop 看资源占用。这套排查流程不难,但你得练到顺手。
一点点硬件直觉
你不需要会设计 PCB,不需要会算结构力学,不需要会选电机。但你需要建立一种直觉:物理世界的约束长什么样。
比如:你知道为什么 LiDAR 扫不到玻璃门吗?因为红外光在透明物体上会直接穿过或镜面反射。这意味着你的 SLAM 地图上,玻璃门位置会有一个“洞” - 机器人以为那里是自由空间,然后一头撞上去。你的软件无论写得多好,都挡不住这个物理层面的限制。解决方案是加一个补充传感器(超声波或 3D 相机),或者在地图上手动标记玻璃区域。
再比如:你在仿真里训了一个完美的 RL 步态 policy,但部署到真机后机器人一直打滑。不是你的 policy 有问题,是仿真里的地面摩擦系数设的 0.8,而真实地面是抛光大理石,实际摩擦系数只有 0.3。如果你没有“摩擦力这个参数很敏感”的硬件直觉,你可能会在软件层面白折腾很久。
建立这种直觉最好的方式就是接触真机。不需要从零造一台,但你至少要亲手操作过一台 - 看过传感器在不同环境下的实际表现,感受过电机在负载下的响应延迟,经历过“仿真完美、真机翻车”的落差。这种体感训练是看教程替代不了的。
最快的上手路径
说了这么多,到底怎么开始?给你两条路径,选适合自己条件的那条。
路径 A:纯软件起步(零硬件投入)
如果你手上没有任何机器人硬件,或者想先用最低成本验证自己是否真的想做这个方向:
第一步:装 ROS 2。 在 Ubuntu 22.04 上装 Humble 版本。用 Docker 也行,但我建议至少第一次直接装在系统上,这样你会更理解 ROS 2 和操作系统的关系。整个过程大概 1-2 小时。
第二步:跑 TurtleBot3 仿真。 TurtleBot3 是 ROS 社区最经典的教学平台。在 Gazebo 里跑一个 TurtleBot3,用键盘遥控它动起来。这一步的目的是让你理解 topic、node、launch file 这些核心概念 - 不是读文档,是亲手看到 /cmd_vel topic 上发一个 Twist 消息、机器人就动了。大概 1 天。
第三步:配 Nav2。 给 TurtleBot3 配上 Nav2,让它自主导航。先用 slam_toolbox 建一张地图,然后在 RViz 里点一个目标点,看它自己规划路径走过去。这一步你会接触到 costmap、planner、controller 这些核心概念。调一调 inflation radius,感受一下参数对行为的影响。大概 2-3 天。
第四步(可选):接真机。 如果你到了这一步还有热情,可以考虑买一台 TurtleBot3(大约 3000-5000 人民币)或者其他低成本移动底盘。当你第一次看到自己写的导航代码让一台真实的机器人绕过障碍物走到目标点,那个感觉 - 跟你第一次看到模型输出合理的文本是一样的,但多了一层物理世界的真实感。
路径 B:直接上真机(适合有预算或公司支持)
如果你有条件直接接触硬件:
买一台宇树 Go2 EDU。 这是目前性价比最高的四足机器人开发平台之一。EDU 版本开放了完整的 SDK,支持 ROS 2,自带运动控制 - 你不需要自己写步态算法,开箱即用。价格大概两三万人民币。
跑通 SDK 示例。 让它走、跑、翻身、爬楼梯。熟悉它的 API 接口和数据流。
接 LLM 做一个 demo。 这是最容易出成果的方向。用 LLM 做任务规划,通过 Go2 的 MCP Server 或者 SDK 的 Python API 调用底层运动技能。比如实现“语音指令 → LLM 理解 → 调用行走/坐下/跟随等 API” - 一个周末就能做出一个相当 impressive 的 demo。
这条路径的好处是你从第一天就在真机上工作,会很快建立硬件直觉。坏处是成本高,而且四足机器人和轮式机器人的技术栈差异不小 - 但作为入门体验,它的正反馈来得最快。
选择公司和团队
最后聊一个现实问题:如果你决定入行,去什么样的公司?
OEM 本体厂商(宇树、银河通用、Fourier 等): 如果你想深入理解硬件和整机,这是最好的选择。但要有心理准备 - 这些公司的核心竞争力在机械和控制,软件和 AI 团队往往不是最核心的部门。你可能需要主动去争取资源和话语权。
AI for Robotics 方向的创业公司: 做 VLA、做具身智能 foundation model、做 robot learning 的公司。技术上最前沿,但离商业化可能还有距离。适合想做研究和探索的人。
解决方案/集成商(SI): 在具体场景里部署机器人 - 仓库、餐厅、医院。你会快速理解“落地”意味着什么:不是算法跑通了就行,是 99.9% 的可靠性、客户的非标需求、现场的各种意外。技术没那么前沿,但对你建立工程直觉非常有价值。
中间件/平台层: 做操作系统、做开发工具、做仿真平台的公司。如果你更喜欢做 infra 而不是 application,这类公司可能更适合。你的用户是其他机器人开发者,而不是终端场景。
不管去哪里,有一条建议是通用的:尽早接触真机,尽早经历一次完整的从仿真到真机部署的全流程。 很多东西只有在你看到机器人在真实环境里出问题的时候才会理解。书可以帮你建立知识框架,但经验只能从真机上长出来。
写在最后
回头看这本书的 25 章内容 - 从第一章的认知校准到现在 - 本质上是一张地图。它告诉你这片领域里有什么、在哪、各个部分怎么连接。但地图不是旅程本身。
我进入这个领域的时候,最大的困难不是某个具体算法不会,而是不知道自己不知道什么。你不知道 costmap 的 inflation radius 太大会让机器人卡在门口,不知道 TF tree 断了整个系统就瘫痪,不知道 Jetson 的 25W 功耗限制意味着你的模型必须量化到 INT8 才能跑到实时。这些东西没人会在机器学习课上教你。
现在你知道了。至少,你知道了这些东西的存在,知道了去哪里深入。
具身智能这个赛道正处在一个特殊的时间窗口。硬件成本在快速下降(宇树把人形机器人卖到 10 万以内),AI 能力在快速上升(VLA 模型开始能输出有意义的动作),但中间的工程 gap - 怎么把一个实验室 demo 变成一个能在真实环境里可靠运行的产品 - 依然巨大。这个 gap 需要一代新的 builder 来填补。
你是写过代码的人,你懂 AI,你现在又有了机器人领域的全景认知。接下来的事情很简单:打开终端,装 ROS 2,让一台机器动起来。