我可以直接从 Box2D 主体获取加速度测量吗? (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,但这只是与上述相同情况的不太准确的版本。最好将绝对速度与时间步长进行比较,因为您想将加速度矢量(有方向)转换为标量(大小)。