如何更改机器人和飞机的物理属性以应用域随机化?- Drake

问题描述 投票:0回答:1

我正在与四足机器人合作,使用 Ros2 和 Drake 在 C++ 中通过 DRL 学习运动行为,并且我想在我的学习中应用域随机化。

我希望获得社区的一些建议,以了解如何在训练过程中动态改变机器人的物理属性(如质量、惯性、关节摩擦力)和平面属性。

谢谢你。

drake
1个回答
0
投票

一种方法是您可以在每次模拟的上下文中设置参数。这是执行此操作的快速代码

plant = MultibodyPlant(...)
simulator = Simulator(plant)
plant.GetBodyByName("my_body").SetMass(simulator.get_mutable_context(), new_mass)
simulator.AdvanceTo(T)

注意调用

SetMass
函数,该函数将上下文作为输入。您可以调用
SetSpatialInertiaInBodyFrame
SetDamping
方法,两者都以
context
作为输入。

© www.soinside.com 2019 - 2024. All rights reserved.