我们现在就把它收敛成一个可以开始画 CAD、买零件、做样机的 V1 版本。我建议第一版先冻结目标:机器人能够在羽毛球场上自主找到散落羽毛球,低损伤拾取,把任意姿态的球自动调整成统一方向,最后按正常羽毛球筒里的方式嵌套排列,容量 48 个球。
1. V1 整机先这样定
我建议整车控制在:
| 参数 | V1 建议值 |
|---|---|
| 整机宽 | 550–580 mm |
| 整机长 | 680–750 mm |
| 整机高 | ≤550 mm |
| 前端有效捡球宽度 | 420–450 mm |
| 车轮直径 | 90–100 mm |
| 最大速度 | 0.4 m/s |
| 正常找球速度 | 0.25–0.30 m/s |
| 最后进球速度 | 0.08–0.15 m/s |
| 储球量 | 4 × 12 = 48 个 |
| 整机重量目标 | 12–18 kg |
| 电池 | 24/25.6 V,10 Ah |
| 目标续航 | 约 1.5–2.5 h |
高度控制在 550 mm 左右,后面基本可以直接从羽毛球网下通过,不需要把场地硬拆成两半。
整体结构我会按这个布局:
俯视图 机器人前进方向 ↑ ┌────────────────────────┐ │ 远距离相机 │ │ │ ↘↘↘ │ │ ↙↙↙ 左侧软刷 │ 430mm拾球口 │ 右侧软刷 \ │ ↓ │ / \ │ 柔性拾球滚轮 │ / └──┤========================├───┘ │ 斜输送带 │ │ ↓ │ │ 单球分离机构 │ │ ↓ │ │ 双皮带自动定向机构 │ │ ↓ │ │ 落球漏斗 │ │ │ O │ AI板 / STM32 │ O 驱动轮│ │驱动轮 │ │ │ ○ ○ │ │ ○ ○ 4个储球筒 │ │ 转盘 │ └────────────────────────┘ 后部这里最重要的是:球从前往后一直单向流动,不要设计复杂的机械臂搬运路径。
2. 拾球机构:这一块先追求“不伤球”
我建议不要直接照搬高速叶轮。
第一版做成:
两侧聚拢软刷 + 中央柔性滚轮 + 低位输送带。
前面两侧各一个直径大约90–110 mm的圆柱软刷,向内旋转,把离中心线 15~20 cm 的羽毛球慢慢扫到中间。
刷毛建议:
TPU 柔性条、硅胶条,或者非常软的尼龙毛。
转速第一版不要快:
80~150 rpm。
例如 100 mm 直径、120 rpm,刷尖线速度大约只有 0.63 m/s,不至于像高速飞轮一样抽羽毛。
中央再放一个:
宽 360~400 mm、直径约 90 mm 的柔性拾球滚轮。
表面不是硬胶,而是:
\ | / \ | / \|/ \|/ --------O-----O-------- 软TPU拨片拨片碰到羽毛球以后把球“拨”进后面的斜输送带。
我建议最低处离地:
8~12 mm。
另外做两个很小的随动轮控制前端高度,避免机架一晃,拾球机构刮到场地胶。
3. 第一版输送带不要太宽
羽毛球本身最大外径只有 58–68 mm,而球头直径 25–28 mm,这是 BWF 规则给出的尺寸。(羽毛球网)
所以内部通道没有必要做到很宽。
建议:
| 参数 | 建议 |
|---|---|
| 输送带宽 | 160–180 mm |
| 有效长度 | 300–350 mm |
| 倾角 | 25–30° |
| 运行速度 | 0.08–0.15 m/s |
| 表面 | TPU/PU防滑纹 |
| 两边挡板高度 | 50–70 mm |
这里最好使用低速减速电机,不需要什么大功率电机。
大约:
24 V、30~60 W、60~120 rpm 减速电机
就够了。
4. 一个非常重要的东西:单球化
实际使用时一定会出现:
○ ○ ○两个甚至三个羽毛球同时进入。
如果直接扔进整理机构,很容易堵。
所以斜输送带结束以后,我建议加一个非常简单的:
软胶星轮 / 闸门。
变成:
输送过来的球 ○ ○ ○ ↓ ──○── ↑ 软胶星轮 ↓ 一次只允许一个星轮每检测到后级空闲,旋转一个固定角度,释放一只羽毛球。
这里甚至不需要闭环伺服。
一个普通舵机或者小步进电机就够。
这会让后面的可靠性高很多。
5. 自动调整羽毛球方向,是 V1 最值得做好的结构
这一块我会采用已有方案验证过的基本原理,但具体结构重新设计。
已有自动捡球方案采用的是两条平行橡胶输送带,带间距小于羽毛裙最大直径,使羽毛裙被支撑,而球头在重力作用下自然向下。(谷歌专利)
我们把它做得更容易调:
正视图 羽毛裙 Ø58~68 \ / \ / ─────────\ /───────── 左软带 V 右软带 | ● 球头 Ø25~28 ↓ 重力不要把间距写死。
我建议做成:
30~40 mm 连续可调。
第一轮实验直接测试:
30 / 32 / 34 / 36 / 38 mm。
理论上球头最大 28 mm,所以 30 mm 开始比较合理;羽毛裙最低也有约 58 mm,因此容差非常大。(羽毛球网)
结构尺寸建议:
整理段长度:250~320 mm 皮带宽度:15~20 mm 皮带间隙:30~40 mm可调 速度:0.06~0.12 m/s这一段我会增加一个非常弱的偏心振动。
不是为了“震球”,而是在遇到横躺、两只球搭在一起时,让它自己重新寻找稳定姿态。
甚至可以让左右两条皮带:
左:0.10 m/s
右:0.095 m/s
存在约 5% 速度差。
球就会产生轻微旋转,更容易进入正确姿态。
6. 我暂时不建议第一版搞专利里的“4球翻转+横向推筒”
那个方案很聪明,而且已经有人验证:四个球进入临时筒后,整个临时筒翻成水平,再由推杆一次把四个球推入最终球筒。(谷歌专利)
但是 V1 没必要。
我们先做更加简单的:
垂直自由落球 + 轻振动嵌套
统一球头向下以后:
新球 \ / V ● ↓ ┌────────┐ │ \ / │ │ \ / │ │ ● │ │ \ / │ │ \ / │ │ ● │ │ \ / │ │ ● │ └────────┘也就是正常球桶的排列。
这里我建议不要一开始使用真正纸球桶作为机械基准。
先加工四根透明实验筒:
内径分别:
72 / 74 / 76 mm
看看哪个尺寸对不同品牌羽毛球容错最好。
最后大概率会在:
74 mm 左右
找到比较舒服的位置。
透明材料建议 PETG 或 PC,这样能够直接观察堵球原因。
单筒高度:
400~420 mm。
基本就是普通 12 球包装的长度级别。
7. 储球我建议直接做 4×12
四根储球筒不是横着摆。
做一个简单转盘:
俯视 ○ ○ ● 转盘中心 ○ ○四个透明筒围绕一个转盘。
固定落球点不动。
当计数:
Tube 1 = 12STM32 控制步进电机旋转 90°:
Tube 2 → 落球口然后继续。
所以容量:
48 个。
这已经足够覆盖大多数训练场景。
以后想扩到 72 个,只需要做 6 筒转盘。
8. 底盘我现在建议用这个规格
两个驱动轮:
24V、75~100 rpm、带编码器的 37 mm 级减速电机。
配:
90~100 mm 软橡胶轮。
如果用 100 mm 车轮:
75 rpm 理论轮速约:
0.39 m/s。
100 rpm:
0.52 m/s。
但软件限制最大速度到:
0.35~0.4 m/s
就行。
日常找球:
0.25 m/s。
最后 50 cm 靠近羽毛球:
0.1 m/s。
这已经很快。
市面上这类 24V 37 mm 编码器减速电机非常成熟,例如 75 rpm、107 rpm 等规格都有现成型号:
24V 75rpm 37mm Encoder Gearmotor
US$17.50
24V 107rpm 37mm Encoder Gearmotor
US$18.88
24V 107rpm 555 Encoder Gearmotor
US$25.50
这几个只是规格参考,你们真采购时我建议国内直接找 GB37/37GB555 编码器减速电机,不要照海外价格买。
9. 整车电机数量大约 8 个
我会这样分:
| 编号 | 电机 | 数量 | 大致要求 |
|---|---|---|---|
| M1/M2 | 左右行走电机 | 2 | 24V、75–100rpm、编码器 |
| M3/M4 | 左右聚拢刷 | 2 | 24V、100–150rpm |
| M5 | 拾球滚轮 | 1 | 24V、120–200rpm |
| M6 | 斜输送带 | 1 | 24V、60–100rpm |
| M7 | 双皮带整理机构 | 1 | 24V、60–100rpm |
| M8 | 储球转盘 | 1 | NEMA17步进 |
双整理皮带没必要两个电机。
一个电机通过同步轴带动两根皮带即可。
10. 堵球一定要用“电流”判断
机械结构再好,也一定会堵。
所以:
拾球滚轮、输送带、整理皮带
最好都有电流监测。
例如:
正常: 1.2 A 突然: 4.5 A 持续 >200 ms ↓ 判断堵塞然后自动:
停止 ↓ 反转 0.4 s ↓ 停止 0.2 s ↓ 正转最多尝试三次。
再失败才报警。
这比摄像头判断“是不是堵球”可靠得多。
11. V1 的传感器其实只需要这些
我会安装:
| 位置 | 传感器 |
|---|---|
| 左右轮 | 编码器 |
| 机身 | IMU |
| 拾球入口 | 对射光电 |
| 整理入口 | 对射光电 |
| 整理出口 | 对射光电 |
| 储球入口 | 对射光电 |
| 转盘 | 霍尔零位 |
| 前保险杠 | 微动开关 ×2 |
| 左右前方 | ToF ×2 |
| 电机 | 电流检测 |
然后逻辑非常明确:
入口传感器 → 球确实进车了 整理出口 → 球已经正确通过整理机构 储球传感器 → 球真的掉进球筒 count += 1不要用 AI 去推测“刚才是不是捡到了”。
一定用物理传感器确认。
12. 控制系统采用你比较熟悉的思路:AI板 + STM32
整体数据流:
USB/MIPI Camera │ ▼ ┌─────────────┐ │ RK3588 │ │ │ │ YOLO │ │ 目标定位 │ │ 路径规划 │ │ 状态机 │ └──────┬──────┘ │ UART/CAN │ ┌──────▼──────┐ │ STM32 │ │ │ │ Wheel PID │ │ Sensor IO │ │ Motor Ctrl │ │ Jam Recover │ │ E-stop │ └──────┬──────┘ │ ┌────────────┼────────────┐ ↓ ↓ ↓ 行走电机 输送电机 转盘AI板只发:
v = 0.22 m/s w = -0.31 rad/sSTM32 自己算:
left_rpm right_rpm然后以:
100 Hz
闭环控制电机。
Linux 上面的 AI 程序哪怕卡一帧,车辆也不会乱跑。
13. AI板我仍然建议 RK3588
ROCK 5B 的 RK3588 内置 NPU 官方标称最高6 TOPS,支持 INT4/INT8/INT16/FP16,并有 USB、MIPI CSI、PCIe 等接口。(Radxa)
你这个任务:
只有一个类别——羽毛球。
没有必要买 67 TOPS 的 Jetson。
我现在反而更倾向:
RK3588 8GB。
另外一个好消息是目前 Ultralytics 已经支持直接把 YOLO 导出成 RKNN,并指定目标平台rk3588,包括 INT8 量化部署;Rockchip 官方也维护 RKNN-Toolkit2。(Ultralytics Docs)
所以软件流程可以非常简单:
4060Ti 台式机 YOLO训练 ↓ best.pt ↓ RKNN export ↓ best.rknn ↓ RK3588不像几年前 RK3588 部署那么折腾。
14. 你现在的 4060 Ti 16GB 不仅够,而且绰绰有余
我甚至建议第一版直接用你比较熟悉的:
YOLO26n Detect。
训练分辨率:
先:
960 × 960
如果远处小球检测还是差,再试:
1280。
因为羽毛球在三四米以外会变成很小的目标。
4060 Ti 16GB 训练这种单类别 Nano 模型完全没有必要增加第二张显卡。
你的钱更应该花在:
机械加工;
不同滚轮;
不同软刷;
透明整理槽;
测试球;
不同品牌羽毛球;
相机。
这是一个典型的:
机械实验成本 > AI 算力成本
的项目。
15. 相机我建议最终做两个,但第一版先一个
主相机:
分辨率:2560×1440 或至少1920×1080 帧率:30 fps HFOV:80~100° 安装高度:约500 mm 俯角:25~35°负责:
0.5~4 m 左右找球。
第二个近距离相机只预留接口。
以后装在前端:
球 ↓ 中 ┌────────────┐ │ L C R│ └────────────┘最后几十厘米只判断:
球偏左、居中、偏右。
这能显著提高入口命中率。
16. 第一版 YOLO 数据集不用很大,但场景一定要刻意做难
目标我建议:
1500~3000 张真实图片。
但一张里面可以很多羽毛球,所以最好有:
10000+ 个球实例。
重点不是数量,而是必须覆盖下面这些情况:
不同距离、不同角度、白色球/轻微变色球、球头朝向不同、羽毛朝摄像头、球头朝摄像头、多个球重叠、靠近边线、压在白线附近、强灯光、阴影、人脚附近、球拍附近、饮料瓶等干扰物。
尤其要加入:
大量没有羽毛球的负样本。
这样以后误检测会少很多。
17. 羽毛球坐标根本不需要深度相机
场地是平面。
做一次 Homography 标定:
图片像素 (u,v) ↓ Homography ↓ 地面坐标 (X,Y)所以 YOLO 检测到:
bbox = x1,y1,x2,y2取 bbox 下方附近的落地点:
u = (x1+x2)/2 v = y2投影到地面。
马上得到:
Target: X = 1.84 m Y = -0.37 m然后机器人就能过去。
完全不需要 RGB-D。
18. 最后的进球控制要单独做
我不建议机器人一路保持同一个导航控制器。
距离 > 0.6 m:
普通目标导航距离 < 0.6 m:
切换到:
APPROACH 模式。
控制方式变成:
羽毛球 * | | image center | ↓ ┌──────────┐ │ 捡球入口 │ └──────────┘控制两个量:
横向误差 ex 距离误差 ed如果:
球在左边稍微左转。
如果:
球正中央缓慢前进。
最后以:
0.08~0.12 m/s
进入拾球区。
这里完全没必要搞神经网络控制。
P 控制甚至都够。
19. 软件最终状态机我建议直接按这个做
这是整套机器人的“大脑”:
BOOT ↓ SELF_CHECK ↓ LOCALIZE ↓ SEARCH ↓ DETECT_BALLS ↓ SELECT_TARGET ↓ NAVIGATE ↓ APPROACH ↓ PICKUP ↓ VERIFY_PICKUP ├──失败 → RETRY_PICKUP │ ↓ │ 3次失败 │ ↓ │ MARK_FAILED │ └──成功 ↓ ORIENT ↓ VERIFY_ORIENT ↓ STORE ↓ BALL_COUNT +1 ↓ Tube == 12 ? ├─是 → ROTATE_TUBE └─否 ↓ SEARCH同时后台监控:
OBSTACLE JAM LOW_BATTERY TUBE_FULL EMERGENCY_STOP这是我最推荐的软件架构。
20. V1 BOM,我建议把预算冻结在约 3500 元
第一版不要追求漂亮外壳。
先把功能跑通:
| 模块 | 建议配置 | 目标成本 |
|---|---|---|
| AI | RK3588 8GB | ¥700–1000 |
| MCU | STM32F4/G4 | ¥40–100 |
| 相机 | 2K/4MP UVC | ¥150–300 |
| 行走电机 | 37GB编码器 ×2 | ¥250–400 |
| 行走轮 | 100mm ×2 | ¥80–150 |
| 万向轮 | ×2 | ¥40 |
| 聚拢刷电机 | ×2 | ¥80–150 |
| 拾球电机 | ×1 | ¥60–100 |
| 输送电机 | ×1 | ¥50–80 |
| 整理电机 | ×1 | ¥50–80 |
| NEMA17+驱动 | ×1 | ¥50–80 |
| 电机驱动 | 若干 | ¥150–250 |
| 输送带/同步带 | — | ¥200–350 |
| 光电/ToF/电流传感器 | — | ¥100–200 |
| 电池 | 25.6V 10Ah LiFePO4 | ¥450–700 |
| 充电器 | 29.2V | ¥80–150 |
| DC/DC | 24→12/5V | ¥80–120 |
| 铝型材/钣金 | — | ¥300–500 |
| 3D打印 | PETG/TPU | ¥200–400 |
| 线材/连接器/保险 | — | ¥150–250 |
真实做下来:
¥3500 左右可以作为比较激进的目标。
第一次样机因为买错零件、重新加工,实际准备:
¥4500~5000
会舒服很多。
21. 第一阶段我甚至不建议买 RK3588
这一点很重要。
现在先用你们的 4060 Ti 台式机。
最初机械样机完全可以:
USB线 ↓ 台式机 ↓ YOLO甚至先不用 YOLO。
用遥控器控制底盘。
也就是说开发顺序是:
机械 → 遥控 → 视觉 → 自主。
而不是:
AI → AI → AI → 最后发现球塞不进去。
22. 我给这个项目定的第一个真正验收实验
先不用底盘。
做一台桌面机器:
人工随机扔球 ↓ ┌───────────┐ │ 拾取滚轮 │ └─────┬─────┘ ↓ 斜输送带 ↓ 单球器 ↓ 双带整理 ↓ 漏斗 ↓ 透明储球筒然后准备:
100 个连续测试循环。
每次随机改变球姿态。
记录四个指标:
| 指标 | 第一阶段目标 |
|---|---|
| 成功进入 | >95% |
| 正确定向 | >95% |
| 正确嵌套 | >90% |
| 羽毛明显损坏 | <1% |
这个东西跑通之后,我们才值得做机器人底盘。
因为它就是整个项目最难的 50%。
我建议我们接下来就这么推进
下一步我可以直接继续把这个方案进一步落到机械 CAD 级别:把前端拾球机构、斜输送带、双皮带整理器、4筒转盘分别画成“俯视 + 侧视尺寸草图”,给出轴径、滚轮直径、皮带宽度、安装孔/调节槽、各电机安装位置,以及第一批你应该购买的具体零件规格。
其中我建议最先画和制作“桌面版拾取→整理→叠球机构”,暂时连轮子和 AI 板都不要买。这个顺序能最大程度降低你们第一次样机失败的成本。