これは面白い!TELLO EDUで作成したプログラミングに従い TELLO を飛ばす

1.TELLO EDU のブロック

TELLO EDU については、 嵌ります!TELLO EDU アプリを使用してプログラミングに挑戦!で、トレーニングステーション及び地球の二つのトレーニングコースを紹介しました。

今回はブロックを紹介します。

トレーニングステーション及び地球のトレーニングコースでは、作成したプログラミングを仮想的に実行できました。

ブロックでも仮想的に実行できる環境(フライトシュミュレーション)が用意されています。この環境で、作成したプログラミングの動きを仮想的に見ることが可能です。

ブロックでは、もうひとつ素晴らしい機能があります。

それは、作成したプログラミングに沿って、実際に TELLO を飛行させることが出来ることです。

2.プログラミング用のブロック

ブロックを開くと、左側にメニューが並んでいます。

(1) モーション

モーションを開くとたくさんのブロックが用意されているのがわかります。

離陸、着陸、前、後、左、右、XYZに移動、その他各方向のフリップなど、かなり複雑に動かすことができそうです。

(2) 制御

プログラムの制御を行うブロックです。

待機、ずっと(永久ループ)、繰り返し、もしなど、こちらも豊富に用意されています。

【国内正規品】 Ryze トイドローン Tello Powered by DJI CP.PT.00000208.01

新品価格
¥12,490から
(2020/10/24 09:45時点)

(3) ライト

LEDカラーの色を変えることが出来るようです。

白、黒、赤、黄緑、青、黄、ピンク、水色の他、RGBの設定で自由に色を作り出せるようです。また、点滅のためのブロックも用意されています。

(4) 認識

画像認識有効 or 無効、認識ターゲットの設定するブロックがあります。

残念ながら、これはどうやって使用するのかわからないブロックです。

(5) 変数

プログラムで変数を扱うことが出来るようです。そのためのブロックが二つあります。

(6) 演算

プログラム中で演算が可能です。

加算、減算、乗算、除算のほか、パーセント計算や、四捨五入など、一通りの演算用のブロックが用意されています。

(7) 検知

姿勢ピッチ、姿勢ロール、姿勢ヨー、加速や温度などを検知することが出来っるようです。

この結果をどうプログラミングに生かすかは、これから調べます。

(8) 外部モジュール

16個のブロックが用意されています。

これに関しても、どうプログラミングに生かすのかわかりません。

3.TELLO を飛ばす準備

それでは、実際にプログラムを作成して TELLO を飛ばしてみましょう。そのためには準備がいります。

(1) 飛行経路

まず、TELLO を飛行させる経路を決めましょう。といっても、以下のような簡単なものにしました。

  • ① 離陸
  • ② 前方に 50cm 進む
  • ③ 右方に 50cm 進む
  • ④ 後方に 100cm 進む
  • ⑤ 左方に 100cm 進む
  • ⑥ 前方に 100cm 進む
  • ⑦ 右方に 50cm 進む
  • ⑧ 後方に 50cm 進む
  • ⑨ 着陸

(2) X,Y,Z方向

プログラムのブロックのモーションに「XYZに移動」と言うものがありますが、その際、X,Y,Zの指定が必要になります。

このX,Y,Zのは座標軸を示しています。この概念を理解しましょう。

X,Y方向は、TELLO の前方に向かって下記のような方向になっています。
矢印方向がプラスで逆方向がマイナスとなります。

Z方向は上方がプラス、下方がマイマスです。

これをわかりやすく言うと以下のようになります。

  • X方向:前方に行くとプラス、後方はマイナス
  • Y方向:左方に行くとプラス、右方はマイナス
  • Z方向:上方に行くとプラス、下方はマイナス

4.プログラミングで TELLO を飛ばす

以上を踏まえて三つのプログラミングを行いました。また、離着陸点には以下のヘリポートマークを置きました。

スタート時は、TELLO をここにセッッティングして離陸させます。

(1) プログラミング1

飛行経路を単純にプログラミングをしました。

プログラムを見るとわかりますが、飛行経路と全く同じですね。

実際に飛ばすとこのようになります。

ヘリポートマークの四隅を止めなかったので、一部めくれあがっていますね。それから、TELLO が元のヘリポートマークに着陸する予定でしたが、ずれてしまいました。

それぞれのプロペラの出力に微妙なずれがあるのかもしれませんね。

(2) プログラミング2

今度は、同じ飛行経路を「XYZに移動」ブロックを使用して作成してみました。

着陸、離陸以外は、「XYZに移動」ブロックのみです。

自分の位置を基準に、X,Y,Z を指定しています。

上述したように、X方向は前方に行くとプラス、後方はマイナスとなります。Y方向は左方に行くとプラス、右方はマイナスとなります。

実際に飛ばすとこのようになります。

こちらも、TELLO の着陸位置がヘリポートではなく、やはり、ずれてしまいました。ずれは先程に比べると多少良くなっています。

(2) プログラミング3

こちらは、制御ブロックを使用した例です。

(1) プログラミング1、(2) プログラミング2と違うところは、進む方向に機首を変更するところです。

上記の飛行経路の丸付き数字と見比べてください。

  • ②③ 前に 50cm 進んで機首を 90℃ 時計回りに回転
  • ④⑤⑥ 前に 100cm 進んで機首を 90℃ 時計回りに回転
  • ⑦⑧ 前に 50cm 進んで機首を 90℃ 時計回りに回転
  • ⑨ 着陸前に機首を 90℃ 時計回りに回転

同じ動作を繰り返す部分を制御ブロックで実現しました。

実際に飛ばすとこのようになります。

ご覧のように、飛行経路を忠実に飛んでいますね。

しかし、今回もヘリポート上に着陸できませんでした。ただ、前2回に比べ、ずれは一番小さかったと思います。

5.最後に

いかがですか?

TELLO を自由気ままに飛ばすのも面白いと思いますが、簡単なブロックを使用して既定の行程を飛ばしてみるのも、なかなか面白いものです。

アプリをダウンロードするだけで楽しめますので、チャレンジしてみてはいかがでしょうか?