2017-07-19 9 views
0

Ich bin neu in Bullet. Ich benutze Pybullet und möchte ein Auto machen. Ich benutze this standard URDF-model für die Modellierung des Autos.Zielgeschwindigkeit auf Bullet Physik (Python-Schnittstelle)

Ich möchte mein Auto zum Beispiel mit einer Geschwindigkeit von 20 in der geraden Richtung gehen. Ich kann schreiben:

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

und alles funktioniert.

Dieser Code:

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

ausgeben wird (20, 0, 0). Aber natürlich möchte ich diesen Effekt mit Hilfe von Rädern erreichen, unter Verwendung von setJointMotorControl2, VELOCITY_CONTROL und targetVelocity. Ich sah this example racecar und ich versuchte es, diese Maschine auf einer unendlichen Ebene wie im Beispiel zu laufen, aber die lineare Geschwindigkeit, die ich erreichte, ist ungefähr (1.0, 0, 0), und ich will linearVelocity (20, 0, 0). Ich habe versucht, den Code in dem URDF Modell zu ändern:

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

ich es auf sehr hohe Werte gesetzt und machte die Zielgeschwindigkeit sehr groß, aber es gab keine Wirkung. Wie kann ich das URDF-Modell ändern oder bitte ein einfaches Beispiel für ein Modell geben, das mit hohen Geschwindigkeiten fahren kann?

Ich kann natürlich tun sie künstlich mit:

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

Aber es ist nicht schön, ich will dies mit der Zielgeschwindigkeit der Räder. Bitte helfen Sie.

Antwort

0

Die Felder für Limit und Aufwand in einer URDF-Datei werden nicht von Pybullet verarbeitet.

Sie können die targetVelocity (für die Räder) in diesem Rennauto Beispiel ändern, um schneller zu gehen.