質問編集履歴

9

2020/06/25 14:54

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  コード
8
8
 
9
+ #include "ros/ros.h"
9
10
 
10
-
11
- geometry_msgs/Twist.h>
11
+ #include <geometry_msgs/Twist.h>
12
12
 
13
13
  #include <turtlesim/Pose.h>
14
14
 

8

2020/06/25 14:54

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 私はROSを使用してturtlesimノードの亀が今いる座標軸や回転角を購読てそこら回転、移動て座標[5.5]地点まで動くプログラミングを作りたい思っており、プログラミングを組み立ててみたのでが、ビルドはできたのですが,亀は超高速円を描だけでした。以下にプログラミングを載ますので改善点を教えてもらえないでしょうか。恐らくsetMoveVector関数の中の書き方が違うのかなと思われます
3
+ この質問の編集前の皆さんのアバイスおかげで一応計算は出来また。しかし今度はプログラミングにそれ書き出そうとすると一応ビルドは出来るのですが目標座標ま到達してれま。恐らくsetMoveVector関数の中の書き方が違うのかなと思われまが、おおまかな原因がわかりません。改善点を教えて貰えまでしょうか?
4
4
 
5
5
  ```C++
6
6
 

7

2020/06/25 14:48

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,11 +6,9 @@
6
6
 
7
7
  コード
8
8
 
9
- ```
10
9
 
11
- #include "ros/ros.h"
12
10
 
13
- #include <geometry_msgs/Twist.h>
11
+ geometry_msgs/Twist.h>
14
12
 
15
13
  #include <turtlesim/Pose.h>
16
14
 
@@ -187,3 +185,7 @@
187
185
 
188
186
 
189
187
  ```
188
+
189
+
190
+
191
+ ```

6

2020/06/25 14:45

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,20 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  私はROSを使用してturtlesimノードの亀が今いる座標軸や回転角を購読してそこから回転、移動して座標[5.5]地点まで動くプログラミングを作りたいと思っており、プログラミングを組み立ててみたのですが、ビルドはできたのですが,亀は超高速で円を描くだけでした。以下にプログラミングを載せますので改善点を教えてもらえないでしょうか。恐らくsetMoveVector関数の中の書き方が違うのかなと思われます。
4
-
5
- ```c++
6
-
7
- コード
8
-
9
- ```
10
-
11
-
12
-
13
- ```C++
14
-
15
- コード
16
-
17
-
18
4
 
19
5
  ```C++
20
6
 

5

2020/06/25 14:44

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,12 @@
14
14
 
15
15
  コード
16
16
 
17
+
18
+
19
+ ```C++
20
+
21
+ コード
22
+
17
23
  ```
18
24
 
19
25
  #include "ros/ros.h"
@@ -192,4 +198,6 @@
192
198
 
193
199
  }
194
200
 
201
+
202
+
195
- 、、、
203
+ ```

4

2020/06/25 14:44

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,12 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  私はROSを使用してturtlesimノードの亀が今いる座標軸や回転角を購読してそこから回転、移動して座標[5.5]地点まで動くプログラミングを作りたいと思っており、プログラミングを組み立ててみたのですが、ビルドはできたのですが,亀は超高速で円を描くだけでした。以下にプログラミングを載せますので改善点を教えてもらえないでしょうか。恐らくsetMoveVector関数の中の書き方が違うのかなと思われます。
4
+
5
+ ```c++
6
+
7
+ コード
8
+
9
+ ```
4
10
 
5
11
 
6
12
 
@@ -185,3 +191,5 @@
185
191
  return 0;
186
192
 
187
193
  }
194
+
195
+ 、、、

3

2020/06/25 14:42

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -9,8 +9,6 @@
9
9
  コード
10
10
 
11
11
  ```
12
-
13
- ソースコード
14
12
 
15
13
  #include "ros/ros.h"
16
14
 

2

2020/06/25 14:41

投稿

sousoudig
sousoudig

スコア0

test CHANGED
@@ -1 +1 @@
1
- 座標距離を求めたいが式が分からない。
1
+ ノード内のシュミレータロボである亀に座標[5,5]の地点まで動くようにしたい
test CHANGED
@@ -1,5 +1,189 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 初心者なで計算式かりません。いません。教えて下さい。
3
+ 私はROSを使用してturtlesimノード今いる座標軸や回転角を購読してそこら回転、移動して座標[5.5]地点まで動くプログラミングを作たいと思っており、プログラミングを組み立ててみたのですが、ビルドはできたのですが,亀は超高速で円を描くだけでした。以下にプログラミングを載せますので改善点を教えてもらえなでしょうか恐らくsetMoveVector関数の中の書き方が違うのかなと思われます。
4
4
 
