追記
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とは差がありますが,基本同じです)
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書いてライブラリで配布できるとよりいいですね.ほしい...
言語を変えてライブラリを書き直すっていう,こんにゃくみたいな不思議道具ないかなぁ...