LoginSignup
8
4

More than 3 years have passed since last update.

もっと自由にドローン(Ryze Tello)をProcessingのみで飛ばしてみた

Last updated at Posted at 2018-05-29

追記

SDKバージョン1.3.0.0がでました
そこには今回の内容がカヴァーされている形になっています
SDKを利用して自由に飛ばすには「rc」コマンドを利用するとよいかと思います.
以下SDKのドキュメントから引用

command : rc a b c d
Discription : Send RC control via four channels
a: left/right (-100~100)
b: forward/backward (-100~100)
c: up/down (-100~100)
d: yaw (-100~100)

前回

前回では,Telloのページで公式に公開されているSDKからProcessingで飛ばしてみました
ですが,このSDKだとコマンドを実行した後,そのコマンドが実行中は別のコマンドを受け付けてくれませんでした.
なので斜め移動ができない!
今回のテーマは「空を自由に飛びたいな!」です.

環境

  • Processing 3.3.7
  • udp(Processingライブラリ) 1.0

サンプルコード

今回もとりあえずいきなりサンプルコード
と言いたいところですが,作ったクラス内のコードが長かったのでgithubにもあげました
https://github.com/tkyko13/TelloP5

メインのクラスだけここでは表記します
(若干githubとは差がありますが,基本同じです)

TelloP5.pde

import hypermedia.net.*;

Tello tello;

void setup() {
  tello = new Tello(this);
}

void draw() {
  tello.update();
}

void keyPressed() {
  if (key == 'a') {
    tello.takeoff();
  } else if (key == 's') {
    tello.land();
  } else if (key == 'w') {
    tello.forward(10);
    tello.left(10);
  }
}

ちょい解説

Telloの飛ばし方は前回を参照してください
コードを実行した後,このコードではaキーを押したら飛び始めると思います
sキーで着陸ですが,wキーだとなんと左前に斜めに移動します!

参考サイト

https://gobot.io/blog/2018/04/20/hello-tello-hacking-drones-with-go/
実は上記のgo言語でのライブラリgobotだと斜め移動が可能になっています
実は,今回のgithubに上がっているクラスはそちらを見ながらProcessingに書き直したものになっています

Processingで書き直す前に,node.js用に書き直したほうが汎用性あったかなぁと思っています...(前回からの勢いです...)
後,クラスでの配布ではなくて,java書いてライブラリで配布できるとよりいいですね.ほしい...

言語を変えてライブラリを書き直すっていう,こんにゃくみたいな不思議道具ないかなぁ...

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4