参考资料: https://github.com/stulp/dmpbbo
前提:你已经阅读了黑盒子优化和动态运动原语的教程。
在将BBO应用于策略改进时(例如优化机器人上的DMP),“rollout”的概念变得很重要。rollout是使用一组策略参数(例如DMP的参数)执行策略(例如DMP)的结果。虽然优化的搜索空间是在策略参数的空间中,但成本是由rollout决定的。
从实现的角度来看,将BBO应用于策略改进(可能会执行dmp)需要几个扩展:
1.并行运行多个优化,针对DMP的每个自由度运行一个优化
2.使用任务的rolllouts/任务求解器来代替成本函数
Optimizing DMP DOFs in parallel(多自由度并行优化)
考虑一个7自由度的机械臂。在DMP中,每个DOF将由7-D DMP的不同维数表示(假设DMP的每个维数使用10个基函数)。针对成本函数,有两种不同的优化DMP参数的方法:
1.考虑优化的搜索空间为70-D,即在一个搜索空间中考虑DMP的所有开放参数。为此,您可以使用runOptimizationTask(),还可以参阅demoOptimizationTask.cpp和demoOptimizationDmp.cpp中的演示。缺点是奖励加权平均将需要更多的样本来执行鲁棒更新,特别是对于协方差矩阵,它是70X70!
2.为这7个dof分别运行一个优