我正在与四足机器人合作,使用 Ros2 和 Drake 在 C++ 中通过 DRL 学习运动行为,并且我想在我的学习中应用域随机化。
我希望获得社区的一些建议,以了解如何在训练过程中动态改变机器人的物理属性(如质量、惯性、关节摩擦力)和平面属性。
谢谢你。
一种方法是您可以在每次模拟的上下文中设置参数。这是执行此操作的快速代码
plant = MultibodyPlant(...)
simulator = Simulator(plant)
plant.GetBodyByName("my_body").SetMass(simulator.get_mutable_context(), new_mass)
simulator.AdvanceTo(T)
注意调用
SetMass
函数,该函数将上下文作为输入。您可以调用 SetSpatialInertiaInBodyFrame
和 SetDamping
方法,两者都以 context
作为输入。