Upgrade to Pro — share decks privately, control downloads, hide ads and more …

竹のしん

 竹のしん

TelloをIoT化して遠隔から操作する方法を紹介します。
やり方は以下のブログに書いています。
https://take6shin-tech-diary.com/mqtt-remote-tello/

19f6335aaa265d92ddbd96a57d36df72?s=128

竹のしん

May 14, 2021
Tweet

Transcript

  1. TelloをIoT化して遠隔操作 2021.5.13 IoTLT 第75回資料 ⽵のしん

  2. ⾃⼰紹介 ⽵のしん • 仕事:半導体設計 • (株)KAMAKEのすすめ/技術⽀援フェロー http://kamake.co.jp/ • ブログ:⽵のしんのテック⽇記 https://take6shin-tech-diary.com/

    • YouTube:⽵のしんの「ものづくり」チャンネル https://www.youtube.com/channel/UCiWsCRWOpmpjlng_M4TQGyQ • Twitter:@tak6uch1 ものづくり関連の情報発信をしています
  3. Telloの普通のあそびかた タブレットやパソコンから操作 Wi-Fi基地局 Telloが⾒える範囲内で使うのが普通

  4. TelloをIoT化 無料のクラウドサーバー を介して遠隔から操作 https://test.mosquitto.org/ paho-MQTT (Python) Pygame Mac Mac 遠く離れた場所からTelloを操縦

  5. 動画 https://www.youtube.com/watch?v=bK-JexSZuT8&t=242s

  6. Videoの送り⽅ • Tello側:テキスト情報base64にエンコードしてMQTT Publish • 操縦側:MQTT Subscribeで受け取ったbase64をデコード self.frame = self.tello.read()

    if self.frame is None or self.frame.size == 0: continue else: self.frame = cv2.resize(self.frame, dsize=(160, 120)) _, buf = cv2.imencode('.jpg', self.frame) jpg_as_text = base64.b64encode(buf) self.client.publish("Tello-Video/jpg-image", jpg_as_text) def on_message(client, userdata, msg): global frame img = base64.b64decode(msg.payload) # converting into numpy array from buffer npimg = np.frombuffer(img, dtype=np.uint8) tmp_frame = cv2.imdecode(npimg, 3) # Convert RBG to BGR for opencv image frame = cv2.cvtColor(tmp_frame, cv2.COLOR_RGB2BGR)
  7. まとめ • 無料のクラウドMQTTブローカー test.mosquitto.orgを利⽤ • MQTT通信はpaho-MQTT(Python)使⽤ Videoはbase64でテキスト化して送る • ゲームコントローラーF710はPygame(Python)で操作 案外リアルタイムで操作できる!!!