这篇文章复盘的是我在全国三维数字化创新设计大赛工业机器人专项赛中做的项目——「分形速递」,一个自适应变形物流分拣机器人。
比赛要求设计并制作一台面向物流分拣场景的工业机器人,需要同时体现机械结构创新和智能化水平。我们的方案是一个能根据任务需求变形、能自主识别和抓取包裹、能和拾取小车协同作业的机器人系统。
我在这个项目里做了几件事:整体概念设计、SolidWorks 三维建模、部分结构件的 3D 打印和组装、视觉识别模块的选型和集成,以及搭建了项目的展示网页。
概念:为什么叫"分形速递"
「分形」这个概念来自两个层面。
第一层是字面的——机器人的底盘可以做开合变形。工作时底盘展开,获得最大支撑面积;收纳时底盘缩回,变成紧凑的方块。这个设计解决的是仓库里机器人的闲置占地问题:平时看起来不大的机器人,几十台堆在一起就很占空间。
第二层是隐喻的——「分形」暗指机器人可以和拾取小车分离、各自独立工作,像一个系统裂变成多个单元。主机器人负责识别和抓取,拾取小车负责运输,两者可以并行作业。
名字定下来之后,整个项目的设计方向就清晰了:这个机器人必须可变、可分、可协同。
机械设计:底盘、机械臂、丝杆
机械部分是整个项目里最花时间的。
可变距底盘采用丝杆机构驱动轮距变化,理论范围是 30cm 到 120cm。底盘展开后支撑面积增大,搬运包裹时稳定性明显提升。底盘配了万向轮,可以在平面内全向移动,零半径转向,在狭窄的仓库通道里也能转开。
机械臂设计成左右对称的两指结构,最大开合角度 90°。选两指而不是多指的原因很简单:物流分拣场景里,大部分包裹是规则形状(纸箱、软包、圆柱体),两指足够覆盖 90% 以上的抓取需求,结构还比多指方案简单很多。我们用不同力度和姿态适配不同类型的包裹,承载目标 5kg。
丝杆机构是变形系统的核心。机械臂和工作模块通过丝杆驱动升降和收放,让机器人能在「工作形态」和「收纳形态」之间切换。这个部分建模花了不少时间,因为要保证丝杆行程和结构件不干涉,同时还要留出线缆走线的空间。
整个建模在 SolidWorks 里完成,反复改了好几版。最早一版底盘太宽,转向时轮子会蹭到壳体;后来把轮距调到更紧凑的布局,又发现稳定性下降——最终是用中间值加支撑筋解决的。
视觉与软件:YOLO + OCR + API
软件系统分三块:视觉识别、文字提取、物流对接。
视觉识别用了 YOLO 做包裹检测,识别包裹的形状(纸箱、软包、圆柱体)和大致尺寸。这块不是我手写算法,而是基于开源模型做针对性训练和部署。
OCR 用于读取包裹上的运单号。拿到运单号后,通过物流企业的 API 查询分拣目的地,决定包裹该往哪边走。这套逻辑的核心价值不是技术本身——YOLO 和 OCR 都是成熟方案——而是把它们串成一个完整的流水线:看到包裹 → 识别类型 → 读取运单 → 查询目的地 → 决策抓取 → 执行搬运。
实际调试时也遇到过问题。比如包裹上运单号贴歪了 OCR 就读不出来,光线太暗 YOLO 会漏检。后来加了一个小补光灯和一个角度矫正的预处理步骤,准确率才上去。
展示网页:把项目说清楚
除了机器人本身,我还做了一个项目展示网页。
网页用纯 HTML/CSS/JS 写的,深色背景加蓝色渐变配色,想给评委一个「这是一个正经技术项目」的第一印象。网页结构分了几块:设计理念、技术特点、视频演示、性能对比表格、应用场景。
对比表格是我觉得比较有效的部分——直接把「分形速递」和「传统方案」的数据并排,评委扫一眼就能 get 到差异。分拣效率 800 vs 300 件/小时、识别准确率 98% vs 90%、错误率 <2% vs 5-10%——这些数据不管准不准,至少让项目有了一个可讨论的基准。
3D 模型展示部分做了三个视角(正视、侧视、俯视)的视频切换,让评委能从不同角度看到机械结构。底盘变形、工作流程、分离对接也都录了演示视频放在网页上。
我踩过的几个坑
1. 建模时没考虑打印公差
SolidWorks 里画得严丝合缝,3D 打印出来装不进去。后来每个配合面都留了 0.3mm 的间隙,才勉强能装。如果重来,一开始就应该把打印公差纳入设计。
2. 丝杆和线缆打架
设计丝杆的运动轨迹时只考虑了结构件,忘了控制器到电机之间的线缆也要跟着动。装起来以后发现线缆在变形过程中会挂到丝杆,后来重新规划了走线路径,把线全部固定到结构件外侧才解决。
3. 视觉方案选型纠结了太久
一开始在传统图像处理和深度学习之间犹豫了很久。后来想通了:比赛评判的是机器人整体完成度,不是谁的算法更高级。YOLO 成熟、部署简单、效果够用,就没必要自己写一套边缘检测加特征匹配。
4. 网页做了太多 CSS 动画
回头看那个网页,粒子背景、滚动动画、渐变色、毛玻璃效果——花在 CSS 上的时间够把机械臂多迭代一版了。但那时候的想法是「网页好看评审会加分」,现在觉得评审大概率只看数据和结构,不会在意你的导航栏有没有 backdrop-filter。
这段经历对我的意义
3D 大赛和电赛不同——电赛是现场限时调试,3D 大赛更像一次完整的工程项目:从概念到设计到制作到展示,每一步都要自己推。
我在这项目里学到的最重要的一件事是:机械设计不是画得越复杂越好,而是能用最简单的方式解决问题。
「两指还是五指」「要不要用步进电机还是舵机」「底盘一定要丝杆驱动吗」——这些选择背后真正的问题是:你要花多少时间、成本、风险去换多少性能提升。对当时的比赛来说,能稳定跑起来的方案比理论上更优但调不稳的方案重要得多。这和电赛巡线小车里放弃 IMU 改用转弯计数是同一个逻辑。
后续如果重做
- 底盘结构换更轻的材料,减轻电机负载;
- 视觉模块加一个自动校准步骤,不同光照下自适应;
- 网页收敛 CSS 时间,把更多精力放在实机调试上;
- 做一轮完整的抓取失败率统计,用数据定位是机械臂的角度问题、力度问题还是视觉误判。
总结
「分形速递」不是一个完美的机器人——它的很多指标是预估的,有些模块停留在纸面,展示网页也有点过度包装。但它让我完整走了一遍从概念到展示的项目流程:想一个能说通的方案、画三维图、把零件打出来装起来、接上视觉模块让它动、再做一个网页把故事讲清楚。
对当时的我来说,这是一次很好的「项目完成度」训练。做比赛,能跑起来比跑得快更重要——这句话我在电赛里说过,在 3D 大赛里又被验证了一次。
我们学校也搞了3D大赛,做的仓储。看你们这个物流的感觉思路更清晰一些
厉害
还没有回应,欢迎写下第一封来信。