赞
踩
原文链接
原创 Cong Wang
1月30日
微信公众号:robot_learning123
Sim2Real 问题是比较难的, 也是目前制约learning-based method在机器人上应用的一个重要原因, 近几年机器人领域的顶会都有相关的workshop进行讨论. 仿真环境中的机器人建模, 例如URDF模型, 其动力学模型一般都是3D模型的简化, 肯定没有很高的精度, 控制器的特性也是很难在仿真中体现, 由此就会导致仿真中训练的策略直接部署到真机上不能用. 有两个典型例子; ETH在Science Robotics上的那个论文就是尽可以精确的建模, 包括每个电机驱动的控制特性等; OpenAI的那个手也是经过了精确的动力学标定. 但是这个系统标定的成本高, 工程量大, 并不容易做. 伯克利2018年的一篇论文是从另一个角度来解决这个问题, 通过仿真中动力学参数的随机化, 覆盖实际中的动力学参数, 换句话就是, 把testing都包含进training中(把工作量加在了训练上~).
X. Peng, M. Andrychowicz, W. Zaremba and P. Abbeel, “Sim-to-Real Transfer of Robotic Control with Dynamics Randomization”, 2018 IEEE International Conference on Robotics and Automation (ICRA), 2018. Available: 10.1109/icra.2018.8460528. |
---|
文章的目的使用一个近似的动力学模型
p
^
(
s
t
+
1
∣
s
t
,
a
t
)
≈
p
∗
(
s
t
+
1
∣
s
t
,
a
t
)
\hat p({s_{t + 1}}|{s_t},{a_t}) \approx {p^*}({s_{t + 1}}|{s_t},{a_t})
p^(st+1∣st,at)≈p∗(st+1∣st,at)
进行训练, 以解决仿真和实际中的reality gap. 因此强化学习的训练目标就变为以下:
E
μ
∼
ρ
μ
[
E
τ
∼
p
(
τ
∣
π
,
μ
)
[
∑
t
=
0
T
−
1
r
(
s
t
,
a
t
)
]
]
\mathop {\rm E}\limits_{\mu \sim {\rho _\mu }} \left[ {{{\rm E}_{\tau \sim p(\tau |\pi ,\mu )}}\left[ {\sum\limits_{t = 0}^{T - 1} {r({s_t},{a_t})} } \right]} \right]
μ∼ρμE[Eτ∼p(τ∣π,μ)[t=0∑T−1r(st,at)]]
文章的任务是训练用7自由度的Fetch Robot学习一个puck pushing task, 类似于冰球运动, 能不能推进球门, 和表面接触摩擦力有关系, 也不容易建模. 具体来说, 就是每一个episode, 随机指定桌面上的一个目标位置, 让机器人把物体推进去. 机械臂的初始位置是一个固定位置. 由于RL算法采用的HER, 因此reward也是稀疏奖励, 即成功为0, 其他都为-1.
State 是一个52维状态空间, 包含机械臂的关节位置和速度, 夹钳的位置, 目标物的位置,姿态,线速度和角速度(这么多的输入, 到底对输出都有什么影响,?为什么选择这些变量? 这也是RL研究的一个问题啊). Action是一个7维的向量, 即当前关节位置的增量, 最后发送给机械臂的关节位置控制器.
这部分就是论文最核心的部分, 即实际机器人和仿真环境的模型动力学参数有偏差, 然后通过随机化动力学参数, 使得仿真训练的策略可以直接应用到实际机器人, 简单说就是, 不管你实际动力学参数是多少, 反正我都覆盖训练了, 所以肯定能工作(这就像斗地主的明牌吧~).
训练中的episode是固定长度, 每个训练的开始, 会随机选择一组动力学参数, 直到episode结束, 具体参数包括:
机器人本体每一个连杆的mass
关节damping参数
目标物的mass, friction, damping参数
桌子的高度
位置控制器的gains参数
动作之间的时间间隔: 模拟实际控制器的响应时间
观察空间的噪声: 独立的高斯噪声
以上共计有95个随机参数, 其中mass, damping等动力学参数在每个episode的训练中不会变化, 但是动作时间间隔和观察空间的噪声在每个step都会变化.
仿真训练基于MuJoCo, 仿真器的timestep是0.002s, 每个控制循环包含20个时间间隔 (0.04s), 每个episode包含100的控制循环, 对应大约是每个episode时长4s, 但是会随动作之间的随机时间间隔而变化. 以下是动力学参数的具体变化值:
Parameter | Range |
---|---|
Link Mass | [0.25, 4] X default mass of each link |
Joint Damping | [0.2, 20] X default damping of each joint |
Puck Mass | [0.1, 0.4] kg |
Puck Friction | [0.1, 5] |
Puck Damping | [0.01, 0.2] Ns/m |
Table Height | [0.73, 0.77]m |
Controller Gains | [0.5, 2] X default gains |
Action Timestep | [125,1000] |
最后再看看训练时间: 100核的集群训练8小时. 这计算需求量还是不小的, 要是换一个普通32核的服务器, 相当于训练一天一夜. RL提高训练效率还是很重要啊!
实验结果视频:
Sim-to-Real Transfer of Robotic Control with Dynamics Randomization
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。