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

質問編集履歴

11

誤字

2020/09/07 04:04

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
File without changes

10

誤字

2020/09/07 04:04

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -38,7 +38,7 @@
38
38
  を使用しています。このIPアドレスはwifiにつなげた状態でパソコンでIPアドレススキャナーのアプリでスキャンして得ました。
39
39
  映像受信時のUDPは1台の時と変わらず
40
40
  ('udp://0.0.0.0:11111')
41
- を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、telloのIPアドレスは正しく、カメラのUDPが間違っているのではないかと考えています。
41
+ を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、telloのIPアドレスは正しく、映像受信時のUDPが間違っているのではないかと考えています。
42
42
 
43
43
  IPアドレスを変更するとUDPも変わるのでしょうか。変わるとしても、変更後の値が分かりません。そもそも編隊飛行ではカメラを使えないのでしょうか。
44
44
 

9

誤字

2020/09/07 03:42

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -156,7 +156,7 @@
156
156
  send_command1('command')
157
157
  send_command1('streamon')
158
158
 
159
- cap1 = cv2.VideoCapture('udp://0.0.0.0:12000')
159
+ cap1 = cv2.VideoCapture('udp://0.0.0.0:11111')
160
160
 
161
161
  while True:
162
162
  ret,frame1 = cap1.read()

8

補足説明追加

2020/09/07 03:31

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,9 @@
5
5
  この質問は以下のサイトでマルチポストしています。
6
6
  分かったこと、補足説明や解決方法はどちらのサイトにも更新します。
