机器人神经网络
如果说视觉优化项目是「让机器看清楚」,这个项目就是「让机器动起来」——用神经网络来控制机器人的运动策略,让它从「写死的规则动作」进化为「学出来的自适应行为」。
一、项目背景
传统机器人控制依赖运动学方程 + 规划器:建模型、写约束、解方程。对付结构化环境够用,但环境一复杂(地形变化、外力扰动、抓取形状不定的物体)就露怯——每种情况都要工程师手写规则,写不完。
神经网络控制的思路完全不同:
- 感知直接映射动作:传感器原始数据(关节角度、力矩、视觉)进网络,动作指令出网络,中间不手写任何规则
- 从交互中学习:强化学习(RL)让机器人在仿真里摔几万次自己学会走路;模仿学习(IL)让它看人类示范学会操作
- 泛化能力:训练时见过的变化(光照、物体位置、扰动)形成分布,没见过的情况也能「大致应付」
二、技术方案
1. 整体结构:感知 → 策略 → 控制
传感器输入 策略网络 执行
────────── ────────── ──────
关节编码器 q ┐
IMU 姿态 ├─→ 观测编码器(MLP/Transformer) ─→ 策略头 ─→ 目标关节力矩 τ
足底力传感器 │ │ (高斯分布
深度相机点云 ┘ └─→ 价值网络(训练时用) 采样动作)- 观测编码器:把多模态传感器数据压成统一的隐向量。视觉和本体感受(proprioception)的编码器是分开训练再拼起来的,各自的信息密度差太多了
- 策略网络:输入隐向量,输出动作分布。训练时带随机性(探索),部署时取均值(确定性执行)
- 动作平滑:输出层加低通滤波/动作平滑约束,不然机器人会「抽搐」
2. 训练范式:两条路线都用了
路线 A:强化学习(PPO)练步态
在物理仿真环境里训练(Isaac Gym / MuJoCo【待补充:具体环境】),奖励函数设计是灵魂:
reward = 前进速度奖励
- 能耗惩罚
- 动作幅度惩罚(防抖动)
+ 存活奖励
+ 姿态稳定奖励(IMU 平滑)关键 trick 是域随机化(Domain Randomization):训练时随机化摩擦系数、质量、电机延迟、外部推力——让策略在「什么环境都不确定」的假设下学会鲁棒,迁移到真机时才不会一碰就倒。
路线 B:模仿学习(BC / Diffusion Policy)练操作
抓放物体这类精细操作,RL 的奖励太难设计(怎么定义「抓得好」?),改成给示范数据学模仿:遥操作采集人类示范轨迹【待补充:数据规模】,策略网络学习「观测到动作」的映射。扩散策略(Diffusion Policy)对多模态动作分布的处理比纯行为克隆好——同一个观测对应多种合理动作时不会「平均出一个错误动作」。
3. Sim2Real:仿真到现实的鸿沟
这是具身智能最经典的坑:仿真里健步如飞,真机上原地扑街。我们的应对:
- 域随机化(上面说的),覆盖现实参数的不确定性
- 系统辨识:用真机数据反推执行器的实际参数(延迟、摩擦),回填到仿真里
- 真机微调:sim2real 后在真机上做小步长的在线适应(学习观测编码器最后一层的残差,策略主体不动,保证安全)
4. 安全约束
神经网络策略不能裸奔上真机:
- 动作空间限幅(关节力矩/角度硬限制在安全范围)
- 异常检测兜底:策略输出统计特征突变时,切换回稳定的规则控制器
- 训练时加入「安全惩罚」,让策略自己学会避开危险动作
三、踩过的坑
- 奖励黑客(Reward Hacking):奖励函数里给了前进速度奖励,策略学会了「往前扑倒再爬起来」——速度快了,但不是我们要的行为。奖励每一项都要想清楚会被怎么钻空子
- 观测信息泄漏:仿真里给了真值状态(真实摩擦系数),真机上没有这个传感器,策略当场失效。观测列表必须严格对齐真机可获得的信号
- 训练不稳定:RL 训练曲线像心电图。batch size、学习率、GAE 参数的调参直觉是拿几千次实验换来的
四、成果与收获
【待补充:量化成果——步态稳定性、操作成功率、真机迁移效果】
最深的体会:机器人神经网络的难点不在网络结构(基本是成熟组件的拼装),而在问题建模——观测怎么选、奖励怎么定、随机化怎么做,这三件事决定了项目的上限。
💬 对这个项目的架构细节、技术选型有想法?欢迎加我泡泡(微信)一起探讨技术与科技前沿 → 🍵 加我泡泡