机器人入行指南

术语表

面试里最容易露怯的不是不会,是听懂了字但不知道对方在说什么。这里每个词给三样东西:它到底是什么、为什么重要、一句能记住的话。

端到端 / 分层

两种说法经常被写成对立。实际是:高层决策慢、底层控制快,物理上必须分层;而「端到端」指的是高层那一层用一个大模型直接从感知出动作,底层照样要分层。

大脑想 100 毫秒还能忍,小脑慢 1 毫秒就摔了。

实时

不是「快」,是「确定」。1ms 固定延迟可以用预测补掉;平均 0.5ms、抖动 ±2ms 的系统永远调不稳。

永远问最坏值,别问平均值。

抖动(jitter)

同一条指令,每次执行花的时间不一样。它比延迟更致命,因为你没法补偿一个随机量。

「平均延迟 1ms」在机器人里几乎无意义。

1kHz 控制回路

每 1 毫秒算一次并下发一次指令。人形机器人的关节力控普遍在这个量级。

周期 1000µs,抖动要压到几十微秒。

PREEMPT_RT

让 Linux 变成「能预测」的补丁集,2024 年 12 月随 Linux 6.12 合入主线。之后不用再单独打补丁。

它能把抖动压到 10–50µs,但 20kHz 的活仍然得交给 MCU。

QoS

ROS 2 里每个话题的通信规则:可靠还是尽力、丢了留几帧、多久算超时。

控制话题用 RELIABLE,会把「丢一帧」变成「晚一帧」,更糟。

EtherCAT

工业实时总线。从站硬件转发数据帧,配分布式时钟,周期可到 125–1000µs,同步抖动小于 1µs。

它不是「更贵的 CAN」,是另一个量级的东西。

CAN

汽车与机器人常用的总线。1Mbps 下 8 字节帧要约 130µs,10 个轴排队就 1.3–1.6ms。

所以 CANopen 实用同步周期只能到 500Hz 左右。

惯量匹配

电机转子和负载之间的「轻重比例」。比值太大,速度环增益上不去,前面所有带宽都白给。

直驱建议 ≤5:1,带减速器折算后可放宽到 20–30:1。

背隙

齿轮换向时的那一小段空程。它等效于一个随速度变化的延迟,低速时能到几十毫秒。

表现为换向「咯噔」、双向定位不一致。

谐波减速器

体积小、减速比大、背隙极小(小于 1 弧分),人形机器人关节的主流选择。

代价是柔性带来 30–80Hz 的谐振,力控带宽被卡在 10–20Hz。

阻抗 / 导纳控制

一个控位置、让步给力;一个控力、让步给位置。区别是「谁适应谁」。

装配、打磨、人机协作全靠这套。

WBC(全身控制)

把平衡、末端位姿、姿态等多个任务写进一个优化问题,按优先级同时满足。

人形机器人不摔的底层机制。

ZMP / 捕获点

两种判断「会不会倒」的判据。ZMP 看压力中心,捕获点看「现在停下还能不能站住」。

前者适合慢速规划,后者适合抗扰判断。

Sim2Real

仿真里训好、迁到真机。差距来自摩擦、延迟、柔性、噪声四件事。

只随机化视觉不随机化动力学,是常见死法。

VLA

视觉—语言—动作模型:看图看指令,直接输出动作。

它只做高层决策,底层还是要 1kHz 控制回路。

HIL

硬件在环:控制器是真的,被控对象是仿真。可以在没有整机时测故障处理。

没有故障注入的 HIL,等于没做 HIL。

WCET

最坏执行时间。实时系统按它排调度,不按平均值。

平均值是给报表看的,WCET 是给系统活命用的。

启动链 / Bootloader

从上电到 main() 之间的一整条链:BootROM → SPL/U-Boot → 设备树 → 内核 → init。板子不启动、OTA 升级、改启动参数,全在这条链上。

面试问「板子上电没反应怎么排查」,答案就是沿这条链逐级看输出。

设备树(Device Tree)

把一块板子的硬件信息(外设地址、引脚、中断)写成数据文件,驱动和内核代码不用跟着板子改。

改硬件不重编内核——这是它存在的唯一理由。

BSP / Yocto

BSP 是让某块板跑起来的全部底层软件包。Yocto 和 Buildroot 是把 BSP 组装成整个系统的构建框架,前者适合多产品线长期维护,后者适合单一产品求快。

JD 里写 Yocto,多半是在问:你能不能从零出一张可启动的镜像。

双系统架构(大小脑)

大脑是 VLA 这类大模型,1–10Hz 做理解和决策;小脑是实时控制器,500Hz–1kHz 做轨迹跟踪和平衡。中间用技能或轨迹衔接,这是当前人形机器人的主流结合方式。

和人的神经系统一样分工:慢思考快反射。

世界模型

让模型在内部「想象」世界怎么变化,预测动作的后果再行动。被视为下一代机器人基座模型的候选形态。

比 VLA 多的是预测,少的是立刻能部署。