时间:2016/11/15
作者相关:Vikash Kumar: Senior Research Scientist in Robotics and Embodied AI (vikashplus.github.io)
摘要
- 基于学习的方法,用于对灵巧五指手进行非抓握操作的反馈控制
- 学习得到能够从预定义的初始状态开始执行任务的本地控制器
- 控制器是利用直接从传感器数据中学习到的局部线性时变模型locally-linear time-varying models 的轨迹优化 trajectory optimization 来构建的
- 对于有一些初始条件的初始状态,可以在模拟和物理平台上稳健地执行任务
- 还用两种插值 interpolation 方法来对更多的初始条件进行泛化:深度学习和最近邻 nearest neighbors
- 发现最近邻可以获得更高的性能,最近邻方法基于通过运动捕捉感知的与初始对象状态的接近度,在时变的局部控制器之间切换
- 神经网络可以只使用触觉和本体感觉反馈,而不使用关于对象的视觉反馈,并学习时不变策略
- 我们的工作表明:
- 基于局部轨迹的控制器可以从少量的训练数据中构建复杂的非抓握操作任务
- 这些控制器的集合可以内插以形成更多的全局控制器
关键词
Reinforcement Learning, Dexterous Manipulation, Trajectory Optimization
Introduction
- 不依赖于手动设计的控制器,通过优化高级成本函数,以及通过构建人类提供的专家演示来自动合成控制器
- 学习每个控制器所需的少量数据(在物理硬件上大约60次试验)
- 使用ADROIT平台,带有高性能气动执行器的shadowwhand骨架
- 具有100维连续状态空间;40维连续控制空间
- 我们的方法可以分类为基于模型的强化学习(RL)或自适应最优控制
- 无模型和有模型的强化学习
- 自适应控制主要侧重于学习具有预定义结构的模型的参数,本质上是将系统识别与控制交织在一起
- 我们的方法介于两者之间,依赖于一个模型,但该模型没有任何信息预定义的结构,是从数据中学习的时变线性模型,使用通用先验进行正则化
- 将先前研究的14维状态空间拓展到这里的100维状态空间
- 学习的操作技巧最初表示为时变线性高斯控制器
- 通过遥操作演示来初始化控制器来学习更复杂的操作技能
- 通过两种方式进行泛化来适应任务的不同初始条件
Related Work
- 机器人强化学习与灵巧手控制
- 实验表明,我们的方法可以学习复杂精确抓取任务的策略,并可以推广到目标物体初始位置的变化
- 通过数据手套远程操作,将从经验中学习与从人类演示中模仿学习相结合,克服了这一挑战
- 通过演示初始化控制器是机器人强化学习中广泛使用的技术,简单的成本可能导致较差的局部最优,我们根据示例演示来定义成本
System
Hardware Platform
ADROIT平台,24自由度的手安装在固定的底座上,使系统仅适用于基于手指和基于手腕的操纵策略
抓握对象:装满咖啡豆的长管,每一端都装有PhaseSpace有源红外标记用于估计对象位置和速度(线速度和角速度),它们也作为状态变量提供
所有的传感器都具有相对较低的噪声,因此在将传感器数据发送到控制器之前,我们用最少的滤波
Simulation Platform
使用我们开发的MuJoCo模拟器
Reinforcement Learning with Local Linear Models
用于控制气动五指手的强化学习算法推导遵循先前的工作(Levine and Abbeel 2014)
- 目的是学习形式为
的时变线性高斯控制器
- 其中xt和ut是时间步长t的状态和动作
- 动作对应于气动阀的输入电压
- 算法目的:最小化在轨迹
上的期望
- 其中
是总成本
- the expectation is under
- 其中
是 the dynamics distribution
- 其中
- 其中
Optimizing Linear-Gaussian Controllers
- 时变线性-高斯控制器结构简单,即使在未知动力学的情况下也能很好地进行优化
,
- 在机器人上运行当前控制器p(ut|xt)以收集N个样本,用这些样本拟合形式为
的时变线性高斯动力学
- 计算了成本函数在每个样本周围的二阶展开式并平均在一起,以获得局部近似成本函数
- 形如
- 其中下标表示导数,如:
是
相对于[xt;ut]的倒数,而
是Hessian二阶导
- 其中下标表示导数,如:
- 当代价函数为二次函数且动力学为线性-高斯时,采用LQR方法可得到
的最优时变线性-高斯控制器,被认为是迭代LQR的一种变体
- 从最后一个时间步长开始,通过递归计算二次q函数和值函数来计算最优策略
- 以用下面的递归式来表示:
- 可以计算出最优控制律为:
其中
- LQR可以用来优化标准目标
- 但是,我们也可以形成一个时变线性高斯控制器p(ut|xt),并优化如下目标:
- 正如之前的工作(Levine and Koltun 2013)所示,这个目标实际上是通过设置p(ut|xt) =N (Ktxt + kt, Ct)来优化的,其中Ct = Q−1u,ut
- 对于用拟合时变线性动力学训练的实际学习算法来说,这个最大熵公式将是一个有用的中间步骤
KL-Constrained Optimization
- 为了使这种学习方法产生良好的结果,重要的是在每次迭代时约束控制器p(ut|xt)的变化
- 标准迭代LQR方法在每次迭代时大幅改变控制器,可能导致访问状态空间中拟合动力学不正确的部分,从而导致偏差
- 为了解决这些问题,我们在每次迭代中解决以下优化问题:
- 其中
是由先前控制器引起的轨迹分布
- 其中
- 先前工作中已提出使用KL散度约束进行控制器优化
- 由于假设新轨迹分布和旧轨迹分布的动力学相同,因此KL散度由下式给出:
- 约束优化问题的拉格朗日量由下式给出:
- 约束优化可以用双梯度下降法求解
- 可以使用LQG算法有效地执行关于p的优化
- 只有一个对偶变量,对偶梯度下降收敛得非常快,并且由于LQR是一种非常有效的轨迹优化方法,整个过程可以实现得非常快
- 用固定的协方差Ct和零均值初始化p(ut|xt),以便在第一次迭代时产生随机驱动
- 从p(ut|xt)采样的高斯噪声是预先产生,使用标准差为两个时间步长的高斯核进行平滑,以产生更多的时间相干噪声
Learning Policies from Experience
描述第一组实验使用上一节中以轨迹为中心的强化学习算法,在物理和模拟ADROIT平台上从头开始学习灵巧的操作状态空间由x = (q, q, a)给出,其中q为关节角度矢量,q为关节角速度矢量,a为气缸压力矢量,动作ut对应于阀门指令信号技能
Hand Behaviors
- 状态空间由
给出,其中q为关节角度矢量,q为关节角速度矢量,a为气缸压力矢量,动作ut对应于阀门指令信号,其实数信号对应于每个时间步长每个阀门的开启程度
- 两个任务,手掌由张开到合上和相反过程,过程受重力影响
- 每个时间步长的成本函数为:
- 最后时间步T的代价强调目标位姿,以确保成功到达目标位姿:
Object Manipulation Behaviors
- 操作任务:用手旋转细长的物体。涉及到多个手指的间歇接触,非常动态,同时具有一定的内在稳定性
- 顺时针旋转、逆时针旋转、顺时针旋转然后逆时针旋转,以及不使用腕关节(以鼓励手指定向的动作)的顺时针旋转
- running cost :
- 其中
,
- 其中
- 最终时间步使用:
- 这里成本函数包括一个用于所需对象位置和方向的额外项
- 最终成本相对于运行成本按比例缩放了2倍。
Results
- 动作的总成本随着算法的迭代而减少
- 训练初期的表现是相同的,但最终算法能够在模拟中找到更好的策略
- 还研究了训练过程中注入的勘探噪声大小 exploration noise magnitude 的影响
- 对于相对较小的噪声量,性能单调下降。当我们增加噪声强度时,有时我们会在早期看到更快的改进,但算法的行为不再是单调的
Delayed Robustification
- 在算法的每次迭代中加入初始状态噪声,严重阻碍了整体的进展。然而,在策略被部分学习后添加初始状态噪声会产生更鲁棒的控制器;称这种策略为Delayed Robustification
- 第一行是对初始状态加噪声训练得到的控制器,第二行训练时初始状态不加入噪声
- 黑色曲线是未受干扰的轨迹
- 训练期间添加初始状态噪声大大提高了控制器抑制初始状态扰动的能力
- 在初始状态中注入一些噪声(大约2.5%)有助于提高鲁棒性
- 在真实的机器人上,我们无法避免注入这样的噪音
Learning Policies from Experience and Imitation
- 由于我们的算法通过优化成本的二次近似,所学习的动力学的近似不够准确可能会陷入局部极小值
- 原则上,可以通过增加用于动力学先验的高斯核的数量以及通过增加用于拟合动力学的轨迹样本的数量N来实现任意精度
- 但在实践中,由于时间和计算的限制,收集任意数量的样本可能是不可行的
- 随机探索可以帮助缓解其中的一些问题,但会大大降低样本效率
- 克服其中一些挑战的一个策略是去模仿专家,以有效地引导控制器学习有效的解决方案
- 但简单地遵循专家演示不会产生对扰动具有鲁棒性的行为
- 我们将专家远程操作学习与以轨迹为中心的强化学习相结合
- 以获得更复杂的操作技能,通过遵循专家演示克服局部最优,同时仍然保留经验学习的稳健性优势
Task Details
- 任务:从桌子上拿起一根细长的管子
- 成本取决于管的最终配置,而管的最终配置以不连续的方式取决于手指的位置
- 从各种初始姿势抓管涉及使用多种不同的策略
- 如果管子在手的完全控制下(即没有从手中掉下来或放在桌子上),并且物体上的所有点都离地面一定高度,则认为管子是举起的
Mujoco Haptix
- 捕捉手部操作细节的技术往往不可靠
- 操作还涉及大量接触,包括滚动、滑动、粘滑、变形和软接触等动态现象。记录数据并将其解释为定义良好的物理模型是具有挑战性的
- Mujoco Haptix系统(Kumar and Todorov 2015)的开发是为了促进丰富的手-物体交互的物理一致记录,在DARPA HAPTIX项目的背景下完成
- 可以记录包括关节运动学和动力学,接触相互作用,模拟传感器读数等
Expert Demonstrations
- 将Cyberglove的关节角度
映射到执行器命令:
- 其中qt是手的当前关节构型,Jtendom是将关节空间映射到肌腱空间的肌腱雅可比矩阵,k是增益向量
- 将状态
和控制轨迹
记录为演示轨迹,
Learning Imitation Policies
- 首先尝试使用以下成本函数从头开始学习拾取任务
- 在进行了大量的成本参数调整后,简单的经验学习也无法想出一种能够拿起球杆的策略
- 首先,一旦对象已经被抓住,成本函数只会在情节接近尾声时产生有意义的信号
- 其次,几乎每一种能够成功的策略都必须首先清除物体,然后将手指伸进管子下面的空间
- 最后,ADROIT平台的高维度意味着成功解决方案的空间非常狭窄
- 在从经验中学习阶段,我们使用了一个额外的shaping cost,可以防止学习过程偏离专家演示太远,控制了与专家演示的偏差量。
- 对于使用专家演示学习,将小的随机噪声注入到专家演示的控制轨迹中,以收集轨迹样本{τi}
- 使用的运行成本:
- 其中
是t时刻专家的手的位置configuration,
是时间t时物体的垂直高度
- 第一项是限制学习偏离演示太远的成形成本,第二项是控制成本,最后一项鼓励将物体拾取到离地面12厘米的高度
- 其中
- 使用的运行成本:
Policy Generalization
- 以轨迹为中心的强化学习学习灵活操纵自由移动物体的稳健“局部”策略,而不被设计为处理各种不同初始条件
- 讨论如何使用局部policy来学习一个在不同初始条件下有效概括的单一全局policy
- 可泛化的全局策略通常可以使用具有更具表达性的函数逼近器的强化学习来学习。而深度神经网络代表了一类特别通用和富有表现力的函数逼近器
- 评估深度神经网络在多大程度上能够捕捉拾取技能的可泛化策略
Task Details
- 为了分析泛化,在初始状态下改变杆的方向
- 目标是学习该任务的策略,该策略可成功用于任何初始杆方向
- 我们使用专家演示,收集了一组10个演示,涉及杆方向180度的变化
Local Policies
- 评估试验标准:成功的拾取试验必须使物体静止,杆的顶部离地一定高度,整个杆与x轴对齐,以确保成功地抓住目标位置。
- 图12a分析了对生成演示的杆姿态的局部邻域内杆角度的变化通过直接遵循演示行为获得的性能
- x轴对应于杆的方向的变化
- 观察到大多数演示对于创建它们的特定杆角来说都有些成功,但在杆姿态的变化下,成功率急剧下降,成功区域的边界不连续
- 一些条件通常是成功的,但表现出脆性策略 brittle strategy,即有时正好在演示角度失败
- 图12b所示按照第7节中描述的方法,根据经验进一步训练每个策略,从而提高对应于每个条件的局部策略的稳健性
- 观察到总体成本保持相似,但不同杆位的成功率显著提高
- 随着policy远离零点(用深色垂直线标记),其效果会降低
Nearest Neighbor
- 观察到经过训练后,每个局部策略都在延伸到下一个局部策略边界的邻域中成功
- 表明相对简单的最近邻技术原则上可以允许非参数策略将成功区域扩展到整个杆定向范围
- 图15中,我们评估了这种最近邻策略的性能;该策略简单地部署将棒恢复到最接近初始状态下的局部策略,总体成功率为90.8%
- 尽管这种情况下是成功的,但它需要保留完整的本地策略集,并手动指定应执行最近邻查询的变量(在这种情况中,为棒姿态)
- 而且最近邻策略要求我们知道杆的姿态,在物理实验中,这将涉及使用外部运动捕捉标记
Generalization with Deep Neural Networks
- 最近邻策略受到几个限制:
- 最近邻方法受到维度诅咒的影响,这限制了它们在高维空间中的适用性
- 最近邻方法仍然对应于时变控制策略,这在机器人可能从任意初始状态开始任务的情况下,该策略可能会受到限制
- 它需要存储所有单独的以轨迹为中心的控制器
- 使用深度神经网络作为最终的策略表示不需要手动为最近邻查询选择一组状态变量
- 成为更通用的选择,可能扩展到各种灵巧的操作任务
- 每个local策略都用于从相应的初始状态生成50个示例轨迹
- 用这些样本训练具有6个完全连接层和每层150个整流线性(ReLU)隐藏单元的深度神经网络
- 将杆的姿态信息排除在神经网络的输入之外
- 完整状态观测的神经网络策略的结果表明,在完全观察的情况下,由局部策略训练的神经网络策略通常不如最近邻策略成功
- 这并不特别令人惊讶:最近邻策略已经使用了一组非常成功的本地策略,这些策略可以成功地达到一个角度增量,从而形成重叠的有效区域。然而,神经网络必须将不同局部策略的不同策略提炼成一个单一的连贯函数,因此在这种情况下通常表现较差
- 评估一个大型和小型神经网络的性能,在没有提供杆姿作为输入的情况下,而是使用来自手指上的机载触觉传感器的输入。
- 在不观察杆位姿的情况下,网络的训练成功率为74%,几乎与完全观察情况一样高,大大高于最佳局部策略
- 结果表明更大的网络对于正确处理这种情况是必不可少的
- 有趣的是,当神经网络也没有触觉传感器时,它的性能几乎相同,这表明神经网络能够利用本体感觉来决定使用哪种策略
- 这也并不完全令人惊讶,因为碰撞和接触会导致手指的运动,而这种运动仅通过本体感觉就可以检测到。
Results on ADROIT Hardware Platform
- 任务的细节与上面提到的相同。
- 在物体的位置和方向上都考虑了泛化
- 与上述模拟实验相比,定向泛化在更小的邻域内
- 训练样本通过对专家提供的4个演示进行学习的本地控制器进行采样来收集的
- 网络的训练集由每种情况下的20个样本组成(即总共80个样本)
- 针对不同的条件(包括随机条件)对每个策略进行交叉验证
- 发现本地控制器部分成功,没有一个本地控制器能很好地适用于所有条件
- 神经网络策略在各自的条件下与本地控制器表现相当。
- 它在随机初始配置中的成功率更高
Discussion and Future Work
深度神经网络控制器和最近邻切换控制器各有优缺点,可以在今后的工作中加以改进或结合
- 神经网络控制器接受本体感觉和触觉输入,但不接受关于物体状态的视觉输入
- 需要更详细地研究网络在多大程度上确实可以盲着执行任务
- 盲操作当然不是必需的,用更完整的感官输入来测试网络的性能将会很有趣
- 最近邻控制器目前是时变的
- 选择发生在基于对象的初始状态的运动开始时,在运动的其余部分使用选择的本地反馈控制器
- 另一种方法是沿着局部轨迹存储状态、控制和反馈增益的数据集,并在每个时间点使用最近邻查询
- 此外,它可能存储一组简化的控制器,而不是存储沿所有轨迹的状态
- 两种泛化方法的优点结合起来
- 可以考虑一个混合专家架构mixtureof-experts architecture,其中门控网络对应于我们当前最近邻方法中的切换机制,而专家网络对应于我们的本地轨迹控制器
- 未来工作的另一个方向是扩大正在考虑的任务集
- 模型本身可以是基于物理的模型和神经网络的混合体,前者从数据中学习少量参数,后者使用大量参数来拟合基于物理的模型无法解释的残差