如何将 drake 的优化工具箱与 mujoco-py 模拟器结合起来?

How to incorporate drake's optimization toolboxes with mujoco-py simulator?

问题如下:假设用输入参数A和B进行单个MuJoCo仿真,仿真输出单个输出值V。MuJoCo得到A和B的"float"值,运行模拟然后输出 V.

优化的目标是通过调整 2 个输入参数 A 和 B 来最小化值 V。

我们如何将 pydrake 的优化代码(例如 prog = MathematicalProgram())与 MuJoCo 模拟相结合?

对于这种情况,输出值V不能直接用参数A和B写入,因为 MuJoCo 是一种外部 "black-box"。此外,由于 MuJoCo 是一种 "black-box",无法提供输出 V 的梯度信息。

对此有什么解决方法吗?

任何小 helps/comments 将不胜感激。

如果你没有渐变,那么我建议使用黑盒优化器。一种选择是 nevergrad,它包含各种黑盒优化器。请注意,您不需要使用 drake 的 MathematicalProgram 来调用 nevergrad。您只需要编写一个接受 A 和 B 的函数,然后使用 MuJoCo 计算输出。