
这段时间只要打开招聘软件满屏都是“具身智能”“人形机器人算法工程师”的岗位薪资也确实诱人。但作为一个从传统机械转行、又在机器人行业摸爬滚打了十年的老工程师我得先泼一盆冷水如果你现在连一台两轮平衡车都没调过就直接去刷人形机器人的运动控制大概率连面试的第二轮都过不了。原因很简单。面试官看人形机器人项目时判断的不是你“看没看过Figure AI的视频”而是你有没有解决过“真实物理世界的控制问题”。而这恰恰是很多普通人最缺的地方——不是学历不是数学基础而是一套能被验证、能被追问、能被拆解成技术细节的机器人作品集。这篇文章我想分享的就是我眼中“普通人用6个月做一套能拿得出手的面试作品集”的完整路线。它不依赖你有个机器人实验室也不需要你花几万块买贵的硬件。核心思路一句话别只盯着人形机器人这个最终形态而是把运动控制、感知、系统集成这些底层能力拆开用桌面级硬件逐个做出可以展示的结果。这套方法我自己带过几个人用过也帮不少人改过作品集方向上踩过的坑基本都在这了。1. 6个月的时间轴先想清楚“作品集给谁看”很多人做作品集的第一个错误是直接搜“机器人项目教程”然后跟着做一个。做完了发现视频里看着不错但面试官一问“为什么这里用PID而不用MPC”整个人就卡住了。1.1 面试官真正在评估的三件事一个机器人方向的技术面试官翻开你的作品集其实就在看三样东西你是否理解物理系统的不确定性。电机有摩擦、传感器有噪声、结构有柔性你能不能意识到这些问题并用算法去补偿。你是否具备系统集成的能力。机器人不是一个算法跑通就完了它涉及硬件选型、通信协议、电源管理、状态机调度。你能不能把这些串起来。你是否能说清楚每一个设计决策的动机。为什么用这个传感器为什么采样频率定在1kHz为什么控制周期是10ms这些追问往往比“你实现了什么”更能看出一个人的真实水平。所以作品集的核心目标不是“炫技”而是制造一个可以让你被深入追问的载体。你做的每一个项目都应该像一棵树表面上是枝干项目名底下要有充分的根系控制原理、硬件权衡、工程细节供面试官挖掘。1.2 6个月的总体阶段划分我这套时间轴参考了很多人的实际节奏每周投入15到20个小时晚上加周末是比较现实的前提。按普通上班族/学生的节奏大概是这样的安排阶段时间核心任务产出物第一阶段第1-2个月运动控制基线让一台轮式小车稳定跑直线/跑弧线控制代码、标定数据、调参曲线第二阶段第3-4个月机械臂或类似关节系统的轨迹跟踪与力觉控制运动学代码、轨迹规划Demo视频第三阶段第5-6个月感知融合 系统整合 作品集打磨完整Demo、技术文档、GitHub仓库这个顺序是我刻意设计的先轮式、再关节式、最后整机。轮式机器人是最容易入手的稳定平台它帮你建立对反馈控制和传感器噪声的直觉机械臂则引入运动学、动力学和轨迹规划的复杂度最后做系统整合时你会发现前面两个项目积累的代码可以直接复用而不是从零开始。很多人一上来就很急躁想直接做双足或人形但控制里的“稳定性”和“鲁棒性”的感觉必须得在一个不太复杂的系统里先建立起来。这就好比学游泳先在浅水区学会换气再琢磨自由泳转身。直接去深水区不是不行但多数人呛几口水之后就放弃了。2. 第一阶段第1-2个月让轮式小车“听话”建立控制直觉这个阶段的目标非常具体你手里有一台麦克纳姆轮小车或差速小车你要让它走一条指定的轨迹误差控制在厘米级。别小看这个任务它几乎串联了机器人控制里最核心的几个概念。2.1 硬件选型不是越贵越好而是“问题越明显越好”很多人以为做作品集要挑好硬件恰恰相反。我反而建议你选一套“不那么好”的硬件原因后面细说。推荐配置总成本约800到1500元之间的桌面级方案主控STM32F407 或 ESP32STM32更贴近工业习惯ESP32胜在生态方便看你自己偏好驱动TB6612 或 DRV8825 类直流电机驱动电机带霍尔编码器的直流减速电机1:30或更高减速比的PWM频率设到10kHz以上底盘两轮差速或四轮麦克纳姆铝型材或3D打印都行传感器MPU6050IMU再配一个编码器测速作为速度反馈通信USB转TTL直接把数据传到电脑上做离线分析硬件普通一点暴露出来的控制问题反而更多。比如我见过不少便宜的电机在低速时存在明显死区PWM占空比低于某值电机不转这种非线性特性直接拉满PID调参难度。你被迫要去处理这些真实问题而处理的过程就是你面试时要讲的素材。2.2 核心任务一速度环PID先让“轮子转速”听话拿到套件之后第一件事不是让它跑而是写一个速度环PID。流程大概是用编码器读轮子当前实际转速单位rpm 或 rad/s。设置一个目标转速PID设定值。每10ms执行一次PID计算输出PWM占空比给电机驱动。把目标转速、实际转速、PID输出全部用串口发出来在电脑上用串口绘图工具serialplot之类的画出曲线。这时候你会注意到一个很常见的现象空载时PID参数据说能稳定但把车放到地上有负载之后会出现持续几十毫秒的抖动或稳态误差。为什么因为摩擦、惯性、电源电压波动全耦合在一起。这就是第一课控制从来不只是调参而是建模与补偿。我这里给出一个调试经验值新手很容易绕弯路照着这个顺序调会快很多先只加比例项Kp从小到大试观察有没有稳态误差。在有稳态误差的情况下加积分项Ki但注意加多了会出现低频振荡。最后加微分项Kd用来压过冲和振荡但Kd对测量噪声非常敏感编码器如果太脏跳变反而会让PWM忽大忽小。任何一次参数改动只改一个变量并在日志上记录参数和曲线。2.3 核心任务二位置轨迹跟踪让车走弧线而非“歪歪扭扭”速度环做稳定后第二层是位置环。位置环很简单把位置误差换算成目标速度再送给速度环形成一个串联结构外环位置、内环速度。这是非常经典的串级PID框架。但到这里真正有价值的是你会发现外环频率和内环频率必须差上数倍比如内环跑100Hz到200Hz外环跑20Hz到50Hz两个环才不会互相打架。这个经验看起来不难但它解释了为什么很多系统不稳定——不是PID参数不对而是控制频率的时序设计有问题。接下来大胆引入轨迹跟踪算法比如最简单的Pure Pursuit纯追踪给几个固定路点waypoints小车实时计算前方的目标点用几何关系解算出所需转向速度。实测下来麦克纳姆轮能比较自然地完成直线、圆弧和原地旋转的组合最后误差控制在3到5厘米以内就算过关。这个阶段你需要留下的交付物完整的速度环位置环代码注释干净结构清晰。一个由编码器和IMU数据生成的轨迹描图用matplotlib或pyplot绘制。一段短视频小车按预设路径自动走完旁边电脑屏幕实时显示轨迹绘制过程。很多面试官看到这段视频的瞬间就已经愿意给你约下一轮了。因为它证明你做过“闭环”而不是只发了个开环前进的Demo。3. 第二阶段第3-4个月从轮子到关节解锁运动学与轨迹规划有了轮式平台“听话”的底子下一步就是往关节式系统迁移。目前市面上最适合个人做作品的是桌面级六轴机械臂比如一些开源的舵机臂、或者带谐波减速器的低成本协作臂。你不需要追求工业级的绝对精度而是要理解并展示关节空间的运动控制逻辑。3.1 为什么不是双足人形而是机械臂很多人好奇既然目标是机器人行业为什么不直接做双足或人形我的回答是难度曲线太陡而且和“普通人的资源禀赋”完全不匹配。双足的稳定控制涉及全身动量、质心规划、足底力分配这些内容连很多硕士课题都需要两三年才能出一点点成果。你用6个月大概率只能跑通开源代码但面试时人家问你“如果地面打滑怎么办”你是答不上来的。机械臂不一样。它是“有限自由度的系统”可以通过PID、计算力矩法、甚至简单的鲁棒补偿来展示控制能力。同时机械臂又是人形机器人的上半身核心可以很好地对应到具身智能操作系统里常见的操作任务需求。性价比极高。3.2 你需要掌握到什么程度的数学很多人一听到运动学就紧张觉得要拓扑学微分几何。实际上对于作品集级别的机械臂你需要掌握的数学非常具体正运动学用Denavit-Hartenberg参数建立末端位姿与关节角度的关系。你把4×4齐次变换矩阵链乘一遍就够了。这个必须自己手写一遍可以画成表格先推导再验证。逆运动学对六轴臂来说解析解太复杂可以直接用数值迭代法比如雅可比矩阵求伪逆 阻尼最小二乘法。你要是能说清楚“雅可比矩阵代表关节速度与末端速度的映射关系”这就已经能打败一大半做作品集的人了。轨迹规划从简单的点到点运动梯形速度曲线到连续路径五次多项式插值。关键概念是加加速度jerk限制这是很多Demo“顺滑”和“顿挫”的分水岭。不需要你能推导复杂的李群李代数但需要你能回答“为什么路径经过中间点时会减速怎么保证末端不震动”这些问题在面试中出现频率极高。3.3 关节伺服把舵机换成带编码器的直流/无刷电机如果预算紧张你可以用高性能舵机比如某些数字舵机直接搭建机械臂但我更推荐用带减速箱和磁编码器的直流电机或者无刷云台电机做关节。为什么因为舵机内部有一个不透明的闭环你调不了增益也观察不到电流状态天然不利于展示你作为工程师的控制能力。自己做的关节模块你需要实现三个要点电流/力矩估算通过采样电机电流估算输出力矩注意标定电机常数Kt。位置-速度-电流三环串联位置环外、速度环中、电流环内。这个结构在工业伺服里很标准你能完整复现出来面试官眼睛会亮。摩擦补偿关节低速时会有一个值得注意的现象——“爬行”。原因是静摩擦大于动摩擦导致关节在目标点附近来回蠕动。你需要在控制输出里加上一个与速度方向相关的库仑摩擦补偿项。这个细节如果你主动写进文档几乎等于给面试官递了一把打开你技术深度的钥匙。3.4 终极目标画一个圆机械臂项目里最容易让人留下深刻印象的Demo是控制机械臂末端在空间中画一个尽量标准的圆并且实时显示末端实际路径和理论路径的偏差曲线。要实现这个Demo需要串起用逆运动学把圆的笛卡尔坐标点解算成关节角度序列。用关节伺服跟踪这个序列。用正运动学根据编码器实测角度反算末端实际位置在电脑上画出和理论圆的误差图。实测下来如果误差能控制在几毫米左右这对一个桌面级DIY机械臂来说已经是相当不错的水平完全具备面试说服力。这个项目的完整技术博客或GitHub文档就是你作品集里最重的“压舱石”。4. 第三阶段第5-6个月加感知、做整合从“算法块”到“系统”做完机械臂可以适当回头把轮式小车升级一下也可以另起一个整合项目。这个阶段的重点不是“再做一个新Demo”而是把前面所有能力拧成一股绳让你在面试中呈现出“我是能负责一个小系统的人”。4.1 加上最简单但可靠的视觉/激光感知你不必在这个阶段硬上基于深度学习的视觉大模型。相反我更推荐做一个可控、可解释、可部署的感知链路。两个方向任选其一有条件都做地面颜色/标记识别用OpenCV做颜色阈值分割让小车根据地面颜色区域改变速度或方向。基于单线激光雷达或深度相机的避障如果预算允许买个几百元的单线激光雷达如RPLIDAR A1做最基础的占据栅格建图和避障如果预算紧张用深度相机加简单的点云处理也行。这里的关键是你要展示的不是“模型有多先进”而是“传感器噪声如何影响决策你怎么设计滤波器去消解它”。比如激光雷达在近距离存在盲区靠近障碍物时数据会跳变你怎么设计安全距离冗余这种问题面试官问起来你完全可以用自己的实测数据去答这是靠背理论背不出来的。4.2 系统整合状态机与异常恢复一个作品集项目如果只是“能跑”那是外行评价标准。工程上的评价标准是“出错了能不能恢复”。建议你把小车整机做成一个任务级状态机IDLE待机→ MOVING移动→ APPROACHING接近目标→ MANIPULATING操作机械臂→ ERROR异常→ RECOVERY恢复。整个流程里当你检测到障碍物、机械臂堵转、或者任务超时系统要能够进入ERROR状态并通过安全策略停车、断电、或者重新规划退出来。这个设计看起来“不够酷”但它恰恰是工业机器人软件架构里的核心骨架。面试时如果聊到“你遇到过什么困难”你完全可以拿“系统在无人值守时因为传感器异常导致失控”的经历出来然后讲你是怎么一步步加上心跳监控、超时保护、安全停车指令的。这种故事比“我实现了YOLO目标检测”更能体现工程素养。4.3 文档和可视化让面试官3分钟内理解你的系统最后一个月的重心是把技术能力转化成别人能快速理解的东西。我整理了一个作品集项目的标准文档结构你可以直接套用项目简介两句话说明这个系统完成什么任务。系统架构图普通图片就行别用流程图工具画花哨的重要的是层次清晰硬件层 → 驱动层 → 控制层 → 感知层 → 决策层。硬件清单与成本表列表格让面试官知道你是认真选过型的不是随便拼的。核心算法与公式挑2到3个你最有把握的点展开比如PID参数整定过程、运动学雅可比矩阵的推导、占据栅格建图的更新公式。测试数据与图表曲线的X轴/单位标清楚对比实验做出来。这比一屏的代码更打动人。复现说明怎么跑你的代码依赖哪些库在哪个平台测试过。视频是加分项但视频不能替代文档。面试官人在会议室里不可能当着你的面跑代码视频文档的组合是他能带走的最有效材料。5. 作品集的“面试化”打磨从“有项目”到“能聊下去”同一个项目不同的人讲出来效果可能是天壤之别。作品集做完是第一步怎么在面试中把它的价值讲透是更关键的一步。5.1 用“三句话三个追问”准备每个项目我给所有人的建议都一样每个项目准备一个30秒版本和一个3分钟版本。30秒版本说清楚项目目标和结果3分钟版本讲清楚技术路径和你遇到的困难。然后针对每个项目自己给面试官出三个最刁钻的问题并提前写好回答。举点例子都是很容易被问的“你的PID参数是怎么试出来的有没有系统化的方法”参考回答先做开环阶跃测试估算出系统增益和时间常数再用Ziegler-Nichols法或继电整定法得到初值最后手动微调。强调你自己记录了整定过程的数据而不是瞎试。“如果目标轨迹突然变化你的跟踪延迟有多大怎么减小”参考回答可以用前馈控制速度前馈/加速度前馈把目标轨迹的导数直接补偿到控制量中减少反馈闭环的相位滞后。你在日志里对比有无前馈的跟踪误差曲线这就会变成很扎实的证据。“你的机械臂逆运动学在多解时怎么处理”参考回答用伪逆方法同时最小化关节速度的范数或者加上一个“优先保持机械臂构型舒适”的约束。你还要说明数值迭代在奇异构型附近会变慢所以你会用阻尼最小二乘加一个小的正则化项。5.2 作品集本身的排布顺序很多人的作品集上来就放人形机器人或大模型其实对面试官来说反而容易“必要的铺垫不够”。我建议的排布顺序是第一个项目轮式移动机器人闭环控制——展示你对基础控制和建模的理解。第二个项目机械臂运动控制与轨迹规划——展示你对关节系统、运动学、动力学的掌握。第三个项目感知状态机的整合Demo——展示你从单点到系统的工程集成能力。如果有的话第四个项目任何有“增量创新”的东西比如你用开源自瞄改了什么或者你在某个开源库上加了新功能。这类增量创新哪怕再小都极具面试价值。这套排布逻辑是让面试官看到一条清晰的能力成长曲线从会调一个轴到会控制一个多轴系统再到会做一个闭环的智能系统。这条曲线比任何一个单独炫酷的Demo都更有说服力。5.3 最后两个技术细节上的提醒做作品集的时候有两个细节最容易被忽视但面试影响很大第一命名规范和代码结构。我改过很多人的Github仓库发现不少人的代码只有main.py一个文件函数名随便起没有README。印象分直接打折。面试官不指望你上来写出完整系统代码但你至少得让他觉得你有工程习惯变量命名、模块划分、注释是基本的专业素养。第二真实记录数据。每一张曲线图、每一个误差数据都应该有对应的实验环境和参数记录。面试官可能会问“这个数据是在什么负载下测的”“当时的供电电压是多少”——如果你能翻出当时写的实验记录这种细节其实极加分。6. 如果重新来一次我会把“不懂”的部分更早写下来说点我自己的体会。很多做作品集的人包括当年的我最大的通病是假装自己全都懂了。项目做完了但你要真问他某个参数为什么这么定他只能说“试出来的”。如果重新来一次我会在每个项目开始前专门开一个“问题清单”文档把所有我在做的过程中没搞懂的术语、公式、现象不惜花时间去查和推导清楚记录成文档。比如“为什么PID的积分饱和会导致明显超调”“为什么编码器信号要接上拉电阻”“为什么轨迹插值要限制加加速度”这些平凡问题看起来不起眼但恰恰是面试时最能体现你是真做过的证据。作品集最大的价值不是证明你会写代码而是证明你能独立面对一个不确定的物理系统能设计实验去理解它最终通过算法让它稳定可靠地工作。这套方法论比任何具体技术栈都更值得花6个月去修炼。如果你现在正在规划自己的机器人作品集我建议你先关掉那些人形机器人酷炫视频回到桌面、回到基础控制、回到自己手头能碰到的硬件。把一台小车调稳把一条机械臂轨迹跟踪做准确再让它们联动起来。你会在那6个月结束时发现那些岗位的要求虽然写的还是“人形机器人”但面试官想验证的其实就是这些底层能力。