7
7
  [http://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1](http://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1)
8
+
9
+ UDPやIPアドレスについてあまり詳しくないため、間違っていましたらご指摘お願いします。
10
+
8
11
  ### 発生している問題
9
12
 
10
13
  tellopyなどは使わず、TelloSDK2.0のコマンド送信によるプログラムを書いています。
@@ -17,14 +20,13 @@
17
20
 
18
21
  telloEDUの編隊飛行(前進、後退などの単純な動き)自体はうまくいっています。
19
22
 
20
- ご回答宜しくお願いいたします。
21
23
 
22
24
  #補足説明
23
- tello 1台のときは
25
+ tello 1台のときはtello自体がwifiアクセスポイントとなります。
24
26
  telloのIPアドレス、ポート番号は公式通りに
25
27
  ('192.168.10.1',8889)
26
28
  を使用しています。
27
- telloカメラのUDPも公式通りに
29
+ 映像受信時のUDPも公式通りに
28
30
  ('udp://0.0.0.0:11111')
29
31
  を使用しています。
30
32
 
@@ -34,7 +36,7 @@
34
36
  ドローン2:('192.168.100.113',8889)
35
37
  ドローン3:('192.168.100.114',8889)
36
38
  を使用しています。このIPアドレスはwifiにつなげた状態でパソコンでIPアドレススキャナーのアプリでスキャンして得ました。
37
- telloカメラのUDPは1台の時と変わらず
39
+ 映像受信時のUDPは1台の時と変わらず
38
40
  ('udp://0.0.0.0:11111')
39
41
  を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、telloのIPアドレスは正しく、カメラのUDPが間違っているのではないかと考えています。
40
42
 
@@ -42,12 +44,160 @@
42
44
 
43
45
  ご回答宜しくお願い致します。
44
46
 
47
+ #試したこと
48
+
49
+
45
50
  [https://joho-ka.mints.ne.jp/multi-camras-with-opencv?doing_wp_cron=1599214242.8721311092376708984375](https://joho-ka.mints.ne.jp/multi-camras-with-opencv?doing_wp_cron=1599214242.8721311092376708984375)
46
51
  こちらのサイトのcapture = cv2.VideoCapture(i)のiの値を変えていく方法はうまくいきませんでした。この方法はパソコンに直接つなぐタイプのカメラにしか使えないようで、通信で映像を取得するtelloには使うことができませんでした。
47
52
 
53
+
54
+ wi-fiルーターにパソコンとドローン3台ではなく、1台のみ接続し試しました。
55
+ ドローン1:('192.168.100.112',8889)
56
+ ('udp://0.0.0.0:11111')
57
+ で試しましたが、「streamon OK」で止まり、映像の取得はできませんでした。
58
+ つまり、混信以前のUDPなどが間違っていることになるのでしょうか。
59
+ ```Python
60
+ #試したこと②
61
+ import socket
62
+ import threading
63
+ import time
64
+ import cv2
48
65
 
66
+ event = threading.Event()
49
67
 
68
+ sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
69
+ sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
70
+ sock.bind(('',9000))
50
71
 
72
+ tello1_address = ('192.168.100.112',8889)
73
+
74
+ def send_command1(msg):
75
+ print(msg)
76
+ msg = msg.encode(encoding="utf-8")
77
+ sock.sendto(msg,tello1_address)
78
+ event.wait()
79
+ event.clear()
80
+
81
+ def send_command2(msg):
82
+ print(msg)
83
+ msg = msg.encode(encoding="utf-8")
84
+ sock.sendto(msg,tello2_address)
85
+ event.wait()
86
+ event.clear()
87
+
88
+ def send_command3(msg):
89
+ print(msg)
90
+ msg = msg.encode(encoding="utf-8")
91
+ sock.sendto(msg,tello3_address)
92
+ event.wait()
93
+ event.clear()
94
+
95
+ def send_command(msg):
96
+ print(msg,msg,msg, sep='\n', end='\n')
97
+ msg = msg.encode(encoding="utf-8")
98
+ sock.sendto(msg,tello1_address)
99
+ sock.sendto(msg,tello2_address)
100
+ sock.sendto(msg,tello3_address)
101
+ event.wait()
102
+ event.clear()
103
+
104
+ def send_command12(msg1,msg2):
105
+ print(msg1,msg2, sep='\n', end='\n')
106
+ msg1 = msg1.encode(encoding="utf-8")
107
+ msg2 = msg2.encode(encoding="utf-8")
108
+ sock.sendto(msg1,tello1_address)
109
+ sock.sendto(msg2,tello2_address)
110
+ event.wait()
111
+ event.clear()
112
+
113
+ def send_command23(msg2,msg3):
114
+ print(msg2,msg3, sep='\n', end='\n')
115
+ msg2 = msg2.encode(encoding="utf-8")
116
+ msg3 = msg3.encode(encoding="utf-8")
117
+ sock.sendto(msg2,tello2_address)
118
+ sock.sendto(msg3,tello3_address)
119
+ event.wait()
120
+ event.clear()
121
+
122
+ def send_command13(msg1,msg3):
123
+ print(msg1,msg3, sep='\n', end='\n')
124
+ msg1 = msg1.encode(encoding="utf-8")
125
+ msg3 = msg3.encode(encoding="utf-8")
126
+ sock.sendto(msg1,tello1_address)
127
+ sock.sendto(msg3,tello3_address)
128
+ event.wait()
129
+ event.clear()
130
+
131
+ def send_command123(msg1,msg2,msg3):
132
+ print(msg1,msg2,msg3, sep='\n', end='\n')
133
+ msg1 = msg1.encode(encoding="utf-8")
134
+ msg2 = msg2.encode(encoding="utf-8")
135
+ msg3 = msg3.encode(encoding="utf-8")
136
+ sock.sendto(msg1,tello1_address)
137
+ sock.sendto(msg2,tello2_address)
138
+ sock.sendto(msg3,tello3_address)
139
+ event.wait()
140
+ event.clear()
141
+
142
+ def recv():
143
+ while True:
144
+ try:
145
+ data,server = sock.recvfrom(1518)
146
+ print(data.decode(encoding="utf-8"))
147
+ event.set()
148
+ except Exception:
149
+ break
150
+ recvThread = threading.Thread(target=recv)
151
+ recvThread.start()
152
+
153
+
154
+ def main():
155
+ try:
156
+ send_command1('command')
157
+ send_command1('streamon')
158
+
159
+ cap1 = cv2.VideoCapture('udp://0.0.0.0:12000')
160
+
161
+ while True:
162
+ ret,frame1 = cap1.read()
163
+ cv2.imshow('TelloEDU1',frame1)
164
+
165
+ key = cv2.waitKey(1)
166
+ if key == 27:
167
+ break
168
+
169
+
170
+ except Exception as ex:
171
+ print(ex)
172
+ finally:
173
+ cap1.release()
174
+ cv2.destroyAllWindows()
175
+ send_command1('streamoff')
176
+ sock.close()
177
+ print('--- END ---')
178
+
179
+ if __name__ == '__main__':
180
+ main()
181
+ ```
182
+
183
+
184
+
185
+ ('192.168.10.1',8889)と('udp://0.0.0.0:11111')がセットになっている(対になっている)可能性があるか調べました。wi-fiルーターにパソコンとドローンを1台接続し、ドローンは192.168.10.1に割り振られるようにルーター側で設定しました。
186
+ この方法もうまくいかず、「streamon OK」で止まりました。
187
+
188
+
189
+ ドローン自体をwi-fiアクセスポイントとしたとき(パソコンとドローンを1対1で接続)、
190
+ ('192.168.10.1',8889)('udp://0.0.0.0:11111')
191
+ ('192.168.10.1',8889)('udp://127.0.0.1:11111')
192
+ ('192.168.10.1',8889)('udp://192.168.10.2:11111')
193
+ のように映像受信時のIPアドレスを変えても、映像を受信できました。
194
+
195
+
196
+ wi-fiルーターではなく、ドローンをwi-fiのアクセスポイントとしたとき、このアクセスポイントに他のドローンも接続できるか試しましたができませんでした。
197
+
198
+
199
+
200
+
51
201
  ### 該当のソースコード
52
202
 
53
203
  ```Python

7

補足説明追加

2020/09/07 03:25

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -42,9 +42,12 @@
42
42
 
43
43
  ご回答宜しくお願い致します。
44
44
 
45
+ [https://joho-ka.mints.ne.jp/multi-camras-with-opencv?doing_wp_cron=1599214242.8721311092376708984375](https://joho-ka.mints.ne.jp/multi-camras-with-opencv?doing_wp_cron=1599214242.8721311092376708984375)
46
+ こちらのサイトのcapture = cv2.VideoCapture(i)のiの値を変えていく方法はうまくいきませんでした。この方法はパソコンに直接つなぐタイプのカメラにしか使えないようで、通信で映像を取得するtelloには使うことができませんでした。
45
47
 
46
48
 
47
49
 
50
+
48
51
  ### 該当のソースコード
49
52
 
50
53
  ```Python

6

補足説明追加

2020/09/04 10:55

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  この質問は以下のサイトでマルチポストしています。
6
6
  分かったこと、補足説明や解決方法はどちらのサイトにも更新します。
7
- https://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1
7
+ [http://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1](http://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1)
8
8
  ### 発生している問題
9
9
 
10
10
  tellopyなどは使わず、TelloSDK2.0のコマンド送信によるプログラムを書いています。

5

補足説明追加

2020/09/04 10:47

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  [Python]telloEduで編隊飛行を行った際のカメラ映像の取得方法を教えてください。
4
4
 
5
+ この質問は以下のサイトでマルチポストしています。
6
+ 分かったこと、補足説明や解決方法はどちらのサイトにも更新します。
7
+ https://qiita.com/tiffany1098/questions/70c0cbfba80ec8ffa1f1
5
8
  ### 発生している問題
6
9
 
7
10
  tellopyなどは使わず、TelloSDK2.0のコマンド送信によるプログラムを書いています。

4

誤字

2020/09/04 10:39

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -22,8 +22,8 @@
22
22
  ('192.168.10.1',8889)
23
23
  を使用しています。
24
24
  telloカメラのUDPも公式通りに
25
+ ('udp://0.0.0.0:11111')
25
26
  を使用しています。
26
- ('udp://0.0.0.0:11111')
27
27
 
28
28
  tello3台のときは
29
29
  wifiルーターにtello3台とパソコンをつなげているため、IPアドレスが変わるため

3

誤字

2020/09/04 03:56

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,7 @@
33
33
  を使用しています。このIPアドレスはwifiにつなげた状態でパソコンでIPアドレススキャナーのアプリでスキャンして得ました。
34
34
  telloカメラのUDPは1台の時と変わらず
35
35
  ('udp://0.0.0.0:11111')
36
- を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、tello1nのIPアドレスは正しく、カメラのUDPが間違っているのではないかと考えています。
36
+ を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、telloのIPアドレスは正しく、カメラのUDPが間違っているのではないかと考えています。
37
37
 
38
38
  IPアドレスを変更するとUDPも変わるのでしょうか。変わるとしても、変更後の値が分かりません。そもそも編隊飛行ではカメラを使えないのでしょうか。
39
39
 

2

補足説明追加

2020/09/04 03:48

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -16,9 +16,32 @@
16
16
 
17
17
  ご回答宜しくお願いいたします。
18
18
 
19
+ #補足説明
20
+ tello 1台のときは
21
+ telloのIPアドレス、ポート番号は公式通りに
22
+ ('192.168.10.1',8889)
23
+ を使用しています。
24
+ telloカメラのUDPも公式通りに
25
+ を使用しています。
26
+ ('udp://0.0.0.0:11111')
19
27
 
28
+ tello3台のときは
29
+ wifiルーターにtello3台とパソコンをつなげているため、IPアドレスが変わるため
30
+ ドローン1:('192.168.100.112',8889)
31
+ ドローン2:('192.168.100.113',8889)
32
+ ドローン3:('192.168.100.114',8889)
33
+ を使用しています。このIPアドレスはwifiにつなげた状態でパソコンでIPアドレススキャナーのアプリでスキャンして得ました。
34
+ telloカメラのUDPは1台の時と変わらず
35
+ ('udp://0.0.0.0:11111')
36
+ を使用していますが、映像を取得できませんでした。「streamon」はきちんと送れているようなので、tello1nのIPアドレスは正しく、カメラのUDPが間違っているのではないかと考えています。
20
37
 
38
+ IPアドレスを変更するとUDPも変わるのでしょうか。変わるとしても、変更後の値が分かりません。そもそも編隊飛行ではカメラを使えないのでしょうか。
21
39
 
40
+ ご回答宜しくお願い致します。
41
+
42
+
43
+
44
+
22
45
  ### 該当のソースコード
23
46
 
24
47
  ```Python

1

書式変更

2020/09/04 03:47

投稿

tiffany
tiffany

スコア1

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,6 @@
4
4
 
5
5
  ### 発生している問題
6
6
 
7
- ```
8
7
  tellopyなどは使わず、TelloSDK2.0のコマンド送信によるプログラムを書いています。
9
8
  TelloEdu1台での飛行時のカメラ映像は「command」の次に「streamon」とコマンドを送信したのち、OpecCVで
10
9
  cap = cv2.VideoCapture('udp://0.0.0.0:11111')
@@ -18,8 +17,8 @@
18
17
  ご回答宜しくお願いいたします。
19
18
 
20
19
 
21
- ```
22
20
 
21
+
23
22
  ### 該当のソースコード
24
23
 
25
24
  ```Python