← 上级:RL-07.应用实战 · 环境:RL-06-02-经典基准环境
一、真实落地案例:物流 AGV 平衡控制 POC
| 项 | 说明 |
|---|---|
| 业务背景 | 仓储 AGV 携带货架快速转弯时,上层机构需保持近似 upright;可先在一级倒立摆/ CartPole 原型验证控制算法 |
| MDP | 状态:位置、速度、倾角、角速度;动作:左右推力(离散)或力矩(连续) |
| 成功 KPI | 连续平衡 ≥ 30s 无倾倒;仿真中对应 return ≥ 475 |
| 典型团队 | 1 算法 + 1 嵌入式;2~4 周 POC |
本案例在 Gymnasium CartPole-v1 完成算法验证,再迁移到 LunarLander(稀疏奖励)与 HalfCheetah(连续力矩),对应真实项目「离散验证 → 稀疏任务 → 连续执行器」三阶段。
二、配套 Notebook(边执行边理解)
📓 cartpole_control_baseline.ipynb
| 章节 | 内容 |
|---|---|
| 环境冒烟 | 理解 obs/action |
| PPO 训练 | SB3 50k 步 + 回报曲线 |
| 确定性 eval | 20 局 mean/std |
| 对比随机策略 | 量化提升 |
1 | pip install gymnasium stable-baselines3 matplotlib numpy |
三、落地主要难点与方案
难点 1:仿真与真机动力学不一致
| 方案 | 优势 | 局限 |
|---|---|---|
| 域随机化(摩擦、质量、延迟) | 无需真机即可训鲁棒策略 | 随机范围难调,过大收敛慢 |
| 系统辨识 | 缩小 sim-real gap | 需标定实验与 expertise |
| 直接真机 RL | 无迁移误差 | 样本贵、安全风险高 |
建议:CartPole POC 通过后,在 sim 加 Wrapper 随机化再训;见 Sim2Real 案例。
难点 2:离散动作 → 连续力矩
| 方案 | 优势 | 局限 |
|---|---|---|
| CartPole 离散 PPO/DQN | 快速验证闭环 | 不能直接部署到 DAC 力矩 |
| LunarLander 连续版 / Pendulum | 过渡连续空间 | 调参更敏感 |
| MuJoCo + SAC | 工业级连续控制 | 依赖仿真器与算力 |
难点 3:样本效率与上线周期
| 方案 | 优势 | 局限 |
|---|---|---|
| SB3 默认超参 | 2~4h 出 baseline | 未必最优 |
| 模仿学习预训练 | 冷启动快 | 需专家轨迹 |
| 规则 + RL 微调 | 安全可解释 | 上限受规则限制 |
难点 4:安全与急停
| 方案 | 优势 | 局限 |
|---|---|---|
| 动作限幅 | 简单 | 可能限制性能 |
| 监督式护栏(角度超限切 PD) | 可上线 | 双层系统复杂 |
| 纯 RL 无护栏 | 理论最优 | 生产不推荐 |
四、三阶段渐进路线
| 阶段 | 环境 | 算法 | timesteps | 验收 |
|---|---|---|---|---|
| 1 POC | CartPole-v1 | PPO | 50k~200k | eval mean > 450 |
| 2 稀疏 | LunarLander-v2 | PPO | 500k | mean > 200 |
| 3 连续 | HalfCheetah-v4 | SAC | 1M | 曲线上升、与 SB3 zoo 同量级 |
阶段 2/3 代码见 Notebook 注释与 RL-04-05-PPO实现。
五、小结
- 真实场景:AGV/倒立摆平衡 → CartPole 仿真 POC。
- Notebook:
cartpole_control_baseline.ipynb一键跑通。 - 下一案例:推荐与 Bandit