我可以直接从 Box2D 物体获取加速度测量值吗? (Python) (Box2D)
Can I acquire acceleration measure directly from a Box2D body? (Python) (Box2D)
我正在使用基于 Box2D 物理库的 OpenAI-Gym 环境 CarRacing-v0。
通过 env.car.hull 我可以访问位置、角度、速度但不能访问加速度。
在 Box2D 中搜索我发现(但不确定)下面显示的属性,我认为没有直接的方法可以让汽车加速
'b2BodyDef': ['active', 'allowSleep', 'angle', 'angularDamping', 'angularVelocity',
'awake', 'bullet', 'fixedRotation', 'fixtures',
'inertiaScale', 'linearDamping', 'linearVelocity', 'position',
'shapeFixture', 'shapes', 'type', 'userData',
],
目前正在使用速度积分来获得加速度,但必须有更好的方法通过 Box2D。
有特定图书馆和环境经验的人可以帮助我吗?谢谢
没有更好的方法让您做您已经在做的事情。
当步骤完成时,在那个瞬间,显示上一步的任何加速度平均值是没有意义的,因为您可能先以一种方式加速,然后以另一种方式加速,例如从墙上弹起。至于考虑单个步骤是从
迭代的
step(float timeStep,
int velocityIterations,
int positionIterations)
您可能会想象将 velocityIterations
和 positionIterations
设置为 1
,但这只是与上述相同情况的不太准确的版本。最好将绝对速度与时间步长进行比较,因为您想将加速度矢量(有方向)转换为标量(幅度)。
我正在使用基于 Box2D 物理库的 OpenAI-Gym 环境 CarRacing-v0。 通过 env.car.hull 我可以访问位置、角度、速度但不能访问加速度。
在 Box2D 中搜索我发现(但不确定)下面显示的属性,我认为没有直接的方法可以让汽车加速
'b2BodyDef': ['active', 'allowSleep', 'angle', 'angularDamping', 'angularVelocity',
'awake', 'bullet', 'fixedRotation', 'fixtures',
'inertiaScale', 'linearDamping', 'linearVelocity', 'position',
'shapeFixture', 'shapes', 'type', 'userData',
],
目前正在使用速度积分来获得加速度,但必须有更好的方法通过 Box2D。 有特定图书馆和环境经验的人可以帮助我吗?谢谢
没有更好的方法让您做您已经在做的事情。
当步骤完成时,在那个瞬间,显示上一步的任何加速度平均值是没有意义的,因为您可能先以一种方式加速,然后以另一种方式加速,例如从墙上弹起。至于考虑单个步骤是从
迭代的 step(float timeStep,
int velocityIterations,
int positionIterations)
您可能会想象将 velocityIterations
和 positionIterations
设置为 1
,但这只是与上述相同情况的不太准确的版本。最好将绝对速度与时间步长进行比较,因为您想将加速度矢量(有方向)转换为标量(幅度)。