import pybullet as p
import time
import pybullet_data
##############################
#シミュレータ基本設定
##############################
#物理シミュレーターに接続
physicsClient = p.connect(p.GUI)
#データのある場所を登録
p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
重力を設定
p.setGravity(0,0,-10)
##############################
#モデルを読み込み
##############################
#地面を用意
planeId = p.loadURDF("plane.urdf")
#ロボットモデルを用意
x=0
y=0
carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
#ボックスを用意
X=3
Y=3
boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
##################
#シミュレーションループ
##################
angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
#simplecarのx座標がboxのx座標より小さいとき
while x < X:
p.stepSimulation()
time.sleep(1./240.)
#速度設定と4つのタイヤを回転させる
vel = 30.0 #[rad/sec]
p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
・・・・・
carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
(私がやってみたこと)
carのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)としています。carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
(やりたいこと)
whileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
初学者で知識がなく、拙い文章となってしまい申し訳ございません。アドバイス頂けると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。