teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

2022/01/12 08:56

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,64 +1,61 @@
1
- import pybullet as p
2
- import time
3
- import pybullet_data
4
-
5
- ##############################
6
- # シミュレータ基本設定
7
- ##############################
8
- #物理シミュレーターに接続
9
- physicsClient = p.connect(p.GUI)
10
-
11
- # データのある場所を登録
12
- p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
13
-
14
- # 重力を設定
15
- p.setGravity(0,0,-10)
16
-
17
- ##############################
18
- # モデルを読み込み
19
- ##############################
20
- # 地面を用意
21
- planeId = p.loadURDF("plane.urdf")
22
-
23
- # ロボットモデルを用意
24
- x=0
25
- y=0
26
- carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
27
-
28
- #ボックスを用意
29
- X=3
30
- Y=3
31
- boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
32
-
33
- ################################
34
- # シミュレーションループ
35
- ################################
36
-
37
- angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
38
- angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
39
-
40
- #simplecarのx座標がboxのx座標より小さいとき
41
-
42
- while x < X:
43
- p.stepSimulation()
44
- time.sleep(1./240.)
45
-
46
- #速度設定と4つのタイヤを回転させる
47
- vel = 30.0 #[rad/sec]
48
- p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
49
- p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
50
- p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
51
- p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
52
-
53
- ・・・・・
54
-
55
- carのx座標boxのx座標より小さいときタイヤを回転させ続け、この条件を満さないき回転を止めるようにしたいと考えています。
56
-
57
- (私がやってみたこと)
58
- そこでcarのx座標をx初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)してます。
59
- carが動いいくにつれこのxの値変わっていくもだと思込んでいたですがそではありませんでした。
60
-
61
- (やりたいこと)
62
- whileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
63
-
1
+ import pybullet as p
2
+ import time
3
+ import pybullet_data
4
+
5
+ ##############################
6
+ #シミュレータ基本設定
7
+ ##############################
8
+ #物理シミュレーターに接続
9
+ physicsClient = p.connect(p.GUI)
10
+
11
+ #データのある場所を登録
12
+ p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
13
+
14
+ # 重力を設定
15
+ p.setGravity(0,0,-10)
16
+
17
+ ##############################
18
+ #モデルを読み込み
19
+ ##############################
20
+ #地面を用意
21
+ planeId = p.loadURDF("plane.urdf")
22
+
23
+ #ロボットモデルを用意
24
+ x=0
25
+ y=0
26
+ carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
27
+
28
+ #ボックスを用意
29
+ X=3
30
+ Y=3
31
+ boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
32
+ ##################
33
+ #シミュレーションループ
34
+ ##################
35
+ angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
36
+ angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
37
+
38
+ #simplecarのx座標がboxのx座標より小さいとき
39
+
40
+ while x < X:
41
+ p.stepSimulation()
42
+ time.sleep(1./240.)
43
+
44
+ #速度設定と4つのタイヤを回転させる
45
+ vel = 30.0 #[rad/sec]
46
+ p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
47
+ p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
48
+ p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
49
+ p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
50
+
51
+ ・・・・・
52
+
53
+ carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
54
+
55
+ (私やってみ
56
+ carのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)としています。carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
57
+
58
+ やりたこと)
59
+ whileの条件式を書き換え、carのx座標boxx座標より小さときタイヤを回転させ続け、こ条件を満たさないとき回転を止めるよしたいと考えています
60
+
64
61
  初学者で知識がなく、拙い文章となってしまい申し訳ございません。アドバイス頂けると幸いです。

3

補足説明

2022/01/11 14:39

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,64 @@
1
- (4188e7d50daecb69aa3fe875994deecf.png)
1
+ import pybullet as p
2
+ import time
3
+ import pybullet_data
2
4
 
5
+ ##############################
6
+ # シミュレータ基本設定
7
+ ##############################
8
+ #物理シミュレーターに接続
3
- carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
9
+ physicsClient = p.connect(p.GUI)
4
10
 
11
+ # データのある場所を登録
12
+ p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
13
+
14
+ # 重力を設定
15
+ p.setGravity(0,0,-10)
16
+
17
+ ##############################
18
+ # モデルを読み込み
19
+ ##############################
20
+ # 地面を用意
21
+ planeId = p.loadURDF("plane.urdf")
22
+
23
+ # ロボットモデルを用意
24
+ x=0
25
+ y=0
26
+ carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
27
+
28
+ #ボックスを用意
29
+ X=3
30
+ Y=3
31
+ boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
32
+
33
+ ################################
34
+ # シミュレーションループ
35
+ ################################
36
+
37
+ angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
38
+ angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
39
+
40
+ #simplecarのx座標がboxのx座標より小さいとき
41
+
42
+ while x < X:
43
+ p.stepSimulation()
44
+ time.sleep(1./240.)
45
+
46
+ #速度設定と4つのタイヤを回転させる
47
+ vel = 30.0 #[rad/sec]
48
+ p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
49
+ p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
50
+ p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
51
+ p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
52
+
53
+ ・・・・・
54
+
55
+ carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
56
+
5
57
  (私がやってみたこと)
6
- そこで34行目でcarのx座標をx(初期値x=0を代入)、39行目でboxのx座標をX(初期値X=3を代入)しています。
58
+ そこでcarのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)しています。
7
59
  carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
8
60
 
9
61
  (やりたいこと)
10
- 50行目のwhileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
62
+ whileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
11
63
 
12
64
  初学者で知識がなく、拙い文章となってしまい申し訳ございません。アドバイス頂けると幸いです。

2

補足説明

2022/01/11 14:39

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,12 @@
1
- urdfをロードして設置したオブジェクトの座標をpythonではどのように書くのか教えていただきたいです。
1
+ (4188e7d50daecb69aa3fe875994deecf.png)
2
2
 
3
+ carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
4
+
5
+ (私がやってみたこと)
6
+ そこで34行目でcarのx座標をx(初期値x=0を代入)、39行目でboxのx座標をX(初期値X=3を代入)しています。
7
+ carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
8
+
9
+ (やりたいこと)
10
+ 50行目のwhileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
11
+
3
- オブジェクトのx座標一定値にった時にある処理を実行したいと考えています。
12
+ 初学者で知識がな文章なっしま申し訳ございせん。アドバイス頂けると幸いです。

1

補足

2022/01/11 14:36

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,1 +1,3 @@
1
- urdfをロードして設置したオブジェクトの座標をpythonではどのように書くのか教えていただきたいです。
1
+ urdfをロードして設置したオブジェクトの座標をpythonではどのように書くのか教えていただきたいです。
2
+
3
+ オブジェクトのx座標が一定値になった時に、ある処理を実行したいと考えています。