5
+
6
+
7
+ ```C++
8
+
9
+ コード
10
+
11
+ ```
12
+
13
+ ソースコード
14
+
15
+ #include "ros/ros.h"
16
+
17
+ #include <geometry_msgs/Twist.h>
18
+
19
+ #include <turtlesim/Pose.h>
20
+
21
+
22
+
23
+ class turtleSim{
24
+
25
+ public:
26
+
27
+ turtleSim();
28
+
29
+ ~turtleSim();
30
+
31
+ void poseCallback(const turtlesim::PoseConstPtr& pose);
32
+
33
+ void setMoveVector(int count);
34
+
35
+ void timerCallback(const ros::TimerEvent&);
36
+
37
+
38
+
39
+ private:
40
+
41
+ ros::Publisher twist_pub;
42
+
43
+ ros::Subscriber pose_sub;
44
+
45
+ ros::Timer timer;
46
+
47
+ ros::NodeHandle nh;
48
+
49
+ };
50
+
51
+
52
+
53
+ turtleSim::turtleSim(){
54
+
55
+ twist_pub = nh.advertise<geometry_msgs::Twist>("turtle1/cmd_vel", 1000);
56
+
57
+ pose_sub = nh.subscribe<turtlesim::Pose>("turtle1/pose", 1, &turtleSim::poseCallback, this);
58
+
5
- C++でロボットの制御の勉強をしているのですが、下記画像のdxとdyを求めたいのです。しかし、途中式が分かりません。どなたか教えていただけませんでしょうか。
59
+ timer = nh.createTimer(ros::Duration(0.1), &turtleSim::timerCallback, this);
60
+
61
+
62
+
63
+ geometry_msgs::Twist twist;
64
+
65
+ twist.linear.x = 0.0;
66
+
67
+ twist.linear.y = 0.0;
68
+
69
+ twist.linear.z = 0.0;
70
+
71
+ twist.angular.x = 0.0;
72
+
73
+ twist.angular.y = 0.0;
74
+
75
+ twist.angular.z = 0.0;
76
+
77
+ twist_pub.publish(twist);
78
+
79
+ }
80
+
81
+
82
+
83
+ turtleSim::~turtleSim(){
84
+
85
+
86
+
87
+ }
88
+
89
+
90
+
91
+ void turtleSim::poseCallback(const turtlesim::PoseConstPtr& pose){
92
+
93
+ ROS_INFO("x:%f",pose->x);
94
+
95
+ }
96
+
97
+
98
+
99
+ void turtleSim::timerCallback(const ros::TimerEvent&){
100
+
101
+ setMoveVector(10);
102
+
103
+ setMoveVector(10);
104
+
105
+ }
106
+
107
+
108
+
109
+ void turtleSim::setMoveVector(int count){
110
+
111
+ int i ;
112
+
113
+ float x, y, theta, angular,pose_x,pose_y,pose_theta ;
114
+
115
+ geometry_msgs::Twist twist;
116
+
117
+ ros::Rate loop_rate(10);
118
+
119
+
120
+
121
+ x = 5.000000 - pose_x ;
122
+
123
+ y = 5.000000 - pose_y ;
124
+
125
+ theta = atan(y/x) ;
126
+
127
+ angular = 6.283185 - pose_theta ;
128
+
129
+
130
+
131
+ ROS_INFO("pose_x:%f",pose_x) ;
132
+
133
+    ROS_INFO("pose_y:%f",pose_y) ;
134
+
135
+ ROS_INFO("theta:%f",theta) ;
136
+
137
+ ROS_INFO("angular:%f",angular) ;
138
+
139
+ for(i=0;i < count; i++) {
140
+
141
+ if(x==0.000000) {
142
+
143
+ ROS_INFO("x:%f",x) ;
144
+
145
+ twist.angular.z = 1.570796 ;
146
+
147
+ twist.linear.x = y ;
148
+
149
+ twist_pub.publish(twist) ;
150
+
151
+ loop_rate.sleep() ;
152
+
153
+ }
154
+
155
+ else {
156
+
157
+ twist.angular.z = angular ;
158
+
159
+ twist.linear.x = x ;
160
+
161
+ twist.linear.y = y ;
162
+
163
+ twist_pub.publish(twist) ;
164
+
165
+ loop_rate.sleep() ;
166
+
167
+ }
168
+
169
+ }
170
+
171
+ }
172
+
173
+
174
+
175
+ int main(int argc, char **argv){
176
+
177
+ ros::init(argc, argv, "move_turtlesim");
178
+
179
+
180
+
181
+ turtleSim turtlesim;
182
+
183
+
184
+
185
+ ros::spin();
186
+
187
+ return 0;
188
+
189
+ }

1

著作権の関係

2020/06/25 14:40

投稿

sousoudig
sousoudig

スコア0

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,3 @@
3
3
  初心者なので計算式が分かりません。すいません。教えて下さい。
4
4
 
5
5
  今C++でロボットの制御の勉強をしているのですが、下記画像のdxとdyを求めたいのです。しかし、途中式が分かりません。どなたか教えていただけませんでしょうか。
6
-
7
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
8
-
9
- ![イメージ説明](62eea82d51a7806635308b1632a8c9d6.jpeg)