我可以直接从 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)

您可能会想象将 velocityIterationspositionIterations 设置为 1,但这只是与上述相同情况的不太准确的版本。最好将绝对速度与时间步长进行比较,因为您想将加速度矢量(有方向)转换为标量(幅度)。