子弹物理上的目标速度(python界面)

时间:2017-07-19 06:56:34

标签: python physics velocity bullet

我是Bullet的新手。我使用pybullet想要开车。 我使用this standard URDF-model为汽车建模。

我希望我的车能够以直线20的速度前进。 我可以写:

p.resetBaseVelocity(car, [20, 0, 0])

一切都会奏效。

此代码:

linearVelocity, angularVelocity = p.getBaseVelocity (car)
print(linearVelocity)

将输出(20, 0, 0)。但是,当然,我希望借助于轮子,使用setJointMotorControl2VELOCITY_CONTROLtargetVelocity来实现此效果。我看到了this example racecar,我尝试在无限平面上运行这台机器,如示例所示,但我设法实现的线速度约为(1.0, 0, 0),我想要linearVelocity (20, 0, 0)。我试图改变URDF模型中的代码:

<Limit effort = "10" velocity = "100" />

我将它设置为非常高的值并使目标速度非常大但没有效果。如何更改URDF模型或者请给出一个可以高速行驶的模型的简单示例。

我当然可以人为地做:

 linearVelocity = [x * 2 for x in linearVelocity]
 p.resetBaseVelocity (my_car, linearVelocity)

但它并不美丽,我想用车轮的目标速度来做这件事。请帮忙。

1 个答案:

答案 0 :(得分:0)

pybullet不处理URDF文件中的limit和effort字段。

您可以修改该赛车示例中的targetVelocity(用于车轮)以加快速度。