質問編集履歴

4

2022/01/12 08:56

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,127 +1,61 @@
1
1
  import pybullet as p
2
-
3
2
  import time
4
-
5
3
  import pybullet_data
6
4
 
5
+ ##############################
6
+ #シミュレータ基本設定
7
+ ##############################
8
+ #物理シミュレーターに接続
9
+ physicsClient = p.connect(p.GUI)
7
10
 
11
+ #データのある場所を登録
12
+ p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
13
+
14
+ # 重力を設定
15
+ p.setGravity(0,0,-10)
8
16
 
9
17
  ##############################
10
-
11
- # シミュレータ基本設定
18
+ #モデルを読み込み
12
-
13
19
  ##############################
14
-
15
- #物理シミュレーターに接続
16
-
17
- physicsClient = p.connect(p.GUI)
18
-
19
-
20
-
21
- # データのある場所を登録
22
-
23
- p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
24
-
25
-
26
-
27
- # 重力を設定
28
-
29
- p.setGravity(0,0,-10)
30
-
31
-
32
-
33
- ##############################
34
-
35
- # モデルを読み込み
36
-
37
- ##############################
38
-
39
- # 地面を用意
20
+ #地面を用意
40
-
41
21
  planeId = p.loadURDF("plane.urdf")
42
22
 
43
-
44
-
45
- # ロボットモデルを用意
23
+ #ロボットモデルを用意
46
-
47
24
  x=0
48
-
49
25
  y=0
50
-
51
26
  carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
52
27
 
53
-
54
-
55
28
  #ボックスを用意
56
-
57
29
  X=3
58
-
59
30
  Y=3
60
-
61
31
  boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
62
-
63
-
64
-
65
- ################################
32
+ ##################
66
-
67
- # シミュレーションループ
33
+ #シミュレーションループ
68
-
69
- ################################
34
+ ##################
70
-
71
-
72
-
73
35
  angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
74
-
75
36
  angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
76
-
77
-
78
37
 
79
38
  #simplecarのx座標がboxのx座標より小さいとき
80
39
 
81
-
82
-
83
40
  while x < X:
84
-
85
41
  p.stepSimulation()
86
-
87
42
  time.sleep(1./240.)
88
-
89
43
 
90
-
91
- #速度設定と4つのタイヤを回転させる
44
+ #速度設定と4つのタイヤを回転させる
92
-
93
45
  vel = 30.0 #[rad/sec]
94
-
95
46
  p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
96
-
97
47
  p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
98
-
99
48
  p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
100
-
101
49
  p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
102
-
103
-
104
50
 
105
51
  ・・・・・
106
52
 
107
-
108
-
109
53
  carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
110
54
 
111
-
112
-
113
55
  (私がやってみたこと)
114
-
115
- そこでcarのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)しています。
116
-
117
- carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
56
+ carのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)としています。carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
118
-
119
-
120
57
 
121
58
  (やりたいこと)
122
-
123
59
  whileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
124
60
 
125
-
126
-
127
61
  初学者で知識がなく、拙い文章となってしまい申し訳ございません。アドバイス頂けると幸いです。

3

補足説明

2022/01/11 14:39

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,118 @@
1
- (4188e7d50daecb69aa3fe875994deecf.png)
1
+ import pybullet as p
2
+
3
+ import time
4
+
5
+ import pybullet_data
2
6
 
3
7
 
4
8
 
9
+ ##############################
10
+
11
+ # シミュレータ基本設定
12
+
13
+ ##############################
14
+
15
+ #物理シミュレーターに接続
16
+
17
+ physicsClient = p.connect(p.GUI)
18
+
19
+
20
+
21
+ # データのある場所を登録
22
+
23
+ p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
24
+
25
+
26
+
27
+ # 重力を設定
28
+
29
+ p.setGravity(0,0,-10)
30
+
31
+
32
+
33
+ ##############################
34
+
35
+ # モデルを読み込み
36
+
37
+ ##############################
38
+
39
+ # 地面を用意
40
+
41
+ planeId = p.loadURDF("plane.urdf")
42
+
43
+
44
+
45
+ # ロボットモデルを用意
46
+
47
+ x=0
48
+
49
+ y=0
50
+
51
+ carId = p.loadURDF("simplecar.urdf", basePosition=[x,y,0.2])
52
+
53
+
54
+
55
+ #ボックスを用意
56
+
57
+ X=3
58
+
59
+ Y=3
60
+
61
+ boxId = p.loadURDF("box.urdf",basePosition = [X,Y,0.2])
62
+
63
+
64
+
65
+ ################################
66
+
67
+ # シミュレーションループ
68
+
69
+ ################################
70
+
71
+
72
+
73
+ angle1 = p.addUserDebugParameter('angle1', -3.14/2, 3.14, 0)
74
+
75
+ angle2 = p.addUserDebugParameter('angle2', -30, 30, 0)
76
+
77
+
78
+
79
+ #simplecarのx座標がboxのx座標より小さいとき
80
+
81
+
82
+
83
+ while x < X:
84
+
85
+ p.stepSimulation()
86
+
87
+ time.sleep(1./240.)
88
+
89
+
90
+
91
+ #速度設定と4つのタイヤを回転させる
92
+
93
+ vel = 30.0 #[rad/sec]
94
+
95
+ p.setJointMotorControl2(carId, 1, p.VELOCITY_CONTROL, targetVelocity=vel)
96
+
97
+ p.setJointMotorControl2(carId, 3, p.VELOCITY_CONTROL, targetVelocity=vel)
98
+
99
+ p.setJointMotorControl2(carId, 4, p.VELOCITY_CONTROL, targetVelocity=vel)
100
+
101
+ p.setJointMotorControl2(carId, 5, p.VELOCITY_CONTROL, targetVelocity=vel)
102
+
103
+
104
+
105
+ ・・・・・
106
+
107
+
108
+
5
- carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
109
+ carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
6
110
 
7
111
 
8
112
 
9
113
  (私がやってみたこと)
10
114
 
11
- そこで34行目でcarのx座標をx(初期値x=0を代入)、39行目でboxのx座標をX(初期値X=3を代入)しています。
115
+ そこでcarのx座標をx(初期値x=0を代入)、boxのx座標をX(初期値X=3を代入)しています。
12
116
 
13
117
  carが動いていくにつれこのxの値が変わっていくものだと思い込んでいたのですがそうではありませんでした。
14
118
 
@@ -16,7 +120,7 @@
16
120
 
17
121
  (やりたいこと)
18
122
 
19
- 50行目のwhileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。(50行目から59行目)
123
+ whileの条件式を書き換えて、carのx座標がboxのx座標より小さいときタイヤを回転させ続け、この条件を満たさないとき回転を止めるようにしたいと考えています。
20
124
 
21
125
 
22
126
 

2

補足説明

2022/01/11 14:39

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

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

1

補足

2022/01/11 14:36

投稿

xgwmgdpwgmp
xgwmgdpwgmp

スコア0

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